@almadar/std 6.5.2 → 7.2.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 (307) hide show
  1. package/behaviors/registry/atoms/std-agent-activity-log.orb +240 -227
  2. package/behaviors/registry/atoms/std-agent-chat-thread.orb +296 -199
  3. package/behaviors/registry/atoms/std-agent-classifier.orb +384 -133
  4. package/behaviors/registry/atoms/std-agent-completion.orb +404 -141
  5. package/behaviors/registry/atoms/std-agent-context-window.orb +904 -607
  6. package/behaviors/registry/atoms/std-agent-conversation.orb +443 -234
  7. package/behaviors/registry/atoms/std-agent-memory.orb +584 -150
  8. package/behaviors/registry/atoms/std-agent-provider.orb +431 -174
  9. package/behaviors/registry/atoms/std-agent-search.orb +217 -61
  10. package/behaviors/registry/atoms/std-agent-session.orb +406 -159
  11. package/behaviors/registry/atoms/std-agent-step-progress.orb +314 -294
  12. package/behaviors/registry/atoms/std-agent-token-gauge.orb +577 -500
  13. package/behaviors/registry/atoms/std-agent-tool-call.orb +328 -138
  14. package/behaviors/registry/atoms/std-async.orb +147 -86
  15. package/behaviors/registry/atoms/std-autoregressive.orb +64 -73
  16. package/behaviors/registry/atoms/std-browse.orb +260 -126
  17. package/behaviors/registry/atoms/std-cache-aside.orb +358 -259
  18. package/behaviors/registry/atoms/std-calendar.orb +280 -215
  19. package/behaviors/registry/atoms/std-circuit-breaker.orb +295 -234
  20. package/behaviors/registry/atoms/std-collision.orb +136 -135
  21. package/behaviors/registry/atoms/std-combat-log.orb +108 -90
  22. package/behaviors/registry/atoms/std-combat.orb +171 -98
  23. package/behaviors/registry/atoms/std-confirmation.orb +28 -300
  24. package/behaviors/registry/atoms/std-dialogue-box.orb +111 -30
  25. package/behaviors/registry/atoms/std-display.orb +491 -587
  26. package/behaviors/registry/atoms/std-drawer.orb +194 -121
  27. package/behaviors/registry/atoms/std-filter.orb +311 -326
  28. package/behaviors/registry/atoms/std-flip-card.orb +223 -177
  29. package/behaviors/registry/atoms/std-gallery.orb +130 -151
  30. package/behaviors/registry/atoms/std-game-audio.orb +133 -72
  31. package/behaviors/registry/atoms/std-game-canvas2d.orb +112 -52
  32. package/behaviors/registry/atoms/std-game-canvas3d.orb +150 -107
  33. package/behaviors/registry/atoms/std-game-hud.orb +87 -20
  34. package/behaviors/registry/atoms/std-game-menu.orb +32 -32
  35. package/behaviors/registry/atoms/std-game-over-screen.orb +100 -33
  36. package/behaviors/registry/atoms/std-gameflow.orb +147 -80
  37. package/behaviors/registry/atoms/std-input.orb +128 -393
  38. package/behaviors/registry/atoms/std-inventory-panel.orb +108 -71
  39. package/behaviors/registry/atoms/std-isometric-canvas.orb +156 -407
  40. package/behaviors/registry/atoms/std-loading.orb +127 -126
  41. package/behaviors/registry/atoms/std-modal.orb +30 -267
  42. package/behaviors/registry/atoms/std-movement.orb +391 -292
  43. package/behaviors/registry/atoms/std-notification.orb +133 -75
  44. package/behaviors/registry/atoms/std-overworld.orb +194 -121
  45. package/behaviors/registry/atoms/std-pagination.orb +120 -53
  46. package/behaviors/registry/atoms/std-physics2d.orb +94 -93
  47. package/behaviors/registry/atoms/std-platformer-canvas.orb +110 -98
  48. package/behaviors/registry/atoms/std-push.orb +172 -36
  49. package/behaviors/registry/atoms/std-quest.orb +552 -449
  50. package/behaviors/registry/atoms/std-rate-limiter.orb +242 -241
  51. package/behaviors/registry/atoms/std-rating.orb +123 -65
  52. package/behaviors/registry/atoms/std-related.orb +202 -26
  53. package/behaviors/registry/atoms/std-score-board.orb +109 -28
  54. package/behaviors/registry/atoms/std-score.orb +210 -146
  55. package/behaviors/registry/atoms/std-search.orb +265 -138
  56. package/behaviors/registry/atoms/std-selection.orb +311 -220
  57. package/behaviors/registry/atoms/std-service-custom-bearer.orb +199 -110
  58. package/behaviors/registry/atoms/std-service-custom-header.orb +206 -117
  59. package/behaviors/registry/atoms/std-service-custom-noauth.orb +197 -108
  60. package/behaviors/registry/atoms/std-service-custom-query.orb +193 -104
  61. package/behaviors/registry/atoms/std-service-email.orb +195 -107
  62. package/behaviors/registry/atoms/std-service-github.orb +216 -122
  63. package/behaviors/registry/atoms/std-service-llm.orb +204 -122
  64. package/behaviors/registry/atoms/std-service-oauth.orb +290 -204
  65. package/behaviors/registry/atoms/std-service-redis.orb +177 -92
  66. package/behaviors/registry/atoms/std-service-storage.orb +211 -122
  67. package/behaviors/registry/atoms/std-service-stripe.orb +236 -154
  68. package/behaviors/registry/atoms/std-service-twilio.orb +221 -137
  69. package/behaviors/registry/atoms/std-service-youtube.orb +327 -241
  70. package/behaviors/registry/atoms/std-simulation-canvas.orb +97 -36
  71. package/behaviors/registry/atoms/std-sort.orb +284 -207
  72. package/behaviors/registry/atoms/std-sprite.orb +150 -74
  73. package/behaviors/registry/atoms/std-tabs.orb +129 -62
  74. package/behaviors/registry/atoms/std-text-effects.orb +251 -190
  75. package/behaviors/registry/atoms/std-theme.orb +193 -135
  76. package/behaviors/registry/atoms/std-timer.orb +320 -344
  77. package/behaviors/registry/atoms/std-undo.orb +278 -199
  78. package/behaviors/registry/atoms/std-upload.orb +112 -111
  79. package/behaviors/registry/atoms/std-validate-on-save.orb +159 -151
  80. package/behaviors/registry/atoms/std-wizard.orb +445 -336
  81. package/behaviors/registry/molecules/std-agent-fix-loop.orb +876 -857
  82. package/behaviors/registry/molecules/std-agent-learner.orb +635 -654
  83. package/behaviors/registry/molecules/std-agent-planner.orb +581 -548
  84. package/behaviors/registry/molecules/std-agent-rag.orb +414 -410
  85. package/behaviors/registry/molecules/std-agent-tool-loop.orb +716 -711
  86. package/behaviors/registry/molecules/std-batch-selected-list.orb +28 -12
  87. package/behaviors/registry/molecules/std-builder-game.orb +86 -28
  88. package/behaviors/registry/molecules/std-calendar-booking.orb +32 -8
  89. package/behaviors/registry/molecules/std-cart.orb +347 -406
  90. package/behaviors/registry/molecules/std-classifier-game.orb +95 -37
  91. package/behaviors/registry/molecules/std-dashboard-tabbed.orb +16 -10
  92. package/behaviors/registry/molecules/std-debugger-game.orb +95 -37
  93. package/behaviors/registry/molecules/std-detail.orb +133 -138
  94. package/behaviors/registry/molecules/std-drawer-master-list.orb +12 -6
  95. package/behaviors/registry/molecules/std-event-handler-game.orb +91 -33
  96. package/behaviors/registry/molecules/std-filtered-list.orb +14 -8
  97. package/behaviors/registry/molecules/std-form-advanced.orb +242 -153
  98. package/behaviors/registry/molecules/std-gallery-filtered.orb +16 -10
  99. package/behaviors/registry/molecules/std-geospatial.orb +175 -122
  100. package/behaviors/registry/molecules/std-inventory.orb +216 -170
  101. package/behaviors/registry/molecules/std-list.orb +280 -205
  102. package/behaviors/registry/molecules/std-messaging.orb +146 -99
  103. package/behaviors/registry/molecules/std-negotiator-game.orb +95 -37
  104. package/behaviors/registry/molecules/std-platformer-game.orb +300 -171
  105. package/behaviors/registry/molecules/std-push-activity-log.orb +32 -8
  106. package/behaviors/registry/molecules/std-puzzle-game.orb +287 -146
  107. package/behaviors/registry/molecules/std-quiz.orb +322 -263
  108. package/behaviors/registry/molecules/std-related-master-detail.orb +21 -15
  109. package/behaviors/registry/molecules/std-sequencer-game.orb +92 -34
  110. package/behaviors/registry/molecules/std-service-content-pipeline.orb +268 -267
  111. package/behaviors/registry/molecules/std-service-custom-api-tester.orb +245 -152
  112. package/behaviors/registry/molecules/std-service-devops-toolkit.orb +633 -294
  113. package/behaviors/registry/molecules/std-service-notification-hub.orb +237 -152
  114. package/behaviors/registry/molecules/std-service-payment-flow.orb +310 -180
  115. package/behaviors/registry/molecules/std-simulator-game.orb +96 -38
  116. package/behaviors/registry/molecules/std-turn-based-battle.orb +247 -137
  117. package/behaviors/registry/molecules/std-wizard-form.orb +60 -9
  118. package/behaviors/registry/organisms/std-agent-assistant.orb +2810 -1833
  119. package/behaviors/registry/organisms/std-agent-builder.orb +6401 -4539
  120. package/behaviors/registry/organisms/std-agent-pipeline.orb +5028 -3497
  121. package/behaviors/registry/organisms/std-agent-reviewer.orb +2219 -1406
  122. package/behaviors/registry/organisms/std-agent-tutor.orb +2069 -1384
  123. package/behaviors/registry/organisms/std-api-gateway.orb +1419 -870
  124. package/behaviors/registry/organisms/std-arcade-game.orb +488 -231
  125. package/behaviors/registry/organisms/std-booking-system.orb +2457 -1467
  126. package/behaviors/registry/organisms/std-cicd-pipeline.orb +1367 -825
  127. package/behaviors/registry/organisms/std-cms.orb +1549 -566
  128. package/behaviors/registry/organisms/std-coding-academy.orb +744 -495
  129. package/behaviors/registry/organisms/std-crm.orb +1997 -1014
  130. package/behaviors/registry/organisms/std-devops-dashboard.orb +2160 -1606
  131. package/behaviors/registry/organisms/std-ecommerce.orb +2279 -1153
  132. package/behaviors/registry/organisms/std-finance-tracker.orb +1375 -727
  133. package/behaviors/registry/organisms/std-healthcare.orb +2940 -1703
  134. package/behaviors/registry/organisms/std-helpdesk.orb +1443 -781
  135. package/behaviors/registry/organisms/std-hr-portal.orb +2361 -1440
  136. package/behaviors/registry/organisms/std-iot-dashboard.orb +1491 -1026
  137. package/behaviors/registry/organisms/std-lms.orb +1629 -1046
  138. package/behaviors/registry/organisms/std-logic-training.orb +321 -134
  139. package/behaviors/registry/organisms/std-platformer-app.orb +855 -417
  140. package/behaviors/registry/organisms/std-project-manager.orb +1795 -877
  141. package/behaviors/registry/organisms/std-puzzle-app.orb +407 -206
  142. package/behaviors/registry/organisms/std-realtime-chat.orb +1436 -844
  143. package/behaviors/registry/organisms/std-rpg-game.orb +1522 -1007
  144. package/behaviors/registry/organisms/std-service-marketplace.orb +2110 -1204
  145. package/behaviors/registry/organisms/std-service-research-assistant.orb +1285 -1078
  146. package/behaviors/registry/organisms/std-social-feed.orb +612 -252
  147. package/behaviors/registry/organisms/std-stem-lab.orb +642 -450
  148. package/behaviors/registry/organisms/std-strategy-game.orb +893 -650
  149. package/behaviors/registry/organisms/std-trading-dashboard.orb +1271 -805
  150. package/dist/behaviors/registry/atoms/std-agent-activity-log.orb +240 -227
  151. package/dist/behaviors/registry/atoms/std-agent-chat-thread.orb +296 -199
  152. package/dist/behaviors/registry/atoms/std-agent-classifier.orb +384 -133
  153. package/dist/behaviors/registry/atoms/std-agent-completion.orb +404 -141
  154. package/dist/behaviors/registry/atoms/std-agent-context-window.orb +904 -607
  155. package/dist/behaviors/registry/atoms/std-agent-conversation.orb +443 -234
  156. package/dist/behaviors/registry/atoms/std-agent-memory.orb +584 -150
  157. package/dist/behaviors/registry/atoms/std-agent-provider.orb +431 -174
  158. package/dist/behaviors/registry/atoms/std-agent-search.orb +217 -61
  159. package/dist/behaviors/registry/atoms/std-agent-session.orb +406 -159
  160. package/dist/behaviors/registry/atoms/std-agent-step-progress.orb +314 -294
  161. package/dist/behaviors/registry/atoms/std-agent-token-gauge.orb +577 -500
  162. package/dist/behaviors/registry/atoms/std-agent-tool-call.orb +328 -138
  163. package/dist/behaviors/registry/atoms/std-async.orb +147 -86
  164. package/dist/behaviors/registry/atoms/std-autoregressive.orb +64 -73
  165. package/dist/behaviors/registry/atoms/std-browse.orb +260 -126
  166. package/dist/behaviors/registry/atoms/std-cache-aside.orb +358 -259
  167. package/dist/behaviors/registry/atoms/std-calendar.orb +280 -215
  168. package/dist/behaviors/registry/atoms/std-circuit-breaker.orb +295 -234
  169. package/dist/behaviors/registry/atoms/std-collision.orb +136 -135
  170. package/dist/behaviors/registry/atoms/std-combat-log.orb +108 -90
  171. package/dist/behaviors/registry/atoms/std-combat.orb +171 -98
  172. package/dist/behaviors/registry/atoms/std-confirmation.orb +28 -300
  173. package/dist/behaviors/registry/atoms/std-dialogue-box.orb +111 -30
  174. package/dist/behaviors/registry/atoms/std-display.orb +491 -587
  175. package/dist/behaviors/registry/atoms/std-drawer.orb +194 -121
  176. package/dist/behaviors/registry/atoms/std-filter.orb +311 -326
  177. package/dist/behaviors/registry/atoms/std-flip-card.orb +223 -177
  178. package/dist/behaviors/registry/atoms/std-gallery.orb +130 -151
  179. package/dist/behaviors/registry/atoms/std-game-audio.orb +133 -72
  180. package/dist/behaviors/registry/atoms/std-game-canvas2d.orb +112 -52
  181. package/dist/behaviors/registry/atoms/std-game-canvas3d.orb +150 -107
  182. package/dist/behaviors/registry/atoms/std-game-hud.orb +87 -20
  183. package/dist/behaviors/registry/atoms/std-game-menu.orb +32 -32
  184. package/dist/behaviors/registry/atoms/std-game-over-screen.orb +100 -33
  185. package/dist/behaviors/registry/atoms/std-gameflow.orb +147 -80
  186. package/dist/behaviors/registry/atoms/std-input.orb +128 -393
  187. package/dist/behaviors/registry/atoms/std-inventory-panel.orb +108 -71
  188. package/dist/behaviors/registry/atoms/std-isometric-canvas.orb +156 -407
  189. package/dist/behaviors/registry/atoms/std-loading.orb +127 -126
  190. package/dist/behaviors/registry/atoms/std-modal.orb +30 -267
  191. package/dist/behaviors/registry/atoms/std-movement.orb +391 -292
  192. package/dist/behaviors/registry/atoms/std-notification.orb +133 -75
  193. package/dist/behaviors/registry/atoms/std-overworld.orb +194 -121
  194. package/dist/behaviors/registry/atoms/std-pagination.orb +120 -53
  195. package/dist/behaviors/registry/atoms/std-physics2d.orb +94 -93
  196. package/dist/behaviors/registry/atoms/std-platformer-canvas.orb +110 -98
  197. package/dist/behaviors/registry/atoms/std-push.orb +172 -36
  198. package/dist/behaviors/registry/atoms/std-quest.orb +552 -449
  199. package/dist/behaviors/registry/atoms/std-rate-limiter.orb +242 -241
  200. package/dist/behaviors/registry/atoms/std-rating.orb +123 -65
  201. package/dist/behaviors/registry/atoms/std-related.orb +202 -26
  202. package/dist/behaviors/registry/atoms/std-score-board.orb +109 -28
  203. package/dist/behaviors/registry/atoms/std-score.orb +210 -146
  204. package/dist/behaviors/registry/atoms/std-search.orb +265 -138
  205. package/dist/behaviors/registry/atoms/std-selection.orb +311 -220
  206. package/dist/behaviors/registry/atoms/std-service-custom-bearer.orb +199 -110
  207. package/dist/behaviors/registry/atoms/std-service-custom-header.orb +206 -117
  208. package/dist/behaviors/registry/atoms/std-service-custom-noauth.orb +197 -108
  209. package/dist/behaviors/registry/atoms/std-service-custom-query.orb +193 -104
  210. package/dist/behaviors/registry/atoms/std-service-email.orb +195 -107
  211. package/dist/behaviors/registry/atoms/std-service-github.orb +216 -122
  212. package/dist/behaviors/registry/atoms/std-service-llm.orb +204 -122
  213. package/dist/behaviors/registry/atoms/std-service-oauth.orb +290 -204
  214. package/dist/behaviors/registry/atoms/std-service-redis.orb +177 -92
  215. package/dist/behaviors/registry/atoms/std-service-storage.orb +211 -122
  216. package/dist/behaviors/registry/atoms/std-service-stripe.orb +236 -154
  217. package/dist/behaviors/registry/atoms/std-service-twilio.orb +221 -137
  218. package/dist/behaviors/registry/atoms/std-service-youtube.orb +327 -241
  219. package/dist/behaviors/registry/atoms/std-simulation-canvas.orb +97 -36
  220. package/dist/behaviors/registry/atoms/std-sort.orb +284 -207
  221. package/dist/behaviors/registry/atoms/std-sprite.orb +150 -74
  222. package/dist/behaviors/registry/atoms/std-tabs.orb +129 -62
  223. package/dist/behaviors/registry/atoms/std-text-effects.orb +251 -190
  224. package/dist/behaviors/registry/atoms/std-theme.orb +193 -135
  225. package/dist/behaviors/registry/atoms/std-timer.orb +320 -344
  226. package/dist/behaviors/registry/atoms/std-undo.orb +278 -199
  227. package/dist/behaviors/registry/atoms/std-upload.orb +112 -111
  228. package/dist/behaviors/registry/atoms/std-validate-on-save.orb +159 -151
  229. package/dist/behaviors/registry/atoms/std-wizard.orb +445 -336
  230. package/dist/behaviors/registry/molecules/std-agent-fix-loop.orb +876 -857
  231. package/dist/behaviors/registry/molecules/std-agent-learner.orb +635 -654
  232. package/dist/behaviors/registry/molecules/std-agent-planner.orb +581 -548
  233. package/dist/behaviors/registry/molecules/std-agent-rag.orb +414 -410
  234. package/dist/behaviors/registry/molecules/std-agent-tool-loop.orb +716 -711
  235. package/dist/behaviors/registry/molecules/std-batch-selected-list.orb +28 -12
  236. package/dist/behaviors/registry/molecules/std-builder-game.orb +86 -28
  237. package/dist/behaviors/registry/molecules/std-calendar-booking.orb +32 -8
  238. package/dist/behaviors/registry/molecules/std-cart.orb +347 -406
  239. package/dist/behaviors/registry/molecules/std-classifier-game.orb +95 -37
  240. package/dist/behaviors/registry/molecules/std-dashboard-tabbed.orb +16 -10
  241. package/dist/behaviors/registry/molecules/std-debugger-game.orb +95 -37
  242. package/dist/behaviors/registry/molecules/std-detail.orb +133 -138
  243. package/dist/behaviors/registry/molecules/std-drawer-master-list.orb +12 -6
  244. package/dist/behaviors/registry/molecules/std-event-handler-game.orb +91 -33
  245. package/dist/behaviors/registry/molecules/std-filtered-list.orb +14 -8
  246. package/dist/behaviors/registry/molecules/std-form-advanced.orb +242 -153
  247. package/dist/behaviors/registry/molecules/std-gallery-filtered.orb +16 -10
  248. package/dist/behaviors/registry/molecules/std-geospatial.orb +175 -122
  249. package/dist/behaviors/registry/molecules/std-inventory.orb +216 -170
  250. package/dist/behaviors/registry/molecules/std-list.orb +280 -205
  251. package/dist/behaviors/registry/molecules/std-messaging.orb +146 -99
  252. package/dist/behaviors/registry/molecules/std-negotiator-game.orb +95 -37
  253. package/dist/behaviors/registry/molecules/std-platformer-game.orb +300 -171
  254. package/dist/behaviors/registry/molecules/std-push-activity-log.orb +32 -8
  255. package/dist/behaviors/registry/molecules/std-puzzle-game.orb +287 -146
  256. package/dist/behaviors/registry/molecules/std-quiz.orb +322 -263
  257. package/dist/behaviors/registry/molecules/std-related-master-detail.orb +21 -15
  258. package/dist/behaviors/registry/molecules/std-sequencer-game.orb +92 -34
  259. package/dist/behaviors/registry/molecules/std-service-content-pipeline.orb +268 -267
  260. package/dist/behaviors/registry/molecules/std-service-custom-api-tester.orb +245 -152
  261. package/dist/behaviors/registry/molecules/std-service-devops-toolkit.orb +633 -294
  262. package/dist/behaviors/registry/molecules/std-service-notification-hub.orb +237 -152
  263. package/dist/behaviors/registry/molecules/std-service-payment-flow.orb +310 -180
  264. package/dist/behaviors/registry/molecules/std-simulator-game.orb +96 -38
  265. package/dist/behaviors/registry/molecules/std-turn-based-battle.orb +247 -137
  266. package/dist/behaviors/registry/molecules/std-wizard-form.orb +60 -9
  267. package/dist/behaviors/registry/organisms/std-agent-assistant.orb +2810 -1833
  268. package/dist/behaviors/registry/organisms/std-agent-builder.orb +6401 -4539
  269. package/dist/behaviors/registry/organisms/std-agent-pipeline.orb +5028 -3497
  270. package/dist/behaviors/registry/organisms/std-agent-reviewer.orb +2219 -1406
  271. package/dist/behaviors/registry/organisms/std-agent-tutor.orb +2069 -1384
  272. package/dist/behaviors/registry/organisms/std-api-gateway.orb +1419 -870
  273. package/dist/behaviors/registry/organisms/std-arcade-game.orb +488 -231
  274. package/dist/behaviors/registry/organisms/std-booking-system.orb +2457 -1467
  275. package/dist/behaviors/registry/organisms/std-cicd-pipeline.orb +1367 -825
  276. package/dist/behaviors/registry/organisms/std-cms.orb +1549 -566
  277. package/dist/behaviors/registry/organisms/std-coding-academy.orb +744 -495
  278. package/dist/behaviors/registry/organisms/std-crm.orb +1997 -1014
  279. package/dist/behaviors/registry/organisms/std-devops-dashboard.orb +2160 -1606
  280. package/dist/behaviors/registry/organisms/std-ecommerce.orb +2279 -1153
  281. package/dist/behaviors/registry/organisms/std-finance-tracker.orb +1375 -727
  282. package/dist/behaviors/registry/organisms/std-healthcare.orb +2940 -1703
  283. package/dist/behaviors/registry/organisms/std-helpdesk.orb +1443 -781
  284. package/dist/behaviors/registry/organisms/std-hr-portal.orb +2361 -1440
  285. package/dist/behaviors/registry/organisms/std-iot-dashboard.orb +1491 -1026
  286. package/dist/behaviors/registry/organisms/std-lms.orb +1629 -1046
  287. package/dist/behaviors/registry/organisms/std-logic-training.orb +321 -134
  288. package/dist/behaviors/registry/organisms/std-platformer-app.orb +855 -417
  289. package/dist/behaviors/registry/organisms/std-project-manager.orb +1795 -877
  290. package/dist/behaviors/registry/organisms/std-puzzle-app.orb +407 -206
  291. package/dist/behaviors/registry/organisms/std-realtime-chat.orb +1436 -844
  292. package/dist/behaviors/registry/organisms/std-rpg-game.orb +1522 -1007
  293. package/dist/behaviors/registry/organisms/std-service-marketplace.orb +2110 -1204
  294. package/dist/behaviors/registry/organisms/std-service-research-assistant.orb +1285 -1078
  295. package/dist/behaviors/registry/organisms/std-social-feed.orb +612 -252
  296. package/dist/behaviors/registry/organisms/std-stem-lab.orb +642 -450
  297. package/dist/behaviors/registry/organisms/std-strategy-game.orb +893 -650
  298. package/dist/behaviors/registry/organisms/std-trading-dashboard.orb +1271 -805
  299. package/dist/index.js +16 -4
  300. package/dist/index.js.map +1 -1
  301. package/dist/modules/core.js +16 -4
  302. package/dist/modules/core.js.map +1 -1
  303. package/dist/modules/index.js +16 -4
  304. package/dist/modules/index.js.map +1 -1
  305. package/dist/registry.js +16 -4
  306. package/dist/registry.js.map +1 -1
  307. package/package.json +2 -2
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "std-platformer-app",
3
3
  "version": "1.0.0",
