@almadar/std 16.200.0 → 16.202.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 (90) hide show
  1. package/behaviors/lolo/ui/core/molecules/ui-command-palette.lolo +116 -0
  2. package/behaviors/lolo/ui/core/molecules/ui-file-tree.lolo +5 -0
  3. package/behaviors/lolo/ui/core/molecules/ui-floating-toolbar.lolo +55 -0
  4. package/behaviors/lolo/ui/core/organisms/ui-dock-layout.lolo +186 -0
  5. package/behaviors/lolo/ui/core/organisms/ui-split-pane.lolo +37 -1
  6. package/behaviors/lolo/ui/game/atoms/std-audio-cue.lolo +138 -0
  7. package/behaviors/lolo/ui/game/atoms/std-camera-rig.lolo +158 -0
  8. package/behaviors/lolo/ui/game/atoms/std-coef-pad.lolo +5 -3
  9. package/behaviors/lolo/ui/game/atoms/std-platformer-body.lolo +14 -5
  10. package/behaviors/lolo/ui/game/atoms/ui-canvas-2d.lolo +42 -0
  11. package/behaviors/lolo/ui/game/atoms/ui-canvas.lolo +42 -0
  12. package/behaviors/lolo/ui/game/atoms/ui-game-audio-cue.lolo +68 -0
  13. package/behaviors/lolo/ui/game/atoms/ui-game-audio-toggle.lolo +13 -0
  14. package/behaviors/lolo/ui/learning/atoms/ui-algo-graph-canvas.lolo +1 -0
  15. package/behaviors/lolo/ui/learning/atoms/ui-algorithm-canvas.lolo +1 -0
  16. package/behaviors/lolo/ui/learning/atoms/ui-biology-canvas.lolo +1 -0
  17. package/behaviors/lolo/ui/learning/atoms/ui-chemistry-canvas.lolo +1 -0
  18. package/behaviors/lolo/ui/learning/atoms/ui-learning-canvas.lolo +7 -0
  19. package/behaviors/lolo/ui/learning/atoms/ui-math-canvas.lolo +19 -0
  20. package/behaviors/lolo/ui/learning/atoms/ui-physics-canvas.lolo +1 -0
  21. package/behaviors/registry/infra/atoms/std-approval-gate.orb +20 -10
  22. package/behaviors/registry/infra/atoms/std-cache-aside.orb +62 -31
  23. package/behaviors/registry/infra/atoms/std-circuit-breaker.orb +32 -16
  24. package/behaviors/registry/infra/atoms/std-data-erasure.orb +16 -8
  25. package/behaviors/registry/infra/atoms/std-mod-queue.orb +16 -8
  26. package/behaviors/registry/infra/atoms/std-rate-limiter.orb +28 -14
  27. package/behaviors/registry/infra/organisms/std-status-lifecycle-control.orb +2 -1
  28. package/behaviors/registry/ml/organisms/std-escalating-decision.orb +10 -5
  29. package/behaviors/registry/ml/organisms/std-knowledge-tracing.orb +4 -2
  30. package/behaviors/registry/ui/core/atoms/std-billable-hour.orb +2 -1
  31. package/behaviors/registry/ui/core/atoms/std-browse.orb +6 -3
  32. package/behaviors/registry/ui/core/atoms/std-dashboard-grid-embedded.orb +2 -1
  33. package/behaviors/registry/ui/core/atoms/std-esign-flow.orb +4 -2
  34. package/behaviors/registry/ui/core/atoms/std-esign-request.orb +6 -3
  35. package/behaviors/registry/ui/core/atoms/std-export.orb +4 -2
  36. package/behaviors/registry/ui/core/atoms/std-gallery.orb +18 -9
  37. package/behaviors/registry/ui/core/atoms/std-import.orb +4 -2
  38. package/behaviors/registry/ui/core/atoms/std-list.orb +6 -3
  39. package/behaviors/registry/ui/core/molecules/ui-command-palette.orb +589 -0
  40. package/behaviors/registry/ui/core/molecules/ui-file-tree.orb +8 -0
  41. package/behaviors/registry/ui/core/molecules/ui-floating-toolbar.orb +285 -0
  42. package/behaviors/registry/ui/core/organisms/ui-dock-layout.orb +521 -0
  43. package/behaviors/registry/ui/core/organisms/ui-split-pane.orb +109 -2
  44. package/behaviors/registry/ui/game/atoms/std-audio-cue.orb +653 -0
  45. package/behaviors/registry/ui/game/atoms/std-camera-rig.orb +813 -0
  46. package/behaviors/registry/ui/game/atoms/std-coef-pad.orb +170 -4
  47. package/behaviors/registry/ui/game/atoms/std-platformer-body.orb +84 -7
  48. package/behaviors/registry/ui/game/atoms/ui-canvas-2d.orb +135 -0
  49. package/behaviors/registry/ui/game/atoms/ui-canvas.orb +134 -0
  50. package/behaviors/registry/ui/game/atoms/ui-game-audio-cue.orb +258 -0
  51. package/behaviors/registry/ui/game/atoms/ui-game-audio-toggle.orb +48 -0
  52. package/behaviors/registry/ui/game/organisms/std-arcade-board-3d.orb +8 -4
  53. package/behaviors/registry/ui/game/organisms/std-crew-board-2d.orb +6 -3
  54. package/behaviors/registry/ui/game/organisms/std-dungeon-board-2d.orb +10 -5
  55. package/behaviors/registry/ui/game/organisms/std-market-board-3d.orb +8 -4
  56. package/behaviors/registry/ui/game/organisms/std-objective-board-3d.orb +8 -4
  57. package/behaviors/registry/ui/game/organisms/std-platformer-board-2d.orb +6 -3
  58. package/behaviors/registry/ui/game/organisms/std-survival-board-3d.orb +8 -4
  59. package/behaviors/registry/ui/game/organisms/std-tactics-board-2d.orb +12 -6
  60. package/behaviors/registry/ui/game/organisms/std-tactics-board-3d.orb +8 -4
  61. package/behaviors/registry/ui/game/organisms/std-worldmap-board-2d.orb +6 -3
  62. package/behaviors/registry/ui/learning/atoms/ui-algo-graph-canvas.orb +9 -0
  63. package/behaviors/registry/ui/learning/atoms/ui-algorithm-canvas.orb +13 -0
  64. package/behaviors/registry/ui/learning/atoms/ui-biology-canvas.orb +13 -0
  65. package/behaviors/registry/ui/learning/atoms/ui-chemistry-canvas.orb +13 -0
  66. package/behaviors/registry/ui/learning/atoms/ui-learning-canvas.orb +21 -0
  67. package/behaviors/registry/ui/learning/atoms/ui-math-canvas.orb +39 -0
  68. package/behaviors/registry/ui/learning/atoms/ui-physics-canvas.orb +13 -0
  69. package/behaviors/registry/ui/marketing/atoms/std-marketing-article.orb +2 -1
  70. package/behaviors/registry/ui/marketing/atoms/std-marketing-footer.orb +2 -1
  71. package/behaviors/registry/ui/marketing/atoms/std-marketing-split.orb +2 -1
  72. package/behaviors/registry/ui/marketing/atoms/std-marketing-stats.orb +2 -1
  73. package/behaviors/registry/ui/marketing/atoms/std-marketing-steps.orb +2 -1
  74. package/behaviors/registry/ui/marketing/atoms/std-marketing-team.orb +2 -1
  75. package/dist/behaviors/exports-reader.js +3668 -2878
  76. package/dist/behaviors/functions/index.d.ts +673 -6
  77. package/dist/behaviors/functions/index.js +3650 -2879
  78. package/dist/behaviors/index.d.ts +2 -2
  79. package/dist/behaviors/index.js +3679 -2879
  80. package/dist/behaviors/query.d.ts +88 -4
  81. package/dist/behaviors/query.js +3679 -2879
  82. package/dist/behaviors-embeddings.hash.json +3 -3
  83. package/dist/behaviors-embeddings.json +33 -9
  84. package/dist/behaviors-registry.json +125308 -3773
  85. package/dist/index.d.ts +2 -2
  86. package/dist/index.js +3679 -2879
  87. package/dist/knob-embeddings.hash.json +3 -3
  88. package/dist/knob-embeddings.json +1 -1
  89. package/dist/registry/factory-signatures.json +1 -1
  90. package/package.json +3 -3
