@almadar/std 16.187.0 → 16.189.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 (102) hide show
  1. package/behaviors/lolo/ui/core/.hand-authored.json +4 -4
  2. package/behaviors/lolo/ui/core/atoms/std-board.lolo +138 -4
  3. package/behaviors/lolo/ui/core/atoms/std-browse.lolo +148 -8
  4. package/behaviors/lolo/ui/core/atoms/std-calendar.lolo +161 -11
  5. package/behaviors/lolo/ui/core/atoms/std-event-log.lolo +255 -2
  6. package/behaviors/lolo/ui/core/atoms/std-gallery.lolo +148 -1
  7. package/behaviors/lolo/ui/core/atoms/std-list.lolo +193 -1
  8. package/behaviors/lolo/ui/core/atoms/std-record-detail.lolo +731 -0
  9. package/behaviors/lolo/ui/core/atoms/std-related.lolo +5 -1
  10. package/behaviors/lolo/ui/core/atoms/std-selection.lolo +182 -1
  11. package/behaviors/lolo/ui/core/atoms/std-tree.lolo +113 -3
  12. package/behaviors/lolo/ui/core/atoms/std-version-history.lolo +1 -1
  13. package/behaviors/lolo/ui/core/molecules/ui-document-details.lolo +80 -0
  14. package/behaviors/lolo/ui/core/molecules/ui-document-panel.lolo +213 -0
  15. package/behaviors/lolo/ui/core/molecules/{ui-rich-block-editor.lolo → ui-rich-text-editor.lolo} +25 -25
  16. package/behaviors/lolo/ui/game/atoms/std-area-fill.lolo +93 -0
  17. package/behaviors/lolo/ui/game/atoms/std-choice-gate.lolo +100 -0
  18. package/behaviors/lolo/ui/game/atoms/std-coef-pad.lolo +114 -0
  19. package/behaviors/lolo/ui/game/atoms/std-curve-fog.lolo +50 -0
  20. package/behaviors/lolo/ui/game/atoms/std-loop-lock.lolo +79 -0
  21. package/behaviors/lolo/ui/game/atoms/std-pad-lock.lolo +97 -0
  22. package/behaviors/lolo/ui/game/atoms/std-patrol-hazard.lolo +14 -7
  23. package/behaviors/lolo/ui/game/atoms/std-platformer-body.lolo +48 -5
  24. package/behaviors/lolo/ui/game/atoms/std-velocity-gate.lolo +101 -0
  25. package/behaviors/lolo/ui/game/atoms/std-zone-card.lolo +95 -0
  26. package/behaviors/lolo/ui/game/organisms/std-platformer-board-2d.lolo +9 -0
  27. package/behaviors/registry/infra/atoms/std-approval-gate.orb +16 -8
  28. package/behaviors/registry/infra/atoms/std-cache-aside.orb +62 -31
  29. package/behaviors/registry/infra/atoms/std-circuit-breaker.orb +32 -16
  30. package/behaviors/registry/infra/atoms/std-data-erasure.orb +16 -8
  31. package/behaviors/registry/infra/atoms/std-mod-queue.orb +16 -8
  32. package/behaviors/registry/infra/atoms/std-rate-limiter.orb +28 -14
  33. package/behaviors/registry/infra/organisms/std-status-lifecycle-control.orb +2 -1
  34. package/behaviors/registry/ml/organisms/std-escalating-decision.orb +10 -5
  35. package/behaviors/registry/ml/organisms/std-knowledge-tracing.orb +4 -2
  36. package/behaviors/registry/ui/core/atoms/std-billable-hour.orb +2 -1
  37. package/behaviors/registry/ui/core/atoms/std-board.orb +355 -2
  38. package/behaviors/registry/ui/core/atoms/std-browse.orb +304 -31
  39. package/behaviors/registry/ui/core/atoms/std-calendar.orb +393 -25
  40. package/behaviors/registry/ui/core/atoms/std-dashboard-grid-embedded.orb +2 -1
  41. package/behaviors/registry/ui/core/atoms/std-esign-flow.orb +4 -2
  42. package/behaviors/registry/ui/core/atoms/std-esign-request.orb +6 -3
  43. package/behaviors/registry/ui/core/atoms/std-event-log.orb +773 -0
  44. package/behaviors/registry/ui/core/atoms/std-export.orb +4 -2
  45. package/behaviors/registry/ui/core/atoms/std-gallery.orb +390 -0
  46. package/behaviors/registry/ui/core/atoms/std-import.orb +4 -2
  47. package/behaviors/registry/ui/core/atoms/std-list.orb +451 -0
  48. package/behaviors/registry/ui/core/atoms/std-record-detail.orb +3360 -0
  49. package/behaviors/registry/ui/core/atoms/std-related.orb +23 -1
  50. package/behaviors/registry/ui/core/atoms/std-selection.orb +436 -0
  51. package/behaviors/registry/ui/core/atoms/std-tree.orb +292 -1
  52. package/behaviors/registry/ui/core/atoms/std-version-history.orb +1 -1
  53. package/behaviors/registry/ui/core/molecules/ui-document-details.orb +342 -0
  54. package/behaviors/registry/ui/core/molecules/ui-document-panel.orb +655 -0
  55. package/behaviors/registry/ui/core/molecules/{ui-rich-block-editor.orb → ui-rich-text-editor.orb} +84 -97
  56. package/behaviors/registry/ui/game/atoms/std-area-fill.orb +955 -0
  57. package/behaviors/registry/ui/game/atoms/std-choice-gate.orb +855 -0
  58. package/behaviors/registry/ui/game/atoms/std-coef-pad.orb +928 -0
  59. package/behaviors/registry/ui/game/atoms/std-curve-fog.orb +337 -0
  60. package/behaviors/registry/ui/game/atoms/std-fx-trail.orb +1 -1
  61. package/behaviors/registry/ui/game/atoms/std-gate-lock.orb +1 -1
  62. package/behaviors/registry/ui/game/atoms/std-lives.orb +1 -1
  63. package/behaviors/registry/ui/game/atoms/std-loop-lock.orb +785 -0
  64. package/behaviors/registry/ui/game/atoms/std-pad-lock.orb +933 -0
  65. package/behaviors/registry/ui/game/atoms/std-patrol-hazard.orb +190 -44
  66. package/behaviors/registry/ui/game/atoms/std-platformer-body.orb +1330 -653
  67. package/behaviors/registry/ui/game/atoms/std-velocity-gate.orb +1040 -0
  68. package/behaviors/registry/ui/game/atoms/std-zone-card.orb +642 -0
  69. package/behaviors/registry/ui/game/organisms/std-arcade-board-3d.orb +8 -4
  70. package/behaviors/registry/ui/game/organisms/std-crew-board-2d.orb +6 -3
  71. package/behaviors/registry/ui/game/organisms/std-dungeon-board-2d.orb +10 -5
  72. package/behaviors/registry/ui/game/organisms/std-market-board-3d.orb +8 -4
  73. package/behaviors/registry/ui/game/organisms/std-objective-board-3d.orb +8 -4
  74. package/behaviors/registry/ui/game/organisms/std-platformer-board-2d.orb +36 -1
  75. package/behaviors/registry/ui/game/organisms/std-survival-board-3d.orb +8 -4
  76. package/behaviors/registry/ui/game/organisms/std-tactics-board-2d.orb +12 -6
  77. package/behaviors/registry/ui/game/organisms/std-tactics-board-3d.orb +8 -4
  78. package/behaviors/registry/ui/game/organisms/std-worldmap-board-2d.orb +6 -3
  79. package/behaviors/registry/ui/learning/atoms/std-learn-slope-probe.orb +1 -1
  80. package/behaviors/registry/ui/marketing/atoms/std-marketing-article.orb +2 -1
  81. package/behaviors/registry/ui/marketing/atoms/std-marketing-footer.orb +2 -1
  82. package/behaviors/registry/ui/marketing/atoms/std-marketing-split.orb +2 -1
  83. package/behaviors/registry/ui/marketing/atoms/std-marketing-stats.orb +2 -1
  84. package/behaviors/registry/ui/marketing/atoms/std-marketing-steps.orb +2 -1
  85. package/behaviors/registry/ui/marketing/atoms/std-marketing-team.orb +2 -1
  86. package/dist/behaviors/exports-reader.js +10971 -6255
  87. package/dist/behaviors/functions/index.d.ts +1205 -256
  88. package/dist/behaviors/functions/index.js +10932 -6245
  89. package/dist/behaviors/index.d.ts +1 -1
  90. package/dist/behaviors/index.js +10972 -6256
  91. package/dist/behaviors/query.js +10971 -6255
  92. package/dist/behaviors-embeddings.hash.json +3 -3
  93. package/dist/behaviors-embeddings.json +485 -469
  94. package/dist/behaviors-registry.json +6125 -2940
  95. package/dist/index.d.ts +1 -1
  96. package/dist/index.js +10972 -6256
  97. package/dist/knob-embeddings.hash.json +3 -3
  98. package/dist/knob-embeddings.json +1 -1
  99. package/dist/registry/factory-signatures.json +1 -1
  100. package/package.json +4 -4
  101. package/behaviors/lolo/ui/core/atoms/std-rich-editor.lolo +0 -790
  102. package/behaviors/registry/ui/core/atoms/std-rich-editor.orb +0 -2225