4
- "description": "Platformer game organism. Composes: stdPlatformerGame(PlatLevel) + stdScoreBoard(PlatScore) + stdInventory(Collectible)",
4
+ "description": "std-platformer-app as a Function",
5
5
  "orbitals": [
6
6
  {
7
7
  "name": "PlatLevelOrbital",
@@ -17,22 +17,22 @@
17
17
  {
18
18
  "name": "level",
19
19
  "type": "number",
20
- "default": 1
20
+ "default": 1.0
21
21
  },
22
22
  {
23
23
  "name": "score",
24
24
  "type": "number",
25
- "default": 0
25
+ "default": 0.0
26
26
  },
27
27
  {
28
28
  "name": "lives",
29
29
  "type": "number",
30
- "default": 3
30
+ "default": 3.0
31
31
  },
32
32
  {
33
33
  "name": "time",
34
34
  "type": "number",
35
- "default": 0
35
+ "default": 0.0
36
36
  },
37
37
  {
38
38
  "name": "player",
@@ -44,25 +44,62 @@
44
44
  "type": "string",
45
45
  "default": ""
46
46
  }
47
- ],
48
- "instances": [
49
- {
50
- "id": "player-1",
51
- "name": "Player",
52
- "description": "Main character",
53
- "status": "active",
54
- "score": 0,
55
- "lives": 3,
56
- "player": "",
57
- "platforms": ""
58
- }
59
47
  ]
60
48
  },
