@almadar/std 3.1.0 → 3.1.2

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 (256) hide show
  1. package/behaviors/exports/atoms/std-async.orb +2 -1
  2. package/behaviors/exports/atoms/std-browse.orb +2 -1
  3. package/behaviors/exports/atoms/std-cache-aside.orb +2 -1
  4. package/behaviors/exports/atoms/std-circuit-breaker.orb +2 -1
  5. package/behaviors/exports/atoms/std-collision.orb +2 -1
  6. package/behaviors/exports/atoms/std-combat-log.orb +2 -1
  7. package/behaviors/exports/atoms/std-combat.orb +2 -1
  8. package/behaviors/exports/atoms/std-confirmation.orb +2 -1
  9. package/behaviors/exports/atoms/std-dialogue-box.orb +2 -1
  10. package/behaviors/exports/atoms/std-display.orb +2 -1
  11. package/behaviors/exports/atoms/std-drawer.orb +2 -1
  12. package/behaviors/exports/atoms/std-filter.orb +2 -1
  13. package/behaviors/exports/atoms/std-game-audio.orb +2 -1
  14. package/behaviors/exports/atoms/std-game-hud.orb +2 -1
  15. package/behaviors/exports/atoms/std-game-menu.orb +2 -1
  16. package/behaviors/exports/atoms/std-game-over-screen.orb +2 -1
  17. package/behaviors/exports/atoms/std-gameflow.orb +2 -1
  18. package/behaviors/exports/atoms/std-input.orb +2 -1
  19. package/behaviors/exports/atoms/std-inventory-panel.orb +2 -1
  20. package/behaviors/exports/atoms/std-isometric-canvas.orb +2 -1
  21. package/behaviors/exports/atoms/std-loading.orb +2 -1
  22. package/behaviors/exports/atoms/std-modal.orb +2 -1
  23. package/behaviors/exports/atoms/std-movement.orb +2 -1
  24. package/behaviors/exports/atoms/std-notification.orb +2 -1
  25. package/behaviors/exports/atoms/std-overworld.orb +2 -1
  26. package/behaviors/exports/atoms/std-pagination.orb +2 -1
  27. package/behaviors/exports/atoms/std-physics2d.orb +2 -1
  28. package/behaviors/exports/atoms/std-platformer-canvas.orb +2 -1
  29. package/behaviors/exports/atoms/std-quest.orb +2 -1
  30. package/behaviors/exports/atoms/std-rate-limiter.orb +2 -1
  31. package/behaviors/exports/atoms/std-score-board.orb +2 -1
  32. package/behaviors/exports/atoms/std-score.orb +2 -1
  33. package/behaviors/exports/atoms/std-search.orb +2 -1
  34. package/behaviors/exports/atoms/std-selection.orb +2 -1
  35. package/behaviors/exports/atoms/std-simulation-canvas.orb +2 -1
  36. package/behaviors/exports/atoms/std-sort.orb +2 -1
  37. package/behaviors/exports/atoms/std-sprite.orb +2 -1
  38. package/behaviors/exports/atoms/std-tabs.orb +2 -1
  39. package/behaviors/exports/atoms/std-timer.orb +2 -1
  40. package/behaviors/exports/atoms/std-undo.orb +2 -1
  41. package/behaviors/exports/atoms/std-wizard.orb +2 -1
  42. package/behaviors/exports/molecules/std-builder-game.orb +2 -1
  43. package/behaviors/exports/molecules/std-cart.orb +2 -1
  44. package/behaviors/exports/molecules/std-classifier-game.orb +2 -1
  45. package/behaviors/exports/molecules/std-debugger-game.orb +2 -1
  46. package/behaviors/exports/molecules/std-detail.orb +2 -1
  47. package/behaviors/exports/molecules/std-event-handler-game.orb +2 -1
  48. package/behaviors/exports/molecules/std-geospatial.orb +2 -1
  49. package/behaviors/exports/molecules/std-inventory.orb +2 -1
  50. package/behaviors/exports/molecules/std-list.orb +2 -1
  51. package/behaviors/exports/molecules/std-messaging.orb +2 -1
  52. package/behaviors/exports/molecules/std-negotiator-game.orb +2 -1
  53. package/behaviors/exports/molecules/std-platformer-game.orb +2 -1
  54. package/behaviors/exports/molecules/std-puzzle-game.orb +2 -1
  55. package/behaviors/exports/molecules/std-sequencer-game.orb +2 -1
  56. package/behaviors/exports/molecules/std-simulator-game.orb +2 -1
  57. package/behaviors/exports/molecules/std-turn-based-battle.orb +2 -1
  58. package/behaviors/exports/organisms/std-api-gateway.orb +2 -1
  59. package/behaviors/exports/organisms/std-arcade-game.orb +2 -1
  60. package/behaviors/exports/organisms/std-booking-system.orb +2 -1
  61. package/behaviors/exports/organisms/std-cicd-pipeline.orb +2 -1
  62. package/behaviors/exports/organisms/std-cms.orb +2 -1
  63. package/behaviors/exports/organisms/std-coding-academy.orb +2 -1
  64. package/behaviors/exports/organisms/std-crm.orb +2 -1
  65. package/behaviors/exports/organisms/std-devops-dashboard.orb +2 -1
  66. package/behaviors/exports/organisms/std-ecommerce.orb +2 -1
  67. package/behaviors/exports/organisms/std-finance-tracker.orb +2 -1
  68. package/behaviors/exports/organisms/std-healthcare.orb +2 -1
  69. package/behaviors/exports/organisms/std-helpdesk.orb +2 -1
  70. package/behaviors/exports/organisms/std-hr-portal.orb +2 -1
  71. package/behaviors/exports/organisms/std-iot-dashboard.orb +2 -1
  72. package/behaviors/exports/organisms/std-lms.orb +2 -1
  73. package/behaviors/exports/organisms/std-logic-training.orb +2 -1
  74. package/behaviors/exports/organisms/std-platformer-app.orb +2 -1
  75. package/behaviors/exports/organisms/std-project-manager.orb +2 -1
  76. package/behaviors/exports/organisms/std-puzzle-app.orb +2 -1
  77. package/behaviors/exports/organisms/std-realtime-chat.orb +2 -1
  78. package/behaviors/exports/organisms/std-rpg-game.orb +2 -1
  79. package/behaviors/exports/organisms/std-social-feed.orb +2 -1
  80. package/behaviors/exports/organisms/std-stem-lab.orb +2 -1
  81. package/behaviors/exports/organisms/std-strategy-game.orb +2 -1
  82. package/behaviors/exports/organisms/std-trading-dashboard.orb +2 -1
  83. package/dist/behaviors/exports/atoms/std-async.orb +421 -0
  84. package/dist/behaviors/exports/atoms/std-browse.orb +174 -0
  85. package/dist/behaviors/exports/atoms/std-cache-aside.orb +882 -0
  86. package/dist/behaviors/exports/atoms/std-circuit-breaker.orb +502 -0
  87. package/dist/behaviors/exports/atoms/std-collision.orb +617 -0
  88. package/dist/behaviors/exports/atoms/std-combat-log.orb +146 -0
  89. package/dist/behaviors/exports/atoms/std-combat.orb +411 -0
  90. package/dist/behaviors/exports/atoms/std-confirmation.orb +283 -0
  91. package/dist/behaviors/exports/atoms/std-dialogue-box.orb +239 -0
  92. package/dist/behaviors/exports/atoms/std-display.orb +843 -0
  93. package/dist/behaviors/exports/atoms/std-drawer.orb +317 -0
  94. package/dist/behaviors/exports/atoms/std-filter.orb +443 -0
  95. package/dist/behaviors/exports/atoms/std-game-audio.orb +114 -0
  96. package/dist/behaviors/exports/atoms/std-game-hud.orb +152 -0
  97. package/dist/behaviors/exports/atoms/std-game-menu.orb +212 -0
  98. package/dist/behaviors/exports/atoms/std-game-over-screen.orb +196 -0
  99. package/dist/behaviors/exports/atoms/std-gameflow.orb +319 -0
  100. package/dist/behaviors/exports/atoms/std-input.orb +630 -0
  101. package/dist/behaviors/exports/atoms/std-inventory-panel.orb +256 -0
  102. package/dist/behaviors/exports/atoms/std-isometric-canvas.orb +632 -0
  103. package/dist/behaviors/exports/atoms/std-loading.orb +512 -0
  104. package/dist/behaviors/exports/atoms/std-modal.orb +271 -0
  105. package/dist/behaviors/exports/atoms/std-movement.orb +1038 -0
  106. package/dist/behaviors/exports/atoms/std-notification.orb +419 -0
  107. package/dist/behaviors/exports/atoms/std-overworld.orb +484 -0
  108. package/dist/behaviors/exports/atoms/std-pagination.orb +332 -0
  109. package/dist/behaviors/exports/atoms/std-physics2d.orb +420 -0
  110. package/dist/behaviors/exports/atoms/std-platformer-canvas.orb +258 -0
  111. package/dist/behaviors/exports/atoms/std-quest.orb +981 -0
  112. package/dist/behaviors/exports/atoms/std-rate-limiter.orb +639 -0
  113. package/dist/behaviors/exports/atoms/std-score-board.orb +239 -0
  114. package/dist/behaviors/exports/atoms/std-score.orb +467 -0
  115. package/dist/behaviors/exports/atoms/std-search.orb +374 -0
  116. package/dist/behaviors/exports/atoms/std-selection.orb +760 -0
  117. package/dist/behaviors/exports/atoms/std-simulation-canvas.orb +184 -0
  118. package/dist/behaviors/exports/atoms/std-sort.orb +579 -0
  119. package/dist/behaviors/exports/atoms/std-sprite.orb +157 -0
  120. package/dist/behaviors/exports/atoms/std-tabs.orb +275 -0
  121. package/dist/behaviors/exports/atoms/std-timer.orb +1031 -0
  122. package/dist/behaviors/exports/atoms/std-undo.orb +695 -0
  123. package/dist/behaviors/exports/atoms/std-wizard.orb +667 -0
  124. package/dist/behaviors/exports/molecules/std-builder-game.orb +184 -0
  125. package/dist/behaviors/exports/molecules/std-cart.orb +592 -0
  126. package/dist/behaviors/exports/molecules/std-classifier-game.orb +184 -0
  127. package/dist/behaviors/exports/molecules/std-debugger-game.orb +184 -0
  128. package/dist/behaviors/exports/molecules/std-detail.orb +590 -0
  129. package/dist/behaviors/exports/molecules/std-event-handler-game.orb +184 -0
  130. package/dist/behaviors/exports/molecules/std-geospatial.orb +650 -0
  131. package/dist/behaviors/exports/molecules/std-inventory.orb +854 -0
  132. package/dist/behaviors/exports/molecules/std-list.orb +955 -0
  133. package/dist/behaviors/exports/molecules/std-messaging.orb +586 -0
  134. package/dist/behaviors/exports/molecules/std-negotiator-game.orb +184 -0
  135. package/dist/behaviors/exports/molecules/std-platformer-game.orb +497 -0
  136. package/dist/behaviors/exports/molecules/std-puzzle-game.orb +528 -0
  137. package/dist/behaviors/exports/molecules/std-sequencer-game.orb +184 -0
  138. package/dist/behaviors/exports/molecules/std-simulator-game.orb +184 -0
  139. package/dist/behaviors/exports/molecules/std-turn-based-battle.orb +444 -0
  140. package/dist/behaviors/exports/organisms/std-api-gateway.orb +2297 -0
  141. package/dist/behaviors/exports/organisms/std-arcade-game.orb +834 -0
  142. package/dist/behaviors/exports/organisms/std-booking-system.orb +3978 -0
  143. package/dist/behaviors/exports/organisms/std-cicd-pipeline.orb +2215 -0
  144. package/dist/behaviors/exports/organisms/std-cms.orb +2645 -0
  145. package/dist/behaviors/exports/organisms/std-coding-academy.orb +1395 -0
  146. package/dist/behaviors/exports/organisms/std-crm.orb +3542 -0
  147. package/dist/behaviors/exports/organisms/std-devops-dashboard.orb +3135 -0
  148. package/dist/behaviors/exports/organisms/std-ecommerce.orb +3744 -0
  149. package/dist/behaviors/exports/organisms/std-finance-tracker.orb +2386 -0
  150. package/dist/behaviors/exports/organisms/std-healthcare.orb +4680 -0
  151. package/dist/behaviors/exports/organisms/std-helpdesk.orb +2565 -0
  152. package/dist/behaviors/exports/organisms/std-hr-portal.orb +4030 -0
  153. package/dist/behaviors/exports/organisms/std-iot-dashboard.orb +2298 -0
  154. package/dist/behaviors/exports/organisms/std-lms.orb +2855 -0
  155. package/dist/behaviors/exports/organisms/std-logic-training.orb +599 -0
  156. package/dist/behaviors/exports/organisms/std-platformer-app.orb +1570 -0
  157. package/dist/behaviors/exports/organisms/std-project-manager.orb +3022 -0
  158. package/dist/behaviors/exports/organisms/std-puzzle-app.orb +744 -0
  159. package/dist/behaviors/exports/organisms/std-realtime-chat.orb +2381 -0
  160. package/dist/behaviors/exports/organisms/std-rpg-game.orb +2805 -0
  161. package/dist/behaviors/exports/organisms/std-social-feed.orb +1222 -0
  162. package/dist/behaviors/exports/organisms/std-stem-lab.orb +1211 -0
  163. package/dist/behaviors/exports/organisms/std-strategy-game.orb +1762 -0
  164. package/dist/behaviors/exports/organisms/std-trading-dashboard.orb +2218 -0
  165. package/dist/behaviors/exports-reader.d.ts +2 -0
  166. package/dist/behaviors/exports-reader.js +5 -3
  167. package/dist/behaviors/exports-reader.js.map +1 -1
  168. package/dist/behaviors/index.js +5 -3
  169. package/dist/behaviors/index.js.map +1 -1
  170. package/dist/exports/atoms/std-async.orb +421 -0
  171. package/dist/exports/atoms/std-browse.orb +174 -0
  172. package/dist/exports/atoms/std-cache-aside.orb +882 -0
  173. package/dist/exports/atoms/std-circuit-breaker.orb +502 -0
  174. package/dist/exports/atoms/std-collision.orb +617 -0
  175. package/dist/exports/atoms/std-combat-log.orb +146 -0
  176. package/dist/exports/atoms/std-combat.orb +411 -0
  177. package/dist/exports/atoms/std-confirmation.orb +283 -0
  178. package/dist/exports/atoms/std-dialogue-box.orb +239 -0
  179. package/dist/exports/atoms/std-display.orb +843 -0
  180. package/dist/exports/atoms/std-drawer.orb +317 -0
  181. package/dist/exports/atoms/std-filter.orb +443 -0
  182. package/dist/exports/atoms/std-game-audio.orb +114 -0
  183. package/dist/exports/atoms/std-game-hud.orb +152 -0
  184. package/dist/exports/atoms/std-game-menu.orb +212 -0
  185. package/dist/exports/atoms/std-game-over-screen.orb +196 -0
  186. package/dist/exports/atoms/std-gameflow.orb +319 -0
  187. package/dist/exports/atoms/std-input.orb +630 -0
  188. package/dist/exports/atoms/std-inventory-panel.orb +256 -0
  189. package/dist/exports/atoms/std-isometric-canvas.orb +632 -0
  190. package/dist/exports/atoms/std-loading.orb +512 -0
  191. package/dist/exports/atoms/std-modal.orb +271 -0
  192. package/dist/exports/atoms/std-movement.orb +1038 -0
  193. package/dist/exports/atoms/std-notification.orb +419 -0
  194. package/dist/exports/atoms/std-overworld.orb +484 -0
  195. package/dist/exports/atoms/std-pagination.orb +332 -0
  196. package/dist/exports/atoms/std-physics2d.orb +420 -0
  197. package/dist/exports/atoms/std-platformer-canvas.orb +258 -0
  198. package/dist/exports/atoms/std-quest.orb +981 -0
  199. package/dist/exports/atoms/std-rate-limiter.orb +639 -0
  200. package/dist/exports/atoms/std-score-board.orb +239 -0
  201. package/dist/exports/atoms/std-score.orb +467 -0
  202. package/dist/exports/atoms/std-search.orb +374 -0
  203. package/dist/exports/atoms/std-selection.orb +760 -0
  204. package/dist/exports/atoms/std-simulation-canvas.orb +184 -0
  205. package/dist/exports/atoms/std-sort.orb +579 -0
  206. package/dist/exports/atoms/std-sprite.orb +157 -0
  207. package/dist/exports/atoms/std-tabs.orb +275 -0
  208. package/dist/exports/atoms/std-timer.orb +1031 -0
  209. package/dist/exports/atoms/std-undo.orb +695 -0
  210. package/dist/exports/atoms/std-wizard.orb +667 -0
  211. package/dist/exports/molecules/std-builder-game.orb +184 -0
  212. package/dist/exports/molecules/std-cart.orb +592 -0
  213. package/dist/exports/molecules/std-classifier-game.orb +184 -0
  214. package/dist/exports/molecules/std-debugger-game.orb +184 -0
  215. package/dist/exports/molecules/std-detail.orb +590 -0
  216. package/dist/exports/molecules/std-event-handler-game.orb +184 -0
  217. package/dist/exports/molecules/std-geospatial.orb +650 -0
  218. package/dist/exports/molecules/std-inventory.orb +854 -0
  219. package/dist/exports/molecules/std-list.orb +955 -0
  220. package/dist/exports/molecules/std-messaging.orb +586 -0
  221. package/dist/exports/molecules/std-negotiator-game.orb +184 -0
  222. package/dist/exports/molecules/std-platformer-game.orb +497 -0
  223. package/dist/exports/molecules/std-puzzle-game.orb +528 -0
  224. package/dist/exports/molecules/std-sequencer-game.orb +184 -0
  225. package/dist/exports/molecules/std-simulator-game.orb +184 -0
  226. package/dist/exports/molecules/std-turn-based-battle.orb +444 -0
  227. package/dist/exports/organisms/std-api-gateway.orb +2297 -0
  228. package/dist/exports/organisms/std-arcade-game.orb +834 -0
  229. package/dist/exports/organisms/std-booking-system.orb +3978 -0
  230. package/dist/exports/organisms/std-cicd-pipeline.orb +2215 -0
  231. package/dist/exports/organisms/std-cms.orb +2645 -0
  232. package/dist/exports/organisms/std-coding-academy.orb +1395 -0
  233. package/dist/exports/organisms/std-crm.orb +3542 -0
  234. package/dist/exports/organisms/std-devops-dashboard.orb +3135 -0
  235. package/dist/exports/organisms/std-ecommerce.orb +3744 -0
  236. package/dist/exports/organisms/std-finance-tracker.orb +2386 -0
  237. package/dist/exports/organisms/std-healthcare.orb +4680 -0
  238. package/dist/exports/organisms/std-helpdesk.orb +2565 -0
  239. package/dist/exports/organisms/std-hr-portal.orb +4030 -0
  240. package/dist/exports/organisms/std-iot-dashboard.orb +2298 -0
  241. package/dist/exports/organisms/std-lms.orb +2855 -0
  242. package/dist/exports/organisms/std-logic-training.orb +599 -0
  243. package/dist/exports/organisms/std-platformer-app.orb +1570 -0
  244. package/dist/exports/organisms/std-project-manager.orb +3022 -0
  245. package/dist/exports/organisms/std-puzzle-app.orb +744 -0
  246. package/dist/exports/organisms/std-realtime-chat.orb +2381 -0
  247. package/dist/exports/organisms/std-rpg-game.orb +2805 -0
  248. package/dist/exports/organisms/std-social-feed.orb +1222 -0
  249. package/dist/exports/organisms/std-stem-lab.orb +1211 -0
  250. package/dist/exports/organisms/std-strategy-game.orb +1762 -0
  251. package/dist/exports/organisms/std-trading-dashboard.orb +2218 -0
  252. package/dist/index.js +5 -3
  253. package/dist/index.js.map +1 -1
  254. package/package.json +1 -1
  255. package/behaviors/exports/atoms/std-game-canvas-2d.orb +0 -135
  256. package/behaviors/exports/atoms/std-game-canvas-3d.orb +0 -224