@@ -64,6 +64,24 @@
64
64
  "parent": "trt_01M055GNZBYF6V29GQASHPYTJ3",
65
65
  "renames": []
66
66
  },
67
+ "evt_01M1M6SDSRE5Q4V2Z05HN5VR38": {
68
+ "bakedName": "@config.onSelect",
69
+ "curName": "@config.onSelect",
70
+ "id": "evt_01M1M6SDSRE5Q4V2Z05HN5VR38",
71
+ "kind": "event",
72
+ "owner": "workspace",
73
+ "parent": "trt_01M055GNZBYF6V29GQASHPYTJ3",
74
+ "renames": []
75
+ },
76
+ "evt_01M1M6SDSREJ1C37CFD3JB8Y1T": {
77
+ "bakedName": "@config.onMove",
78
+ "curName": "@config.onMove",
79
+ "id": "evt_01M1M6SDSREJ1C37CFD3JB8Y1T",
80
+ "kind": "event",
81
+ "owner": "workspace",
82
+ "parent": "trt_01M055GNZBYF6V29GQASHPYTJ3",
83
+ "renames": []
84
+ },
67
85
  "orb_01M055GNZBJ6RE4D91MS5SX557": {
68
86
  "bakedName": "CanvasOrbital",
69
87
  "curName": "CanvasOrbital",
@@ -244,6 +262,12 @@
244
262
  "tier": "presentation",
245
263
  "type": "[node]"
246
264
  },