61
49
  "traits": [
62
50
  {
63
51
  "name": "PlatLevelPlatformerFlow",
64
- "linkedEntity": "PlatLevel",
65
52
  "category": "interaction",
53
+ "linkedEntity": "PlatLevel",
54
+ "emits": [
55
+ {
56
+ "event": "PlatLevelLoaded",
57
+ "description": "Fired when PlatLevel finishes loading",
58
+ "scope": "internal",
59
+ "payload": [
60
+ {
61
+ "name": "id",
62
+ "type": "string",
63
+ "required": true
64
+ },
65
+ {
66
+ "name": "level",
67
+ "type": "number"
68
+ },
69
+ {
70
+ "name": "score",
71
+ "type": "number"
72
+ },
73
+ {
74
+ "name": "lives",
75
+ "type": "number"
76
+ },
77
+ {
78
+ "name": "time",
79
+ "type": "number"
80
+ },
81
+ {
82
+ "name": "player",
83
+ "type": "string"
84
+ },
85
+ {
86
+ "name": "platforms",
87
+ "type": "string"
88
+ }
89
+ ]
90
+ },
91
+ {
92
+ "event": "PlatLevelLoadFailed",
93
+ "description": "Fired when PlatLevel fails to load",
94
+ "scope": "internal",
95
+ "payload": [
96
+ {
97
+ "name": "message",
98
+ "type": "string"
99
+ }
100
+ ]
101
+ }
102
+ ],
66
103
  "stateMachine": {
67
104
  "states": [
68
105
  {
@@ -86,15 +123,19 @@
86
123
  },
87
124
  {
88
125
  "key": "START",
89
- "name": "Start Game"
126
+ "name": "Start"
127
+ },
128
+ {
129
+ "key": "NAVIGATE",
130
+ "name": "Navigate"
90
131
  },
91
132
  {
92
133
  "key": "LEFT",
93
- "name": "Move Left"
134
+ "name": "Left"
94
135
  },
95
136
  {
96
137
  "key": "RIGHT",
97
- "name": "Move Right"
138
+ "name": "Right"
98
139
  },
99
140
  {
100
141
  "key": "JUMP",
@@ -108,25 +149,35 @@
108
149
  "key": "PAUSE",
109
150
  "name": "Pause"
110
151
  },
152
+ {
153
+ "key": "GAME_OVER",
154
+ "name": "Game Over"
155
+ },
111
156
  {
112
157
  "key": "RESUME",
113
158
  "name": "Resume"
114
159
  },
115
160
  {
116
- "key": "GAME_OVER",
117
- "name": "Game Over"
161
+ "key": "CLOSE",
162
+ "name": "Close"
118
163
  },
119
164
  {
120
165
  "key": "RESTART",
121
166
  "name": "Restart"
122
167
  },
123
168
  {
124
- "key": "CLOSE",
125
- "name": "Close"
169
+ "key": "PlatLevelLoaded",
170
+ "name": "PlatLevel loaded"
126
171
  },
127
172
  {
128
- "key": "NAVIGATE",
129
- "name": "Navigate"
173
+ "key": "PlatLevelLoadFailed",
174
+ "name": "PlatLevel load failed",
175
+ "payload": [
176
+ {
177
+ "name": "message",
178
+ "type": "string"
179
+ }
180
+ ]
130
181
  }
131
182
  ],
132
183
  "transitions": [
@@ -137,29 +188,35 @@
137
188
  "effects": [
138
189
  [
139
190
  "fetch",
140
- "PlatLevel"
191
+ "PlatLevel",
192
+ {
193
+ "emit": {
194
+ "failure": "PlatLevelLoadFailed",
195
+ "success": "PlatLevelLoaded"
196
+ }
197
+ }
141
198
  ],
142
199
  [
143
200
  "render-ui",
144
201
  "main",
145
202
  {
146
- "type": "game-shell",
147
203
  "appName": "Platformer App",
148
- "showTopBar": true,
149
204
  "children": [
150
205
  {
151
- "type": "game-menu",
152
- "title": "Platformer",
153
- "subtitle": "Side-Scrolling Adventure",
154
206
  "menuItems": [
155
207
  {
156
- "label": "Start Game",
157
208
  "event": "START",
158
- "variant": "primary"
209
+ "variant": "primary",
210
+ "label": "Start Game"
159
211
  }
160
- ]
212
+ ],
213
+ "subtitle": "Side-Scrolling Adventure",
214
+ "type": "game-menu",
215
+ "title": "Platformer"
161
216
  }
162
- ]
217
+ ],
218
+ "type": "game-shell",
219
+ "showTopBar": true
163
220
  }
164
221
  ]
165
222
  ]
@@ -173,63 +230,52 @@
173
230
  "render-ui",
174
231
  "main",
175
232
  {
176
- "type": "game-shell",
177
- "appName": "Platformer App",
178
233
  "showTopBar": true,
179
234
  "children": [
180
235
  {
181
- "type": "platformer-canvas",
182
- "canvasWidth": 800,
183
- "canvasHeight": 400,
184
- "worldWidth": 2400,
185
- "worldHeight": 400,
186
- "followCamera": true,
236
+ "jumpEvent": "JUMP",
187
237
  "bgColor": "#1a1a2e",
188
- "leftEvent": "LEFT",
238
+ "canvasWidth": 800.0,
189
239
  "rightEvent": "RIGHT",
190
- "jumpEvent": "JUMP",
191
- "stopEvent": "STOP"
240
+ "worldHeight": 400.0,
241
+ "worldWidth": 2400.0,
242
+ "stopEvent": "STOP",
243
+ "type": "platformer-canvas",
244
+ "canvasHeight": 400.0,
245
+ "followCamera": true,
246
+ "leftEvent": "LEFT"
192
247
  }
193
- ]
248
+ ],
249
+ "type": "game-shell",
250
+ "appName": "Platformer App"
194
251
  }
195
252
  ]
