@almadar/std 16.182.0 → 16.183.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (30) hide show
  1. package/behaviors/lolo/infra/atoms/std-migration-job.lolo +2 -2
  2. package/behaviors/lolo/ui/game/atoms/std-fx-trail.lolo +63 -0
  3. package/behaviors/lolo/ui/game/atoms/std-gate-lock.lolo +96 -0
  4. package/behaviors/lolo/ui/game/atoms/std-lives.lolo +121 -0
  5. package/behaviors/lolo/ui/game/atoms/std-patrol-hazard.lolo +96 -0
  6. package/behaviors/lolo/ui/game/atoms/std-tutorial-overlay.lolo +164 -0
  7. package/behaviors/lolo/ui/learning/atoms/std-learn-slope-probe.lolo +117 -0
  8. package/behaviors/lolo/ui/learning/atoms/ui-math-canvas.lolo +18 -0
  9. package/behaviors/registry/infra/atoms/std-migration-job.orb +2 -2
  10. package/behaviors/registry/ui/game/atoms/std-fx-trail.orb +376 -0
  11. package/behaviors/registry/ui/game/atoms/std-gate-lock.orb +852 -0
  12. package/behaviors/registry/ui/game/atoms/std-lives.orb +739 -0
  13. package/behaviors/registry/ui/game/atoms/std-patrol-hazard.orb +768 -0
  14. package/behaviors/registry/ui/game/atoms/std-tutorial-overlay.orb +1060 -0
  15. package/behaviors/registry/ui/learning/atoms/std-learn-slope-probe.orb +908 -0
  16. package/dist/behaviors/exports-reader.js +2674 -2410
  17. package/dist/behaviors/functions/index.d.ts +534 -1
  18. package/dist/behaviors/functions/index.js +2657 -2411
  19. package/dist/behaviors/index.d.ts +1 -1
  20. package/dist/behaviors/index.js +2675 -2411
  21. package/dist/behaviors/query.js +2674 -2410
  22. package/dist/behaviors-embeddings.hash.json +3 -3
  23. package/dist/behaviors-embeddings.json +294 -270
  24. package/dist/behaviors-registry.json +1873 -390
  25. package/dist/index.d.ts +1 -1
  26. package/dist/index.js +2675 -2411
  27. package/dist/knob-embeddings.hash.json +3 -3
  28. package/dist/knob-embeddings.json +1 -1
  29. package/dist/registry/factory-signatures.json +1 -1
  30. package/package.json +2 -2