265
+ "editable": {
266
+ "description": "--- Scene-edit mode (a game studio selecting/dragging drawables). Purely",
267
+ "label": "Editable",
268
+ "tier": "presentation",
269
+ "type": "boolean"
270
+ },
247
271
  "featureClickEvent": {
248
272
  "default": "FEATURE_CLICK",
249
273
  "description": "Feature-click event (3D only).",
@@ -447,6 +471,27 @@
447
471
  "3d"
448
472
  ]
449
473
  },
474
+ "moveEvent": {
475
+ "default": "MOVE",
476
+ "description": "Declarative move event, `UI:{moveEvent} { id, x, y }` — fired once on drop.",
477
+ "label": "Move Event",
478
+ "tier": "presentation",
479
+ "type": "event"
480
+ },
481
+ "onMove": {
482
+ "default": "MOVE",
483
+ "description": "Fired once per drag gesture, on drop — before `moveEvent`.",
484
+ "label": "On Move",
485
+ "tier": "presentation",
486
+ "type": "event"
487
+ },
488
+ "onSelect": {
489
+ "default": "SELECT",
490
+ "description": "Fired on a click that changes selection — before `selectEvent`.",
491
+ "label": "On Select",
492
+ "tier": "presentation",
493
+ "type": "event"
494
+ },
450
495
  "pixelsPerUnit": {
451
496
  "description": "3D world-unit → pixel scale (perspective/side depth). 3D only.",
452
497
  "label": "Pixels Per Unit",
@@ -514,6 +559,19 @@
514
559
  "side"
515
560
  ]
516
561
  },
562
+ "selectEvent": {
563
+ "default": "SELECT",
564
+ "description": "Declarative selection event, `UI:{selectEvent} { id }`.",
565
+ "label": "Select Event",
566
+ "tier": "presentation",
567
+ "type": "event"
568
+ },
569
+ "selectedId": {
570
+ "description": "The currently-selected drawable id (controlled); `null`/undefined = none.",
571
+ "label": "Selected Id",
572
+ "tier": "presentation",
573
+ "type": "string"
574
+ },
517
575
  "shadows": {
518
576
  "description": "shadows prop",
519
577
  "label": "Shadows",
@@ -708,6 +766,42 @@
708
766
  ],
709
767
  "scope": "external",
710
768
  "tier": "essential"
769
+ },
770
+ {
771
+ "definerKnob": "onSelect",
772
+ "description": "Fired on a click that changes selection — before `selectEvent`.",
773
+ "event": "@config.onSelect",
774
+ "eventId": "evt_01M1M6SDSRE5Q4V2Z05HN5VR38",
775
+ "payloadSchema": [
776
+ {
777
+ "name": "id",
778
+ "type": "string"
779
+ }
780
+ ],
781
+ "scope": "external",
782
+ "tier": "essential"
783
+ },
784
+ {
785
+ "definerKnob": "onMove",
786
+ "description": "Fired once per drag gesture, on drop — before `moveEvent`.",
787
+ "event": "@config.onMove",
788
+ "eventId": "evt_01M1M6SDSREJ1C37CFD3JB8Y1T",
789
+ "payloadSchema": [
790
+ {
791
+ "name": "id",
792
+ "type": "string"
793
+ },
794
+ {
795
+ "name": "x",
796
+ "type": "number"
797
+ },
798
+ {
799
+ "name": "y",
800
+ "type": "number"
801
+ }
802
+ ],
803
+ "scope": "external",
804
+ "tier": "essential"
711
805
  }