196
253
  ]
197
254
  },
198
255
  {
199
- "from": "playing",
200
- "to": "playing",
201
- "event": "LEFT",
202
- "effects": []
256
+ "from": "menu",
257
+ "to": "menu",
258
+ "event": "NAVIGATE"
203
259
  },
204
260
  {
205
261
  "from": "playing",
206
262
  "to": "playing",
207
- "event": "RIGHT",
208
- "effects": []
263
+ "event": "LEFT"
209
264
  },
210
265
  {
211
266
  "from": "playing",
212
267
  "to": "playing",
213
- "event": "JUMP",
214
- "effects": []
268
+ "event": "RIGHT"
215
269
  },
216
270
  {
217
271
  "from": "playing",
218
272
  "to": "playing",
219
- "event": "STOP",
220
- "effects": []
221
- },
222
- {
223
- "from": "menu",
224
- "to": "menu",
225
- "event": "NAVIGATE",
226
- "effects": []
273
+ "event": "JUMP"
227
274
  },
228
275
  {
229
- "from": "paused",
230
- "to": "paused",
231
- "event": "NAVIGATE",
232
- "effects": []
276
+ "from": "playing",
277
+ "to": "playing",
278
+ "event": "STOP"
233
279
  },
234
280
  {
235
281
  "from": "playing",
@@ -241,63 +287,76 @@
241
287
  "modal",
242
288
  {
243
289
  "type": "game-menu",
244
- "title": "Paused",
245
290
  "menuItems": [
246
291
  {
247
292
  "label": "Resume",
248
- "event": "RESUME",
249
- "variant": "primary"
293
+ "variant": "primary",
294
+ "event": "RESUME"
250
295
  },
251
296
  {
252
297
  "label": "Quit",
253
298
  "event": "RESTART",
254
299
  "variant": "ghost"
255
300
  }
256
- ]
301
+ ],
302
+ "title": "Paused"
257
303
  }
258
304
  ]
259
305
  ]
260
306
  },
261
307
  {
262
- "from": "paused",
263
- "to": "playing",
264
- "event": "RESUME",
308
+ "from": "playing",
309
+ "to": "gameover",
310
+ "event": "GAME_OVER",
265
311
  "effects": [
266
- [
267
- "render-ui",
268
- "modal",
269
- null
270
- ],
271
312
  [
272
313
  "render-ui",
273
314
  "main",
274
315
  {
275
- "type": "game-shell",
276
- "appName": "Platformer App",
277
- "showTopBar": true,
278
316
  "children": [
279
317
  {
280
- "type": "platformer-canvas",
281
- "canvasWidth": 800,
282
- "canvasHeight": 400,
283
- "worldWidth": 2400,
284
- "worldHeight": 400,
285
- "followCamera": true,
286
- "bgColor": "#1a1a2e",
287
- "leftEvent": "LEFT",
288
- "rightEvent": "RIGHT",
289
- "jumpEvent": "JUMP",
290
- "stopEvent": "STOP"
318
+ "menuItems": [
319
+ {
320
+ "event": "RESTART",
321
+ "label": "Play Again",
322
+ "variant": "primary"
323
+ },
324
+ {
325
+ "label": "Main Menu",
326
+ "event": "RESTART",
327
+ "variant": "secondary"
328
+ }
329
+ ],
330
+ "type": "game-over-screen",
331
+ "stats": [
332
+ {
333
+ "value": "@entity.score",
334
+ "label": "Score"
335
+ },
336
+ {
337
+ "value": "@entity.lives",
338
+ "label": "Lives"
339
+ }
340
+ ],
341
+ "title": "Game Over"
291
342
  }
292
- ]
343
+ ],
344
+ "showTopBar": true,
345
+ "type": "game-shell",
346
+ "appName": "Platformer App"
293
347
  }
294
348
  ]
295
349
  ]
296
350
  },
351
+ {
352
+ "from": "paused",
353
+ "to": "paused",
354
+ "event": "NAVIGATE"
355
+ },
297
356
  {
298
357
  "from": "paused",
299
358
  "to": "playing",
300
- "event": "CLOSE",
359
+ "event": "RESUME",
301
360
  "effects": [
302
361
  [
303
362
  "render-ui",
@@ -308,112 +367,104 @@
308
367
  "render-ui",
309
368
  "main",
310
369
  {
311
- "type": "game-shell",
312
370
  "appName": "Platformer App",
313
- "showTopBar": true,
314
371
  "children": [
315
372
  {
316
- "type": "platformer-canvas",
317
- "canvasWidth": 800,
318
- "canvasHeight": 400,
319
- "worldWidth": 2400,
320
- "worldHeight": 400,
373
+ "canvasWidth": 800.0,
321
374
  "followCamera": true,
322
- "bgColor": "#1a1a2e",
323
375
  "leftEvent": "LEFT",
324
- "rightEvent": "RIGHT",
376
+ "type": "platformer-canvas",
325
377
  "jumpEvent": "JUMP",
378
+ "worldHeight": 400.0,
379
+ "canvasHeight": 400.0,
380
+ "worldWidth": 2400.0,
381
+ "bgColor": "#1a1a2e",
382
+ "rightEvent": "RIGHT",
326
383
  "stopEvent": "STOP"
327
384
  }
328
- ]
385
+ ],
386
+ "type": "game-shell",
387
+ "showTopBar": true
329
388
  }
330
389
  ]
331
390
  ]
332
391
  },
333
392
  {
334
- "from": "playing",
335
- "to": "gameover",
336
- "event": "GAME_OVER",
393
+ "from": "paused",
394
+ "to": "playing",
395
+ "event": "CLOSE",
337
396
  "effects": [
397
+ [
398
+ "render-ui",
399
+ "modal",
400
+ null
401
+ ],
338
402
  [
339
403
  "render-ui",
340
404
  "main",
341
405
  {
342
406
  "type": "game-shell",
343
- "appName": "Platformer App",
344
- "showTopBar": true,
345
407
  "children": [
346
408
  {
347
- "type": "game-over-screen",
348
- "title": "Game Over",
349
- "stats": [
350
- {
351
- "label": "Score",
352
- "value": "@entity.score"
353
- },
354
- {
355
- "label": "Lives",
356
- "value": "@entity.lives"
357
- }
358
- ],
359
- "menuItems": [
360
- {
361
- "label": "Play Again",
362
- "event": "RESTART",
363
- "variant": "primary"
364
- },
365
- {
366
- "label": "Main Menu",
367
- "event": "RESTART",
368
- "variant": "secondary"
369
- }
370
- ]
409
+ "leftEvent": "LEFT",
410
+ "stopEvent": "STOP",
411
+ "canvasWidth": 800.0,
412
+ "type": "platformer-canvas",
413
+ "rightEvent": "RIGHT",
414
+ "canvasHeight": 400.0,
415
+ "jumpEvent": "JUMP",
416
+ "worldHeight": 400.0,
417
+ "worldWidth": 2400.0,
418
+ "followCamera": true,
419
+ "bgColor": "#1a1a2e"
371
420
  }
372
- ]
421
+ ],
422
+ "showTopBar": true,
423
+ "appName": "Platformer App"
373
424
  }
374
425
  ]
375
426
  ]
376
427
  },
377
428
  {
378
- "from": "gameover",
429
+ "from": "paused",
379
430
  "to": "menu",
380
431
  "event": "RESTART",
381
432
  "effects": [
433
+ [
434
+ "render-ui",
435
+ "modal",
436
+ null
437
+ ],
382
438
  [
383
439
  "render-ui",
384
440
  "main",
385
441
  {
386
442
  "type": "game-shell",
387
- "appName": "Platformer App",
388
443
  "showTopBar": true,
389
444
  "children": [
390
445
  {
391
- "type": "game-menu",
392
- "title": "Platformer",
393
446
  "subtitle": "Side-Scrolling Adventure",
447
+ "type": "game-menu",
394
448
  "menuItems": [
395
449
  {
396
- "label": "Start Game",
397
450
  "event": "START",
398
- "variant": "primary"
451
+ "variant": "primary",
452
+ "label": "Start Game"
399
453
  }
400
- ]
454
+ ],
455
+ "title": "Platformer"
401
456
  }
402
- ]
457
+ ],
458
+ "appName": "Platformer App"
403
459
  }
404
460
  ]
405
461
  ]
406
462
  },
