dreamboard 0.1.21 → 0.1.23

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 (186) hide show
  1. package/dist/{chunk-EYYWGWTO.js → chunk-2RCUHMGL.js} +343 -1911
  2. package/dist/chunk-2RCUHMGL.js.map +1 -0
  3. package/dist/{chunk-MOVHYB6E.js → chunk-GN7232BY.js} +1025 -695
  4. package/dist/chunk-GN7232BY.js.map +1 -0
  5. package/dist/{chunk-BMYC6772.js → chunk-H3O43F5P.js} +9765 -3068
  6. package/dist/chunk-H3O43F5P.js.map +1 -0
  7. package/dist/dev-host/dev-api-proxy-plugin.ts +330 -0
  8. package/dist/dev-host/dev-diagnostics.ts +62 -0
  9. package/dist/dev-host/dev-fallback-stylesheet.ts +50 -0
  10. package/dist/dev-host/dev-host-controller.ts +686 -0
  11. package/dist/dev-host/dev-host-player-query.ts +17 -0
  12. package/dist/dev-host/dev-host-session-transport.ts +52 -0
  13. package/dist/dev-host/dev-host-storage.ts +56 -0
  14. package/dist/dev-host/dev-log-relay-plugin.ts +469 -0
  15. package/dist/dev-host/dev-runtime-config.ts +14 -0
  16. package/dist/dev-host/dev-runtime-platform.ts +419 -0
  17. package/dist/dev-host/dev-virtual-modules-plugin.ts +63 -0
  18. package/dist/dev-host/host-main.css +182 -0
  19. package/dist/dev-host/host-main.tsx +754 -0
  20. package/dist/dev-host/index.html +56 -0
  21. package/dist/dev-host/plugin-main.ts +55 -0
  22. package/dist/dev-host/plugin.html +24 -0
  23. package/dist/dev-host/start-dev-server.ts +138 -0
  24. package/dist/dev-host/virtual-modules.d.ts +27 -0
  25. package/dist/dist-FEPN3BDN.js +16543 -0
  26. package/dist/dist-FEPN3BDN.js.map +1 -0
  27. package/dist/{dist-WJRJNFLI.js → dist-FRURQI7Q.js} +4 -2
  28. package/dist/index.js +3 -3
  29. package/dist/internal.js +159 -124
  30. package/dist/internal.js.map +1 -1
  31. package/dist/runtime-packages/tailwind-config/shared-styles.css +146 -0
  32. package/dist/runtime-packages/ui/src/components/.gitkeep +0 -0
  33. package/dist/runtime-packages/ui/src/components/accordion.tsx +66 -0
  34. package/dist/runtime-packages/ui/src/components/ai-elements/actions.tsx +65 -0
  35. package/dist/runtime-packages/ui/src/components/ai-elements/artifact.tsx +147 -0
  36. package/dist/runtime-packages/ui/src/components/ai-elements/branch.tsx +215 -0
  37. package/dist/runtime-packages/ui/src/components/ai-elements/canvas.tsx +22 -0
  38. package/dist/runtime-packages/ui/src/components/ai-elements/chain-of-thought.tsx +228 -0
  39. package/dist/runtime-packages/ui/src/components/ai-elements/code-block.tsx +179 -0
  40. package/dist/runtime-packages/ui/src/components/ai-elements/confirmation.tsx +158 -0
  41. package/dist/runtime-packages/ui/src/components/ai-elements/connection.tsx +28 -0
  42. package/dist/runtime-packages/ui/src/components/ai-elements/context.tsx +408 -0
  43. package/dist/runtime-packages/ui/src/components/ai-elements/controls.tsx +18 -0
  44. package/dist/runtime-packages/ui/src/components/ai-elements/conversation.tsx +97 -0
  45. package/dist/runtime-packages/ui/src/components/ai-elements/edge.tsx +140 -0
  46. package/dist/runtime-packages/ui/src/components/ai-elements/image.tsx +24 -0
  47. package/dist/runtime-packages/ui/src/components/ai-elements/inline-citation.tsx +287 -0
  48. package/dist/runtime-packages/ui/src/components/ai-elements/loader.tsx +96 -0
  49. package/dist/runtime-packages/ui/src/components/ai-elements/message.tsx +463 -0
  50. package/dist/runtime-packages/ui/src/components/ai-elements/node.tsx +71 -0
  51. package/dist/runtime-packages/ui/src/components/ai-elements/open-in-chat.tsx +365 -0
  52. package/dist/runtime-packages/ui/src/components/ai-elements/panel.tsx +15 -0
  53. package/dist/runtime-packages/ui/src/components/ai-elements/plan.tsx +142 -0
  54. package/dist/runtime-packages/ui/src/components/ai-elements/prompt-input.tsx +1380 -0
  55. package/dist/runtime-packages/ui/src/components/ai-elements/queue.tsx +274 -0
  56. package/dist/runtime-packages/ui/src/components/ai-elements/reasoning.tsx +182 -0
  57. package/dist/runtime-packages/ui/src/components/ai-elements/response.tsx +22 -0
  58. package/dist/runtime-packages/ui/src/components/ai-elements/shimmer.tsx +64 -0
  59. package/dist/runtime-packages/ui/src/components/ai-elements/sources.tsx +77 -0
  60. package/dist/runtime-packages/ui/src/components/ai-elements/suggestion.tsx +53 -0
  61. package/dist/runtime-packages/ui/src/components/ai-elements/task.tsx +87 -0
  62. package/dist/runtime-packages/ui/src/components/ai-elements/tool.tsx +165 -0
  63. package/dist/runtime-packages/ui/src/components/ai-elements/toolbar.tsx +16 -0
  64. package/dist/runtime-packages/ui/src/components/ai-elements/web-preview.tsx +263 -0
  65. package/dist/runtime-packages/ui/src/components/alert-dialog.tsx +157 -0
  66. package/dist/runtime-packages/ui/src/components/alert.tsx +66 -0
  67. package/dist/runtime-packages/ui/src/components/avatar.tsx +53 -0
  68. package/dist/runtime-packages/ui/src/components/badge.tsx +46 -0
  69. package/dist/runtime-packages/ui/src/components/button-group.tsx +83 -0
  70. package/dist/runtime-packages/ui/src/components/button.tsx +65 -0
  71. package/dist/runtime-packages/ui/src/components/card.tsx +92 -0
  72. package/dist/runtime-packages/ui/src/components/carousel.tsx +241 -0
  73. package/dist/runtime-packages/ui/src/components/collapsible.tsx +33 -0
  74. package/dist/runtime-packages/ui/src/components/command.tsx +184 -0
  75. package/dist/runtime-packages/ui/src/components/context-menu.tsx +252 -0
  76. package/dist/runtime-packages/ui/src/components/counter.tsx +11 -0
  77. package/dist/runtime-packages/ui/src/components/dialog.tsx +146 -0
  78. package/dist/runtime-packages/ui/src/components/drawer.tsx +132 -0
  79. package/dist/runtime-packages/ui/src/components/dropdown-menu.tsx +257 -0
  80. package/dist/runtime-packages/ui/src/components/form.tsx +168 -0
  81. package/dist/runtime-packages/ui/src/components/header.tsx +13 -0
  82. package/dist/runtime-packages/ui/src/components/hover-card.tsx +44 -0
  83. package/dist/runtime-packages/ui/src/components/input-group.tsx +178 -0
  84. package/dist/runtime-packages/ui/src/components/input.tsx +21 -0
  85. package/dist/runtime-packages/ui/src/components/item.tsx +193 -0
  86. package/dist/runtime-packages/ui/src/components/label.tsx +24 -0
  87. package/dist/runtime-packages/ui/src/components/navigation-menu.tsx +168 -0
  88. package/dist/runtime-packages/ui/src/components/popover.tsx +55 -0
  89. package/dist/runtime-packages/ui/src/components/progress.tsx +31 -0
  90. package/dist/runtime-packages/ui/src/components/radio-group.tsx +45 -0
  91. package/dist/runtime-packages/ui/src/components/resizable.tsx +56 -0
  92. package/dist/runtime-packages/ui/src/components/scroll-area.tsx +58 -0
  93. package/dist/runtime-packages/ui/src/components/select.tsx +187 -0
  94. package/dist/runtime-packages/ui/src/components/separator.tsx +28 -0
  95. package/dist/runtime-packages/ui/src/components/skeleton.tsx +13 -0
  96. package/dist/runtime-packages/ui/src/components/sonner.tsx +25 -0
  97. package/dist/runtime-packages/ui/src/components/spinner.tsx +16 -0
  98. package/dist/runtime-packages/ui/src/components/switch.tsx +31 -0
  99. package/dist/runtime-packages/ui/src/components/table.tsx +137 -0
  100. package/dist/runtime-packages/ui/src/components/tabs.tsx +74 -0
  101. package/dist/runtime-packages/ui/src/components/textarea.tsx +23 -0
  102. package/dist/runtime-packages/ui/src/components/theme-provider.tsx +73 -0
  103. package/dist/runtime-packages/ui/src/components/tooltip.tsx +61 -0
  104. package/dist/runtime-packages/ui/src/components/ui/file-upload.tsx +195 -0
  105. package/dist/runtime-packages/ui/src/hooks/.gitkeep +0 -0
  106. package/dist/runtime-packages/ui/src/index.ts +68 -0
  107. package/dist/runtime-packages/ui/src/lib/utils.ts +6 -0
  108. package/dist/runtime-packages/ui-host-runtime/src/actor-principal.ts +68 -0
  109. package/dist/runtime-packages/ui-host-runtime/src/components/host-controls.tsx +359 -0
  110. package/dist/runtime-packages/ui-host-runtime/src/components/host-feedback-toaster.tsx +274 -0
  111. package/dist/runtime-packages/ui-host-runtime/src/components/host-feedback.tsx +214 -0
  112. package/dist/runtime-packages/ui-host-runtime/src/components/host-session-metadata.tsx +135 -0
  113. package/dist/runtime-packages/ui-host-runtime/src/components/index.ts +5 -0
  114. package/dist/runtime-packages/ui-host-runtime/src/components/perf-overlay.tsx +194 -0
  115. package/dist/runtime-packages/ui-host-runtime/src/host-controls.tsx +1 -0
  116. package/dist/runtime-packages/ui-host-runtime/src/host-feedback.tsx +1 -0
  117. package/dist/runtime-packages/ui-host-runtime/src/host-session-transport.ts +162 -0
  118. package/dist/runtime-packages/ui-host-runtime/src/index.ts +2 -0
  119. package/dist/runtime-packages/ui-host-runtime/src/logger.ts +11 -0
  120. package/dist/runtime-packages/ui-host-runtime/src/perf.ts +253 -0
  121. package/dist/runtime-packages/ui-host-runtime/src/plugin-bridge.ts +195 -0
  122. package/dist/runtime-packages/ui-host-runtime/src/plugin-health-check.ts +138 -0
  123. package/dist/runtime-packages/ui-host-runtime/src/plugin-messages.ts +159 -0
  124. package/dist/runtime-packages/ui-host-runtime/src/plugin-session-gateway.ts +524 -0
  125. package/dist/runtime-packages/ui-host-runtime/src/runtime/index.ts +12 -0
  126. package/dist/runtime-packages/ui-host-runtime/src/screenshot/projection-to-snapshot.ts +122 -0
  127. package/dist/runtime-packages/ui-host-runtime/src/screenshot/static-store-api.ts +26 -0
  128. package/dist/runtime-packages/ui-host-runtime/src/session-ingress-controller.ts +477 -0
  129. package/dist/runtime-packages/ui-host-runtime/src/session-ingress.ts +209 -0
  130. package/dist/runtime-packages/ui-host-runtime/src/session-live-runtime.ts +112 -0
  131. package/dist/runtime-packages/ui-host-runtime/src/session-model.ts +318 -0
  132. package/dist/runtime-packages/ui-host-runtime/src/session-projection.ts +211 -0
  133. package/dist/runtime-packages/ui-host-runtime/src/session-state-reducer.ts +814 -0
  134. package/dist/runtime-packages/ui-host-runtime/src/sse-manager.ts +334 -0
  135. package/dist/runtime-packages/ui-host-runtime/src/unified-session-store.ts +180 -0
  136. package/dist/scaffold/assets/static/app/tsconfig.framework.json +3 -1
  137. package/dist/scaffold/assets/static/ui/tsconfig.framework.json +7 -19
  138. package/package.json +52 -17
  139. package/skills/dreamboard/SKILL.md +41 -75
  140. package/LICENSE +0 -89
  141. package/NOTICE +0 -1
  142. package/dist/chunk-BMYC6772.js.map +0 -1
  143. package/dist/chunk-EYYWGWTO.js.map +0 -1
  144. package/dist/chunk-MOVHYB6E.js.map +0 -1
  145. package/dist/scaffold/assets/static/ui/App.tsx +0 -22
  146. package/dist/src-CUL7EGGG.js +0 -634
  147. package/dist/src-CUL7EGGG.js.map +0 -1
  148. package/skills/dreamboard/references/authoring-lifecycle.md +0 -102
  149. package/skills/dreamboard/references/board-surfaces.md +0 -36
  150. package/skills/dreamboard/references/board-topology.md +0 -443
  151. package/skills/dreamboard/references/boards-and-topology.md +0 -100
  152. package/skills/dreamboard/references/card-actions.md +0 -107
  153. package/skills/dreamboard/references/cli.md +0 -120
  154. package/skills/dreamboard/references/core-concepts.md +0 -514
  155. package/skills/dreamboard/references/custom-renderers.md +0 -26
  156. package/skills/dreamboard/references/derived-values.md +0 -55
  157. package/skills/dreamboard/references/effects.md +0 -111
  158. package/skills/dreamboard/references/game-contract.md +0 -89
  159. package/skills/dreamboard/references/game-definition.md +0 -89
  160. package/skills/dreamboard/references/game-shell.md +0 -80
  161. package/skills/dreamboard/references/hand-surfaces.md +0 -33
  162. package/skills/dreamboard/references/index.md +0 -112
  163. package/skills/dreamboard/references/inputs-and-targets.md +0 -160
  164. package/skills/dreamboard/references/interactions.md +0 -158
  165. package/skills/dreamboard/references/manifest-fields.md +0 -137
  166. package/skills/dreamboard/references/manifest.md +0 -81
  167. package/skills/dreamboard/references/package-surfaces.md +0 -69
  168. package/skills/dreamboard/references/phases.md +0 -145
  169. package/skills/dreamboard/references/prompts-and-choices.md +0 -55
  170. package/skills/dreamboard/references/quickstart.md +0 -71
  171. package/skills/dreamboard/references/rule-authoring.md +0 -144
  172. package/skills/dreamboard/references/setup-bootstrap.md +0 -78
  173. package/skills/dreamboard/references/stages-and-zones.md +0 -59
  174. package/skills/dreamboard/references/static-views.md +0 -67
  175. package/skills/dreamboard/references/table-queries-and-ops.md +0 -103
  176. package/skills/dreamboard/references/testing-bases.md +0 -147
  177. package/skills/dreamboard/references/testing-generated-contracts.md +0 -142
  178. package/skills/dreamboard/references/testing-runtime-assertions.md +0 -124
  179. package/skills/dreamboard/references/testing-scenarios.md +0 -148
  180. package/skills/dreamboard/references/testing-ui-tests.md +0 -174
  181. package/skills/dreamboard/references/testing.md +0 -161
  182. package/skills/dreamboard/references/ui-architecture.md +0 -137
  183. package/skills/dreamboard/references/ui-components.md +0 -34
  184. package/skills/dreamboard/references/views.md +0 -72
  185. package/skills/dreamboard/references/workspace-layout.md +0 -136
  186. /package/dist/{dist-WJRJNFLI.js.map → dist-FRURQI7Q.js.map} +0 -0