712
806
  ],
713
807
  "entityContract": {
@@ -835,6 +929,40 @@
835
929
  }
836
930
  ],
837
931
  "tier": "essential"
932
+ },
933
+ {
934
+ "description": "Fired on a click that changes selection — before `selectEvent`.",
935
+ "id": "evt_01M1M6SDSRE5Q4V2Z05HN5VR38",
936
+ "key": "@config.onSelect",
937
+ "name": "@config.on select",
938
+ "payloadSchema": [
939
+ {
940
+ "name": "id",
941
+ "type": "string"
942
+ }
943
+ ],
944
+ "tier": "essential"
945
+ },
946
+ {
947
+ "description": "Fired once per drag gesture, on drop — before `moveEvent`.",
948
+ "id": "evt_01M1M6SDSREJ1C37CFD3JB8Y1T",
949
+ "key": "@config.onMove",
950
+ "name": "@config.on move",
951
+ "payloadSchema": [
952
+ {
953
+ "name": "id",
954
+ "type": "string"
955
+ },
956
+ {
957
+ "name": "x",
958
+ "type": "number"
959
+ },
960
+ {
961
+ "name": "y",
962
+ "type": "number"
963
+ }
964
+ ],
965
+ "tier": "essential"
838
966
  }
839
967
  ],