407
463
  {
408
- "from": "paused",
464
+ "from": "gameover",
409
465
  "to": "menu",
410
466
  "event": "RESTART",
411
467
  "effects": [
412
- [
413
- "render-ui",
414
- "modal",
415
- null
416
- ],
417
468
  [
418
469
  "render-ui",
419
470
  "main",
@@ -423,9 +474,9 @@
423
474
  "showTopBar": true,
424
475
  "children": [
425
476
  {
426
- "type": "game-menu",
427
- "title": "Platformer",
428
477
  "subtitle": "Side-Scrolling Adventure",
478
+ "title": "Platformer",
479
+ "type": "game-menu",
429
480
  "menuItems": [
430
481
  {
431
482
  "label": "Start Game",
@@ -440,12 +491,62 @@
440
491
  ]
441
492
  }
442
493
  ]
443
- }
494
+ },
495
+ "scope": "collection"
444
496
  },
445
497
  {
446
498
  "name": "PlatLevelPlatformerCanvas",
447
- "linkedEntity": "PlatLevel",
448
499
  "category": "interaction",
500
+ "linkedEntity": "PlatLevel",
501
+ "emits": [
502
+ {
503
+ "event": "PlatLevelLoaded",
504
+ "description": "Fired when PlatLevel finishes loading",
505
+ "scope": "internal",
506
+ "payload": [
507
+ {
508
+ "name": "id",
509
+ "type": "string",
510
+ "required": true
511
+ },
512
+ {
513
+ "name": "level",
514
+ "type": "number"
515
+ },
516
+ {
517
+ "name": "score",
518
+ "type": "number"
519
+ },
520
+ {
521
+ "name": "lives",
522
+ "type": "number"
523
+ },
524
+ {
525
+ "name": "time",
526
+ "type": "number"
527
+ },
528
+ {
529
+ "name": "player",
530
+ "type": "string"
531
+ },
532
+ {
533
+ "name": "platforms",
534
+ "type": "string"
535
+ }
536
+ ]
537
+ },
538
+ {
539
+ "event": "PlatLevelLoadFailed",
540
+ "description": "Fired when PlatLevel fails to load",
541
+ "scope": "internal",
542
+ "payload": [
543
+ {
544
+ "name": "message",
545
+ "type": "string"
546
+ }
547
+ ]
548
+ }
549
+ ],
449
550
  "stateMachine": {
450
551
  "states": [
451
552
  {
@@ -461,13 +562,17 @@
461
562
  "key": "INIT",
462
563
  "name": "Initialize"
463
564
  },
565
+ {
566
+ "key": "START",
567
+ "name": "Start"
568
+ },
464
569
  {
465
570
  "key": "LEFT",
466
- "name": "Move Left"
571
+ "name": "Left"
467
572
  },
468
573
  {
469
574
  "key": "RIGHT",
470
- "name": "Move Right"
575
+ "name": "Right"
471
576
  },
472
577
  {
473
578
  "key": "JUMP",
@@ -478,8 +583,18 @@
478
583
  "name": "Stop"
479
584
  },
480
585
  {
481
- "key": "START",
482
- "name": "Start"
586
+ "key": "PlatLevelLoaded",
587
+ "name": "PlatLevel loaded"
588
+ },
589
+ {
590
+ "key": "PlatLevelLoadFailed",
591
+ "name": "PlatLevel load failed",
592
+ "payload": [
593
+ {
594
+ "name": "message",
595
+ "type": "string"
596
+ }
597
+ ]
483
598
  }
484
599
  ],
485
600
  "transitions": [
@@ -490,7 +605,13 @@
490
605
  "effects": [
491
606
  [
492
607
  "fetch",
493
- "PlatLevel"
608
+ "PlatLevel",
609
+ {
610
+ "emit": {
611
+ "success": "PlatLevelLoaded",
612
+ "failure": "PlatLevelLoadFailed"
613
+ }
614
+ }
494
615
  ]
495
616
  ]
496
617
  },
@@ -503,26 +624,26 @@
503
624
  "render-ui",
504
625
  "main",
505
626
  {
506
- "type": "game-shell",
507
- "appName": "Platformer App",
508
- "showTopBar": true,
509
627
  "children": [
510
628
  {
629
+ "player": "@entity.player",
630
+ "canvasHeight": 400.0,
631
+ "jumpEvent": "JUMP",
632
+ "worldHeight": 400.0,
633
+ "canvasWidth": 800.0,
634
+ "bgColor": "#1a1a2e",
635
+ "rightEvent": "RIGHT",
511
636
  "type": "platformer-canvas",
512
637
  "platforms": "@entity.platforms",
513
- "player": "@entity.player",
514
- "canvasWidth": 800,
515
- "canvasHeight": 400,
516
- "worldWidth": 2400,
517
- "worldHeight": 400,
518
638
  "followCamera": true,
519
- "bgColor": "#1a1a2e",
639
+ "stopEvent": "STOP",
520
640
  "leftEvent": "LEFT",
521
- "rightEvent": "RIGHT",
522
- "jumpEvent": "JUMP",
523
- "stopEvent": "STOP"
641
+ "worldWidth": 2400.0
524
642
  }
525
- ]
643
+ ],
644
+ "type": "game-shell",
645
+ "showTopBar": true,
646
+ "appName": "Platformer App"
526
647
  }
527
648
  ]
528
649
  ]
@@ -530,20 +651,17 @@
530
651
  {
531
652
  "from": "running",
532
653
  "to": "running",
533
- "event": "LEFT",
534
- "effects": []
654
+ "event": "LEFT"
535
655
  },
536
656
  {
537
657
  "from": "running",
538
658
  "to": "running",
539
- "event": "RIGHT",
540
- "effects": []
659
+ "event": "RIGHT"
541
660
  },
542
661
  {
543
662
  "from": "running",
544
663
  "to": "running",
545
- "event": "JUMP",
546
- "effects": []
664
+ "event": "JUMP"
547
665
  },
548
666
  {
549
667
  "from": "running",
@@ -560,18 +678,18 @@
560
678
  "children": [
561
679
  {
562
680
  "type": "platformer-canvas",
681
+ "leftEvent": "LEFT",
563
682
  "platforms": "@entity.platforms",
564
- "player": "@entity.player",
565
- "canvasWidth": 800,
566
- "canvasHeight": 400,
567
- "worldWidth": 2400,
568
- "worldHeight": 400,
683
+ "stopEvent": "STOP",
684
+ "worldHeight": 400.0,
685
+ "jumpEvent": "JUMP",
686
+ "worldWidth": 2400.0,
569
687
  "followCamera": true,
688
+ "canvasHeight": 400.0,
689
+ "player": "@entity.player",
570
690
  "bgColor": "#1a1a2e",
571
- "leftEvent": "LEFT",
572
691
  "rightEvent": "RIGHT",
573
- "jumpEvent": "JUMP",
574
- "stopEvent": "STOP"
692
+ "canvasWidth": 800.0
575
693
  }
576
694
  ]
577
695
  }
@@ -579,14 +697,14 @@
579
697
  ]
580
698
  }
581
699
  ]
582
- }
700
+ },
701
+ "scope": "collection"
583
702
  }
584
703
  ],
585
704
  "pages": [
586
705
  {
587
706
  "name": "GamePage",
588
707
  "path": "/game",
589
- "isInitial": true,
590
708
  "traits": [
591
709
  {
592
710
  "ref": "PlatLevelPlatformerFlow"
@@ -617,11 +735,13 @@
617
735
  {
618
736
  "name": "score",
619
737
  "type": "number",
620
- "required": true
738
+ "required": true,
739
+ "default": 0.0
621
740
  },
622
741
  {
623
742
  "name": "level",
624
- "type": "number"
743
+ "type": "number",
744
+ "default": 1.0
625
745
  },
626
746
  {
627
747
  "name": "completedAt",
@@ -629,26 +749,78 @@
629
749
  },
630
750
  {
631
751
  "name": "highScore",
632
- "type": "number",
633
- "default": 0
752
+ "type": "number"
634
753
  },
635
754
  {
636
755
  "name": "combo",
637
- "type": "number",
638
- "default": 0
756
+ "type": "number"
639
757
  },
640
758
  {
641
759
  "name": "multiplier",
642
- "type": "number",
643
- "default": 1
760
+ "type": "number"
644
761
  }
645
762
  ]
646
763
  },
647
764
  "traits": [
648
765
  {
649
766
  "name": "PlatScoreScoreBoard",
650
- "linkedEntity": "PlatScore",
651
767
  "category": "interaction",
768
+ "linkedEntity": "PlatScore",
769
+ "emits": [
770
+ {
771
+ "event": "PlatScoreLoaded",
772
+ "description": "Fired when PlatScore finishes loading",
773
+ "scope": "internal",
774
+ "payload": [
775
+ {
776
+ "name": "id",
777
+ "type": "string",
778
+ "required": true
779
+ },
780
+ {
781
+ "name": "playerName",
782
+ "type": "string",
783
+ "required": true
784
+ },
785
+ {
786
+ "name": "score",
787
+ "type": "number",
788
+ "required": true
789
+ },
790
+ {
791
+ "name": "level",
792
+ "type": "number"
793
+ },
794
+ {
795
+ "name": "completedAt",
796
+ "type": "string"
797
+ },
798
+ {
799
+ "name": "highScore",
800
+ "type": "number"
801
+ },
802
+ {
803
+ "name": "combo",
804
+ "type": "number"
805
+ },
806
+ {
807
+ "name": "multiplier",
808
+ "type": "number"
809
+ }
810
+ ]
811
+ },
812
+ {
813
+ "event": "PlatScoreLoadFailed",
814
+ "description": "Fired when PlatScore fails to load",
815
+ "scope": "internal",
816
+ "payload": [
817
+ {
818
+ "name": "message",
819
+ "type": "string"
820
+ }
821
+ ]
822
+ }
823
+ ],
652
824
  "stateMachine": {
653
825
  "states": [
654
826
  {
@@ -667,8 +839,7 @@
667
839
  "payload": [
668
840
  {
669
841
  "name": "points",
670
- "type": "number",
671
- "required": true
842
+ "type": "string"
672
843
  }
673
844
  ]
674
845
  },
@@ -678,14 +849,27 @@
678
849
  "payload": [
679
850
  {
680
851
  "name": "multiplier",
681
- "type": "number",
682
- "required": true
852
+ "type": "string"
683
853
  }
684
854
  ]
685
855
  },
686
856
  {
687
857
  "key": "RESET",
688
858
  "name": "Reset"
859
+ },
860
+ {
861
+ "key": "PlatScoreLoaded",
862
+ "name": "PlatScore loaded"
863
+ },
864
+ {
865
+ "key": "PlatScoreLoadFailed",
866
+ "name": "PlatScore load failed",
867
+ "payload": [
868
+ {
869
+ "name": "message",
870
+ "type": "string"
871
+ }
872
+ ]
689
873
  }
690
874
  ],
691
875
  "transitions": [
@@ -696,23 +880,29 @@
696
880
  "effects": [
697
881
  [
698
882
  "fetch",
699
- "PlatScore"
883
+ "PlatScore",
884
+ {
885
+ "emit": {
886
+ "success": "PlatScoreLoaded",
887
+ "failure": "PlatScoreLoadFailed"
888
+ }
889
+ }
700
890
  ],
701
891
  [
702
892
  "render-ui",
703
893
  "main",
704
894
  {
705
- "type": "game-shell",
706
895
  "appName": "Platformer App",
707
896
  "showTopBar": true,
897
+ "type": "game-shell",
708
898
  "children": [
709
899
  {
710
- "type": "score-board",
711
- "score": "@entity.score",
900
+ "multiplier": "@entity.multiplier",
901
+ "level": "@entity.level",
712
902
  "highScore": "@entity.highScore",
713
903
  "combo": "@entity.combo",
714
- "multiplier": "@entity.multiplier",
715
- "level": "@entity.level"
904
+ "type": "score-board",
905
+ "score": "@entity.score"
716
906
  }
717
907
  ]
718
908
  }
@@ -739,7 +929,7 @@
739
929
  [
740
930
  "+",
741
931
  "@entity.combo",
742
- 1
932
+ 1.0
743
933
  ]
744
934
  ],
745
935
  [
@@ -748,17 +938,17 @@
748
938
  {
749
939
  "type": "game-shell",
750
940
  "appName": "Platformer App",
751
- "showTopBar": true,
752
941
  "children": [
753
942
  {
754
- "type": "score-board",
755
- "score": "@entity.score",
756
943
  "highScore": "@entity.highScore",
944
+ "score": "@entity.score",
757
945
  "combo": "@entity.combo",
758
946
  "multiplier": "@entity.multiplier",
759
- "level": "@entity.level"
947
+ "level": "@entity.level",
948
+ "type": "score-board"
760
949
  }
761
- ]
950
+ ],
951
+ "showTopBar": true
762
952
  }
763
953
  ]
764
954
  ]
@@ -777,19 +967,19 @@
777
967
  "render-ui",
778
968
  "main",
779
969
  {
780
- "type": "game-shell",
781
- "appName": "Platformer App",
782
- "showTopBar": true,
783
970
  "children": [
784
971
  {
785
- "type": "score-board",
786
- "score": "@entity.score",
787
- "highScore": "@entity.highScore",
788
972
  "combo": "@entity.combo",
789
973
  "multiplier": "@entity.multiplier",
790
- "level": "@entity.level"
974
+ "highScore": "@entity.highScore",
975
+ "level": "@entity.level",
976
+ "score": "@entity.score",
977
+ "type": "score-board"
791
978
  }
792
- ]
979
+ ],
980
+ "type": "game-shell",
981
+ "appName": "Platformer App",
982
+ "showTopBar": true
793
983
  }
794
984
  ]
795
985
  ]
@@ -802,17 +992,17 @@
802
992
  [
803
993
  "set",
804
994
  "@entity.score",
805
- 0
995
+ 0.0
806
996
  ],
807
997
  [
808
998
  "set",
809
999
  "@entity.combo",
810
- 0
1000
+ 0.0
811
1001
  ],
812
1002
  [
813
1003
  "set",
814
1004
  "@entity.multiplier",
815
- 1
1005
+ 1.0
816
1006
  ],
817
1007
  [
818
1008
  "render-ui",
@@ -820,28 +1010,29 @@
820
1010
  {
821
1011
  "type": "game-shell",
822
1012
  "appName": "Platformer App",
823
- "showTopBar": true,
824
1013
  "children": [
825
1014
  {
826
- "type": "score-board",
827
1015
  "score": "@entity.score",
828
1016
  "highScore": "@entity.highScore",
829
- "combo": "@entity.combo",
830
1017
  "multiplier": "@entity.multiplier",
831
- "level": "@entity.level"
1018
+ "level": "@entity.level",
1019
+ "combo": "@entity.combo",
1020
+ "type": "score-board"
832
1021
  }
833
- ]
1022
+ ],
1023
+ "showTopBar": true
834
1024
  }
835
1025
  ]
