@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,928 @@
1
+ {
2
+ "description": "Headless coefficient-pad mechanic for graph-riding boards: floor pads that reshape the road the player is riding (y = a·f(x−h) + k). Listens BODY_MOVED and, when the player stands grounded on an unapplied pad (|dx| <= reachX, |dy| <= reachY of the pad center — the pad-lock touch pattern), stamps the pad applied on the shared entity and emits COEF_PAD_APPLIED carrying the pad position AND its mod (x0, x1, a, h, k), so the board can append the mod to the body authority's curveMods (std-platformer-body with curveModsEnabled) and hop the player onto the reshaped surface. When every pad is applied it emits COEF_PAD_SET_COMPLETED once. RESTART un-applies every pad (the board clears curveMods alongside — the pad reports, the board owns the road). Renders nothing; boards draw the pads and read applied from the shared entity (the render authority).",
3
+ "ledger": {
4
+ "entries": {
5
+ "ent_01M14952XM7AF6CHE2KJDRBPKM": {
6
+ "bakedName": "CoefPadData",
7
+ "curName": "CoefPadData",
8
+ "id": "ent_01M14952XM7AF6CHE2KJDRBPKM",
9
+ "kind": "entity",
10
+ "owner": "workspace",
11
+ "renames": []
12
+ },
13
+ "evt_01M14952XM28TA81D80WTW2HNE": {
14
+ "bakedName": "COEF_PAD_SET_COMPLETED",
15
+ "curName": "COEF_PAD_SET_COMPLETED",
16
+ "id": "evt_01M14952XM28TA81D80WTW2HNE",
17
+ "kind": "event",
18
+ "owner": "workspace",
19
+ "parent": "trt_01M14952XMBFSDMKS596SBVGZ3",
20
+ "renames": []
21
+ },
22
+ "evt_01M14952XM5B58MP6ST3ZE4D9H": {
23
+ "bakedName": "BODY_MOVED",
24
+ "curName": "BODY_MOVED",
25
+ "id": "evt_01M14952XM5B58MP6ST3ZE4D9H",
26
+ "kind": "event",
27
+ "owner": "workspace",
28
+ "parent": "trt_01M14952XMBFSDMKS596SBVGZ3",
29
+ "renames": []
30
+ },
31
+ "evt_01M14952XMEZD2M5N4DSDD7846": {
32
+ "bakedName": "RESTART",
33
+ "curName": "RESTART",
34
+ "id": "evt_01M14952XMEZD2M5N4DSDD7846",
35
+ "kind": "event",
36
+ "owner": "workspace",
37
+ "parent": "trt_01M14952XMBFSDMKS596SBVGZ3",
38
+ "renames": []
39
+ },
40
+ "evt_01M14952XMJ1FAWXKV41ST5G5Y": {
41
+ "bakedName": "COEF_PAD_APPLIED",
42
+ "curName": "COEF_PAD_APPLIED",
43
+ "id": "evt_01M14952XMJ1FAWXKV41ST5G5Y",
44
+ "kind": "event",
45
+ "owner": "workspace",
46
+ "parent": "trt_01M14952XMBFSDMKS596SBVGZ3",
47
+ "renames": []
48
+ },
49
+ "evt_01M14952XMR8ARN1GXQG6BMC45": {
50
+ "bakedName": "INIT",
51
+ "curName": "INIT",
52
+ "id": "evt_01M14952XMR8ARN1GXQG6BMC45",
53
+ "kind": "event",
54
+ "owner": "workspace",
55
+ "parent": "trt_01M14952XMBFSDMKS596SBVGZ3",
56
+ "renames": []
57
+ },
58
+ "orb_01M14952XMFEN101SV771EJ34F": {
59
+ "bakedName": "CoefPadOrbital",
60
+ "curName": "CoefPadOrbital",
61
+ "id": "orb_01M14952XMFEN101SV771EJ34F",
62
+ "kind": "orbital",
63
+ "owner": "workspace",
64
+ "renames": []
65
+ },
66
+ "pag_01M14952XMWN5QSCYY5FJD9JZG": {
67
+ "bakedName": "CoefPadPage",
68
+ "curName": "CoefPadPage",
69
+ "id": "pag_01M14952XMWN5QSCYY5FJD9JZG",
70
+ "kind": "page",
71
+ "owner": "workspace",
72
+ "renames": []
73
+ },
74
+ "trt_01M14952XMBFSDMKS596SBVGZ3": {
75
+ "bakedName": "CoefPadLock",
76
+ "curName": "CoefPadLock",
77
+ "id": "trt_01M14952XMBFSDMKS596SBVGZ3",
78
+ "kind": "trait",
79
+ "owner": "workspace",
80
+ "renames": []
81
+ }
82
+ },
83
+ "schemaVersion": 1
84
+ },
85
+ "name": "std-coef-pad",
86
+ "orbitals": [
87
+ {
88
+ "entity": {
89
+ "fields": [
90
+ {
91
+ "name": "id",
92
+ "required": true,
93
+ "type": "string"
94
+ },
95
+ {
96
+ "default": [],
97
+ "items": {
98
+ "properties": {
99
+ "applied": {
100
+ "name": "applied",
101
+ "required": false,
102
+ "type": "boolean"
103
+ },
104
+ "glyph": {
105
+ "name": "glyph",
106
+ "required": false,
107
+ "type": "string"
108
+ },
109
+ "hint": {
110
+ "name": "hint",
111
+ "required": false,
112
+ "type": "string"
113
+ },
114
+ "hop": {
115
+ "name": "hop",
116
+ "required": false,
117
+ "type": "boolean"
118
+ },
119
+ "id": {
120
+ "name": "id",
121
+ "required": true,
122
+ "type": "string"
123
+ },
124
+ "mod": {
125
+ "name": "mod",
126
+ "properties": {
127
+ "a": {
128
+ "name": "a",
129
+ "required": true,
130
+ "type": "number"
131
+ },
132
+ "h": {
133
+ "name": "h",
134
+ "required": true,
135
+ "type": "number"
136
+ },
137
+ "k": {
138
+ "name": "k",
139
+ "required": true,
140
+ "type": "number"
141
+ },
142
+ "x0": {
143
+ "name": "x0",
144
+ "required": true,
145
+ "type": "number"
146
+ },
147
+ "x1": {
148
+ "name": "x1",
149
+ "required": true,
150
+ "type": "number"
151
+ }
152
+ },
153
+ "required": true,
154
+ "type": "object"
155
+ },
156
+ "samples": {
157
+ "items": {
158
+ "properties": {
159
+ "x": {
160
+ "name": "x",
161
+ "required": true,
162
+ "type": "number"
163
+ },
164
+ "y": {
165
+ "name": "y",
166
+ "required": true,
167
+ "type": "number"
168
+ }
169
+ },
170
+ "type": "object"
171
+ },
172
+ "name": "samples",
173
+ "required": false,
174
+ "type": "array"
175
+ },
176
+ "x": {
177
+ "name": "x",
178
+ "required": true,
179
+ "type": "number"
180
+ },
181
+ "y": {
182
+ "name": "y",
183
+ "required": true,
184
+ "type": "number"
185
+ }
186
+ },
187
+ "type": "object"
188
+ },
189
+ "name": "coefPads",
190
+ "type": "array"
191
+ },
192
+ {
193
+ "default": false,
194
+ "name": "coefCompleted",
195
+ "type": "boolean"
196
+ }
197
+ ],
198
+ "id": "ent_01M14952XM7AF6CHE2KJDRBPKM",
199
+ "name": "CoefPadData",
200
+ "persistence": "runtime",
201
+ "shared": true
202
+ },
203
+ "id": "orb_01M14952XMFEN101SV771EJ34F",
204
+ "name": "CoefPadOrbital",
205
+ "pages": [
206
+ {
207
+ "id": "pag_01M14952XMWN5QSCYY5FJD9JZG",
208
+ "name": "CoefPadPage",
209
+ "path": "/coef-pad",
210
+ "traits": [
211
+ {
212
+ "ref": "CoefPadLock",
213
+ "refId": "trt_01M14952XMBFSDMKS596SBVGZ3"
214
+ }
215
+ ]
216
+ }
217
+ ],
218
+ "traits": [
219
+ {
220
+ "category": "lifecycle",
221
+ "config": {
222
+ "coefPads": {
223
+ "default": [],
224
+ "description": "One row per pad: id, center (x, y in world units), the mod applied to the road while inside x0..x1 (a scales slope+height, h shifts horizontally, k lifts), and the hint floated on apply, and hop (true = the board teleports the player onto the reshaped surface — use when the mod steps the road far from the pad; false = the skate snap carries the player, preserving speed). applied is stamped at runtime.",
225
+ "items": {
226
+ "properties": {
227
+ "applied": {
228
+ "name": "applied",
229
+ "required": false,
230
+ "type": "boolean"
231
+ },
232
+ "glyph": {
233
+ "name": "glyph",
234
+ "required": false,
235
+ "type": "string"
236
+ },
237
+ "hint": {
238
+ "name": "hint",
239
+ "required": false,
240
+ "type": "string"
241
+ },
242
+ "hop": {
243
+ "name": "hop",
244
+ "required": false,
245
+ "type": "boolean"
246
+ },
247
+ "id": {
248
+ "name": "id",
249
+ "required": true,
250
+ "type": "string"
251
+ },
252
+ "mod": {
253
+ "name": "mod",
254
+ "properties": {
255
+ "a": {
256
+ "name": "a",
257
+ "required": true,
258
+ "type": "number"
259
+ },
260
+ "h": {
261
+ "name": "h",
262
+ "required": true,
263
+ "type": "number"
264
+ },
265
+ "k": {
266
+ "name": "k",
267
+ "required": true,
268
+ "type": "number"
269
+ },
270
+ "x0": {
271
+ "name": "x0",
272
+ "required": true,
273
+ "type": "number"
274
+ },
275
+ "x1": {
276
+ "name": "x1",
277
+ "required": true,
278
+ "type": "number"
279
+ }
280
+ },
281
+ "required": true,
282
+ "type": "object"
283
+ },
284
+ "samples": {
285
+ "items": {
286
+ "properties": {
287
+ "x": {
288
+ "name": "x",
289
+ "required": true,
290
+ "type": "number"
291
+ },
292
+ "y": {
293
+ "name": "y",
294
+ "required": true,
295
+ "type": "number"
296
+ }
297
+ },
298
+ "type": "object"
299
+ },
300
+ "name": "samples",
301
+ "required": false,
302
+ "type": "array"
303
+ },
304
+ "x": {
305
+ "name": "x",
306
+ "required": true,
307
+ "type": "number"
308
+ },
309
+ "y": {
310
+ "name": "y",
311
+ "required": true,
312
+ "type": "number"
313
+ }
314
+ },
315
+ "type": "object"
316
+ },
317
+ "label": "Coefficient Pads",
318
+ "tier": "domain",
319
+ "type": "[CoefPad]"
320
+ },
321
+ "reachX": {
322
+ "default": 0.7,
323
+ "description": "Horizontal tolerance (world units) around a pad's center when testing player contact (approximates the body's half-width plus a step).",
324
+ "label": "Reach X",
325
+ "tier": "domain",
326
+ "type": "number"
327
+ },
328
+ "reachY": {
329
+ "default": 1.2,
330
+ "description": "Vertical tolerance (world units) around a pad's center when testing player contact (covers riding the surface the pad sits on).",
331
+ "label": "Reach Y",
332
+ "tier": "domain",
333
+ "type": "number"
334
+ },
335
+ "running": {
336
+ "default": true,
337
+ "description": "When true, BODY_MOVED applies touched pads; toggle to freeze every pad as-is.",
338
+ "label": "Running",
339
+ "tier": "domain",
340
+ "type": "boolean"
341
+ }
342
+ },
343
+ "emits": [
344
+ {
345
+ "description": "The player stood on an unapplied coefficient pad; carries the pad position and the full mod (x0, x1, a, h, k) so the board appends it to the body authority's curveMods and hops the player onto the reshaped road. Fires once per pad per run.",
346
+ "event": "COEF_PAD_APPLIED",
347
+ "eventId": "evt_01M14952XMJ1FAWXKV41ST5G5Y",
348
+ "payloadSchema": [
349
+ {
350
+ "name": "id",
351
+ "required": true,
352
+ "type": "string"
353
+ },
354
+ {
355
+ "name": "x",
356
+ "required": true,
357
+ "type": "number"
358
+ },
359
+ {
360
+ "name": "y",
361
+ "required": true,
362
+ "type": "number"
363
+ },
364
+ {
365
+ "name": "x0",
366
+ "required": true,
367
+ "type": "number"
368
+ },
369
+ {
370
+ "name": "x1",
371
+ "required": true,
372
+ "type": "number"
373
+ },
374
+ {
375
+ "name": "a",
376
+ "required": true,
377
+ "type": "number"
378
+ },
379
+ {
380
+ "name": "h",
381
+ "required": true,
382
+ "type": "number"
383
+ },
384
+ {
385
+ "name": "k",
386
+ "required": true,
387
+ "type": "number"
388
+ },
389
+ {
390
+ "name": "hint",
391
+ "type": "string"
392
+ },
393
+ {
394
+ "name": "hop",
395
+ "type": "boolean"
396
+ },
397
+ {
398
+ "name": "samples",
399
+ "type": "[CoefModSample]"
400
+ }
401
+ ],
402
+ "scope": "external",
403
+ "tier": "domain"
404
+ },
405
+ {
406
+ "description": "Every coefficient pad in the set is applied; fires once per run. Boards layer the completion fx and dismiss the zone card.",
407
+ "event": "COEF_PAD_SET_COMPLETED",
408
+ "eventId": "evt_01M14952XM28TA81D80WTW2HNE",
409
+ "scope": "external",
410
+ "tier": "domain"
411
+ }
412
+ ],
413
+ "entityContract": {
414
+ "provides": [
415
+ "coefCompleted",
416
+ "coefPads"
417
+ ],
418
+ "requires": []
419
+ },
420
+ "entityRebindable": true,
421
+ "entityRefIds": {
422
+ "CoefPadData": "ent_01M14952XM7AF6CHE2KJDRBPKM"
423
+ },
424
+ "id": "trt_01M14952XMBFSDMKS596SBVGZ3",
425
+ "linkedEntity": "CoefPadData",
426
+ "linkedEntityId": "ent_01M14952XM7AF6CHE2KJDRBPKM",
427
+ "name": "CoefPadLock",
428
+ "scope": "instance",
429
+ "stateMachine": {
430
+ "events": [
431
+ {
432
+ "id": "evt_01M14952XMR8ARN1GXQG6BMC45",
433
+ "key": "INIT",
434
+ "name": "Initialize"
435
+ },
436
+ {
437
+ "id": "evt_01M14952XM5B58MP6ST3ZE4D9H",
438
+ "key": "BODY_MOVED",
439
+ "name": "Body Moved",
440
+ "payloadSchema": [
441
+ {
442
+ "name": "x",
443
+ "required": true,
444
+ "type": "number"
445
+ },
446
+ {
447
+ "name": "y",
448
+ "required": true,
449
+ "type": "number"
450
+ },
451
+ {
452
+ "name": "vx",
453
+ "required": true,
454
+ "type": "number"
455
+ },
456
+ {
457
+ "name": "vy",
458
+ "required": true,
459
+ "type": "number"
460
+ },
461
+ {
462
+ "name": "grounded",
463
+ "required": true,
464
+ "type": "boolean"
465
+ },
466
+ {
467
+ "name": "skating",
468
+ "required": true,
469
+ "type": "boolean"
470
+ },
471
+ {
472
+ "name": "speed",
473
+ "required": true,
474
+ "type": "number"
475
+ }
476
+ ]
477
+ },
478
+ {
479
+ "id": "evt_01M14952XMEZD2M5N4DSDD7846",
480
+ "key": "RESTART",
481
+ "name": "Restart",
482
+ "payloadSchema": [
483
+ {
484
+ "name": "id",
485
+ "type": "string"
486
+ }
487
+ ]
488
+ },
489
+ {
490
+ "description": "The player stood on an unapplied coefficient pad; carries the pad position and the full mod (x0, x1, a, h, k) so the board appends it to the body authority's curveMods and hops the player onto the reshaped road. Fires once per pad per run.",
491
+ "id": "evt_01M14952XMJ1FAWXKV41ST5G5Y",
492
+ "key": "COEF_PAD_APPLIED",
493
+ "name": "Coef Pad Applied",
494
+ "payloadSchema": [
495
+ {
496
+ "name": "id",
497
+ "required": true,
498
+ "type": "string"
499
+ },
500
+ {
501
+ "name": "x",
502
+ "required": true,
503
+ "type": "number"
504
+ },
505
+ {
506
+ "name": "y",
507
+ "required": true,
508
+ "type": "number"
509
+ },
510
+ {
511
+ "name": "x0",
512
+ "required": true,
513
+ "type": "number"
514
+ },
515
+ {
516
+ "name": "x1",
517
+ "required": true,
518
+ "type": "number"
519
+ },
520
+ {
521
+ "name": "a",
522
+ "required": true,
523
+ "type": "number"
524
+ },
525
+ {
526
+ "name": "h",
527
+ "required": true,
528
+ "type": "number"
529
+ },
530
+ {
531
+ "name": "k",
532
+ "required": true,
533
+ "type": "number"
534
+ },
535
+ {
536
+ "name": "hint",
537
+ "type": "string"
538
+ },
539
+ {
540
+ "name": "hop",
541
+ "type": "boolean"
542
+ },
543
+ {
544
+ "name": "samples",
545
+ "type": "[CoefModSample]"
546
+ }
547
+ ],
548
+ "tier": "domain"
549
+ },
550
+ {
551
+ "description": "Every coefficient pad in the set is applied; fires once per run. Boards layer the completion fx and dismiss the zone card.",
552
+ "id": "evt_01M14952XM28TA81D80WTW2HNE",
553
+ "key": "COEF_PAD_SET_COMPLETED",
554
+ "name": "Coef Pad Set Completed",
555
+ "tier": "domain"
556
+ }
557
+ ],
558
+ "states": [
559
+ {
560
+ "isInitial": true,
561
+ "name": "active"
562
+ }
563
+ ],
564
+ "transitions": [
565
+ {
566
+ "effects": [
567
+ [
568
+ "set",
569
+ "@entity.coefPads",
570
+ [
571
+ "array/map",
572
+ "@config.coefPads",
573
+ [
574
+ "fn",
575
+ "p",
576
+ [
577
+ "object/merge",
578
+ "@p",
579
+ {
580
+ "applied": false
581
+ }
582
+ ]
583
+ ]
584
+ ]
585
+ ],
586
+ [
587
+ "set",
588
+ "@entity.coefCompleted",
589
+ false
590
+ ]
591
+ ],
592
+ "event": "INIT",
593
+ "eventId": "evt_01M14952XMR8ARN1GXQG6BMC45",
594
+ "from": "active",
595
+ "to": "active"
596
+ },
597
+ {
598
+ "effects": [
599
+ [
600
+ "let",
601
+ [
602
+ [
603
+ "touch",
604
+ [
605
+ "array/filter",
606
+ "@entity.coefPads",
607
+ [
608
+ "fn",
609
+ "p",
610
+ [
611
+ "and",
612
+ [
613
+ "==",
614
+ [
615
+ "object/get",
616
+ "@p",
617
+ "applied"
618
+ ],
619
+ false
620
+ ],
621
+ [
622
+ "and",
623
+ [
624
+ "==",
625
+ "@payload.grounded",
626
+ true
627
+ ],
628
+ [
629
+ "and",
630
+ [
631
+ "<=",
632
+ [
633
+ "math/abs",
634
+ [
635
+ "-",
636
+ "@payload.x",
637
+ [
638
+ "object/get",
639
+ "@p",
640
+ "x"
641
+ ]
642
+ ]
643
+ ],
644
+ "@config.reachX"
645
+ ],
646
+ [
647
+ "<=",
648
+ [
649
+ "math/abs",
650
+ [
651
+ "-",
652
+ "@payload.y",
653
+ [
654
+ "object/get",
655
+ "@p",
656
+ "y"
657
+ ]
658
+ ]
659
+ ],
660
+ "@config.reachY"
661
+ ]
662
+ ]
663
+ ]
664
+ ]
665
+ ]
666
+ ]
667
+ ]
668
+ ],
669
+ [
670
+ "if",
671
+ [
672
+ ">",
673
+ [
674
+ "array/len",
675
+ "@touch"
676
+ ],
677
+ 0.0
678
+ ],
679
+ [
680
+ "let",
681
+ [
682
+ [
683
+ "p",
684
+ [
685
+ "array/first",
686
+ "@touch"
687
+ ]
688
+ ]
689
+ ],
690
+ [
691
+ "let",
692
+ [
693
+ [
694
+ "m",
695
+ [
696
+ "object/get",
697
+ "@p",
698
+ "mod"
699
+ ]
700
+ ]
701
+ ],
702
+ [
703
+ "let",
704
+ [
705
+ [
706
+ "remaining",
707
+ [
708
+ "array/len",
709
+ [
710
+ "array/filter",
711
+ "@entity.coefPads",
712
+ [
713
+ "fn",
714
+ "c",
715
+ [
716
+ "and",
717
+ [
718
+ "==",
719
+ [
720
+ "object/get",
721
+ "@c",
722
+ "applied"
723
+ ],
724
+ false
725
+ ],
726
+ [
727
+ "!=",
728
+ [
729
+ "object/get",
730
+ "@c",
731
+ "id"
732
+ ],
733
+ [
734
+ "object/get",
735
+ "@p",
736
+ "id"
737
+ ]
738
+ ]
739
+ ]
740
+ ]
741
+ ]
742
+ ]
743
+ ]
744
+ ],
745
+ [
746
+ "do",
747
+ [
748
+ "set",
749
+ "@entity.coefPads",
750
+ [
751
+ "array/map",
752
+ "@entity.coefPads",
753
+ [
754
+ "fn",
755
+ "c",
756
+ [
757
+ "if",
758
+ [
759
+ "==",
760
+ [
761
+ "object/get",
762
+ "@c",
763
+ "id"
764
+ ],
765
+ [
766
+ "object/get",
767
+ "@p",
768
+ "id"
769
+ ]
770
+ ],
771
+ [
772
+ "object/merge",
773
+ "@c",
774
+ {
775
+ "applied": true
776
+ }
777
+ ],
778
+ "@c"
779
+ ]
780
+ ]
781
+ ]
782
+ ],
783
+ [
784
+ "emit",
785
+ "COEF_PAD_APPLIED",
786
+ {
787
+ "a": [
788
+ "object/get",
789
+ "@m",
790
+ "a"
791
+ ],
792
+ "h": [
793
+ "object/get",
794
+ "@m",
795
+ "h"
796
+ ],
797
+ "hint": [
798
+ "object/get",
799
+ "@p",
800
+ "hint"
801
+ ],
802
+ "hop": [
803
+ "object/get",
804
+ "@p",
805
+ "hop"
806
+ ],
807
+ "id": [
808
+ "object/get",
809
+ "@p",
810
+ "id"
811
+ ],
812
+ "k": [
813
+ "object/get",
814
+ "@m",
815
+ "k"
816
+ ],
817
+ "samples": [
818
+ "object/get",
819
+ "@p",
820
+ "samples"
821
+ ],
822
+ "x": [
823
+ "object/get",
824
+ "@p",
825
+ "x"
826
+ ],
827
+ "x0": [
828
+ "object/get",
829
+ "@m",
830
+ "x0"
831
+ ],
832
+ "x1": [
833
+ "object/get",
834
+ "@m",
835
+ "x1"
836
+ ],
837
+ "y": [
838
+ "object/get",
839
+ "@p",
840
+ "y"
841
+ ]
842
+ }
843
+ ],
844
+ [
845
+ "if",
846
+ [
847
+ "and",
848
+ [
849
+ "==",
850
+ "@entity.coefCompleted",
851
+ false
852
+ ],
853
+ [
854
+ "==",
855
+ "@remaining",
856
+ 0.0
857
+ ]
858
+ ],
859
+ [
860
+ "do",
861
+ [
862
+ "set",
863
+ "@entity.coefCompleted",
864
+ true
865
+ ],
866
+ [
867
+ "emit",
868
+ "COEF_PAD_SET_COMPLETED",
869
+ {}
870
+ ]
871
+ ],
872
+ null
873
+ ]
874
+ ]
875
+ ]
876
+ ]
877
+ ],
878
+ null
879
+ ]
880
+ ]
881
+ ],
882
+ "event": "BODY_MOVED",
883
+ "eventId": "evt_01M14952XM5B58MP6ST3ZE4D9H",
884
+ "from": "active",
885
+ "guard": "@config.running",
886
+ "to": "active"
887
+ },
888
+ {
889
+ "effects": [
890
+ [
891
+ "set",
892
+ "@entity.coefPads",
893
+ [
894
+ "array/map",
895
+ "@config.coefPads",
896
+ [
897
+ "fn",
898
+ "p",
899
+ [
900
+ "object/merge",
901
+ "@p",
902
+ {
903
+ "applied": false
904
+ }
905
+ ]
906
+ ]
907
+ ]
908
+ ],
909
+ [
910
+ "set",
911
+ "@entity.coefCompleted",
912
+ false
913
+ ]
914
+ ],
915
+ "event": "RESTART",
916
+ "eventId": "evt_01M14952XMEZD2M5N4DSDD7846",
917
+ "from": "active",
918
+ "to": "active"
919
+ }
920
+ ]
921
+ }
922
+ }
923
+ ]
924
+ }
925
+ ],
926
+ "schemaVersion": 1,
927
+ "version": "1.0.0"
928
+ }