@@ -0,0 +1,642 @@
1
+ {
2
+ "description": "Headless zone-guidance mechanic for side-view boards: tracks which band of the world the player is in and holds up that zone's card — name, concept, objective — for a while after every crossing. Listens BODY_MOVED and, when the player's x crosses into a different config zone, stamps the shared entity (zoneId, card, enteredAt) and emits ZONE_CHANGED carrying the card fields; the card self-clears ttlTicks BODY_MOVED ticks later (a per-move tick counter on the entity, so pauses at speed zero still age it out) and boards clear it early via CARD_DISMISS (renamed to a board-scoped progress event) on any mechanic completion. RESTART clears the card and the clock. Renders nothing; boards draw the card from the shared entity (the render authority).",
3
+ "ledger": {
4
+ "entries": {
5
+ "ent_01M13F5J234QSGQ76PHXJYKKR2": {
6
+ "bakedName": "ZoneCardData",
7
+ "curName": "ZoneCardData",
8
+ "id": "ent_01M13F5J234QSGQ76PHXJYKKR2",
9
+ "kind": "entity",
10
+ "owner": "workspace",
11
+ "renames": []
12
+ },
13
+ "evt_01M13F5J23NF5QGD04W6TB144P": {
14
+ "bakedName": "ZONE_CHANGED",
15
+ "curName": "ZONE_CHANGED",
16
+ "id": "evt_01M13F5J23NF5QGD04W6TB144P",
17
+ "kind": "event",
18
+ "owner": "workspace",
19
+ "parent": "trt_01M13F5J235W797GNZ55CEQBCG",
20
+ "renames": []
21
+ },
22
+ "evt_01M13F5J23NT9KNCAEY39FD16W": {
23
+ "bakedName": "INIT",
24
+ "curName": "INIT",
25
+ "id": "evt_01M13F5J23NT9KNCAEY39FD16W",
26
+ "kind": "event",
27
+ "owner": "workspace",
28
+ "parent": "trt_01M13F5J235W797GNZ55CEQBCG",
29
+ "renames": []
30
+ },
31
+ "evt_01M13F5J23ZMY1PJCV29YGCG70": {
32
+ "bakedName": "RESTART",
33
+ "curName": "RESTART",
34
+ "id": "evt_01M13F5J23ZMY1PJCV29YGCG70",
35
+ "kind": "event",
36
+ "owner": "workspace",
37
+ "parent": "trt_01M13F5J235W797GNZ55CEQBCG",
38
+ "renames": []
39
+ },
40
+ "evt_01M13FRCGNA69ENDSRTHG8GTH1": {
41
+ "bakedName": "CARD_DISMISS",
42
+ "curName": "CARD_DISMISS",
43
+ "id": "evt_01M13FRCGNA69ENDSRTHG8GTH1",
44
+ "kind": "event",
45
+ "owner": "workspace",
46
+ "parent": "trt_01M13F5J235W797GNZ55CEQBCG",
47
+ "renames": []
48
+ },
49
+ "evt_01M13QVB13ZYCR5X2PFDTARN56": {
50
+ "bakedName": "BODY_MOVED",
51
+ "curName": "BODY_MOVED",
52
+ "id": "evt_01M13QVB13ZYCR5X2PFDTARN56",
53
+ "kind": "event",
54
+ "owner": "workspace",
55
+ "parent": "trt_01M13F5J235W797GNZ55CEQBCG",
56
+ "renames": []
57
+ },
58
+ "orb_01M13F5J231AKTE9CGV2BQ1SCC": {
59
+ "bakedName": "ZoneCardOrbital",
60
+ "curName": "ZoneCardOrbital",
61
+ "id": "orb_01M13F5J231AKTE9CGV2BQ1SCC",
62
+ "kind": "orbital",
63
+ "owner": "workspace",
64
+ "renames": []
65
+ },
66
+ "pag_01M13F5J23E0GVPBM36H7841BX": {
67
+ "bakedName": "ZoneCardPage",
68
+ "curName": "ZoneCardPage",
69
+ "id": "pag_01M13F5J23E0GVPBM36H7841BX",
70
+ "kind": "page",
71
+ "owner": "workspace",
72
+ "renames": []
73
+ },
74
+ "trt_01M13F5J235W797GNZ55CEQBCG": {
75
+ "bakedName": "ZoneCard",
76
+ "curName": "ZoneCard",
77
+ "id": "trt_01M13F5J235W797GNZ55CEQBCG",
78
+ "kind": "trait",
79
+ "owner": "workspace",
80
+ "renames": []
81
+ }
82
+ },
83
+ "schemaVersion": 1
84
+ },
85
+ "name": "std-zone-card",
86
+ "orbitals": [
87
+ {
88
+ "entity": {
89
+ "fields": [
90
+ {
91
+ "name": "id",
92
+ "required": true,
93
+ "type": "string"
94
+ },
95
+ {
96
+ "default": "",
97
+ "name": "zoneId",
98
+ "type": "string"
99
+ },
100
+ {
101
+ "name": "card",
102
+ "properties": {
103
+ "concept": {
104
+ "name": "concept",
105
+ "required": false,
106
+ "type": "string"
107
+ },
108
+ "name": {
109
+ "name": "name",
110
+ "required": true,
111
+ "type": "string"
112
+ },
113
+ "objective": {
114
+ "name": "objective",
115
+ "required": false,
116
+ "type": "string"
117
+ }
118
+ },
119
+ "type": "object"
120
+ },
121
+ {
122
+ "default": 0.0,
123
+ "name": "enteredAt",
124
+ "type": "number"
125
+ },
126
+ {
127
+ "default": 0.0,
128
+ "name": "ticks",
129
+ "type": "number"
130
+ }
131
+ ],
132
+ "id": "ent_01M13F5J234QSGQ76PHXJYKKR2",
133
+ "name": "ZoneCardData",
134
+ "persistence": "runtime",
135
+ "shared": true
136
+ },
137
+ "id": "orb_01M13F5J231AKTE9CGV2BQ1SCC",
138
+ "name": "ZoneCardOrbital",
139
+ "pages": [
140
+ {
141
+ "id": "pag_01M13F5J23E0GVPBM36H7841BX",
142
+ "name": "ZoneCardPage",
143
+ "path": "/zone-card",
144
+ "traits": [
145
+ {
146
+ "ref": "ZoneCard",
147
+ "refId": "trt_01M13F5J235W797GNZ55CEQBCG"
148
+ }
149
+ ]
150
+ }
151
+ ],
152
+ "traits": [
153
+ {
154
+ "category": "lifecycle",
155
+ "config": {
156
+ "running": {
157
+ "default": true,
158
+ "description": "When true, BODY_MOVED tracks the current zone and ages the card; toggle to freeze the card as-is.",
159
+ "label": "Running",
160
+ "tier": "domain",
161
+ "type": "boolean"
162
+ },
163
+ "ttlTicks": {
164
+ "default": 120.0,
165
+ "description": "BODY_MOVED ticks the card stays up after a zone crossing (≈ 4s at 30 moves/s) before it clears itself.",
166
+ "label": "TTL Ticks",
167
+ "tier": "domain",
168
+ "type": "number"
169
+ },
170
+ "zones": {
171
+ "default": [],
172
+ "description": "One row per world band: id, display name, the one-line concept, the zone's objective text, and the x-range (x0..x1) the band covers.",
173
+ "items": {
174
+ "properties": {
175
+ "concept": {
176
+ "name": "concept",
177
+ "required": false,
178
+ "type": "string"
179
+ },
180
+ "id": {
181
+ "name": "id",
182
+ "required": true,
183
+ "type": "string"
184
+ },
185
+ "name": {
186
+ "name": "name",
187
+ "required": true,
188
+ "type": "string"
189
+ },
190
+ "objective": {
191
+ "name": "objective",
192
+ "required": false,
193
+ "type": "string"
194
+ },
195
+ "x0": {
196
+ "name": "x0",
197
+ "required": true,
198
+ "type": "number"
199
+ },
200
+ "x1": {
201
+ "name": "x1",
202
+ "required": true,
203
+ "type": "number"
204
+ }
205
+ },
206
+ "type": "object"
207
+ },
208
+ "label": "Zones",
209
+ "tier": "domain",
210
+ "type": "[ZoneCardZone]"
211
+ }
212
+ },
213
+ "emits": [
214
+ {
215
+ "description": "The player crossed into a different zone; carries the zone's card fields (name, concept, objective) so boards can swap banners/guides and hold the card up. Fires once per crossing.",
216
+ "event": "ZONE_CHANGED",
217
+ "eventId": "evt_01M13F5J23NF5QGD04W6TB144P",
218
+ "payloadSchema": [
219
+ {
220
+ "name": "id",
221
+ "required": true,
222
+ "type": "string"
223
+ },
224
+ {
225
+ "name": "name",
226
+ "required": true,
227
+ "type": "string"
228
+ },
229
+ {
230
+ "name": "concept",
231
+ "type": "string"
232
+ },
233
+ {
234
+ "name": "objective",
235
+ "type": "string"
236
+ }
237
+ ],
238
+ "scope": "external",
239
+ "tier": "domain"
240
+ }
241
+ ],
242
+ "entityContract": {
243
+ "provides": [
244
+ "card",
245
+ "enteredAt",
246
+ "ticks",
247
+ "zoneId"
248
+ ],
249
+ "requires": []
250
+ },
251
+ "entityRebindable": true,
252
+ "entityRefIds": {
253
+ "ZoneCardData": "ent_01M13F5J234QSGQ76PHXJYKKR2"
254
+ },
255
+ "id": "trt_01M13F5J235W797GNZ55CEQBCG",
256
+ "linkedEntity": "ZoneCardData",
257
+ "linkedEntityId": "ent_01M13F5J234QSGQ76PHXJYKKR2",
258
+ "name": "ZoneCard",
259
+ "scope": "instance",
260
+ "stateMachine": {
261
+ "events": [
262
+ {
263
+ "id": "evt_01M13F5J23NT9KNCAEY39FD16W",
264
+ "key": "INIT",
265
+ "name": "Initialize"
266
+ },
267
+ {
268
+ "id": "evt_01M13QVB13ZYCR5X2PFDTARN56",
269
+ "key": "BODY_MOVED",
270
+ "name": "Body Moved",
271
+ "payloadSchema": [
272
+ {
273
+ "name": "x",
274
+ "required": true,
275
+ "type": "number"
276
+ },
277
+ {
278
+ "name": "y",
279
+ "required": true,
280
+ "type": "number"
281
+ },
282
+ {
283
+ "name": "vx",
284
+ "required": true,
285
+ "type": "number"
286
+ },
287
+ {
288
+ "name": "vy",
289
+ "required": true,
290
+ "type": "number"
291
+ },
292
+ {
293
+ "name": "grounded",
294
+ "required": true,
295
+ "type": "boolean"
296
+ },
297
+ {
298
+ "name": "skating",
299
+ "required": true,
300
+ "type": "boolean"
301
+ },
302
+ {
303
+ "name": "speed",
304
+ "required": true,
305
+ "type": "number"
306
+ }
307
+ ]
308
+ },
309
+ {
310
+ "id": "evt_01M13FRCGNA69ENDSRTHG8GTH1",
311
+ "key": "CARD_DISMISS",
312
+ "name": "Card Dismiss",
313
+ "payloadSchema": [
314
+ {
315
+ "name": "id",
316
+ "type": "string"
317
+ }
318
+ ]
319
+ },
320
+ {
321
+ "id": "evt_01M13F5J23ZMY1PJCV29YGCG70",
322
+ "key": "RESTART",
323
+ "name": "Restart",
324
+ "payloadSchema": [
325
+ {
326
+ "name": "id",
327
+ "type": "string"
328
+ }
329
+ ]
330
+ },
331
+ {
332
+ "description": "The player crossed into a different zone; carries the zone's card fields (name, concept, objective) so boards can swap banners/guides and hold the card up. Fires once per crossing.",
333
+ "id": "evt_01M13F5J23NF5QGD04W6TB144P",
334
+ "key": "ZONE_CHANGED",
335
+ "name": "Zone Changed",
336
+ "payloadSchema": [
337
+ {
338
+ "name": "id",
339
+ "required": true,
340
+ "type": "string"
341
+ },
342
+ {
343
+ "name": "name",
344
+ "required": true,
345
+ "type": "string"
346
+ },
347
+ {
348
+ "name": "concept",
349
+ "type": "string"
350
+ },
351
+ {
352
+ "name": "objective",
353
+ "type": "string"
354
+ }
355
+ ],
356
+ "tier": "domain"
357
+ }
358
+ ],
359
+ "states": [
360
+ {
361
+ "isInitial": true,
362
+ "name": "active"
363
+ }
364
+ ],
365
+ "transitions": [
366
+ {
367
+ "effects": [
368
+ [
369
+ "set",
370
+ "@entity.zoneId",
371
+ ""
372
+ ],
373
+ [
374
+ "set",
375
+ "@entity.card",
376
+ null
377
+ ],
378
+ [
379
+ "set",
380
+ "@entity.enteredAt",
381
+ 0.0
382
+ ],
383
+ [
384
+ "set",
385
+ "@entity.ticks",
386
+ 0.0
387
+ ]
388
+ ],
389
+ "event": "INIT",
390
+ "eventId": "evt_01M13F5J23NT9KNCAEY39FD16W",
391
+ "from": "active",
392
+ "to": "active"
393
+ },
394
+ {
395
+ "effects": [
396
+ [
397
+ "set",
398
+ "@entity.ticks",
399
+ [
400
+ "+",
401
+ "@entity.ticks",
402
+ 1.0
403
+ ]
404
+ ],
405
+ [
406
+ "let",
407
+ [
408
+ [
409
+ "zmatch",
410
+ [
411
+ "array/filter",
412
+ "@config.zones",
413
+ [
414
+ "fn",
415
+ "z",
416
+ [
417
+ "and",
418
+ [
419
+ ">=",
420
+ "@payload.x",
421
+ [
422
+ "object/get",
423
+ "@z",
424
+ "x0"
425
+ ]
426
+ ],
427
+ [
428
+ "<",
429
+ "@payload.x",
430
+ [
431
+ "object/get",
432
+ "@z",
433
+ "x1"
434
+ ]
435
+ ]
436
+ ]
437
+ ]
438
+ ]
439
+ ]
440
+ ],
441
+ [
442
+ "do",
443
+ [
444
+ "if",
445
+ [
446
+ "and",
447
+ [
448
+ ">",
449
+ [
450
+ "array/len",
451
+ "@zmatch"
452
+ ],
453
+ 0.0
454
+ ],
455
+ [
456
+ "!=",
457
+ "@entity.zoneId",
458
+ [
459
+ "object/get",
460
+ [
461
+ "array/first",
462
+ "@zmatch"
463
+ ],
464
+ "id"
465
+ ]
466
+ ]
467
+ ],
468
+ [
469
+ "do",
470
+ [
471
+ "set",
472
+ "@entity.zoneId",
473
+ [
474
+ "object/get",
475
+ [
476
+ "array/first",
477
+ "@zmatch"
478
+ ],
479
+ "id"
480
+ ]
481
+ ],
482
+ [
483
+ "set",
484
+ "@entity.card",
485
+ {
486
+ "concept": [
487
+ "object/get",
488
+ [
489
+ "array/first",
490
+ "@zmatch"
491
+ ],
492
+ "concept"
493
+ ],
494
+ "name": [
495
+ "object/get",
496
+ [
497
+ "array/first",
498
+ "@zmatch"
499
+ ],
500
+ "name"
501
+ ],
502
+ "objective": [
503
+ "object/get",
504
+ [
505
+ "array/first",
506
+ "@zmatch"
507
+ ],
508
+ "objective"
509
+ ]
510
+ }
511
+ ],
512
+ [
513
+ "set",
514
+ "@entity.enteredAt",
515
+ "@entity.ticks"
516
+ ],
517
+ [
518
+ "emit",
519
+ "ZONE_CHANGED",
520
+ {
521
+ "concept": [
522
+ "object/get",
523
+ [
524
+ "array/first",
525
+ "@zmatch"
526
+ ],
527
+ "concept"
528
+ ],
529
+ "id": [
530
+ "object/get",
531
+ [
532
+ "array/first",
533
+ "@zmatch"
534
+ ],
535
+ "id"
536
+ ],
537
+ "name": [
538
+ "object/get",
539
+ [
540
+ "array/first",
541
+ "@zmatch"
542
+ ],
543
+ "name"
544
+ ],
545
+ "objective": [
546
+ "object/get",
547
+ [
548
+ "array/first",
549
+ "@zmatch"
550
+ ],
551
+ "objective"
552
+ ]
553
+ }
554
+ ]
555
+ ],
556
+ null
557
+ ],
558
+ [
559
+ "if",
560
+ [
561
+ "and",
562
+ [
563
+ "!=",
564
+ "@entity.card",
565
+ null
566
+ ],
567
+ [
568
+ ">",
569
+ [
570
+ "-",
571
+ "@entity.ticks",
572
+ "@entity.enteredAt"
573
+ ],
574
+ "@config.ttlTicks"
575
+ ]
576
+ ],
577
+ [
578
+ "set",
579
+ "@entity.card",
580
+ null
581
+ ],
582
+ null
583
+ ]
584
+ ]
585
+ ]
586
+ ],
587
+ "event": "BODY_MOVED",
588
+ "eventId": "evt_01M13QVB13ZYCR5X2PFDTARN56",
589
+ "from": "active",
590
+ "guard": "@config.running",
591
+ "to": "active"
592
+ },
593
+ {
594
+ "effects": [
595
+ [
596
+ "set",
597
+ "@entity.card",
598
+ null
599
+ ]
600
+ ],
601
+ "event": "CARD_DISMISS",
602
+ "eventId": "evt_01M13FRCGNA69ENDSRTHG8GTH1",
603
+ "from": "active",
604
+ "to": "active"
605
+ },
606
+ {
607
+ "effects": [
608
+ [
609
+ "set",
610
+ "@entity.zoneId",
611
+ ""
612
+ ],
613
+ [
614
+ "set",
615
+ "@entity.card",
616
+ null
617
+ ],
618
+ [
619
+ "set",
620
+ "@entity.enteredAt",
621
+ 0.0
622
+ ],
623
+ [
624
+ "set",
625
+ "@entity.ticks",
626
+ 0.0
627
+ ]
628
+ ],
629
+ "event": "RESTART",
630
+ "eventId": "evt_01M13F5J23ZMY1PJCV29YGCG70",
631
+ "from": "active",
632
+ "to": "active"
633
+ }
634
+ ]
635
+ }
636
+ }
637
+ ]
638
+ }
639
+ ],
640
+ "schemaVersion": 1,
641
+ "version": "1.0.0"
642
+ }
@@ -1048,7 +1048,8 @@
1048
1048
  "linkedEntity": "GameState",