840
968
  "states": [
@@ -856,6 +984,7 @@
856
984
  "children": "@config.children",
857
985
  "className": "@config.className",
858
986
  "drawables": "@config.drawables",
987
+ "editable": "@config.editable",
859
988
  "featureClickEvent": "@config.featureClickEvent",
860
989
  "fit": "@config.fit",
861
990
  "fogOfWar": "@config.fogOfWar",
@@ -864,9 +993,14 @@
864
993
  "keyUpMap": "@config.keyUpMap",
865
994
  "lighting": "@config.lighting",
866
995
  "mode": "@config.mode",
996
+ "moveEvent": "@config.moveEvent",
997
+ "onMove": "@config.onMove",
998
+ "onSelect": "@config.onSelect",
867
999
  "pixelsPerUnit": "@config.pixelsPerUnit",
868
1000
  "post": "@config.post",
869
1001
  "projection": "@config.projection",
1002
+ "selectEvent": "@config.selectEvent",
1003
+ "selectedId": "@config.selectedId",
870
1004
  "shadows": "@config.shadows",
871
1005
  "showCoordinates": "@config.showCoordinates",
872
1006
  "showGrid": "@config.showGrid",
@@ -0,0 +1,258 @@
1
+ {
2
+ "description": "GameAudioCue — UI factory (1:1 with the @almadar/ui game-audio-cue pattern).",
3
+ "ledger": {
4
+ "entries": {
5
+ "ent_01M1M6XD9Q0XN6S9N4DB4JK5DR": {
6
+ "bakedName": "GameAudioCueItem",
7
+ "curName": "GameAudioCueItem",
8
+ "id": "ent_01M1M6XD9Q0XN6S9N4DB4JK5DR",
9
+ "kind": "entity",
10
+ "owner": "workspace",
11
+ "renames": []
12
+ },
13
+ "evt_01M1M6XD9Q63KRQBAT3KWGAXK0": {
14
+ "bakedName": "INIT",
15
+ "curName": "INIT",
16
+ "id": "evt_01M1M6XD9Q63KRQBAT3KWGAXK0",
17
+ "kind": "event",
18
+ "owner": "workspace",
19
+ "parent": "trt_01M1M6XD9QYB8Y5A3RVE2R6A4Z",
20
+ "renames": []
21
+ },
22
+ "orb_01M1M6XD9Q3YWGEKVXZTCB28ZQ": {
23
+ "bakedName": "GameAudioCueOrbital",
24
+ "curName": "GameAudioCueOrbital",
25
+ "id": "orb_01M1M6XD9Q3YWGEKVXZTCB28ZQ",
26
+ "kind": "orbital",
27
+ "owner": "workspace",
28
+ "renames": []
29
+ },
30
+ "pag_01M1M6XD9Q4H97NNA0WX368CHA": {
31
+ "bakedName": "GameAudioCuePage",
32
+ "curName": "GameAudioCuePage",
33
+ "id": "pag_01M1M6XD9Q4H97NNA0WX368CHA",
34
+ "kind": "page",
35
+ "owner": "workspace",
36
+ "renames": []
37
+ },
38
+ "trt_01M1M6XD9QYB8Y5A3RVE2R6A4Z": {
39
+ "bakedName": "GameAudioCueRender",
40
+ "curName": "GameAudioCueRender",
41
+ "id": "trt_01M1M6XD9QYB8Y5A3RVE2R6A4Z",
42
+ "kind": "trait",
43
+ "owner": "workspace",
44
+ "renames": []
45
+ }
46
+ },
47
+ "schemaVersion": 1
48
+ },
49
+ "name": "ui-game-audio-cue",
50
+ "orbitals": [
51
+ {
52
+ "entity": {
53
+ "fields": [
54
+ {
55
+ "name": "id",
56
+ "required": true,
57
+ "type": "string"
58
+ }
59
+ ],
60
+ "id": "ent_01M1M6XD9Q0XN6S9N4DB4JK5DR",
61
+ "name": "GameAudioCueItem",
62
+ "persistence": "runtime"
63
+ },
64
+ "id": "orb_01M1M6XD9Q3YWGEKVXZTCB28ZQ",
65
+ "name": "GameAudioCueOrbital",
66
+ "pages": [
67
+ {
68
+ "id": "pag_01M1M6XD9Q4H97NNA0WX368CHA",
69
+ "name": "GameAudioCuePage",
70
+ "path": "/game-audio-cue",
71
+ "traits": [
72
+ {
73
+ "ref": "GameAudioCueRender",
74
+ "refId": "trt_01M1M6XD9QYB8Y5A3RVE2R6A4Z"
75
+ }
76
+ ]
77
+ }
78
+ ],
79
+ "traits": [
80
+ {
81
+ "category": "interaction",
82
+ "config": {
83
+ "baseUrl": {
84
+ "description": "Base URL prepended to every manifest path.",
85
+ "label": "Base Url",
86
+ "tier": "presentation",
87
+ "type": "string"
88
+ },
89
+ "cue": {
90
+ "description": "Manifest key played as a one-shot SFX each time `cueSeq` advances.",
91
+ "label": "Cue",
92
+ "tier": "presentation",
93
+ "type": "string"
94
+ },
95
+ "cueSeq": {
96
+ "description": "Monotonically increasing counter — bumping it re-triggers `cue`.",
97
+ "label": "Cue Seq",
98
+ "tier": "presentation",
99
+ "type": "number"
100
+ },
101
+ "manifest": {
102
+ "default": {},
103
+ "description": "Sound manifest — keys mapped to sound definitions (path, volume, loop, ...).",
104
+ "items": {
105
+ "properties": {
106
+ "autostart": {
107
+ "name": "autostart",
108
+ "required": false,
109
+ "type": "boolean"
110
+ },
111
+ "crossfade": {
112
+ "name": "crossfade",
113
+ "required": false,
114
+ "type": "boolean"
115
+ },
116
+ "crossfadeDurationMs": {
117
+ "name": "crossfadeDurationMs",
118
+ "required": false,
119
+ "type": "number"
120
+ },
121
+ "loop": {
122
+ "name": "loop",
123
+ "required": false,
124
+ "type": "boolean"
125
+ },
126
+ "path": {
127
+ "name": "path",
128
+ "required": true,
129
+ "type": "string"
130
+ },
131
+ "poolSize": {
132
+ "name": "poolSize",
133
+ "required": false,
134
+ "type": "number"
135
+ },
136
+ "volume": {
137
+ "name": "volume",
138
+ "required": false,
139
+ "type": "number"
140
+ }
141
+ },
142
+ "type": "object"
143
+ },
144
+ "label": "Manifest",
145
+ "tier": "presentation",
146
+ "type": "Map<string,GameAudioCueManifestValue>"
147
+ },
148
+ "music": {
149
+ "description": "Manifest key to crossfade to as looping background music; unset/empty stops music.",
150
+ "label": "Music",
151
+ "tier": "presentation",
152
+ "type": "string"
153
+ },
154
+ "muted": {
155
+ "description": "Muted state, owned externally and mirrored into the hook.",
156
+ "label": "Muted",
157
+ "tier": "presentation",
158
+ "type": "boolean"
159
+ },
160
+ "volume": {
161
+ "description": "Master volume 0-1, owned externally and mirrored into the hook.",
162
+ "label": "Volume",
163
+ "tier": "presentation",
164
+ "type": "number"
165
+ }
166
+ },
167
+ "entityContract": {
168
+ "provides": [],
169
+ "requires": []
170
+ },
171
+ "entityRebindable": true,
172
+ "entityRefIds": {
173
+ "GameAudioCueItem": "ent_01M1M6XD9Q0XN6S9N4DB4JK5DR"
174
+ },
175
+ "id": "trt_01M1M6XD9QYB8Y5A3RVE2R6A4Z",
176
+ "linkedEntity": "GameAudioCueItem",
177
+ "linkedEntityId": "ent_01M1M6XD9Q0XN6S9N4DB4JK5DR",
178
+ "name": "GameAudioCueRender",
179
+ "scope": "instance",
180
+ "stateMachine": {
181
+ "events": [
182
+ {
183
+ "id": "evt_01M1M6XD9Q63KRQBAT3KWGAXK0",
184
+ "key": "INIT",
185
+ "name": "Initialize"
186
+ }
187
+ ],
188
+ "states": [
189
+ {
190
+ "isInitial": true,
191
+ "name": "idle"
192
+ }
193
+ ],
194
+ "transitions": [
195
+ {
196
+ "effects": [
197
+ [
198
+ "render-ui",
199
+ "main",
200
+ {
201
+ "baseUrl": "@config.baseUrl",
202
+ "cue": "@config.cue",
203
+ "cueSeq": "@config.cueSeq",
204
+ "manifest": "@config.manifest",
205
+ "music": "@config.music",
206
+ "muted": "@config.muted",
207
+ "type": "game-audio-cue",
208
+ "volume": "@config.volume"
209
+ }
210
+ ]
211
+ ],
212
+ "event": "INIT",
213
+ "eventId": "evt_01M1M6XD9Q63KRQBAT3KWGAXK0",
214
+ "from": "idle",
215
+ "to": "idle"
216
+ }
217
+ ]
218
+ }
219
+ }
220
+ ],
221
+ "types": {
222
+ "GameAudioCueManifestValue": [
223
+ {
224
+ "name": "path",
225
+ "required": true,
226
+ "type": "string"
227
+ },
228
+ {
229
+ "name": "volume",
230
+ "type": "number"
231
+ },
232
+ {
233
+ "name": "loop",
234
+ "type": "boolean"
235
+ },
236
+ {
237
+ "name": "poolSize",
238
+ "type": "number"
239
+ },
240
+ {
241
+ "name": "autostart",
242
+ "type": "boolean"
243
+ },
244
+ {
245
+ "name": "crossfade",
246
+ "type": "boolean"
247
+ },
248
+ {
249
+ "name": "crossfadeDurationMs",
250
+ "type": "number"
251
+ }
252
+ ]
253
+ }
254
+ }
255
+ ],
256
+ "schemaVersion": 1,
257
+ "version": "1.0.0"
258
+ }
@@ -19,6 +19,15 @@
19
19
  "parent": "trt_01KXG04V0MA4JSNNM3Q62KJSD9",
20
20
  "renames": []
21
21
  },