@@ -0,0 +1,467 @@
1
+ {
2
+ "name": "ItemOrbital",
3
+ "orbitals": [
4
+ {
5
+ "name": "ItemOrbital",
6
+ "entity": {
7
+ "name": "Item",
8
+ "persistence": "runtime",
9
+ "fields": [
10
+ {
11
+ "name": "id",
12
+ "type": "string"
13
+ },
14
+ {
15
+ "name": "name",
16
+ "type": "string"
17
+ },
18
+ {
19
+ "name": "description",
20
+ "type": "string"
21
+ },
22
+ {
23
+ "name": "status",
24
+ "type": "string",
25
+ "default": "active"
26
+ },
27
+ {
28
+ "name": "createdAt",
29
+ "type": "string"
30
+ },
31
+ {
32
+ "name": "total",
33
+ "type": "number",
34
+ "default": 0
35
+ },
36
+ {
37
+ "name": "combo",
38
+ "type": "number",
39
+ "default": 1
40
+ },
41
+ {
42
+ "name": "points",
43
+ "type": "number",
44
+ "default": 0
45
+ },
46
+ {
47
+ "name": "multiplier",
48
+ "type": "number",
49
+ "default": 1
50
+ }
51
+ ]
52
+ },
53
+ "traits": [
54
+ {
55
+ "name": "ItemScore",
56
+ "linkedEntity": "Item",
57
+ "category": "interaction",
58
+ "stateMachine": {
59
+ "states": [
60
+ {
61
+ "name": "idle",
62
+ "isInitial": true
63
+ }
64
+ ],
65
+ "events": [
66
+ {
67
+ "key": "INIT",
68
+ "name": "Initialize"
69
+ },
70
+ {
71
+ "key": "ADD",
72
+ "name": "Add Points",
73
+ "payload": [
74
+ {
75
+ "name": "points",
76
+ "type": "number",
77
+ "required": true
78
+ }
79
+ ]
80
+ },
81
+ {
82
+ "key": "SUBTRACT",
83
+ "name": "Subtract Points",
84
+ "payload": [
85
+ {
86
+ "name": "points",
87
+ "type": "number",
88
+ "required": true
89
+ }
90
+ ]
91
+ },
92
+ {
93
+ "key": "RESET",
94
+ "name": "Reset"
95
+ },
96
+ {
97
+ "key": "COMBO",
98
+ "name": "Combo",
99
+ "payload": [
100
+ {
101
+ "name": "multiplier",
102
+ "type": "number",
103
+ "required": true
104
+ }
105
+ ]
106
+ }
107
+ ],
108
+ "transitions": [
109
+ {
110
+ "from": "idle",
111
+ "to": "idle",
112
+ "event": "INIT",
113
+ "effects": [
114
+ [
115
+ "render-ui",
116
+ "main",
117
+ {
118
+ "type": "stack",
119
+ "direction": "vertical",
120
+ "gap": "lg",
121
+ "align": "center",
122
+ "children": [
123
+ {
124
+ "type": "score-board",
125
+ "score": "@entity.total",
126
+ "highScore": 0,
127
+ "combo": "@entity.combo",
128
+ "multiplier": 1,
129
+ "level": 1
130
+ },
131
+ {
132
+ "type": "stack",
133
+ "direction": "horizontal",
134
+ "gap": "sm",
135
+ "justify": "center",
136
+ "children": [
137
+ {
138
+ "type": "button",
139
+ "label": "Add",
140
+ "event": "ADD",
141
+ "variant": "primary",
142
+ "icon": "plus"
143
+ },
144
+ {
145
+ "type": "button",
146
+ "label": "Subtract",
147
+ "event": "SUBTRACT",
148
+ "variant": "secondary",
149
+ "icon": "minus"
150
+ },
151
+ {
152
+ "type": "button",
153
+ "label": "Combo",
154
+ "event": "COMBO",
155
+ "variant": "secondary",
156
+ "icon": "zap"
157
+ },
158
+ {
159
+ "type": "button",
160
+ "label": "Reset",
161
+ "event": "RESET",
162
+ "variant": "ghost",
163
+ "icon": "rotate-ccw"
164
+ }
165
+ ]
166
+ }
167
+ ]
168
+ }
169
+ ]
170
+ ]
171
+ },
172
+ {
173
+ "from": "idle",
174
+ "to": "idle",
175
+ "event": "ADD",
176
+ "effects": [
177
+ [
178
+ "set",
179
+ "@entity.points",
180
+ "@payload.points"
181
+ ],
182
+ [
183
+ "render-ui",
184
+ "main",
185
+ {
186
+ "type": "stack",
187
+ "direction": "vertical",
188
+ "gap": "lg",
189
+ "align": "center",
190
+ "children": [
191
+ {
192
+ "type": "score-board",
193
+ "score": "@entity.total",
194
+ "highScore": 0,
195
+ "combo": "@entity.combo",
196
+ "multiplier": 1,
197
+ "level": 1
198
+ },
199
+ {
200
+ "type": "stack",
201
+ "direction": "horizontal",
202
+ "gap": "sm",
203
+ "justify": "center",
204
+ "children": [
205
+ {
206
+ "type": "button",
207
+ "label": "Add",
208
+ "event": "ADD",
209
+ "variant": "primary",
210
+ "icon": "plus"
211
+ },
212
+ {
213
+ "type": "button",
214
+ "label": "Subtract",
215
+ "event": "SUBTRACT",
216
+ "variant": "secondary",
217
+ "icon": "minus"
218
+ },
219
+ {
220
+ "type": "button",
221
+ "label": "Combo",
222
+ "event": "COMBO",
223
+ "variant": "secondary",
224
+ "icon": "zap"
225
+ },
226
+ {
227
+ "type": "button",
228
+ "label": "Reset",
229
+ "event": "RESET",
230
+ "variant": "ghost",
231
+ "icon": "rotate-ccw"
232
+ }
233
+ ]
234
+ }
235
+ ]
236
+ }
237
+ ]
238
+ ]
239
+ },
240
+ {
241
+ "from": "idle",
242
+ "to": "idle",
243
+ "event": "SUBTRACT",
244
+ "effects": [
245
+ [
246
+ "set",
247
+ "@entity.points",
248
+ "@payload.points"
249
+ ],
250
+ [
251
+ "render-ui",
252
+ "main",
253
+ {
254
+ "type": "stack",
255
+ "direction": "vertical",
256
+ "gap": "lg",
257
+ "align": "center",
258
+ "children": [
259
+ {
260
+ "type": "score-board",
261
+ "score": "@entity.total",
262
+ "highScore": 0,
263
+ "combo": "@entity.combo",
264
+ "multiplier": 1,
265
+ "level": 1
266
+ },
267
+ {
268
+ "type": "stack",
269
+ "direction": "horizontal",
270
+ "gap": "sm",
271
+ "justify": "center",
272
+ "children": [
273
+ {
274
+ "type": "button",
275
+ "label": "Add",
276
+ "event": "ADD",
277
+ "variant": "primary",
278
+ "icon": "plus"
279
+ },
280
+ {
281
+ "type": "button",
282
+ "label": "Subtract",
283
+ "event": "SUBTRACT",
284
+ "variant": "secondary",
285
+ "icon": "minus"
286
+ },
287
+ {
288
+ "type": "button",
289
+ "label": "Combo",
290
+ "event": "COMBO",
291
+ "variant": "secondary",
292
+ "icon": "zap"
293
+ },
294
+ {
295
+ "type": "button",
296
+ "label": "Reset",
297
+ "event": "RESET",
298
+ "variant": "ghost",
299
+ "icon": "rotate-ccw"
300
+ }
301
+ ]
302
+ }
303
+ ]
304
+ }
305
+ ]
306
+ ]
307
+ },
308
+ {
309
+ "from": "idle",
310
+ "to": "idle",
311
+ "event": "COMBO",
312
+ "effects": [
313
+ [
314
+ "set",
315
+ "@entity.multiplier",
316
+ "@payload.multiplier"
317
+ ],
318
+ [
319
+ "render-ui",
320
+ "main",
321
+ {
322
+ "type": "stack",
323
+ "direction": "vertical",
324
+ "gap": "lg",
325
+ "align": "center",
326
+ "children": [
327
+ {
328
+ "type": "score-board",
329
+ "score": "@entity.total",
330
+ "highScore": 0,
331
+ "combo": "@entity.combo",
332
+ "multiplier": 1,
333
+ "level": 1
334
+ },
335
+ {
336
+ "type": "stack",
337
+ "direction": "horizontal",
338
+ "gap": "sm",
339
+ "justify": "center",
340
+ "children": [
341
+ {
342
+ "type": "button",
343
+ "label": "Add",
344
+ "event": "ADD",
345
+ "variant": "primary",
346
+ "icon": "plus"
347
+ },
348
+ {
349
+ "type": "button",
350
+ "label": "Subtract",
351
+ "event": "SUBTRACT",
352
+ "variant": "secondary",
353
+ "icon": "minus"
354
+ },
355
+ {
356
+ "type": "button",
357
+ "label": "Combo",
358
+ "event": "COMBO",
359
+ "variant": "secondary",
360
+ "icon": "zap"
361
+ },
362
+ {
363
+ "type": "button",
364
+ "label": "Reset",
365
+ "event": "RESET",
366
+ "variant": "ghost",
367
+ "icon": "rotate-ccw"
368
+ }
369
+ ]
370
+ }
371
+ ]
372
+ }
373
+ ]
374
+ ]
375
+ },
376
+ {
377
+ "from": "idle",
378
+ "to": "idle",
379
+ "event": "RESET",
380
+ "effects": [
381
+ [
382
+ "set",
383
+ "@entity.total",
384
+ 0
385
+ ],
386
+ [
387
+ "set",
388
+ "@entity.combo",
389
+ 1
390
+ ],
391
+ [
392
+ "render-ui",
393
+ "main",
394
+ {
395
+ "type": "stack",
396
+ "direction": "vertical",
397
+ "gap": "lg",
398
+ "align": "center",
399
+ "children": [
400
+ {
401
+ "type": "score-board",
402
+ "score": "@entity.total",
403
+ "highScore": 0,
404
+ "combo": "@entity.combo",
405
+ "multiplier": 1,
406
+ "level": 1
407
+ },
408
+ {
409
+ "type": "stack",
410
+ "direction": "horizontal",
411
+ "gap": "sm",
412
+ "justify": "center",
413
+ "children": [
414
+ {
415
+ "type": "button",
416
+ "label": "Add",
417
+ "event": "ADD",
418
+ "variant": "primary",
419
+ "icon": "plus"
420
+ },
421
+ {
422
+ "type": "button",
423
+ "label": "Subtract",
424
+ "event": "SUBTRACT",
425
+ "variant": "secondary",
426
+ "icon": "minus"
427
+ },
428
+ {
429
+ "type": "button",
430
+ "label": "Combo",
431
+ "event": "COMBO",
432
+ "variant": "secondary",
433
+ "icon": "zap"
434
+ },
435
+ {
436
+ "type": "button",
437
+ "label": "Reset",
438
+ "event": "RESET",
439
+ "variant": "ghost",
440
+ "icon": "rotate-ccw"
441
+ }
442
+ ]
443
+ }
444
+ ]
445
+ }
446
+ ]
447
+ ]
448
+ }
449
+ ]
450
+ }
451
+ }
452
+ ],
453
+ "pages": [
454
+ {
455
+ "name": "ItemScorePage",
456
+ "path": "/items/score",
457
+ "traits": [
458
+ {
459
+ "ref": "ItemScore"
460
+ }
461
+ ]
462
+ }
463
+ ]
464
+ }
465
+ ],
466
+ "description": "Score tracking parameterized for any domain. Provides a single-state machine with self-loops for adding, subtracting, resetting, and applying combo multipliers to a score. The state machine structure is fixed. The caller controls data and presentation."
467
+ }