@@ -0,0 +1,739 @@
1
+ {
2
+ "description": "Headless lives + checkpoint authority for boards with stakes: owns lives, the current respawn point, and nothing else. DAMAGE (call sites rename their hazard sources — BODY_HAZARD, BODY_FELL, PATROL_HIT — onto it) costs one life, respecting an invulnerability window so overlapping hazards can't chain-drain; losing a life emits LIFE_LOST plus RESPAWN with the current checkpoint (boards route RESPAWN to the body authority's PLACE), and losing the last emits GAME_OVER instead. Checkpoints advance automatically: BODY_MOVED crossing a configured checkpoint's atX moves the respawn point forward and emits CHECKPOINT_REACHED once per checkpoint (tracked by furthest atX reached, so checkpoints are ordered along the run). RESTART reseeds lives and respawn to the spawn. Renders nothing — HUDs read lives off the shared entity.",
3
+ "ledger": {
4
+ "entries": {
5
+ "ent_01M0PCAKN6E2Z14AYWA1MGF3TS": {
6
+ "bakedName": "LivesData",
7
+ "curName": "LivesData",
8
+ "id": "ent_01M0PCAKN6E2Z14AYWA1MGF3TS",
9
+ "kind": "entity",
10
+ "owner": "workspace",
11
+ "renames": []
12
+ },
13
+ "evt_01M0PCAKN640DKPRK56HB2D016": {
14
+ "bakedName": "BODY_MOVED",
15
+ "curName": "BODY_MOVED",
16
+ "id": "evt_01M0PCAKN640DKPRK56HB2D016",
17
+ "kind": "event",
18
+ "owner": "workspace",
19
+ "parent": "trt_01M0PCAKN664P8DZK7E18JCX38",
20
+ "renames": []
21
+ },
22
+ "evt_01M0PCAKN6GA9CBJDE8T7FS2F0": {
23
+ "bakedName": "RESPAWN",
24
+ "curName": "RESPAWN",
25
+ "id": "evt_01M0PCAKN6GA9CBJDE8T7FS2F0",
26
+ "kind": "event",
27
+ "owner": "workspace",
28
+ "parent": "trt_01M0PCAKN664P8DZK7E18JCX38",
29
+ "renames": []
30
+ },
31
+ "evt_01M0PCAKN6NHVZTD3B1YJBP9MN": {
32
+ "bakedName": "RESTART",
33
+ "curName": "RESTART",
34
+ "id": "evt_01M0PCAKN6NHVZTD3B1YJBP9MN",
35
+ "kind": "event",
36
+ "owner": "workspace",
37
+ "parent": "trt_01M0PCAKN664P8DZK7E18JCX38",
38
+ "renames": []
39
+ },
40
+ "evt_01M0PCAKN6QFXHSDW8XJ4ET8NS": {
41
+ "bakedName": "CHECKPOINT_REACHED",
42
+ "curName": "CHECKPOINT_REACHED",
43
+ "id": "evt_01M0PCAKN6QFXHSDW8XJ4ET8NS",
44
+ "kind": "event",
45
+ "owner": "workspace",
46
+ "parent": "trt_01M0PCAKN664P8DZK7E18JCX38",
47
+ "renames": []
48
+ },
49
+ "evt_01M0PCAKN6RFTB5YXC3TCYZZ01": {
50
+ "bakedName": "INIT",
51
+ "curName": "INIT",
52
+ "id": "evt_01M0PCAKN6RFTB5YXC3TCYZZ01",
53
+ "kind": "event",
54
+ "owner": "workspace",
55
+ "parent": "trt_01M0PCAKN664P8DZK7E18JCX38",
56
+ "renames": []
57
+ },
58
+ "evt_01M0PCAKN6XEC33A41ZQW64MFX": {
59
+ "bakedName": "GAME_OVER",
60
+ "curName": "GAME_OVER",
61
+ "id": "evt_01M0PCAKN6XEC33A41ZQW64MFX",
62
+ "kind": "event",
63
+ "owner": "workspace",
64
+ "parent": "trt_01M0PCAKN664P8DZK7E18JCX38",
65
+ "renames": []
66
+ },
67
+ "evt_01M0PCAKN6YZDSBX3W71KH98JK": {
68
+ "bakedName": "DAMAGE",
69
+ "curName": "DAMAGE",
70
+ "id": "evt_01M0PCAKN6YZDSBX3W71KH98JK",
71
+ "kind": "event",
72
+ "owner": "workspace",
73
+ "parent": "trt_01M0PCAKN664P8DZK7E18JCX38",
74
+ "renames": []
75
+ },
76
+ "evt_01M0PCAKN6ZV52F19HYZXHATFD": {
77
+ "bakedName": "LIFE_LOST",
78
+ "curName": "LIFE_LOST",
79
+ "id": "evt_01M0PCAKN6ZV52F19HYZXHATFD",
80
+ "kind": "event",
81
+ "owner": "workspace",
82
+ "parent": "trt_01M0PCAKN664P8DZK7E18JCX38",
83
+ "renames": []
84
+ },
85
+ "orb_01M0PCAKN65YEGE28DED3T3JRW": {
86
+ "bakedName": "LivesOrbital",
87
+ "curName": "LivesOrbital",
88
+ "id": "orb_01M0PCAKN65YEGE28DED3T3JRW",
89
+ "kind": "orbital",
90
+ "owner": "workspace",
91
+ "renames": []
92
+ },
93
+ "pag_01M0PCAKN6S9F8GE8SZV40XJBX": {
94
+ "bakedName": "LivesPage",
95
+ "curName": "LivesPage",
96
+ "id": "pag_01M0PCAKN6S9F8GE8SZV40XJBX",
97
+ "kind": "page",
98
+ "owner": "workspace",
99
+ "renames": []
100
+ },
101
+ "trt_01M0PCAKN664P8DZK7E18JCX38": {
102
+ "bakedName": "Lives",
103
+ "curName": "Lives",
104
+ "id": "trt_01M0PCAKN664P8DZK7E18JCX38",
105
+ "kind": "trait",
106
+ "owner": "workspace",
107
+ "renames": []
108
+ }
109
+ },
110
+ "schemaVersion": 1
111
+ },
112
+ "name": "std-lives",
113
+ "orbitals": [
114
+ {
115
+ "entity": {
116
+ "fields": [
117
+ {
118
+ "name": "id",
119
+ "required": true,
120
+ "type": "string"
121
+ },
122
+ {
123
+ "default": 3.0,
124
+ "name": "lives",
125
+ "type": "number"
126
+ },
127
+ {
128
+ "default": 0.0,
129
+ "name": "respawnX",
130
+ "type": "number"
131
+ },
132
+ {
133
+ "default": 0.0,
134
+ "name": "respawnY",
135
+ "type": "number"
136
+ },
137
+ {
138
+ "default": -1000000.0,
139
+ "name": "cpX",
140
+ "type": "number"
141
+ },
142
+ {
143
+ "default": 0.0,
144
+ "name": "lastHitAt",
145
+ "type": "number"
146
+ }
147
+ ],
148
+ "id": "ent_01M0PCAKN6E2Z14AYWA1MGF3TS",
149
+ "name": "LivesData",
150
+ "persistence": "runtime",
151
+ "shared": true
152
+ },
153
+ "id": "orb_01M0PCAKN65YEGE28DED3T3JRW",
154
+ "name": "LivesOrbital",
155
+ "pages": [
156
+ {
157
+ "id": "pag_01M0PCAKN6S9F8GE8SZV40XJBX",
158
+ "name": "LivesPage",
159
+ "path": "/lives",
160
+ "traits": [
161
+ {
162
+ "ref": "Lives",
163
+ "refId": "trt_01M0PCAKN664P8DZK7E18JCX38"
164
+ }
165
+ ]
166
+ }
167
+ ],
168
+ "traits": [
169
+ {
170
+ "category": "lifecycle",
171
+ "config": {
172
+ "checkpoints": {
173
+ "default": [],
174
+ "description": "Ordered along the run: when the player's x crosses atX the respawn point moves to (x, y). Must be sorted by atX ascending.",
175
+ "items": {
176
+ "properties": {
177
+ "atX": {
178
+ "name": "atX",
179
+ "required": true,
180
+ "type": "number"
181
+ },
182
+ "id": {
183
+ "name": "id",
184
+ "required": true,
185
+ "type": "string"
186
+ },
187
+ "x": {
188
+ "name": "x",
189
+ "required": true,
190
+ "type": "number"
191
+ },
192
+ "y": {
193
+ "name": "y",
194
+ "required": true,
195
+ "type": "number"
196
+ }
197
+ },
198
+ "type": "object"
199
+ },
200
+ "label": "Checkpoints",
201
+ "tier": "domain",
202
+ "type": "[Checkpoint]"
203
+ },
204
+ "invulnMs": {
205
+ "default": 1500.0,
206
+ "description": "Milliseconds after a accepted hit during which further DAMAGE is ignored, so a hazard overlapping the respawn can't chain-drain.",
207
+ "label": "Invulnerability Window (ms)",
208
+ "tier": "domain",
209
+ "type": "number"
210
+ },
211
+ "maxLives": {
212
+ "default": 3.0,
213
+ "description": "Lives seeded on INIT/RESTART; reaching zero fires GAME_OVER.",
214
+ "label": "Max Lives",
215
+ "tier": "domain",
216
+ "type": "number"
217
+ },
218
+ "running": {
219
+ "default": true,
220
+ "description": "When true, DAMAGE and checkpoint crossings are processed; toggle to make the run harmless (practice mode).",
221
+ "label": "Running",
222
+ "tier": "domain",
223
+ "type": "boolean"
224
+ },
225
+ "spawnX": {
226
+ "default": 0.0,
227
+ "description": "Respawn x before any checkpoint is reached (match the body authority's spawn).",
228
+ "label": "Spawn X",
229
+ "tier": "domain",
230
+ "type": "number"
231
+ },
232
+ "spawnY": {
233
+ "default": 0.0,
234
+ "description": "Respawn y before any checkpoint is reached.",
235
+ "label": "Spawn Y",
236
+ "tier": "domain",
237
+ "type": "number"
238
+ }
239
+ },
240
+ "emits": [
241
+ {
242
+ "description": "A life was spent (post-invulnerability check); carries the lives remaining. Boards layer damage fx / HUD heartbeat.",
243
+ "event": "LIFE_LOST",
244
+ "eventId": "evt_01M0PCAKN6ZV52F19HYZXHATFD",
245
+ "payloadSchema": [
246
+ {
247
+ "name": "lives",
248
+ "required": true,
249
+ "type": "number"
250
+ }
251
+ ],
252
+ "scope": "external",
253
+ "tier": "domain"
254
+ },
255
+ {
256
+ "description": "The checkpoint the body should restart from after this life loss; boards forward it to the body authority's PLACE.",
257
+ "event": "RESPAWN",
258
+ "eventId": "evt_01M0PCAKN6GA9CBJDE8T7FS2F0",
259
+ "payloadSchema": [
260
+ {
261
+ "name": "x",
262
+ "required": true,
263
+ "type": "number"
264
+ },
265
+ {
266
+ "name": "y",
267
+ "required": true,
268
+ "type": "number"
269
+ }
270
+ ],
271
+ "scope": "external",
272
+ "tier": "domain"
273
+ },
274
+ {
275
+ "description": "The last life was spent; boards show the game-over overlay and wait for RESTART.",
276
+ "event": "GAME_OVER",
277
+ "eventId": "evt_01M0PCAKN6XEC33A41ZQW64MFX",
278
+ "payloadSchema": [
279
+ {
280
+ "name": "id",
281
+ "required": true,
282
+ "type": "string"
283
+ }
284
+ ],
285
+ "scope": "external",
286
+ "tier": "domain"
287
+ },
288
+ {
289
+ "description": "The player crossed a checkpoint's atX for the first time this run; the respawn point moved to it. Boards layer flag/save fx.",
290
+ "event": "CHECKPOINT_REACHED",
291
+ "eventId": "evt_01M0PCAKN6QFXHSDW8XJ4ET8NS",
292
+ "payloadSchema": [
293
+ {
294
+ "name": "id",
295
+ "required": true,
296
+ "type": "string"
297
+ }
298
+ ],
299
+ "scope": "external",
300
+ "tier": "domain"
301
+ }
302
+ ],
303
+ "entityContract": {
304
+ "provides": [
305
+ "cpX",
306
+ "lastHitAt",
307
+ "lives",
308
+ "respawnX",
309
+ "respawnY"
310
+ ],
311
+ "requires": []
312
+ },
313
+ "entityRebindable": true,
314
+ "entityRefIds": {
315
+ "LivesData": "ent_01M0PCAKN6E2Z14AYWA1MGF3TS"
316
+ },
317
+ "id": "trt_01M0PCAKN664P8DZK7E18JCX38",
318
+ "linkedEntity": "LivesData",
319
+ "linkedEntityId": "ent_01M0PCAKN6E2Z14AYWA1MGF3TS",
320
+ "name": "Lives",
321
+ "scope": "instance",
322
+ "stateMachine": {
323
+ "events": [
324
+ {
325
+ "id": "evt_01M0PCAKN6RFTB5YXC3TCYZZ01",
326
+ "key": "INIT",
327
+ "name": "Initialize"
328
+ },
329
+ {
330
+ "id": "evt_01M0PCAKN6YZDSBX3W71KH98JK",
331
+ "key": "DAMAGE",
332
+ "name": "Damage",
333
+ "payloadSchema": [
334
+ {
335
+ "name": "source",
336
+ "type": "string"
337
+ }
338
+ ]
339
+ },
340
+ {
341
+ "id": "evt_01M0PCAKN640DKPRK56HB2D016",
342
+ "key": "BODY_MOVED",
343
+ "name": "Body Moved",
344
+ "payloadSchema": [
345
+ {
346
+ "name": "x",
347
+ "required": true,
348
+ "type": "number"
349
+ },
350
+ {
351
+ "name": "y",
352
+ "required": true,
353
+ "type": "number"
354
+ },
355
+ {
356
+ "name": "vx",
357
+ "required": true,
358
+ "type": "number"
359
+ },
360
+ {
361
+ "name": "vy",
362
+ "required": true,
363
+ "type": "number"
364
+ },
365
+ {
366
+ "name": "grounded",
367
+ "required": true,
368
+ "type": "boolean"
369
+ },
370
+ {
371
+ "name": "skating",
372
+ "required": true,
373
+ "type": "boolean"
374
+ },
375
+ {
376
+ "name": "speed",
377
+ "required": true,
378
+ "type": "number"
379
+ }
380
+ ]
381
+ },
382
+ {
383
+ "id": "evt_01M0PCAKN6NHVZTD3B1YJBP9MN",
384
+ "key": "RESTART",
385
+ "name": "Restart",
386
+ "payloadSchema": [
387
+ {
388
+ "name": "id",
389
+ "type": "string"
390
+ }
391
+ ]
392
+ },
393
+ {
394
+ "description": "A life was spent (post-invulnerability check); carries the lives remaining. Boards layer damage fx / HUD heartbeat.",
395
+ "id": "evt_01M0PCAKN6ZV52F19HYZXHATFD",
396
+ "key": "LIFE_LOST",
397
+ "name": "Life Lost",
398
+ "payloadSchema": [
399
+ {
400
+ "name": "lives",
401
+ "required": true,
402
+ "type": "number"
403
+ }
404
+ ],
405
+ "tier": "domain"
406
+ },
407
+ {
408
+ "description": "The checkpoint the body should restart from after this life loss; boards forward it to the body authority's PLACE.",
409
+ "id": "evt_01M0PCAKN6GA9CBJDE8T7FS2F0",
410
+ "key": "RESPAWN",
411
+ "name": "Respawn",
412
+ "payloadSchema": [
413
+ {
414
+ "name": "x",
415
+ "required": true,
416
+ "type": "number"
417
+ },
418
+ {
419
+ "name": "y",
420
+ "required": true,
421
+ "type": "number"
422
+ }
423
+ ],
424
+ "tier": "domain"
425
+ },
426
+ {
427
+ "description": "The last life was spent; boards show the game-over overlay and wait for RESTART.",
428
+ "id": "evt_01M0PCAKN6XEC33A41ZQW64MFX",
429
+ "key": "GAME_OVER",
430
+ "name": "Game Over",
431
+ "payloadSchema": [
432
+ {
433
+ "name": "id",
434
+ "required": true,
435
+ "type": "string"
436
+ }
437
+ ],
438
+ "tier": "domain"
439
+ },
440
+ {
441
+ "description": "The player crossed a checkpoint's atX for the first time this run; the respawn point moved to it. Boards layer flag/save fx.",
442
+ "id": "evt_01M0PCAKN6QFXHSDW8XJ4ET8NS",
443
+ "key": "CHECKPOINT_REACHED",
444
+ "name": "Checkpoint Reached",
445
+ "payloadSchema": [
446
+ {
447
+ "name": "id",
448
+ "required": true,
449
+ "type": "string"
450
+ }
451
+ ],
452
+ "tier": "domain"
453
+ }
454
+ ],
455
+ "states": [
456
+ {
457
+ "isInitial": true,
458
+ "name": "active"
459
+ }
460
+ ],
461
+ "transitions": [
462
+ {
463
+ "effects": [
464
+ [
465
+ "set",
466
+ "@entity.lives",
467
+ "@config.maxLives"
468
+ ],
469
+ [
470
+ "set",
471
+ "@entity.respawnX",
472
+ "@config.spawnX"
473
+ ],
474
+ [
475
+ "set",
476
+ "@entity.respawnY",
477
+ "@config.spawnY"
478
+ ],
479
+ [
480
+ "set",
481
+ "@entity.cpX",
482
+ [
483
+ "-",
484
+ 0.0,
485
+ 1000000.0
486
+ ]
487
+ ],
488
+ [
489
+ "set",
490
+ "@entity.lastHitAt",
491
+ 0.0
492
+ ]
493
+ ],
494
+ "event": "INIT",
495
+ "eventId": "evt_01M0PCAKN6RFTB5YXC3TCYZZ01",
496
+ "from": "active",
497
+ "to": "active"
498
+ },
499
+ {
500
+ "effects": [
501
+ [
502
+ "if",
503
+ [
504
+ ">=",
505
+ [
506
+ "-",
507
+ [
508
+ "time/now"
509
+ ],
510
+ "@entity.lastHitAt"
511
+ ],
512
+ "@config.invulnMs"
513
+ ],
514
+ [
515
+ "do",
516
+ [
517
+ "set",
518
+ "@entity.lastHitAt",
519
+ [
520
+ "time/now"
521
+ ]
522
+ ],
523
+ [
524
+ "set",
525
+ "@entity.lives",
526
+ [
527
+ "-",
528
+ "@entity.lives",
529
+ 1.0
530
+ ]
531
+ ],
532
+ [
533
+ "if",
534
+ [
535
+ ">",
536
+ "@entity.lives",
537
+ 0.0
538
+ ],
539
+ [
540
+ "do",
541
+ [
542
+ "emit",
543
+ "LIFE_LOST",
544
+ {
545
+ "lives": "@entity.lives"
546
+ }
547
+ ],
548
+ [
549
+ "emit",
550
+ "RESPAWN",
551
+ {
552
+ "x": "@entity.respawnX",
553
+ "y": "@entity.respawnY"
554
+ }
555
+ ]
556
+ ],
557
+ [
558
+ "emit",
559
+ "GAME_OVER",
560
+ {
561
+ "id": "lives"
562
+ }
563
+ ]
564
+ ]
565
+ ],
566
+ null
567
+ ]
568
+ ],
569
+ "event": "DAMAGE",
570
+ "eventId": "evt_01M0PCAKN6YZDSBX3W71KH98JK",
571
+ "from": "active",
572
+ "guard": [
573
+ "and",
574
+ "@config.running",
575
+ [
576
+ ">",
577
+ "@entity.lives",
578
+ 0.0
579
+ ]
580
+ ],
581
+ "to": "active"
582
+ },
583
+ {
584
+ "effects": [
585
+ [
586
+ "let",
587
+ [
588
+ [
589
+ "reached",
590
+ [
591
+ "array/filter",
592
+ "@config.checkpoints",
593
+ [
594
+ "fn",
595
+ "c",
596
+ [
597
+ "and",
598
+ [
599
+ "<=",
600
+ [
601
+ "object/get",
602
+ "@c",
603
+ "atX"
604
+ ],
605
+ "@payload.x"
606
+ ],
607
+ [
608
+ ">",
609
+ [
610
+ "object/get",
611
+ "@c",
612
+ "atX"
613
+ ],
614
+ "@entity.cpX"
615
+ ]
616
+ ]
617
+ ]
618
+ ]
619
+ ]
620
+ ],
621
+ [
622
+ "if",
623
+ [
624
+ ">",
625
+ [
626
+ "array/len",
627
+ "@reached"
628
+ ],
629
+ 0.0
630
+ ],
631
+ [
632
+ "let",
633
+ [
634
+ [
635
+ "cp",
636
+ [
637
+ "array/last",
638
+ "@reached"
639
+ ]
640
+ ]
641
+ ],
642
+ [
643
+ "do",
644
+ [
645
+ "set",
646
+ "@entity.respawnX",
647
+ [
648
+ "object/get",
649
+ "@cp",
650
+ "x"
651
+ ]
652
+ ],
653
+ [
654
+ "set",
655
+ "@entity.respawnY",
656
+ [
657
+ "object/get",
658
+ "@cp",
659
+ "y"
660
+ ]
661
+ ],
662
+ [
663
+ "set",
664
+ "@entity.cpX",
665
+ [
666
+ "object/get",
667
+ "@cp",
668
+ "atX"
669
+ ]
670
+ ],
671
+ [
672
+ "emit",
673
+ "CHECKPOINT_REACHED",
674
+ {
675
+ "id": [
676
+ "object/get",
677
+ "@cp",
678
+ "id"
679
+ ]
680
+ }
681
+ ]
682
+ ]
683
+ ],
684
+ null
685
+ ]
686
+ ]
687
+ ],
688
+ "event": "BODY_MOVED",
689
+ "eventId": "evt_01M0PCAKN640DKPRK56HB2D016",
690
+ "from": "active",
691
+ "guard": "@config.running",
692
+ "to": "active"
693
+ },
694
+ {
695
+ "effects": [
696
+ [
697
+ "set",
698
+ "@entity.lives",
699
+ "@config.maxLives"
700
+ ],
701
+ [
702
+ "set",
703
+ "@entity.respawnX",
704
+ "@config.spawnX"
705
+ ],
706
+ [
707
+ "set",
708
+ "@entity.respawnY",
709
+ "@config.spawnY"
710
+ ],
711
+ [
712
+ "set",
713
+ "@entity.cpX",
714
+ [
715
+ "-",
716
+ 0.0,
717
+ 1000000.0
718
+ ]
719
+ ],
720
+ [
721
+ "set",
722
+ "@entity.lastHitAt",
723
+ 0.0
724
+ ]
725
+ ],
726
+ "event": "RESTART",
727
+ "eventId": "evt_01M0PCAKN6NHVZTD3B1YJBP9MN",
728
+ "from": "active",
729
+ "to": "active"
730
+ }
731
+ ]
732
+ }
733
+ }
734
+ ]
735
+ }
736
+ ],
737
+ "schemaVersion": 1,
738
+ "version": "1.0.0"
739
+ }