22
+ "evt_01M1M6SDZB7KSZHMVGHKYN2GKZ": {
23
+ "bakedName": "@config.toggleEvent",
24
+ "curName": "@config.toggleEvent",
25
+ "id": "evt_01M1M6SDZB7KSZHMVGHKYN2GKZ",
26
+ "kind": "event",
27
+ "owner": "workspace",
28
+ "parent": "trt_01KXG04V0MA4JSNNM3Q62KJSD9",
29
+ "renames": []
30
+ },
22
31
  "orb_01KXG04V0MFKPFF4JATTZWY52G": {
23
32
  "bakedName": "GameAudioToggleOrbital",
24
33
  "curName": "GameAudioToggleOrbital",
@@ -307,8 +316,32 @@
307
316
  "md",
308
317
  "lg"
309
318
  ]
319
+ },
320
+ "toggleEvent": {
321
+ "default": "TOGGLE",
322
+ "description": "Event dispatched via event bus on toggle, carrying the new muted state.",
323
+ "label": "Toggle Event",
324
+ "tier": "presentation",
325
+ "type": "event"
310
326
  }
311
327
  },
328
+ "emits": [
329
+ {
330
+ "definerKnob": "toggleEvent",
331
+ "description": "Event dispatched via event bus on toggle, carrying the new muted state.",
332
+ "event": "@config.toggleEvent",
333
+ "eventId": "evt_01M1M6SDZB7KSZHMVGHKYN2GKZ",
334
+ "payloadSchema": [
335
+ {
336
+ "name": "muted",
337
+ "required": true,
338
+ "type": "boolean"
339
+ }
340
+ ],
341
+ "scope": "external",
342
+ "tier": "essential"
343
+ }
344
+ ],
312
345
  "entityContract": {
313
346
  "provides": [],
314
347
  "requires": []
@@ -328,6 +361,20 @@
328
361
  "id": "evt_01KXG04V0MCG8VV4QQQH3VB2H6",
329
362
  "key": "INIT",
330
363
  "name": "Initialize"
364
+ },
365
+ {
366
+ "description": "Event dispatched via event bus on toggle, carrying the new muted state.",
367
+ "id": "evt_01M1M6SDZB7KSZHMVGHKYN2GKZ",
368
+ "key": "@config.toggleEvent",
369
+ "name": "@config.toggle event",
370
+ "payloadSchema": [
371
+ {
372
+ "name": "muted",
373
+ "required": true,
374
+ "type": "boolean"
375
+ }
376
+ ],
377
+ "tier": "essential"
331
378
  }