836
1026
  ]
837
1027
  }
838
1028
  ]
839
- }
1029
+ },
1030
+ "scope": "collection"
840
1031
  }
841
1032
  ],
842
1033
  "pages": [
843
1034
  {
844
- "name": "ScoresPage",
1035
+ "name": "Scores",
845
1036
  "path": "/scores",
846
1037
  "traits": [
847
1038
  {
@@ -855,8 +1046,8 @@
855
1046
  "name": "CollectibleOrbital",
856
1047
  "entity": {
857
1048
  "name": "Collectible",
858
- "persistence": "persistent",
859
1049
  "collection": "collectibles",
1050
+ "persistence": "persistent",
860
1051
  "fields": [
861
1052
  {
862
1053
  "name": "id",
@@ -875,64 +1066,94 @@
875
1066
  },
876
1067
  {
877
1068
  "name": "quantity",
878
- "type": "number",
879
- "default": 1
1069
+ "type": "number"
880
1070
  },
881
1071
  {
882
1072
  "name": "rarity",
883
- "type": "string",
884
- "default": "common"
1073
+ "type": "string"
885
1074
  },
886
1075
  {
887
1076
  "name": "pendingId",
888
- "type": "string",
889
- "default": ""
890
- }
891
- ],
892
- "instances": [
893
- {
894
- "id": "item-1",
895
- "name": "Health Potion",
896
- "description": "Restores 50 HP",
897
- "status": "active",
898
- "pendingId": ""
899
- },
900
- {
901
- "id": "item-2",
902
- "name": "Iron Sword",
903
- "description": "A sturdy blade",
904
- "status": "active",
905
- "pendingId": ""
906
- },
907
- {
908
- "id": "item-3",
909
- "name": "Wooden Shield",
910
- "description": "Basic protection",
911
- "status": "active",
912
- "pendingId": ""
1077
+ "type": "string"
913
1078
  }
914
1079
  ]
915
1080
  },
916
1081
  "traits": [
917
1082
  {
918
1083
  "name": "CollectibleBrowse",
919
- "linkedEntity": "Collectible",
920
1084
  "category": "interaction",
1085
+ "linkedEntity": "Collectible",
1086
+ "emits": [
1087
+ {
1088
+ "event": "CollectibleLoaded",
1089
+ "description": "Fired when Collectible finishes loading",
1090
+ "scope": "internal",
1091
+ "payload": [
1092
+ {
1093
+ "name": "id",
1094
+ "type": "string",
1095
+ "required": true
1096
+ },
1097
+ {
1098
+ "name": "name",
1099
+ "type": "string",
1100
+ "required": true
1101
+ },
1102
+ {
1103
+ "name": "type",
1104
+ "type": "string",
1105
+ "required": true
1106
+ },
1107
+ {
1108
+ "name": "quantity",
1109
+ "type": "number"
1110
+ },
1111
+ {
1112
+ "name": "rarity",
1113
+ "type": "string"
1114
+ },
1115
+ {
1116
+ "name": "pendingId",
1117
+ "type": "string"
1118
+ }
1119
+ ]
1120
+ },
1121
+ {
1122
+ "event": "CollectibleLoadFailed",
1123
+ "description": "Fired when Collectible fails to load",
1124
+ "scope": "internal",
1125
+ "payload": [
1126
+ {
1127
+ "name": "message",
1128
+ "type": "string"
1129
+ }
1130
+ ]
1131
+ }
1132
+ ],
921
1133
  "listens": [
922
1134
  {
923
1135
  "event": "ITEM_ADDED",
924
1136
  "triggers": "INIT",
925
- "scope": "external"
1137
+ "source": {
1138
+ "kind": "trait",
1139
+ "trait": "CollectibleAdd"
1140
+ }
926
1141
  },
927
1142
  {
928
1143
  "event": "ITEM_USED",
929
1144
  "triggers": "INIT",
930
- "scope": "internal"
1145
+ "source": {
1146
+ "kind": "trait",
1147
+ "trait": "CollectibleUse"
1148
+ }
931
1149
  },
932
1150
  {
933
1151
  "event": "CONFIRM_DROP",
934
1152
  "triggers": "INIT",
935
- "scope": "internal"
1153
+ "source": {
1154
+ "kind": "trait",
1155
+ "trait": "CollectibleDrop"
1156
+ }
936
1157
  }
937
1158
  ],
938
1159
  "stateMachine": {
@@ -948,36 +1169,16 @@
948
1169
  "name": "Initialize"
949
1170
  },
950
1171
  {
951
- "key": "ADD_ITEM",
952
- "name": "ADD_ITEM"
953
- },
954
- {
955
- "key": "USE_ITEM",
956
- "name": "USE_ITEM",
957
- "payload": [
958
- {
959
- "name": "id",
960
- "type": "string",
961
- "required": true
962
- },
963
- {
964
- "name": "row",
965
- "type": "object"
966
- }
967
- ]
1172
+ "key": "CollectibleLoaded",
1173
+ "name": "Collectible loaded"
968
1174
  },
969
1175
  {
970
- "key": "DROP",
971
- "name": "DROP",
1176
+ "key": "CollectibleLoadFailed",
1177
+ "name": "Collectible load failed",
972
1178
  "payload": [
973
1179
  {
974
- "name": "id",
975
- "type": "string",
976
- "required": true
977
- },
978
- {
979
- "name": "row",
980
- "type": "object"
1180
+ "name": "message",
1181
+ "type": "string"
981
1182
  }
982
1183
  ]
983
1184
  }
@@ -996,135 +1197,176 @@
996
1197
  "render-ui",
997
1198
  "main",
998
1199
  {
999
- "type": "game-shell",
1000
- "appName": "Platformer App",
1001
- "showTopBar": true,
1002
1200
  "children": [
1003
1201
  {
1004
- "type": "stack",
1005
- "direction": "vertical",
1006
- "gap": "lg",
1007
1202
  "className": "max-w-5xl mx-auto w-full",
1203
+ "type": "stack",
1008
1204
  "children": [
1009
1205
  {
1010
- "type": "stack",
1011
- "direction": "horizontal",
1012
1206
  "gap": "md",
1013
- "justify": "space-between",
1014
1207
  "align": "center",
1015
1208
  "children": [
1016
1209
  {
1017
- "type": "stack",
1018
1210
  "direction": "horizontal",
1211
+ "type": "stack",
1019
1212
  "gap": "sm",
1020
1213
  "align": "center",
1021
1214
  "children": [
1022
1215
  {
1023
- "type": "icon",
1024
1216
  "name": "package",
1025
- "size": "lg"
1217
+ "size": "lg",
1218
+ "type": "icon"
1026
1219
  },
1027
1220
  {
1028
- "type": "typography",
1029
1221
  "content": "Collectibles",
1030
- "variant": "h2"
1222
+ "variant": "h2",
1223
+ "type": "typography"
1031
1224
  }
1032
1225
  ]
1033
1226
  },
1034
1227
  {
1035
- "type": "stack",
1036
1228
  "direction": "horizontal",
1037
1229
  "gap": "sm",
1230
+ "type": "stack",
1038
1231
  "children": [
1039
1232
  {
1040
- "type": "button",
1041
1233
  "label": "Add Collectible",
1042
- "event": "ADD_ITEM",
1043
1234
  "variant": "primary",
1044
- "icon": "plus"
1235
+ "icon": "plus",
1236
+ "event": "ADD_ITEM",
1237
+ "type": "button"
1045
1238
  }
1046
1239
  ]
1047
1240
  }
1048
- ]
1241
+ ],
1242
+ "direction": "horizontal",
1243
+ "type": "stack",
1244
+ "justify": "space-between"
1049
1245
  },
1050
1246
  {
1051
1247
  "type": "divider"
1052
1248
  },
1053
1249
  {
1054
- "type": "data-grid",
1055
- "entity": "Collectible",
1056
- "emptyIcon": "inbox",
1057
- "emptyTitle": "No items yet",
1058
- "emptyDescription": "Add your first item to get started.",
1059
1250
  "itemActions": [
1060
1251
  {
1061
- "label": "Use",
1062
1252
  "event": "USE_ITEM",
1063
1253
  "variant": "ghost",
1254
+ "label": "Use",
1064
1255
  "size": "sm"
1065
1256
  },
1066
1257
  {
1067
- "label": "Drop",
1258
+ "size": "sm",
1068
1259
  "event": "DROP",
1069
- "variant": "danger",
1070
- "size": "sm"
1260
+ "label": "Drop",
1261
+ "variant": "danger"
1071
1262
  }
1072
1263
  ],
1073
1264
  "columns": [
1074
1265
  {
1075
1266
  "name": "name",
1076
1267
  "label": "Name",
1077
- "variant": "h4",
1078
- "icon": "package"
1268
+ "icon": "package",
1269
+ "variant": "h4"
1079
1270
  },
1080
1271
  {
1081
- "name": "type",
1082
- "label": "Type",
1083
- "variant": "badge",
1084
1272
  "colorMap": {
1085
- "active": "success",
1086
- "completed": "success",
1087
- "done": "success",
1088
- "pending": "warning",
1089
- "draft": "warning",
1090
- "scheduled": "warning",
1091
- "inactive": "neutral",
1092
- "archived": "neutral",
1093
1273
  "disabled": "neutral",
1274
+ "inactive": "neutral",
1275
+ "scheduled": "warning",
1094
1276
  "error": "destructive",
1277
+ "failed": "destructive",
1278
+ "pending": "warning",
1095
1279
  "cancelled": "destructive",
1096
- "failed": "destructive"
1097
- }
1280
+ "draft": "warning",
1281
+ "done": "success",
1282
+ "completed": "success",
1283
+ "active": "success",
1284
+ "archived": "neutral"
1285
+ },
1286
+ "name": "type",
1287
+ "variant": "badge",
1288
+ "label": "Type"
1098
1289
  },
1099
1290
  {
1100
- "name": "quantity",
1101
1291
  "label": "Quantity",
1102
- "variant": "caption"
1292
+ "variant": "caption",
1293
+ "name": "quantity"
1103
1294
  }
1104
- ]
1295
+ ],
1296
+ "entity": "Collectible",
1297
+ "emptyTitle": "No items yet",
1298
+ "emptyDescription": "Add your first item to get started.",
1299
+ "type": "data-grid",
1300
+ "emptyIcon": "inbox"
1105
1301
  }
1106
- ]
1302
+ ],
1303
+ "direction": "vertical",
1304
+ "gap": "lg"
1107
1305
  }
1108
- ]
1306
+ ],
1307
+ "type": "game-shell",
1308
+ "appName": "Platformer App",
1309
+ "showTopBar": true
1109
1310
  }
1110
1311
  ]
