@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,852 @@
1
+ {
2
+ "description": "Headless collectible-gate mechanic: doors that stay shut until the player's collected total reaches their cost. Listens COLLECT (the board's running total — stars, coins, keys) and flips every door whose cost is met, stamping open on the shared door rows and emitting GATE_OPENED for the first newly opened door (the shared entity is the render authority for the rest). While a closed door's rect contains the player it emits GATE_BLOCKED once per approach — re-arming only after the player steps out — so the board can answer with a PLACE back and a locked fx. RESTART re-locks every door and zeroes the total. Renders nothing; boards draw closed doors as bars/walls and open ones as gaps.",
3
+ "ledger": {
4
+ "entries": {
5
+ "ent_01M0PCAKPNCX4VB9ENH9KE7A6K": {
6
+ "bakedName": "GateLockData",
7
+ "curName": "GateLockData",
8
+ "id": "ent_01M0PCAKPNCX4VB9ENH9KE7A6K",
9
+ "kind": "entity",
10
+ "owner": "workspace",
11
+ "renames": []
12
+ },
13
+ "evt_01M0PCAKPP16E2RHR0S9VEFV68": {
14
+ "bakedName": "RESTART",
15
+ "curName": "RESTART",
16
+ "id": "evt_01M0PCAKPP16E2RHR0S9VEFV68",
17
+ "kind": "event",
18
+ "owner": "workspace",
19
+ "parent": "trt_01M0PCAKPP3AGKNKD907BM5QKD",
20
+ "renames": []
21
+ },
22
+ "evt_01M0PCAKPP7JVBGEQSC7EM17EB": {
23
+ "bakedName": "COLLECT",
24
+ "curName": "COLLECT",
25
+ "id": "evt_01M0PCAKPP7JVBGEQSC7EM17EB",
26
+ "kind": "event",
27
+ "owner": "workspace",
28
+ "parent": "trt_01M0PCAKPP3AGKNKD907BM5QKD",
29
+ "renames": []
30
+ },
31
+ "evt_01M0PCAKPP7PNVBR3Y0FDGC3V1": {
32
+ "bakedName": "BODY_MOVED",
33
+ "curName": "BODY_MOVED",
34
+ "id": "evt_01M0PCAKPP7PNVBR3Y0FDGC3V1",
35
+ "kind": "event",
36
+ "owner": "workspace",
37
+ "parent": "trt_01M0PCAKPP3AGKNKD907BM5QKD",
38
+ "renames": []
39
+ },
40
+ "evt_01M0PCAKPPCJ7VSDH5Y8HJKXT3": {
41
+ "bakedName": "GATE_BLOCKED",
42
+ "curName": "GATE_BLOCKED",
43
+ "id": "evt_01M0PCAKPPCJ7VSDH5Y8HJKXT3",
44
+ "kind": "event",
45
+ "owner": "workspace",
46
+ "parent": "trt_01M0PCAKPP3AGKNKD907BM5QKD",
47
+ "renames": []
48
+ },
49
+ "evt_01M0PCAKPPV7X94GZE9JRTD275": {
50
+ "bakedName": "INIT",
51
+ "curName": "INIT",
52
+ "id": "evt_01M0PCAKPPV7X94GZE9JRTD275",
53
+ "kind": "event",
54
+ "owner": "workspace",
55
+ "parent": "trt_01M0PCAKPP3AGKNKD907BM5QKD",
56
+ "renames": []
57
+ },
58
+ "evt_01M0PCAKPPW543QCFNMEFRA1TT": {
59
+ "bakedName": "GATE_OPENED",
60
+ "curName": "GATE_OPENED",
61
+ "id": "evt_01M0PCAKPPW543QCFNMEFRA1TT",
62
+ "kind": "event",
63
+ "owner": "workspace",
64
+ "parent": "trt_01M0PCAKPP3AGKNKD907BM5QKD",
65
+ "renames": []
66
+ },
67
+ "orb_01M0PCAKPNXVSHP71VCHBA5VXS": {
68
+ "bakedName": "GateLockOrbital",
69
+ "curName": "GateLockOrbital",
70
+ "id": "orb_01M0PCAKPNXVSHP71VCHBA5VXS",
71
+ "kind": "orbital",
72
+ "owner": "workspace",
73
+ "renames": []
74
+ },
75
+ "pag_01M0PCAKPPD2G05Q9R5T1NACNY": {
76
+ "bakedName": "GateLockPage",
77
+ "curName": "GateLockPage",
78
+ "id": "pag_01M0PCAKPPD2G05Q9R5T1NACNY",
79
+ "kind": "page",
80
+ "owner": "workspace",
81
+ "renames": []
82
+ },
83
+ "trt_01M0PCAKPP3AGKNKD907BM5QKD": {
84
+ "bakedName": "GateLock",
85
+ "curName": "GateLock",
86
+ "id": "trt_01M0PCAKPP3AGKNKD907BM5QKD",
87
+ "kind": "trait",
88
+ "owner": "workspace",
89
+ "renames": []
90
+ }
91
+ },
92
+ "schemaVersion": 1
93
+ },
94
+ "name": "std-gate-lock",
95
+ "orbitals": [
96
+ {
97
+ "entity": {
98
+ "fields": [
99
+ {
100
+ "name": "id",
101
+ "required": true,
102
+ "type": "string"
103
+ },
104
+ {
105
+ "default": [],
106
+ "items": {
107
+ "properties": {
108
+ "blocked": {
109
+ "name": "blocked",
110
+ "required": false,
111
+ "type": "boolean"
112
+ },
113
+ "cost": {
114
+ "name": "cost",
115
+ "required": true,
116
+ "type": "number"
117
+ },
118
+ "height": {
119
+ "name": "height",
120
+ "required": true,
121
+ "type": "number"
122
+ },
123
+ "id": {
124
+ "name": "id",
125
+ "required": true,
126
+ "type": "string"
127
+ },
128
+ "open": {
129
+ "name": "open",
130
+ "required": false,
131
+ "type": "boolean"
132
+ },
133
+ "touching": {
134
+ "name": "touching",
135
+ "required": false,
136
+ "type": "boolean"
137
+ },
138
+ "width": {
139
+ "name": "width",
140
+ "required": true,
141
+ "type": "number"
142
+ },
143
+ "x": {
144
+ "name": "x",
145
+ "required": true,
146
+ "type": "number"
147
+ },
148
+ "y": {
149
+ "name": "y",
150
+ "required": true,
151
+ "type": "number"
152
+ }
153
+ },
154
+ "type": "object"
155
+ },
156
+ "name": "doors",
157
+ "type": "array"
158
+ },
159
+ {
160
+ "default": 0.0,
161
+ "name": "total",
162
+ "type": "number"
163
+ }
164
+ ],
165
+ "id": "ent_01M0PCAKPNCX4VB9ENH9KE7A6K",
166
+ "name": "GateLockData",
167
+ "persistence": "runtime",
168
+ "shared": true
169
+ },
170
+ "id": "orb_01M0PCAKPNXVSHP71VCHBA5VXS",
171
+ "name": "GateLockOrbital",
172
+ "pages": [
173
+ {
174
+ "id": "pag_01M0PCAKPPD2G05Q9R5T1NACNY",
175
+ "name": "GateLockPage",
176
+ "path": "/gate-lock",
177
+ "traits": [
178
+ {
179
+ "ref": "GateLock",
180
+ "refId": "trt_01M0PCAKPP3AGKNKD907BM5QKD"
181
+ }
182
+ ]
183
+ }
184
+ ],
185
+ "traits": [
186
+ {
187
+ "category": "lifecycle",
188
+ "config": {
189
+ "doors": {
190
+ "default": [],
191
+ "description": "One row per gate: id, min-corner rect (x, y, width, height in world units) and the collected total that opens it. open/touching are stamped at runtime.",
192
+ "items": {
193
+ "properties": {
194
+ "blocked": {
195
+ "name": "blocked",
196
+ "required": false,
197
+ "type": "boolean"
198
+ },
199
+ "cost": {
200
+ "name": "cost",
201
+ "required": true,
202
+ "type": "number"
203
+ },
204
+ "height": {
205
+ "name": "height",
206
+ "required": true,
207
+ "type": "number"
208
+ },
209
+ "id": {
210
+ "name": "id",
211
+ "required": true,
212
+ "type": "string"
213
+ },
214
+ "open": {
215
+ "name": "open",
216
+ "required": false,
217
+ "type": "boolean"
218
+ },
219
+ "touching": {
220
+ "name": "touching",
221
+ "required": false,
222
+ "type": "boolean"
223
+ },
224
+ "width": {
225
+ "name": "width",
226
+ "required": true,
227
+ "type": "number"
228
+ },
229
+ "x": {
230
+ "name": "x",
231
+ "required": true,
232
+ "type": "number"
233
+ },
234
+ "y": {
235
+ "name": "y",
236
+ "required": true,
237
+ "type": "number"
238
+ }
239
+ },
240
+ "type": "object"
241
+ },
242
+ "label": "Doors",
243
+ "tier": "domain",
244
+ "type": "[Door]"
245
+ },
246
+ "reachMargin": {
247
+ "default": 0.6,
248
+ "description": "Extra world units padded around a closed door's rect when testing player contact (approximates the body's size).",
249
+ "label": "Reach Margin",
250
+ "tier": "domain",
251
+ "type": "number"
252
+ },
253
+ "running": {
254
+ "default": true,
255
+ "description": "When true, COLLECT opens doors and closed doors report contact; toggle to freeze every door as-is.",
256
+ "label": "Running",
257
+ "tier": "domain",
258
+ "type": "boolean"
259
+ }
260
+ },
261
+ "emits": [
262
+ {
263
+ "description": "A door's cost was reached by the collected total and it flipped open; boards layer unlock fx. When several doors open on one total, the first reports and the shared entity carries the rest.",
264
+ "event": "GATE_OPENED",
265
+ "eventId": "evt_01M0PCAKPPW543QCFNMEFRA1TT",
266
+ "payloadSchema": [
267
+ {
268
+ "name": "id",
269
+ "required": true,
270
+ "type": "string"
271
+ },
272
+ {
273
+ "name": "cost",
274
+ "required": true,
275
+ "type": "number"
276
+ }
277
+ ],
278
+ "scope": "external",
279
+ "tier": "domain"
280
+ },
281
+ {
282
+ "description": "The player is inside a closed door's rect; fires once per approach and re-arms after they step out. Boards answer with a PLACE back plus a locked fx.",
283
+ "event": "GATE_BLOCKED",
284
+ "eventId": "evt_01M0PCAKPPCJ7VSDH5Y8HJKXT3",
285
+ "payloadSchema": [
286
+ {
287
+ "name": "id",
288
+ "required": true,
289
+ "type": "string"
290
+ },
291
+ {
292
+ "name": "x",
293
+ "required": true,
294
+ "type": "number"
295
+ },
296
+ {
297
+ "name": "y",
298
+ "required": true,
299
+ "type": "number"
300
+ }
301
+ ],
302
+ "scope": "external",
303
+ "tier": "domain"
304
+ }
305
+ ],
306
+ "entityContract": {
307
+ "provides": [
308
+ "doors",
309
+ "total"
310
+ ],
311
+ "requires": []
312
+ },
313
+ "entityRebindable": true,
314
+ "entityRefIds": {
315
+ "GateLockData": "ent_01M0PCAKPNCX4VB9ENH9KE7A6K"
316
+ },
317
+ "id": "trt_01M0PCAKPP3AGKNKD907BM5QKD",
318
+ "linkedEntity": "GateLockData",
319
+ "linkedEntityId": "ent_01M0PCAKPNCX4VB9ENH9KE7A6K",
320
+ "name": "GateLock",
321
+ "scope": "instance",
322
+ "stateMachine": {
323
+ "events": [
324
+ {
325
+ "id": "evt_01M0PCAKPPV7X94GZE9JRTD275",
326
+ "key": "INIT",
327
+ "name": "Initialize"
328
+ },
329
+ {
330
+ "id": "evt_01M0PCAKPP7JVBGEQSC7EM17EB",
331
+ "key": "COLLECT",
332
+ "name": "Collect",
333
+ "payloadSchema": [
334
+ {
335
+ "name": "total",
336
+ "required": true,
337
+ "type": "number"
338
+ }
339
+ ]
340
+ },
341
+ {
342
+ "id": "evt_01M0PCAKPP7PNVBR3Y0FDGC3V1",
343
+ "key": "BODY_MOVED",
344
+ "name": "Body Moved",
345
+ "payloadSchema": [
346
+ {
347
+ "name": "x",
348
+ "required": true,
349
+ "type": "number"
350
+ },
351
+ {
352
+ "name": "y",
353
+ "required": true,
354
+ "type": "number"
355
+ },
356
+ {
357
+ "name": "vx",
358
+ "required": true,
359
+ "type": "number"
360
+ },
361
+ {
362
+ "name": "vy",
363
+ "required": true,
364
+ "type": "number"
365
+ },
366
+ {
367
+ "name": "grounded",
368
+ "required": true,
369
+ "type": "boolean"
370
+ },
371
+ {
372
+ "name": "skating",
373
+ "required": true,
374
+ "type": "boolean"
375
+ },
376
+ {
377
+ "name": "speed",
378
+ "required": true,
379
+ "type": "number"
380
+ }
381
+ ]
382
+ },
383
+ {
384
+ "id": "evt_01M0PCAKPP16E2RHR0S9VEFV68",
385
+ "key": "RESTART",
386
+ "name": "Restart",
387
+ "payloadSchema": [
388
+ {
389
+ "name": "id",
390
+ "type": "string"
391
+ }
392
+ ]
393
+ },
394
+ {
395
+ "description": "A door's cost was reached by the collected total and it flipped open; boards layer unlock fx. When several doors open on one total, the first reports and the shared entity carries the rest.",
396
+ "id": "evt_01M0PCAKPPW543QCFNMEFRA1TT",
397
+ "key": "GATE_OPENED",
398
+ "name": "Gate Opened",
399
+ "payloadSchema": [
400
+ {
401
+ "name": "id",
402
+ "required": true,
403
+ "type": "string"
404
+ },
405
+ {
406
+ "name": "cost",
407
+ "required": true,
408
+ "type": "number"
409
+ }
410
+ ],
411
+ "tier": "domain"
412
+ },
413
+ {
414
+ "description": "The player is inside a closed door's rect; fires once per approach and re-arms after they step out. Boards answer with a PLACE back plus a locked fx.",
415
+ "id": "evt_01M0PCAKPPCJ7VSDH5Y8HJKXT3",
416
+ "key": "GATE_BLOCKED",
417
+ "name": "Gate Blocked",
418
+ "payloadSchema": [
419
+ {
420
+ "name": "id",
421
+ "required": true,
422
+ "type": "string"
423
+ },
424
+ {
425
+ "name": "x",
426
+ "required": true,
427
+ "type": "number"
428
+ },
429
+ {
430
+ "name": "y",
431
+ "required": true,
432
+ "type": "number"
433
+ }
434
+ ],
435
+ "tier": "domain"
436
+ }
437
+ ],
438
+ "states": [
439
+ {
440
+ "isInitial": true,
441
+ "name": "active"
442
+ }
443
+ ],
444
+ "transitions": [
445
+ {
446
+ "effects": [
447
+ [
448
+ "set",
449
+ "@entity.doors",
450
+ [
451
+ "array/map",
452
+ "@config.doors",
453
+ [
454
+ "fn",
455
+ "d",
456
+ [
457
+ "object/merge",
458
+ "@d",
459
+ {
460
+ "blocked": false,
461
+ "open": false,
462
+ "touching": false
463
+ }
464
+ ]
465
+ ]
466
+ ]
467
+ ],
468
+ [
469
+ "set",
470
+ "@entity.total",
471
+ 0.0
472
+ ]
473
+ ],
474
+ "event": "INIT",
475
+ "eventId": "evt_01M0PCAKPPV7X94GZE9JRTD275",
476
+ "from": "active",
477
+ "to": "active"
478
+ },
479
+ {
480
+ "effects": [
481
+ [
482
+ "set",
483
+ "@entity.total",
484
+ "@payload.total"
485
+ ],
486
+ [
487
+ "let",
488
+ [
489
+ [
490
+ "newly",
491
+ [
492
+ "array/filter",
493
+ "@entity.doors",
494
+ [
495
+ "fn",
496
+ "d",
497
+ [
498
+ "and",
499
+ [
500
+ "==",
501
+ [
502
+ "object/get",
503
+ "@d",
504
+ "open"
505
+ ],
506
+ false
507
+ ],
508
+ [
509
+ "<=",
510
+ [
511
+ "object/get",
512
+ "@d",
513
+ "cost"
514
+ ],
515
+ "@payload.total"
516
+ ]
517
+ ]
518
+ ]
519
+ ]
520
+ ]
521
+ ],
522
+ [
523
+ "if",
524
+ [
525
+ ">",
526
+ [
527
+ "array/len",
528
+ "@newly"
529
+ ],
530
+ 0.0
531
+ ],
532
+ [
533
+ "do",
534
+ [
535
+ "set",
536
+ "@entity.doors",
537
+ [
538
+ "array/map",
539
+ "@entity.doors",
540
+ [
541
+ "fn",
542
+ "d",
543
+ [
544
+ "if",
545
+ [
546
+ "and",
547
+ [
548
+ "==",
549
+ [
550
+ "object/get",
551
+ "@d",
552
+ "open"
553
+ ],
554
+ false
555
+ ],
556
+ [
557
+ "<=",
558
+ [
559
+ "object/get",
560
+ "@d",
561
+ "cost"
562
+ ],
563
+ "@payload.total"
564
+ ]
565
+ ],
566
+ [
567
+ "object/merge",
568
+ "@d",
569
+ {
570
+ "open": true
571
+ }
572
+ ],
573
+ "@d"
574
+ ]
575
+ ]
576
+ ]
577
+ ],
578
+ [
579
+ "emit",
580
+ "GATE_OPENED",
581
+ {
582
+ "cost": [
583
+ "object/get",
584
+ [
585
+ "array/first",
586
+ "@newly"
587
+ ],
588
+ "cost"
589
+ ],
590
+ "id": [
591
+ "object/get",
592
+ [
593
+ "array/first",
594
+ "@newly"
595
+ ],
596
+ "id"
597
+ ]
598
+ }
599
+ ]
600
+ ],
601
+ null
602
+ ]
603
+ ]
604
+ ],
605
+ "event": "COLLECT",
606
+ "eventId": "evt_01M0PCAKPP7JVBGEQSC7EM17EB",
607
+ "from": "active",
608
+ "guard": "@config.running",
609
+ "to": "active"
610
+ },
611
+ {
612
+ "effects": [
613
+ [
614
+ "set",
615
+ "@entity.doors",
616
+ [
617
+ "array/map",
618
+ "@entity.doors",
619
+ [
620
+ "fn",
621
+ "d",
622
+ [
623
+ "let",
624
+ [
625
+ [
626
+ "inside",
627
+ [
628
+ "and",
629
+ [
630
+ "==",
631
+ [
632
+ "object/get",
633
+ "@d",
634
+ "open"
635
+ ],
636
+ false
637
+ ],
638
+ [
639
+ "and",
640
+ [
641
+ ">=",
642
+ "@payload.x",
643
+ [
644
+ "-",
645
+ [
646
+ "object/get",
647
+ "@d",
648
+ "x"
649
+ ],
650
+ "@config.reachMargin"
651
+ ]
652
+ ],
653
+ [
654
+ "and",
655
+ [
656
+ "<=",
657
+ "@payload.x",
658
+ [
659
+ "+",
660
+ [
661
+ "object/get",
662
+ "@d",
663
+ "x"
664
+ ],
665
+ [
666
+ "object/get",
667
+ "@d",
668
+ "width"
669
+ ],
670
+ "@config.reachMargin"
671
+ ]
672
+ ],
673
+ [
674
+ "and",
675
+ [
676
+ ">=",
677
+ "@payload.y",
678
+ [
679
+ "-",
680
+ [
681
+ "object/get",
682
+ "@d",
683
+ "y"
684
+ ],
685
+ "@config.reachMargin"
686
+ ]
687
+ ],
688
+ [
689
+ "<=",
690
+ "@payload.y",
691
+ [
692
+ "+",
693
+ [
694
+ "object/get",
695
+ "@d",
696
+ "y"
697
+ ],
698
+ [
699
+ "object/get",
700
+ "@d",
701
+ "height"
702
+ ],
703
+ "@config.reachMargin"
704
+ ]
705
+ ]
706
+ ]
707
+ ]
708
+ ]
709
+ ]
710
+ ]
711
+ ],
712
+ [
713
+ "object/merge",
714
+ "@d",
715
+ {
716
+ "blocked": [
717
+ "and",
718
+ "@inside",
719
+ [
720
+ "==",
721
+ [
722
+ "object/get",
723
+ "@d",
724
+ "touching"
725
+ ],
726
+ false
727
+ ]
728
+ ],
729
+ "touching": "@inside"
730
+ }
731
+ ]
732
+ ]
733
+ ]
734
+ ]
735
+ ],
736
+ [
737
+ "let",
738
+ [
739
+ [
740
+ "blocked",
741
+ [
742
+ "array/filter",
743
+ "@entity.doors",
744
+ [
745
+ "fn",
746
+ "d",
747
+ [
748
+ "==",
749
+ [
750
+ "object/get",
751
+ "@d",
752
+ "blocked"
753
+ ],
754
+ true
755
+ ]
756
+ ]
757
+ ]
758
+ ]
759
+ ],
760
+ [
761
+ "if",
762
+ [
763
+ ">",
764
+ [
765
+ "array/len",
766
+ "@blocked"
767
+ ],
768
+ 0.0
769
+ ],
770
+ [
771
+ "emit",
772
+ "GATE_BLOCKED",
773
+ {
774
+ "id": [
775
+ "object/get",
776
+ [
777
+ "array/first",
778
+ "@blocked"
779
+ ],
780
+ "id"
781
+ ],
782
+ "x": [
783
+ "object/get",
784
+ [
785
+ "array/first",
786
+ "@blocked"
787
+ ],
788
+ "x"
789
+ ],
790
+ "y": [
791
+ "object/get",
792
+ [
793
+ "array/first",
794
+ "@blocked"
795
+ ],
796
+ "y"
797
+ ]
798
+ }
799
+ ],
800
+ null
801
+ ]
802
+ ]
803
+ ],
804
+ "event": "BODY_MOVED",
805
+ "eventId": "evt_01M0PCAKPP7PNVBR3Y0FDGC3V1",
806
+ "from": "active",
807
+ "guard": "@config.running",
808
+ "to": "active"
809
+ },
810
+ {
811
+ "effects": [
812
+ [
813
+ "set",
814
+ "@entity.doors",
815
+ [
816
+ "array/map",
817
+ "@config.doors",
818
+ [
819
+ "fn",
820
+ "d",
821
+ [
822
+ "object/merge",
823
+ "@d",
824
+ {
825
+ "blocked": false,
826
+ "open": false,
827
+ "touching": false
828
+ }
829
+ ]
830
+ ]
831
+ ]
832
+ ],
833
+ [
834
+ "set",
835
+ "@entity.total",
836
+ 0.0
837
+ ]
838
+ ],
839
+ "event": "RESTART",
840
+ "eventId": "evt_01M0PCAKPP16E2RHR0S9VEFV68",
841
+ "from": "active",
842
+ "to": "active"
843
+ }
844
+ ]
845
+ }
846
+ }
847
+ ]
848
+ }
849
+ ],
850
+ "schemaVersion": 1,
851
+ "version": "1.0.0"
852
+ }