@@ -1,6 +1,6 @@
1
1
  ---
2
2
  name: dreamboard
3
- description: Guides development of multiplayer, rule-enforced, turn-based games on the Dreamboard.games platform. Use this skill when building a new Dreamboard game, implementing game logic with the reducer pattern, writing game rules or manifest, using the Dreamboard CLI, or iterating on game UI and tests.
3
+ description: Create multiplayer, rule-enforced, turn-based game on Dreamboard.games platform.
4
4
  metadata:
5
5
  short-description: Dreamboard Game Development Workflow
6
6
  tags: [dreamboard, cli, game-dev, board-game, turn-based, multiplayer]
@@ -17,91 +17,51 @@ compile, run, and test against the current reducer-native scaffold.
17
17
 
18
18
  - Dreamboard CLI installed and available as `dreamboard`
19
19
  Install with `npm install -g dreamboard`
20
- - Authenticated via `dreamboard auth status` or log in via `dreamboard login`
20
+ - Authenticated via `dreamboard login`
21
21
 
22
- ## New game workflow
23
-
24
- Copy this checklist and track your progress:
25
-
26
- ```
27
- New Game Development Progress:
28
- - [ ] Step 1: Author rule.md
29
- - [ ] Step 2: Author manifest.ts to define game topology
30
- - [ ] Step 3: Run `dreamboard sync` to update generated type-safe contracts
31
- - [ ] Step 4: Implement reducer contract, phases, interactions, and views in `app/`
32
- - [ ] Step 5: Keep reducer files organized by ownership: `game-contract.ts` for schemas, `game.ts` for assembly, phase `index.ts` files for `definePhase` registration, and concept files for reducer bodies
33
- - [ ] Step 6: Run `dreamboard compile` and fix any type errors
34
- - [ ] Step 7: Write bases and scenarios in `test/`, then run `dreamboard test generate` and `dreamboard test run`
35
- - [ ] Step 8: Implement the playable UI in `ui/App.tsx` — start from generated `PromptInbox`, `Interaction`, and `Zone` primitives before writing custom runtime plumbing (see [references/ui-architecture.md](references/ui-architecture.md))
36
- - [ ] Step 9: Verify end-to-end with `dreamboard dev`
37
- ```
38
-
39
- For the end-to-end authoring loop, start with [references/quickstart.md](references/quickstart.md) and [references/authoring-lifecycle.md](references/authoring-lifecycle.md).
22
+ ## Buliding Your First Game
23
+ See [tutorials/building-your-first-game.md](references/building-your-first-game.md)
40
24
 