1111
1312
  ]
1112
1313
  }
1113
1314
  ]
1114
- }
1315
+ },
1316
+ "scope": "collection"
1115
1317
  },
1116
1318
  {
1117
1319
  "name": "CollectibleAdd",
1118
- "linkedEntity": "Collectible",
1119
1320
  "category": "interaction",
1321
+ "linkedEntity": "Collectible",
1120
1322
  "emits": [
1121
1323
  {
1122
- "event": "SAVE",
1123
- "scope": "internal"
1324
+ "event": "ITEM_ADDED"
1124
1325
  },
1125
1326
  {
1126
- "event": "ITEM_ADDED",
1127
- "scope": "external"
1327
+ "event": "CollectibleLoaded",
1328
+ "description": "Fired when Collectible finishes loading",
1329
+ "scope": "internal",
1330
+ "payload": [
1331
+ {
1332
+ "name": "id",
1333
+ "type": "string",
1334
+ "required": true
1335
+ },
1336
+ {
1337
+ "name": "name",
1338
+ "type": "string",
1339
+ "required": true
1340
+ },
1341
+ {
1342
+ "name": "type",
1343
+ "type": "string",
1344
+ "required": true
1345
+ },
1346
+ {
1347
+ "name": "quantity",
1348
+ "type": "number"
1349
+ },
1350
+ {
1351
+ "name": "rarity",
1352
+ "type": "string"
1353
+ },
1354
+ {
1355
+ "name": "pendingId",
1356
+ "type": "string"
1357
+ }
1358
+ ]
1359
+ },
1360
+ {
1361
+ "event": "CollectibleLoadFailed",
1362
+ "description": "Fired when Collectible fails to load",
1363
+ "scope": "internal",
1364
+ "payload": [
1365
+ {
1366
+ "name": "message",
1367
+ "type": "string"
1368
+ }
1369
+ ]
1128
1370
  }
1129
1371
  ],
1130
1372
  "stateMachine": {
@@ -1144,7 +1386,7 @@
1144
1386
  },
1145
1387
  {
1146
1388
  "key": "ADD_ITEM",
1147
- "name": "Open"
1389
+ "name": "Add Item"
1148
1390
  },
1149
1391
  {
1150
1392
  "key": "CLOSE",
@@ -1156,8 +1398,25 @@
1156
1398
  "payload": [
1157
1399
  {
1158
1400
  "name": "data",
1159
- "type": "object",
1160
- "required": true
1401
+ "type": "string"
1402
+ }
1403
+ ]
1404
+ },
1405
+ {
1406
+ "key": "ITEM_ADDED",
1407
+ "name": "Item Added"
1408
+ },
1409
+ {
1410
+ "key": "CollectibleLoaded",
1411
+ "name": "Collectible loaded"
1412
+ },
1413
+ {
1414
+ "key": "CollectibleLoadFailed",
1415
+ "name": "Collectible load failed",
1416
+ "payload": [
1417
+ {
1418
+ "name": "message",
1419
+ "type": "string"
1161
1420
  }
1162
1421
  ]
1163
1422
  }
@@ -1181,7 +1440,13 @@
1181
1440
  "effects": [
1182
1441
  [
1183
1442
  "fetch",
1184
- "Collectible"
1443
+ "Collectible",
1444
+ {
1445
+ "emit": {
1446
+ "success": "CollectibleLoaded",
1447
+ "failure": "CollectibleLoadFailed"
1448
+ }
1449
+ }
1185
1450
  ],
1186
1451
  [
1187
1452
  "render-ui",
@@ -1189,22 +1454,21 @@
1189
1454
  {
1190
1455
  "type": "stack",
1191
1456
  "direction": "vertical",
1192
- "gap": "md",
1193
1457
  "children": [
1194
1458
  {
1459
+ "gap": "sm",
1195
1460
  "type": "stack",
1196
1461
  "direction": "horizontal",
1197
- "gap": "sm",
1198
1462
  "children": [
1199
1463
  {
1200
- "type": "icon",
1201
1464
  "name": "plus-circle",
1465
+ "type": "icon",
1202
1466
  "size": "md"
1203
1467
  },
1204
1468
  {
1205
- "type": "typography",
1206
1469
  "content": "Add Collectible",
1207
- "variant": "h3"
1470
+ "variant": "h3",
1471
+ "type": "typography"
1208
1472
  }
1209
1473
  ]
1210
1474
  },
@@ -1212,19 +1476,20 @@
1212
1476
  "type": "divider"
1213
1477
  },
1214
1478
  {
1215
- "type": "form-section",
1479
+ "cancelEvent": "CLOSE",
1216
1480
  "entity": "Collectible",
1217
- "mode": "create",
1218
1481
  "submitEvent": "SAVE",
1219
- "cancelEvent": "CLOSE",
1482
+ "type": "form-section",
1220
1483
  "fields": [
1221
1484
  "name",
1222
1485
  "type",
1223
1486
  "quantity",
1224
1487
  "rarity"
1225
- ]
1488
+ ],
1489
+ "mode": "create"
1226
1490
  }
1227
- ]
1491
+ ],
1492
+ "gap": "md"
1228
1493
  }
1229
1494
  ]
1230
1495
  ]
@@ -1239,6 +1504,13 @@
1239
1504
  "modal",
1240
1505
  null
1241
1506
  ],
1507
+ [
1508
+ "render-ui",
1509
+ "main",
1510
+ {
1511
+ "type": "box"
1512
+ }
1513
+ ],
1242
1514
  [
1243
1515
  "notify",
1244
1516
  "Cancelled",
@@ -1262,6 +1534,13 @@
1262
1534
  "modal",
1263
1535
  null
1264
1536
  ],
1537
+ [
1538
+ "render-ui",
1539
+ "main",
1540
+ {
1541
+ "type": "box"
1542
+ }
1543
+ ],
1265
1544
  [
1266
1545
  "emit",
1267
1546
  "ITEM_ADDED"
@@ -1269,20 +1548,61 @@
1269
1548
  ]
1270
1549
  }
1271
1550
  ]
1272
- }
1551
+ },
1552
+ "scope": "collection"
1273
1553
  },
1274
1554
  {
1275
1555
  "name": "CollectibleUse",
1276
- "linkedEntity": "Collectible",
1277
1556
  "category": "interaction",
1557
+ "linkedEntity": "Collectible",
1278
1558
  "emits": [
1279
1559
  {
1280
- "event": "SAVE",
1281
- "scope": "internal"
1560
+ "event": "ITEM_USED"
1282
1561
  },
1283
1562
  {
1284
- "event": "ITEM_USED",
1285
- "scope": "internal"
1563
+ "event": "CollectibleLoaded",
1564
+ "description": "Fired when Collectible finishes loading",
1565
+ "scope": "internal",
1566
+ "payload": [
1567
+ {
1568
+ "name": "id",
1569
+ "type": "string",
1570
+ "required": true
1571
+ },
1572
+ {
1573
+ "name": "name",
1574
+ "type": "string",
1575
+ "required": true
1576
+ },
1577
+ {
1578
+ "name": "type",
1579
+ "type": "string",
1580
+ "required": true
1581
+ },
1582
+ {
1583
+ "name": "quantity",
1584
+ "type": "number"
1585
+ },
1586
+ {
1587
+ "name": "rarity",
1588
+ "type": "string"
1589
+ },
1590
+ {
1591
+ "name": "pendingId",
1592
+ "type": "string"
1593
+ }
1594
+ ]
1595
+ },
1596
+ {
1597
+ "event": "CollectibleLoadFailed",
1598
+ "description": "Fired when Collectible fails to load",
1599
+ "scope": "internal",
1600
+ "payload": [
1601
+ {
1602
+ "name": "message",
1603
+ "type": "string"
1604
+ }
1605
+ ]
1286
1606
  }
1287
1607
  ],
1288
1608
  "stateMachine": {
@@ -1302,12 +1622,11 @@
1302
1622
  },
1303
1623
  {
1304
1624
  "key": "USE_ITEM",
1305
- "name": "Open",
1625
+ "name": "Use Item",
1306
1626
  "payload": [
1307
1627
  {
1308
1628
  "name": "id",
1309
- "type": "string",
1310
- "required": true
1629
+ "type": "string"
1311
1630
  }
1312
1631
  ]
1313
1632
  },
@@ -1321,8 +1640,25 @@
1321
1640
  "payload": [
1322
1641
  {
1323
1642
  "name": "data",
1324
- "type": "object",
1325
- "required": true
1643
+ "type": "string"
1644
+ }
1645
+ ]
1646
+ },
1647
+ {
1648
+ "key": "ITEM_USED",
1649
+ "name": "Item Used"
1650
+ },
1651
+ {
1652
+ "key": "CollectibleLoaded",
1653
+ "name": "Collectible loaded"
1654
+ },
1655
+ {
1656
+ "key": "CollectibleLoadFailed",
1657
+ "name": "Collectible load failed",
1658
+ "payload": [
1659
+ {
1660
+ "name": "message",
1661
+ "type": "string"
1326
1662
  }
1327
1663
  ]
1328
1664
  }
@@ -1348,23 +1684,19 @@
1348
1684
  "fetch",