332
379
  ],
333
380
  "states": [
@@ -349,6 +396,7 @@
349
396
  "offAsset": "@config.offAsset",
350
397
  "onAsset": "@config.onAsset",
351
398
  "size": "@config.size",
399
+ "toggleEvent": "@config.toggleEvent",
352
400
  "type": "game-audio-toggle"
353
401
  }
354
402
  ]
@@ -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",
@@ -836,7 +836,8 @@
836
836
  "linkedEntity": "GameState",
837
837
  "linkedEntityId": "ent_01M055GPMKGAH9E4TGTCT7ZSJJ",
838
838
  "name": "CrewAuthority",
839
- "ref": "Nav.traits.HeroNav"
839
+ "ref": "Nav.traits.HeroNav",
840
+ "refId": "trt_01KXG04TJB91GE3PMCMF5EBAQX"
840
841
  },
841
842
  {
842
843
  "config": {
@@ -849,7 +850,8 @@
849
850
  "linkedEntity": "GameState",
850
851
  "linkedEntityId": "ent_01M055GPMKGAH9E4TGTCT7ZSJJ",
851
852
  "name": "FxDecay",
852
- "ref": "Particles.traits.FxParticles"
853
+ "ref": "Particles.traits.FxParticles",
854
+ "refId": "trt_01KXG04TFZQZVT3F7J3DTM2PXF"
853
855
  },
854
856
  {
855
857
  "config": {
@@ -862,7 +864,8 @@
862
864
  "linkedEntity": "GameState",
863
865
  "linkedEntityId": "ent_01M055GPMKGAH9E4TGTCT7ZSJJ",
864
866
  "name": "AnimClock",
865
- "ref": "AnimTick.traits.AnimTick"
867
+ "ref": "AnimTick.traits.AnimTick",
868
+ "refId": "trt_01KXG04EVEQNTAB0NYX7ZC392F"
866
869
  },
867
870
  {
868
871
  "category": "interaction",
@@ -1733,7 +1733,8 @@
1733
1733
  "linkedEntity": "GameState",
1734
1734
  "linkedEntityId": "ent_01M055GPPE3ESMZV57C91BH7S7",
1735
1735
  "name": "HeroAuthority",
1736
- "ref": "Nav.traits.HeroNav"
1736
+ "ref": "Nav.traits.HeroNav",
1737
+ "refId": "trt_01KXG04TJB91GE3PMCMF5EBAQX"
1737
1738
  },
1738
1739
  {
1739
1740
  "config": {
@@ -1802,7 +1803,8 @@
1802
1803
  "linkedEntity": "GameState",
1803
1804
  "linkedEntityId": "ent_01M055GPPE3ESMZV57C91BH7S7",
1804
1805
  "name": "Enemies",
1805
- "ref": "Combat.traits.DungeonCombat"
1806
+ "ref": "Combat.traits.DungeonCombat",
1807
+ "refId": "trt_01KXG04TFH3K6EPQH6S4EGMMZ8"
1806
1808
  },
1807
1809
  {
1808
1810
  "config": {
@@ -1835,7 +1837,8 @@
1835
1837
  "linkedEntity": "GameState",
1836
1838
  "linkedEntityId": "ent_01M055GPPE3ESMZV57C91BH7S7",
1837
1839
  "name": "Collector",
1838
- "ref": "Objective.traits.ObjectiveReach"
1840
+ "ref": "Objective.traits.ObjectiveReach",
1841
+ "refId": "trt_01KXG04TKVF4P1VR3W6BFJ78NH"
1839
1842
  },
1840
1843
  {
1841
1844
  "config": {
@@ -1848,7 +1851,8 @@
1848
1851
  "linkedEntity": "GameState",
1849
1852
  "linkedEntityId": "ent_01M055GPPE3ESMZV57C91BH7S7",
1850
1853
  "name": "FxDecay",
1851
- "ref": "Particles.traits.FxParticles"
1854
+ "ref": "Particles.traits.FxParticles",
1855
+ "refId": "trt_01KXG04TFZQZVT3F7J3DTM2PXF"
1852
1856
  },
1853
1857
  {
1854
1858
  "config": {
@@ -1861,7 +1865,8 @@
1861
1865
  "linkedEntity": "GameState",
1862
1866
  "linkedEntityId": "ent_01M055GPPE3ESMZV57C91BH7S7",
1863
1867
  "name": "RoundGate",
1864
- "ref": "Gate.traits.ObjectiveFlow"
1868
+ "ref": "Gate.traits.ObjectiveFlow",
1869
+ "refId": "trt_01KXG04TKBC6DPS2TWD1P0Z0K5"
1865
1870
  },
1866
1871
  {
1867
1872
  "category": "interaction",
@@ -1553,7 +1553,8 @@
1553
1553
  "linkedEntity": "GameState",
1554
1554
  "linkedEntityId": "ent_01M055GPRJ0BSXSD77Y18WTTHD",
1555
1555
  "name": "HeroAuthority",
1556
- "ref": "Nav.traits.HeroNav"
1556
+ "ref": "Nav.traits.HeroNav",
1557
+ "refId": "trt_01KXG04TJB91GE3PMCMF5EBAQX"
1557
1558
  },
1558
1559
  {
1559
1560
  "config": {
@@ -1602,7 +1603,8 @@
1602
1603
  "linkedEntity": "GameState",
1603
1604
  "linkedEntityId": "ent_01M055GPRJ0BSXSD77Y18WTTHD",
1604
1605
  "name": "Patience",
1605
- "ref": "Svc.traits.Patience"
1606
+ "ref": "Svc.traits.Patience",
1607
+ "refId": "trt_01KXG04TMD0MRDA57C85WD13VD"
1606
1608
  },
1607
1609
  {
1608
1610
  "config": {
@@ -1615,7 +1617,8 @@
1615
1617
  "linkedEntity": "GameState",
1616
1618
  "linkedEntityId": "ent_01M055GPRJ0BSXSD77Y18WTTHD",
1617
1619
  "name": "FxDecay",
1618
- "ref": "Particles.traits.FxParticles"
1620
+ "ref": "Particles.traits.FxParticles",
1621
+ "refId": "trt_01KXG04TFZQZVT3F7J3DTM2PXF"
1619
1622
  },
1620
1623
  {
1621
1624
  "config": {
@@ -1636,7 +1639,8 @@
1636
1639
  "linkedEntity": "GameState",
1637
1640
  "linkedEntityId": "ent_01M055GPRJ0BSXSD77Y18WTTHD",
1638
1641
  "name": "RoundGate",
1639
- "ref": "Flow.traits.MarketFlow"
1642
+ "ref": "Flow.traits.MarketFlow",
1643
+ "refId": "trt_01KXG04TJW9DXPV5MNGPMXCSRA"
1640
1644
  },
1641
1645
  {
1642
1646
  "category": "interaction",