41
25
  ## References
42
26
 
43
27
  - Quickstart:
44
28
  [references/quickstart.md](references/quickstart.md)
45
- - Workspace layout:
46
- [references/workspace-layout.md](references/workspace-layout.md)
47
- - Core concepts:
48
- [references/core-concepts.md](references/core-concepts.md)
29
+ - Tutorial:
30
+ [references/building-your-first-game.md](references/building-your-first-game.md)
49
31
  - CLI:
50
32
  [references/cli.md](references/cli.md)
51
33
  - Rules:
52
34
  [references/rule-authoring.md](references/rule-authoring.md)
53
35
  - Manifest:
54
- [references/manifest.md](references/manifest.md),
55
- [references/manifest-fields.md](references/manifest-fields.md)
56
- - Reducer authoring:
57
- [references/game-contract.md](references/game-contract.md),
58
- [references/game-definition.md](references/game-definition.md),
59
- [references/phases.md](references/phases.md),
60
- [references/interactions.md](references/interactions.md),
61
- [references/card-actions.md](references/card-actions.md),
62
- [references/effects.md](references/effects.md),
63
- [references/views.md](references/views.md)
64
- - Tiled Boards:
65
- [references/board-topology.md](references/board-topology.md)
66
- - UI:
67
- [references/ui-architecture.md](references/ui-architecture.md),
68
- [references/game-shell.md](references/game-shell.md),
69
- [references/board-surfaces.md](references/board-surfaces.md),
70
- [references/hand-surfaces.md](references/hand-surfaces.md),
71
- [references/prompts-and-choices.md](references/prompts-and-choices.md),
72
- [references/custom-renderers.md](references/custom-renderers.md),
73
- [references/ui-components.md](references/ui-components.md)
36
+ [references/manifest-authoring.md](references/manifest-authoring.md)
37
+ - Reducer:
38
+ [references/reducer.md](references/reducer.md)
39
+ - Game interface:
40
+ [references/game-interface.md](references/game-interface.md)
74
41
  - Testing:
75
- [references/testing.md](references/testing.md),
76
- [references/testing-bases.md](references/testing-bases.md),
77
- [references/testing-scenarios.md](references/testing-scenarios.md),
78
- [references/testing-runtime-assertions.md](references/testing-runtime-assertions.md),
79
- [references/testing-ui-tests.md](references/testing-ui-tests.md),
80
- [references/testing-generated-contracts.md](references/testing-generated-contracts.md)
42
+ [references/testing.md](references/testing.md)
81
43
 
82
44
  ## Current Scaffold
83
45
 
84
- A fresh `dreamboard new` workspace contains:
46
+ The current scaffold centers on these files:
85
47
 
86
48
  - authored source:
87
- `rule.md`, `manifest.ts`
49
+ `rule.md`, `manifest.json`
88
50
  - reducer:
89
- `app/game-contract.ts`, `app/game.ts`, `app/phases/setup.ts`,
90
- `app/setup-profiles.ts`, `app/reducer-support.ts`, `app/README.md`
51
+ `app/game-contract.ts`, `app/game.ts`, `app/phases/*.ts`,
52
+ `app/setup-profiles.ts`
91
53
  - UI:
92
- `ui/App.tsx`, usually built from generated `@dreamboard/ui-contract` primitives plus generic components from `@dreamboard/ui-sdk`
54
+ `ui/App.tsx`
93
55
  - tests:
94
- `test/bases/initial-turn.base.ts`, `test/testing-types.ts`
95
- _(scenarios are not scaffolded — create them in `test/scenarios/`)_
96
- - generated (do not edit):
97
- `shared/manifest-contract.ts`, `shared/generated/ui-contract.ts`
56
+ `test/bases/*.base.ts`, `test/scenarios/*.scenario.ts`,
57
+ `test/testing-types.ts`
98
58
 
99
59
  ## Command Flow
100
60
 
101
61
  Use the commands for different kinds of state:
102
62
 
103
63
  - `dreamboard sync`
104
- Upload local authored changes and advance the remote authored head. Run this after editing `rule.md`, `manifest.ts`, or authored source files that should be part of the next remote build. Re-running `sync` against the same authored content is safe; Dreamboard reuses already-uploaded source blobs and still refreshes framework-owned generated files. When `package.json` changes, `sync` also prepares workspace dependencies automatically.
64
+ Upload local authored changes and advance the remote authored head. Run this after editing `rule.md`, `manifest.json`, or authored source files that should be part of the next remote build.
105
65
  - `dreamboard compile`
106
66
  Compile the current remote authored head. Run this after `sync`, or re-run it after a failed compile when you have not made new authored edits.
107
67
  - `dreamboard pull`