1049
1049
  "linkedEntityId": "ent_01M055GPJVFMCX8W7J3V8B4GWF",
1050
1050
  "name": "HeroAuthority",
1051
- "ref": "Nav.traits.HeroNav"
1051
+ "ref": "Nav.traits.HeroNav",
1052
+ "refId": "trt_01KXG04TJB91GE3PMCMF5EBAQX"
1052
1053
  },
1053
1054
  {
1054
1055
  "config": {
@@ -1077,7 +1078,8 @@
1077
1078
  "linkedEntity": "GameState",
1078
1079
  "linkedEntityId": "ent_01M055GPJVFMCX8W7J3V8B4GWF",
1079
1080
  "name": "PlayEconomy",
1080
- "ref": "Play.traits.ArcadePlay"
1081
+ "ref": "Play.traits.ArcadePlay",
1082
+ "refId": "trt_01KXG04TEBZRV5QJMA8KCC6X36"
1081
1083
  },
1082
1084
  {
1083
1085
  "config": {
@@ -1090,7 +1092,8 @@
1090
1092
  "linkedEntity": "GameState",
1091
1093
  "linkedEntityId": "ent_01M055GPJVFMCX8W7J3V8B4GWF",
1092
1094
  "name": "FxDecay",
1093
- "ref": "Particles.traits.FxParticles"
1095
+ "ref": "Particles.traits.FxParticles",
1096
+ "refId": "trt_01KXG04TFZQZVT3F7J3DTM2PXF"
1094
1097
  },
1095
1098
  {
1096
1099
  "config": {
@@ -1107,7 +1110,8 @@
1107
1110
  "linkedEntity": "GameState",
1108
1111
  "linkedEntityId": "ent_01M055GPJVFMCX8W7J3V8B4GWF",
1109
1112
  "name": "RoundGate",
1110
- "ref": "Gate.traits.ArcadeFlow"
1113
+ "ref": "Gate.traits.ArcadeFlow",
1114
+ "refId": "trt_01KXG04TDX1HTTKS1GM6Q2593N"
1111
1115
  },
1112
1116
  {
1113
1117
  "category": "interaction",