1349
1685
  "Collectible",
1350
1686
  {
1351
- "id": "@payload.id"
1687
+ "id": "@payload.id",
1688
+ "emit": {
1689
+ "success": "CollectibleLoaded",
1690
+ "failure": "CollectibleLoadFailed"
1691
+ }
1352
1692
  }
1353
1693
  ],
1354
1694
  [
1355
1695
  "render-ui",
1356
1696
  "modal",
1357
1697
  {
1358
- "type": "stack",
1359
- "direction": "vertical",
1360
- "gap": "md",
1361
- "align": "center",
1362
1698
  "children": [
1363
1699
  {
1364
- "type": "stack",
1365
- "direction": "horizontal",
1366
- "gap": "sm",
1367
- "align": "center",
1368
1700
  "children": [
1369
1701
  {
1370
1702
  "type": "icon",
@@ -1372,25 +1704,28 @@
1372
1704
  "size": "md"
1373
1705
  },
1374
1706
  {
1375
- "type": "typography",
1376
1707
  "content": "Use Collectible",
1377
- "variant": "h3"
1708
+ "variant": "h3",
1709
+ "type": "typography"
1378
1710
  }
1379
- ]
1711
+ ],
1712
+ "align": "center",
1713
+ "direction": "horizontal",
1714
+ "type": "stack",
1715
+ "gap": "sm"
1380
1716
  },
1381
1717
  {
1382
1718
  "type": "divider"
1383
1719
  },
1384
1720
  {
1385
- "type": "typography",
1386
1721
  "content": "@entity.name",
1722
+ "type": "typography",
1387
1723
  "variant": "body"
1388
1724
  },
1389
1725
  {
1726
+ "justify": "center",
1390
1727
  "type": "stack",
1391
1728
  "direction": "horizontal",
1392
- "gap": "sm",
1393
- "justify": "center",
1394
1729
  "children": [
1395
1730
  {
1396
1731
  "type": "button",
@@ -1399,15 +1734,20 @@
1399
1734
  "variant": "ghost"
1400
1735
  },
1401
1736
  {
1402
- "type": "button",
1403
- "label": "Confirm Use",
1737
+ "icon": "check",
1404
1738
  "event": "SAVE",
1739
+ "label": "Confirm Use",
1405
1740
  "variant": "primary",
1406
- "icon": "check"
1741
+ "type": "button"
1407
1742
  }
1408
- ]
1743
+ ],
1744
+ "gap": "sm"
1409
1745
  }
1410
- ]
1746
+ ],
1747
+ "direction": "vertical",
1748
+ "type": "stack",
1749
+ "gap": "md",
1750
+ "align": "center"
1411
1751
  }
1412
1752
  ]
1413
1753
  ]
@@ -1422,6 +1762,13 @@
1422
1762
  "modal",
1423
1763
  null
1424
1764
  ],
1765
+ [
1766
+ "render-ui",
1767
+ "main",
1768
+ {
1769
+ "type": "box"
1770
+ }
1771
+ ],
1425
1772
  [
1426
1773
  "notify",
1427
1774
  "Cancelled",
@@ -1445,6 +1792,13 @@
1445
1792
  "modal",
1446
1793
  null
1447
1794
  ],
1795
+ [
1796
+ "render-ui",
1797
+ "main",
1798
+ {
1799
+ "type": "box"
1800
+ }
1801
+ ],
1448
1802
  [
1449
1803
  "emit",
1450
1804
  "ITEM_USED"
@@ -1452,16 +1806,61 @@
1452
1806
  ]
1453
1807
  }
1454
1808
  ]
1455
- }
1809
+ },
1810
+ "scope": "collection"
1456
1811
  },
1457
1812
  {
1458
1813
  "name": "CollectibleDrop",
1459
- "linkedEntity": "Collectible",
1460
1814
  "category": "interaction",
1815
+ "linkedEntity": "Collectible",
1461
1816
  "emits": [
1462
1817
  {
1463
- "event": "CONFIRM_DROP",
1464
- "scope": "internal"
1818
+ "event": "CONFIRM_DROP"
1819
+ },
1820
+ {
1821
+ "event": "CollectibleLoaded",
1822
+ "description": "Fired when Collectible finishes loading",
1823
+ "scope": "internal",
1824
+ "payload": [
1825
+ {
1826
+ "name": "id",
1827
+ "type": "string",
1828
+ "required": true
1829
+ },
1830
+ {
1831
+ "name": "name",
1832
+ "type": "string",
1833
+ "required": true
1834
+ },
1835
+ {
1836
+ "name": "type",
1837
+ "type": "string",
1838
+ "required": true
1839
+ },
1840
+ {
1841
+ "name": "quantity",
1842
+ "type": "number"
1843
+ },
1844
+ {
1845
+ "name": "rarity",
1846
+ "type": "string"
1847
+ },
1848
+ {
1849
+ "name": "pendingId",
1850
+ "type": "string"
1851
+ }
1852
+ ]
1853
+ },
1854
+ {
1855
+ "event": "CollectibleLoadFailed",
1856
+ "description": "Fired when Collectible fails to load",
1857
+ "scope": "internal",
1858
+ "payload": [
1859
+ {
1860
+ "name": "message",
1861
+ "type": "string"
1862
+ }
1863
+ ]
1465
1864
  }
1466
1865
  ],
1467
1866
  "stateMachine": {
@@ -1481,18 +1880,17 @@
1481
1880
  },
1482
1881
  {
1483
1882
  "key": "DROP",
1484
- "name": "Request Confirmation",
1883
+ "name": "Drop",
1485
1884
  "payload": [
1486
1885
  {
1487
1886
  "name": "id",
1488
- "type": "string",
1489
- "required": true
1887
+ "type": "string"
1490
1888
  }
1491
1889
  ]
1492
1890
  },
1493
1891
  {
1494
1892
  "key": "CONFIRM_DROP",
1495
- "name": "Confirm"
1893
+ "name": "Confirm Drop"
1496
1894
  },
1497
1895
  {
1498
1896
  "key": "CANCEL",
@@ -1501,6 +1899,20 @@
1501
1899
  {
1502
1900
  "key": "CLOSE",
1503
1901
  "name": "Close"
1902
+ },
1903
+ {
1904
+ "key": "CollectibleLoaded",
1905
+ "name": "Collectible loaded"
1906
+ },
1907
+ {
1908
+ "key": "CollectibleLoadFailed",
1909
+ "name": "Collectible load failed",
1910
+ "payload": [
1911
+ {
1912
+ "name": "message",
1913
+ "type": "string"
1914
+ }
1915
+ ]
1504
1916
  }
1505
1917
  ],
1506
1918
  "transitions": [
@@ -1529,6 +1941,10 @@
1529
1941
  "fetch",
1530
1942
  "Collectible",
1531
1943
  {
1944
+ "emit": {
1945
+ "success": "CollectibleLoaded",
1946
+ "failure": "CollectibleLoadFailed"
1947
+ },
1532
1948
  "id": "@payload.id"
1533
1949
  }
1534
1950
  ],
@@ -1536,25 +1952,23 @@
1536
1952
  "render-ui",
1537
1953
  "modal",
1538
1954
  {
1539
- "type": "stack",
1540
- "direction": "vertical",
1541
1955
  "gap": "md",
1542
1956
  "children": [
1543
1957
  {
1544
1958
  "type": "stack",
1959
+ "align": "center",
1545
1960
  "direction": "horizontal",
1546
1961
  "gap": "sm",
1547
- "align": "center",
1548
1962
  "children": [
1549
1963
  {
1550
- "type": "icon",
1964
+ "size": "md",
1551
1965
  "name": "alert-triangle",
1552
- "size": "md"
1966
+ "type": "icon"
1553
1967
  },
1554
1968
  {
1969
+ "variant": "h3",
1555
1970
  "type": "typography",
1556
- "content": "Drop Collectible",
1557
- "variant": "h3"
1971
+ "content": "Drop Collectible"
1558
1972
  }
1559
1973
  ]
1560
1974
  },
@@ -1567,27 +1981,29 @@
1567
1981
  "message": "Are you sure you want to drop this collectible?"
1568
1982
  },
1569
1983
  {
1570
- "type": "stack",
1571
- "direction": "horizontal",
1572
1984
  "gap": "sm",
1985
+ "type": "stack",
1573
1986
  "justify": "end",
1987
+ "direction": "horizontal",
1574
1988
  "children": [
1575
1989
  {
1576
- "type": "button",
1577
1990
  "label": "Cancel",
1578
1991
  "event": "CANCEL",
1579
- "variant": "ghost"
1992
+ "variant": "ghost",
1993
+ "type": "button"
1580
1994
  },
1581
1995
  {
1582
- "type": "button",
1583
- "label": "Drop",
1584
1996
  "event": "CONFIRM_DROP",
1585
1997
  "variant": "danger",
1586
- "icon": "check"
1998
+ "icon": "check",
1999
+ "label": "Drop",
2000
+ "type": "button"
1587
2001
  }
1588
2002
  ]
1589
2003
  }
1590
- ]
2004
+ ],
2005
+ "type": "stack",
2006
+ "direction": "vertical"
1591
2007
  }
1592
2008
  ]
1593
2009
  ]
@@ -1608,6 +2024,13 @@
1608
2024
  "modal",
1609
2025
  null
1610
2026
  ],
2027
+ [
2028
+ "render-ui",
2029
+ "main",
2030
+ {
2031
+ "type": "box"
2032
+ }
2033
+ ],
1611
2034
  [
1612
2035
  "ref",
1613
2036
  "Collectible"
@@ -1624,6 +2047,13 @@
1624
2047
  "modal",
1625
2048
  null
1626
2049
  ],
2050
+ [
2051
+ "render-ui",
2052
+ "main",
2053
+ {
2054
+ "type": "box"
2055
+ }
2056
+ ],
1627
2057
  [
1628
2058
  "ref",
1629
2059
  "Collectible"
@@ -1640,6 +2070,13 @@
1640
2070
  "modal",
1641
2071
  null
1642
2072
  ],
2073
+ [
2074
+ "render-ui",
2075
+ "main",
2076
+ {
2077
+ "type": "box"
2078
+ }
2079
+ ],
1643
2080
  [
1644
2081
  "ref",
1645
2082
  "Collectible"
@@ -1647,12 +2084,13 @@
1647
2084
  ]
1648
2085
  }
1649
2086
  ]
1650
- }
2087
+ },
2088
+ "scope": "collection"
1651
2089
  }
1652
2090
  ],
1653
2091
  "pages": [
1654
2092
  {
1655
- "name": "CollectiblesPage",
2093
+ "name": "Collectibles",
1656
2094
  "path": "/collectibles",
1657
2095
  "traits": [
1658
2096
  {
@@ -1672,4 +2110,4 @@
1672
2110
  ]
1673
2111
  }
1674
2112
  ]
1675
- }
2113
+ }