@@ -113,36 +73,43 @@ Quick rule:
113
73
  - compile failed but you have not edited files since: `dreamboard compile` again
114
74
  - remote authored head moved: `dreamboard pull` first
115
75
 
76
+ ## Workflow
77
+
78
+ Use this order by default:
79
+
80
+ 1. Write or revise `rule.md`.
81
+ 2. Align `manifest.json` to the rules.
82
+ 3. Run `dreamboard sync`.
83
+ 4. Implement reducer state, phases, actions, and views in `app/`.
84
+ 5. Implement the playable UI in `ui/App.tsx`.
85
+ 6. Run `dreamboard compile`.
86
+ 7. Generate test artifacts with `dreamboard test generate`.
87
+ 8. Run scenarios with `dreamboard test run`.
88
+ 9. Validate the local runtime with `dreamboard run`.
89
+ 10. For agent-built games, run `dreamboard dev` and verify the browser UI before handoff. Use Playwright to open the dev host, check that the plugin iframe renders without console errors, and click a primary interaction such as selecting a playable hand card. Reducer scenarios alone are not enough when the game has an interactive UI.
90
+
116
91
  ## Guardrails
117
92
 
118
- - `manifest.ts` and `rule.md` are the source of truth for scaffolding.
119
- - Choose files by ownership before editing: schemas in `app/game-contract.ts`, `defineGame` wiring in `app/game.ts`, player projections in view files, and phase reducers in `app/phases/*`.
120
- - A single `app/phases/<phase>.ts` is fine while small. Once a phase has multiple action families, shared input helpers, card actions, or is roughly 250-300 lines, move to `app/phases/<phase>/index.ts` plus neighboring concept files such as `build.ts`, `trade.ts`, or `dev-cards.ts`.
121
- - Keep phase `index.ts` files as assembly: import interactions, register them with `definePhase`, and export the phase plus stable test-facing schemas.
122
- - Use `kind: "simultaneousPlayer"` for hidden concurrent choices. Declare `actors`, a single `submit` descriptor, and a phase-level `resolve` callback; do not hand-roll sealed choices in `hiddenState` unless the mechanic needs custom behavior outside the SDK barrier.
123
- - Keep `app/reducer-support.ts` small. Split real game rules into `app/rules/*` modules by domain instead of adding unrelated helpers to one catch-all file.
93
+ - `manifest.json` and `rule.md` are the source of truth for scaffolding.
124
94
  - Run `dreamboard sync` after authored changes to keep generated files and the remote authored head in sync.
125
- - Fresh `app/setup-profiles.ts` placeholders are framework-owned until you customize them. `dreamboard sync` refreshes empty placeholder entries to match manifest profile IDs, then preserves the file once you add real setup logic.
126
95
  - `dreamboard pull` reconciles authored divergence into the current workspace.
127
96
  - `dreamboard compile` is separate from authored sync; failed compiles do not mean the workspace needs a pull or another sync unless you changed authored files again.
128
97
  - Use `dreamboard status` to distinguish authored sync from compile health before deciding whether the next command should be `sync`, `compile`, or `pull`.
129
- - Re-run `dreamboard test generate` after runtime-shape changes in `manifest.ts` or `app/`.
98
+ - Re-run `dreamboard test generate` after runtime-shape changes in `manifest.json` or `app/`.
130
99
  - Keep reducer-owned UI data in views; do not reintroduce the old `shared/ui-args.ts` pattern in new scaffolds.
100
+ - When a game exposes clickable hands, markets, boards, or prompts, prove the same interaction works through `dreamboard dev` in a browser. A direct scenario submission can pass even when the rendered surface does not collect the input.
101
+ - For interactive card hands, render generated surfaces such as `handSurface.Hand` and `handSurface.Card` consistently. Do not swap a surface card for a raw `Card` or custom tile based on `me.canAct`; the surface primitive is responsible for disabling unavailable interactions.
131
102
 
132
103
  ## Editable Surface
133
104
 
134
105
  Edit:
135
106
 
136
107
  - `rule.md`
137
- - `manifest.ts`
108
+ - `manifest.json`
138
109
  - `app/game-contract.ts`
139
110
  - `app/game.ts`
140
111
  - `app/phases/*.ts`
141
- - `app/phases/*/*.ts`
142
- - `app/rules/*.ts` (when you split game-domain helpers)
143
112
  - `app/setup-profiles.ts`
144
- - `app/reducer-support.ts`
145
- - `app/*-view.ts` (view files you create, e.g. `app/player-view.ts`)
146
113
  - `ui/App.tsx`
147
114
  - `test/bases/*.base.ts`
148
115
  - `test/scenarios/*.scenario.ts`
@@ -155,8 +122,7 @@ Do not edit generated or framework-owned files such as:
155
122
  - `ui/index.tsx`
156
123
  - `test/generated/*`
157
124
 
158
- ## Official Documentation
159
-
125
+ ## Offical Documentation
160
126
  Visit https://dreamboard.games/docs
161
127
 
162
128
  ## Framework Feedback
package/LICENSE DELETED
@@ -1,89 +0,0 @@
1
- # PolyForm Shield License 1.0.0
2
-
3
- <https://polyformproject.org/licenses/shield/1.0.0>
4
-
5
- ## Acceptance
6
-
7
- In order to get any license under these terms, you must agree to them as both strict obligations and conditions to all your licenses.
8
-
9
- ## Copyright License
10
-
11
- The licensor grants you a copyright license for the software to do everything you might do with the software that would otherwise infringe the licensor's copyright in it for any permitted purpose. However, you may only distribute the software according to [Distribution License](#distribution-license) and make changes or new works based on the software according to [Changes and New Works License](#changes-and-new-works-license).
12
-
13
- ## Distribution License
14
-
15
- The licensor grants you an additional copyright license to distribute copies of the software. Your license to distribute covers distributing the software with changes and new works permitted by [Changes and New Works License](#changes-and-new-works-license).
16
-
17
- ## Notices
18
-
19
- You must ensure that anyone who gets a copy of any part of the software from you also gets a copy of these terms or the URL for them above, as well as copies of any plain-text lines beginning with `Required Notice:` that the licensor provided with the software. For example:
20
-
21
- > Required Notice: Copyright Yoyodyne, Inc. (http://example.com)
22
-
23
- ## Changes and New Works License
24
-
25
- The licensor grants you an additional copyright license to make changes and new works based on the software for any permitted purpose.
26
-
27
- ## Patent License
28
-
29
- The licensor grants you a patent license for the software that covers patent claims the licensor can license, or becomes able to license, that you would infringe by using the software.
30
-
31
- ## Noncompete
32
-
33
- Any purpose is a permitted purpose, except for providing any product that competes with the software or any product the licensor or any of its affiliates provides using the software.
34
-
35
- ## Competition
36
-
37
- Goods and services compete even when they provide functionality through different kinds of interfaces or for different technical platforms. Applications can compete with services, libraries with plugins, frameworks with development tools, and so on, even if they're written in different programming languages or for different computer architectures. Goods and services compete even when provided free of charge. If you market a product as a practical substitute for the software or another product, it definitely competes.
38
-
39
- ## New Products
40
-
41
- If you are using the software to provide a product that does not compete, but the licensor or any of its affiliates brings your product into competition by providing a new version of the software or another product using the software, you may continue using versions of the software available under these terms beforehand to provide your competing product, but not any later versions.
42
-
43
- ## Discontinued Products
44
-
45
- You may begin using the software to compete with a product or service that the licensor or any of its affiliates has stopped providing, unless the licensor includes a plain-text line beginning with `Licensor Line of Business:` with the software that mentions that line of business. For example:
46
-
47
- > Licensor Line of Business: YoyodyneCMS Content Management System (http://example.com/cms)
48
-
49
- ## Sales of Business
50
-
51
- If the licensor or any of its affiliates sells a line of business developing the software or using the software to provide a product, the buyer can also enforce [Noncompete](#noncompete) for that product.
52
-
53
- ## Fair Use
54
-
55
- You may have "fair use" rights for the software under the law. These terms do not limit them.
56
-
57
- ## No Other Rights
58
-
59
- These terms do not allow you to sublicense or transfer any of your licenses to anyone else, or prevent the licensor from granting licenses to anyone else. These terms do not imply any other licenses.
60
-
61
- ## Patent Defense
62
-
63
- If you make any written claim that the software infringes or contributes to infringement of any patent, your patent license for the software granted under these terms ends immediately. If your company makes such a claim, your patent license ends immediately for work on behalf of your company.
64
-
65
- ## Violations
66
-
67
- The first time you are notified in writing that you have violated any of these terms, or done anything with the software not covered by your licenses, your licenses can nonetheless continue if you come into full compliance with these terms, and take practical steps to correct past violations, within 32 days of receiving notice. Otherwise, all your licenses end immediately.
68
-
69
- ## No Liability
70
-
71
- ***As far as the law allows, the software comes as is, without any warranty or condition, and the licensor will not be liable to you for any damages arising out of these terms or the use or nature of the software, under any kind of legal claim.***
72
-
73
- ## Definitions
74
-
75
- The **licensor** is the individual or entity offering these terms, and the **software** is the software the licensor makes available under these terms.
76
-
77
- A **product** can be a good or service, or a combination of them.
78
-
79
- **You** refers to the individual or entity agreeing to these terms.
80
-
81
- **Your company** is any legal entity, sole proprietorship, or other kind of organization that you work for, plus all its affiliates.
82
-
83
- **Affiliates** means the other organizations than an organization has control over, is under the control of, or is under common control with.
84
-
85
- **Control** means ownership of substantially all the assets of an entity, or the power to direct its management and policies by vote, contract, or otherwise. Control can be direct or indirect.
86
-
87
- **Your licenses** are all the licenses granted to you for the software under these terms.
88
-
89
- **Use** means anything you do with the software requiring one of your licenses.
package/NOTICE DELETED
@@ -1 +0,0 @@
1
- Required Notice: Copyright Dreamboard Games.