@dreamboard-games/sdk 0.2.1-alpha.1 → 0.3.0-alpha.1

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 (372) hide show
  1. package/dist/{HandView-ncJIVLhN.d.ts → HandView-PYDmehVD.d.ts} +1 -1
  2. package/dist/{ResourceCounter-CTREyF73.d.ts → ResourceCounter-BTXklCEZ.d.ts} +1 -1
  3. package/dist/{ThemeProvider-BBMVT3KG.d.ts → ThemeProvider-DvMl17Ny.d.ts} +1 -1
  4. package/dist/{chunk-NKCRKGR2.js → chunk-3RQEICD3.js} +2 -2
  5. package/dist/{chunk-ZABVH7AO.js → chunk-ADYH6PVT.js} +1336 -1363
  6. package/dist/chunk-ADYH6PVT.js.map +1 -0
  7. package/dist/{chunk-PEI3FIL2.js → chunk-P7VMTJ5D.js} +2 -2
  8. package/dist/{chunk-PEI3FIL2.js.map → chunk-P7VMTJ5D.js.map} +1 -1
  9. package/dist/{chunk-WG4JQL3S.js → chunk-QZ6X4B5P.js} +1177 -1109
  10. package/dist/chunk-QZ6X4B5P.js.map +1 -0
  11. package/dist/{chunk-MZNVHMJ5.js → chunk-TXXLS3OI.js} +405 -309
  12. package/dist/chunk-TXXLS3OI.js.map +1 -0
  13. package/dist/{chunk-FDNZTDD6.js → chunk-W6SGFWXH.js} +48 -44
  14. package/dist/chunk-W6SGFWXH.js.map +1 -0
  15. package/dist/{chunk-MKXPVOUT.js → chunk-Y2AFYBMB.js} +48 -4
  16. package/dist/chunk-Y2AFYBMB.js.map +1 -0
  17. package/dist/{index-BwqPQtBu.d.ts → codegen.d.ts} +57 -565
  18. package/dist/{infrastructure/workspace-codegen.js → codegen.js} +3 -3
  19. package/dist/{components-BoiVSYqx.d.ts → components-DaIqi9QM.d.ts} +48 -37
  20. package/dist/{hex-board-view-1iAyJRFn.d.ts → hex-board-view-UCUjMALd.d.ts} +2 -2
  21. package/dist/{infrastructure/reducer-bundle-abi.d.ts → index.d-BGqVifr_.d.ts} +289 -10
  22. package/dist/index.js +1 -1
  23. package/dist/package-set.d.ts +2 -2
  24. package/dist/package-set.js +1 -1
  25. package/dist/primitive-props-BNHDkgd7.d.ts +16 -0
  26. package/dist/reducer-contract.d.ts +3 -0
  27. package/dist/{infrastructure/reducer-bundle-abi.js → reducer-contract.js} +4 -4
  28. package/dist/reducer.d.ts +185 -179
  29. package/dist/reducer.js +1363 -1372
  30. package/dist/reducer.js.map +1 -1
  31. package/dist/runtime/primitives.d.ts +9 -9
  32. package/dist/runtime/primitives.js +7 -7
  33. package/dist/runtime/runtime-api.d.ts +2 -0
  34. package/dist/runtime/runtime-api.js +1 -0
  35. package/dist/runtime/workspace-contract.d.ts +62 -17
  36. package/dist/runtime/workspace-contract.js +5 -6
  37. package/dist/{runtime-api-CPLm_XDG.d.ts → runtime-api-tGL3ArsB.d.ts} +103 -4
  38. package/dist/runtime.d.ts +11 -57
  39. package/dist/runtime.js +487 -8
  40. package/dist/runtime.js.map +1 -1
  41. package/dist/testing.d.ts +4 -4
  42. package/dist/testing.js.map +1 -1
  43. package/dist/types.d.ts +1531 -85
  44. package/dist/types.js +1 -3
  45. package/dist/types.js.map +1 -1
  46. package/dist/ui/components.d.ts +7 -8
  47. package/dist/ui/components.js +1 -1
  48. package/dist/ui/defaults.d.ts +1 -1
  49. package/dist/ui/{types/player-state.d.ts → player-state.d.ts} +2 -2
  50. package/dist/{ui-contract-rzKBwOLC.d.ts → ui-contract-SctM4ibF.d.ts} +155 -150
  51. package/dist/ui.d.ts +10 -11
  52. package/dist/ui.js +2 -2
  53. package/package.json +30 -75
  54. package/dist/bundle-CDd5FKeD.d.ts +0 -283
  55. package/dist/cards-Sl3b40Mv.d.ts +0 -13
  56. package/dist/chunk-326PGVAA.js +0 -34
  57. package/dist/chunk-326PGVAA.js.map +0 -1
  58. package/dist/chunk-FDNZTDD6.js.map +0 -1
  59. package/dist/chunk-I46YJSOD.js +0 -1
  60. package/dist/chunk-MKXPVOUT.js.map +0 -1
  61. package/dist/chunk-MZNVHMJ5.js.map +0 -1
  62. package/dist/chunk-T52J5RMF.js +0 -1
  63. package/dist/chunk-WG4JQL3S.js.map +0 -1
  64. package/dist/chunk-XV6D3ET4.js +0 -485
  65. package/dist/chunk-XV6D3ET4.js.map +0 -1
  66. package/dist/chunk-ZABVH7AO.js.map +0 -1
  67. package/dist/generated/runtime/primitives.d.ts +0 -13
  68. package/dist/generated/runtime/primitives.js +0 -181
  69. package/dist/generated/runtime/primitives.js.map +0 -1
  70. package/dist/generated/runtime-api.d.ts +0 -3
  71. package/dist/generated/runtime-api.js +0 -2
  72. package/dist/generated/runtime.d.ts +0 -15
  73. package/dist/generated/runtime.js +0 -19
  74. package/dist/generated/runtime.js.map +0 -1
  75. package/dist/generated/workspace-contract.d.ts +0 -15
  76. package/dist/generated/workspace-contract.js +0 -15
  77. package/dist/generated/workspace-contract.js.map +0 -1
  78. package/dist/infrastructure/reducer-bundle-abi.js.map +0 -1
  79. package/dist/infrastructure/workspace-codegen.d.ts +0 -53
  80. package/dist/infrastructure/workspace-codegen.js.map +0 -1
  81. package/dist/manifest-contract-BNHVGFtU.d.ts +0 -9
  82. package/dist/primitive-props-DpKs-GCr.d.ts +0 -11
  83. package/dist/runtime/types/runtime-api.d.ts +0 -1
  84. package/dist/runtime/types/runtime-api.js +0 -2
  85. package/dist/runtime/types/runtime-api.js.map +0 -1
  86. package/dist/runtime-api-3dshj6kK.d.ts +0 -101
  87. package/dist/slots-1GPGihk8.d.ts +0 -8
  88. package/src/browser-interaction/attributes.ts +0 -211
  89. package/src/browser-interaction/canonical.ts +0 -77
  90. package/src/browser-interaction/constants.ts +0 -77
  91. package/src/browser-interaction/effects.ts +0 -176
  92. package/src/browser-interaction/index.ts +0 -111
  93. package/src/browser-interaction/normalize.ts +0 -997
  94. package/src/browser-interaction/registry.ts +0 -70
  95. package/src/browser-interaction/resolve.ts +0 -596
  96. package/src/browser-interaction/schemas.ts +0 -152
  97. package/src/browser-interaction/types.ts +0 -304
  98. package/src/browser-interaction.ts +0 -1
  99. package/src/generated/reducer-contract/builders.ts +0 -90
  100. package/src/generated/reducer-contract/version.ts +0 -9
  101. package/src/generated/reducer-contract/wire.ts +0 -100
  102. package/src/generated/reducer-contract/zod.ts +0 -103
  103. package/src/generated/runtime/primitives.ts +0 -2
  104. package/src/generated/runtime-api.ts +0 -5
  105. package/src/generated/runtime.ts +0 -35
  106. package/src/generated/workspace-contract.ts +0 -2
  107. package/src/index.ts +0 -7
  108. package/src/infrastructure/reducer-bundle-abi.ts +0 -8
  109. package/src/infrastructure/reducer-contract/bundle.ts +0 -37
  110. package/src/infrastructure/workspace-codegen/hex-geometry.ts +0 -69
  111. package/src/infrastructure/workspace-codegen/index.ts +0 -64
  112. package/src/infrastructure/workspace-codegen/manifest-contract.ts +0 -6632
  113. package/src/infrastructure/workspace-codegen/manifest-validation.ts +0 -795
  114. package/src/infrastructure/workspace-codegen/ownership.ts +0 -131
  115. package/src/infrastructure/workspace-codegen/preset-card-sets.ts +0 -169
  116. package/src/infrastructure/workspace-codegen/seeds.ts +0 -1705
  117. package/src/infrastructure/workspace-codegen.ts +0 -1
  118. package/src/package-set.ts +0 -19
  119. package/src/reducer/authoring/contract.ts +0 -157
  120. package/src/reducer/authoring/effect.ts +0 -224
  121. package/src/reducer/authoring/game.ts +0 -23
  122. package/src/reducer/authoring/interaction.ts +0 -98
  123. package/src/reducer/authoring/phase.ts +0 -300
  124. package/src/reducer/authoring/types.ts +0 -70
  125. package/src/reducer/authoring/validation.ts +0 -382
  126. package/src/reducer/authoring/view-stage.ts +0 -68
  127. package/src/reducer/authoring.ts +0 -29
  128. package/src/reducer/bundle/ingress-bundle.ts +0 -491
  129. package/src/reducer/bundle/trusted/engine-instruction-resolver.ts +0 -254
  130. package/src/reducer/bundle/trusted/flow-instruction-resolver.ts +0 -73
  131. package/src/reducer/bundle/trusted/instruction-runner.ts +0 -414
  132. package/src/reducer/bundle/trusted/interaction-authorization.ts +0 -137
  133. package/src/reducer/bundle/trusted/interaction-collectors.ts +0 -859
  134. package/src/reducer/bundle/trusted/interaction-decision.ts +0 -747
  135. package/src/reducer/bundle/trusted/interaction-resolver.ts +0 -95
  136. package/src/reducer/bundle/trusted/interaction-types.ts +0 -174
  137. package/src/reducer/bundle/trusted/lifecycle-runner.ts +0 -427
  138. package/src/reducer/bundle/trusted/projection-builder.ts +0 -680
  139. package/src/reducer/bundle/trusted/projection-context.ts +0 -39
  140. package/src/reducer/bundle/trusted/rng-sampler.ts +0 -150
  141. package/src/reducer/bundle/trusted/runtime-registry.ts +0 -120
  142. package/src/reducer/bundle/trusted/runtime-scope.ts +0 -336
  143. package/src/reducer/bundle/trusted/simultaneous-player.ts +0 -97
  144. package/src/reducer/bundle/trusted/stage-resolver.ts +0 -87
  145. package/src/reducer/bundle/trusted/static-projection.ts +0 -116
  146. package/src/reducer/bundle/trusted/trusted-runtime-args.ts +0 -97
  147. package/src/reducer/bundle/trusted/trusted-runtime-result.ts +0 -39
  148. package/src/reducer/bundle/trusted/trusted-setup-profiles.ts +0 -43
  149. package/src/reducer/bundle/trusted/trusted-state-codec.ts +0 -48
  150. package/src/reducer/bundle/trusted-bundle.ts +0 -97
  151. package/src/reducer/bundle/types.ts +0 -171
  152. package/src/reducer/bundle.ts +0 -2
  153. package/src/reducer/client-param-schemas.ts +0 -57
  154. package/src/reducer/compose.ts +0 -34
  155. package/src/reducer/core/runtime-input.ts +0 -30
  156. package/src/reducer/core/runtime-instruction.ts +0 -59
  157. package/src/reducer/core/types.ts +0 -62
  158. package/src/reducer/definition-index.ts +0 -277
  159. package/src/reducer/derived.ts +0 -106
  160. package/src/reducer/effects.ts +0 -92
  161. package/src/reducer/engine/runtime-instruction-engine.ts +0 -155
  162. package/src/reducer/ingress/decode-runtime-input.ts +0 -7
  163. package/src/reducer/ingress/decode-session-state.ts +0 -9
  164. package/src/reducer/ingress/encode-session-state.ts +0 -6
  165. package/src/reducer/ingress/input-codec.ts +0 -18
  166. package/src/reducer/ingress/phase-schemas.ts +0 -62
  167. package/src/reducer/ingress/raw-types.ts +0 -107
  168. package/src/reducer/ingress/runtime-codec.ts +0 -14
  169. package/src/reducer/ingress/runtime-payload.ts +0 -13
  170. package/src/reducer/ingress/session-codec.ts +0 -392
  171. package/src/reducer/ingress/types.ts +0 -6
  172. package/src/reducer/inputs/boardInput.ts +0 -217
  173. package/src/reducer/inputs/boardTarget.ts +0 -190
  174. package/src/reducer/inputs/cardInput.ts +0 -86
  175. package/src/reducer/inputs/cardTarget.ts +0 -101
  176. package/src/reducer/inputs/choiceTarget.ts +0 -104
  177. package/src/reducer/inputs/defineInputs.ts +0 -71
  178. package/src/reducer/inputs/formInput.ts +0 -809
  179. package/src/reducer/inputs/many.ts +0 -120
  180. package/src/reducer/inputs/promptInput.ts +0 -87
  181. package/src/reducer/inputs/rngInput.ts +0 -58
  182. package/src/reducer/inputs/targetRule.ts +0 -123
  183. package/src/reducer/inputs.ts +0 -41
  184. package/src/reducer/model/definition.ts +0 -1072
  185. package/src/reducer/model/extract.ts +0 -745
  186. package/src/reducer/model/manifest.ts +0 -570
  187. package/src/reducer/model/queries.ts +0 -641
  188. package/src/reducer/model/runtime.ts +0 -264
  189. package/src/reducer/model/spec.ts +0 -1386
  190. package/src/reducer/model/table.ts +0 -260
  191. package/src/reducer/model.ts +0 -7
  192. package/src/reducer/ops.ts +0 -1034
  193. package/src/reducer/parse-utils.ts +0 -28
  194. package/src/reducer/per-player.ts +0 -422
  195. package/src/reducer/rng.ts +0 -69
  196. package/src/reducer/schema-helpers.ts +0 -185
  197. package/src/reducer/setup-bootstrap-helpers.ts +0 -171
  198. package/src/reducer/setup-bootstrap.ts +0 -481
  199. package/src/reducer/table-ops.ts +0 -2671
  200. package/src/reducer/table-queries.ts +0 -372
  201. package/src/reducer/transaction.ts +0 -120
  202. package/src/reducer.ts +0 -314
  203. package/src/runtime/primitives.ts +0 -1
  204. package/src/runtime/types/runtime-api.ts +0 -1
  205. package/src/runtime/workspace-contract.ts +0 -32
  206. package/src/runtime-internal/components/InteractionForm.tsx +0 -1647
  207. package/src/runtime-internal/components/PluginRuntime.tsx +0 -105
  208. package/src/runtime-internal/components/board/target-layer.ts +0 -72
  209. package/src/runtime-internal/context/ClientParamSchemaContext.tsx +0 -44
  210. package/src/runtime-internal/context/InteractionDraftContext.tsx +0 -279
  211. package/src/runtime-internal/context/PluginSessionContext.tsx +0 -47
  212. package/src/runtime-internal/context/PluginStateContext.tsx +0 -303
  213. package/src/runtime-internal/context/RuntimeContext.tsx +0 -96
  214. package/src/runtime-internal/defaults/components.tsx +0 -409
  215. package/src/runtime-internal/defaults/index.ts +0 -11
  216. package/src/runtime-internal/errors/ValidationError.ts +0 -29
  217. package/src/runtime-internal/hooks/useActivePlayers.ts +0 -33
  218. package/src/runtime-internal/hooks/useBoardInteractions.ts +0 -727
  219. package/src/runtime-internal/hooks/useGameSelector.ts +0 -105
  220. package/src/runtime-internal/hooks/useGameView.ts +0 -9
  221. package/src/runtime-internal/hooks/useInteractionByKey.ts +0 -354
  222. package/src/runtime-internal/hooks/useInteractionHandle.ts +0 -438
  223. package/src/runtime-internal/hooks/useIsMyTurn.ts +0 -20
  224. package/src/runtime-internal/hooks/useLobby.ts +0 -76
  225. package/src/runtime-internal/hooks/useMe.ts +0 -48
  226. package/src/runtime-internal/hooks/usePlayerInfo.ts +0 -28
  227. package/src/runtime-internal/hooks/usePlayerTurnOrder.ts +0 -23
  228. package/src/runtime-internal/hooks/usePluginRuntime.ts +0 -147
  229. package/src/runtime-internal/hooks/useSeatInbox.ts +0 -61
  230. package/src/runtime-internal/hooks/useSimultaneousPhase.ts +0 -10
  231. package/src/runtime-internal/index.ts +0 -42
  232. package/src/runtime-internal/internal.ts +0 -43
  233. package/src/runtime-internal/plugin-styles.css +0 -250
  234. package/src/runtime-internal/primitives/board.tsx +0 -530
  235. package/src/runtime-internal/primitives/dialog-lifecycle.ts +0 -58
  236. package/src/runtime-internal/primitives/dice.tsx +0 -79
  237. package/src/runtime-internal/primitives/game-ui-provider.tsx +0 -35
  238. package/src/runtime-internal/primitives/game.tsx +0 -387
  239. package/src/runtime-internal/primitives/hand-intent-adapter.ts +0 -147
  240. package/src/runtime-internal/primitives/hand-surface.tsx +0 -594
  241. package/src/runtime-internal/primitives/index.ts +0 -196
  242. package/src/runtime-internal/primitives/interaction-form-binding.tsx +0 -56
  243. package/src/runtime-internal/primitives/interaction-submit.ts +0 -90
  244. package/src/runtime-internal/primitives/interaction.tsx +0 -1146
  245. package/src/runtime-internal/primitives/phase.tsx +0 -43
  246. package/src/runtime-internal/primitives/player-roster.tsx +0 -302
  247. package/src/runtime-internal/primitives/primitive-props.tsx +0 -101
  248. package/src/runtime-internal/primitives/prompt.tsx +0 -255
  249. package/src/runtime-internal/primitives/ui.tsx +0 -60
  250. package/src/runtime-internal/primitives/zone.tsx +0 -791
  251. package/src/runtime-internal/reducer.ts +0 -30
  252. package/src/runtime-internal/runtime/createPluginRuntimeAPI.ts +0 -605
  253. package/src/runtime-internal/types/plugin-state.ts +0 -514
  254. package/src/runtime-internal/types/reducer-state.ts +0 -24
  255. package/src/runtime-internal/types/runtime-api.ts +0 -114
  256. package/src/runtime-internal/ui-contract.ts +0 -519
  257. package/src/runtime-internal/utils/browser-interaction-effects.ts +0 -240
  258. package/src/runtime-internal/utils/card-intent-adapter.ts +0 -546
  259. package/src/runtime-internal/utils/interaction-draft-digest.ts +0 -252
  260. package/src/runtime-internal/utils/interaction-inputs.ts +0 -492
  261. package/src/runtime-internal/utils/interaction-labels.ts +0 -23
  262. package/src/runtime-internal/utils/interaction-router.ts +0 -273
  263. package/src/runtime-internal/utils/interaction-status.ts +0 -74
  264. package/src/runtime-internal/utils/semantic-projection-digest.ts +0 -407
  265. package/src/runtime-internal/workspace-contract.ts +0 -1170
  266. package/src/runtime.ts +0 -34
  267. package/src/testing/create-expect-api.ts +0 -352
  268. package/src/testing/create-test-runtime.ts +0 -381
  269. package/src/testing/definitions.ts +0 -127
  270. package/src/testing/index.ts +0 -3
  271. package/src/testing.ts +0 -1
  272. package/src/type-stubs/manifest-contract.d.ts +0 -42
  273. package/src/type-stubs/manifest-contract.js +0 -72
  274. package/src/type-stubs/ui-contract.d.ts +0 -5
  275. package/src/type-stubs/ui-contract.js +0 -1
  276. package/src/types/authoring-card-properties.type-test.ts +0 -266
  277. package/src/types/authoring.ts +0 -1282
  278. package/src/types/cards.ts +0 -19
  279. package/src/types/contracts.ts +0 -1550
  280. package/src/types/generated-helpers.ts +0 -35
  281. package/src/types/index.ts +0 -147
  282. package/src/types/slots.ts +0 -11
  283. package/src/types.ts +0 -1
  284. package/src/ui/components/ActionButton.tsx +0 -97
  285. package/src/ui/components/ActionPanel.tsx +0 -315
  286. package/src/ui/components/Card.tsx +0 -378
  287. package/src/ui/components/CardDragSurface.tsx +0 -1076
  288. package/src/ui/components/ChromeSuppressionContext.tsx +0 -70
  289. package/src/ui/components/CostDisplay.tsx +0 -145
  290. package/src/ui/components/DiceRoller.tsx +0 -581
  291. package/src/ui/components/Drawer.tsx +0 -180
  292. package/src/ui/components/ErrorBoundary.tsx +0 -275
  293. package/src/ui/components/GameEndDisplay.tsx +0 -398
  294. package/src/ui/components/GameSkeleton.tsx +0 -260
  295. package/src/ui/components/Hand.tsx +0 -468
  296. package/src/ui/components/HandDock.tsx +0 -299
  297. package/src/ui/components/HandView.tsx +0 -441
  298. package/src/ui/components/MobileHandTray.tsx +0 -381
  299. package/src/ui/components/MoreActions.tsx +0 -143
  300. package/src/ui/components/PhaseIndicator.tsx +0 -341
  301. package/src/ui/components/PlayArea.tsx +0 -146
  302. package/src/ui/components/PrimaryActionButton.tsx +0 -336
  303. package/src/ui/components/PrimaryButton.tsx +0 -45
  304. package/src/ui/components/ResourceCounter.tsx +0 -270
  305. package/src/ui/components/StagingZone.tsx +0 -134
  306. package/src/ui/components/ThemedButton.tsx +0 -113
  307. package/src/ui/components/Toast.tsx +0 -264
  308. package/src/ui/components/board/HexGrid.tsx +0 -1297
  309. package/src/ui/components/board/NetworkGraph.tsx +0 -476
  310. package/src/ui/components/board/SlotSystem.tsx +0 -388
  311. package/src/ui/components/board/SquareGrid.tsx +0 -1165
  312. package/src/ui/components/board/TrackBoard.tsx +0 -496
  313. package/src/ui/components/board/ZoneMap.tsx +0 -448
  314. package/src/ui/components/board/hex-board-view.ts +0 -123
  315. package/src/ui/components/board/index.ts +0 -142
  316. package/src/ui/components/board/interaction-accessibility.ts +0 -21
  317. package/src/ui/components/board/target-layer.ts +0 -67
  318. package/src/ui/components/card-render-content.type-test.ts +0 -27
  319. package/src/ui/components/hand-layout-math.ts +0 -163
  320. package/src/ui/components/hand-pointer-engine.ts +0 -413
  321. package/src/ui/components/index.ts +0 -245
  322. package/src/ui/components.ts +0 -1
  323. package/src/ui/defaults/components.tsx +0 -106
  324. package/src/ui/defaults/index.ts +0 -8
  325. package/src/ui/defaults.ts +0 -1
  326. package/src/ui/errors/ValidationError.ts +0 -29
  327. package/src/ui/helpers/cards.ts +0 -19
  328. package/src/ui/helpers/track-board.ts +0 -211
  329. package/src/ui/hooks/useBoardTopology.ts +0 -316
  330. package/src/ui/hooks/useCards.ts +0 -10
  331. package/src/ui/hooks/useHandCardPointer.ts +0 -381
  332. package/src/ui/hooks/useHandLayout.ts +0 -378
  333. package/src/ui/hooks/useHandPresentation.ts +0 -121
  334. package/src/ui/hooks/useHexBoard.ts +0 -74
  335. package/src/ui/hooks/useHexGrid.ts +0 -185
  336. package/src/ui/hooks/useIsMobile.ts +0 -35
  337. package/src/ui/hooks/usePanZoom.ts +0 -278
  338. package/src/ui/hooks/useSquareBoard.ts +0 -124
  339. package/src/ui/hooks/useSquareGrid.ts +0 -328
  340. package/src/ui/index.ts +0 -98
  341. package/src/ui/internal/ui/alert.tsx +0 -51
  342. package/src/ui/internal/ui/button.tsx +0 -58
  343. package/src/ui/internal/ui/dialog.tsx +0 -134
  344. package/src/ui/internal/ui/input.tsx +0 -21
  345. package/src/ui/internal/ui/label.tsx +0 -21
  346. package/src/ui/internal/ui/select.tsx +0 -129
  347. package/src/ui/internal/ui/tooltip.tsx +0 -54
  348. package/src/ui/internal/ui/utils.ts +0 -5
  349. package/src/ui/plugin-styles.css +0 -250
  350. package/src/ui/primitives/dialog-lifecycle.ts +0 -58
  351. package/src/ui/primitives/dice.tsx +0 -79
  352. package/src/ui/primitives/primitive-props.tsx +0 -101
  353. package/src/ui/theme/ThemeProvider.tsx +0 -252
  354. package/src/ui/theme/board.ts +0 -61
  355. package/src/ui/theme/css-vars.ts +0 -105
  356. package/src/ui/theme/derive.ts +0 -240
  357. package/src/ui/theme/index.ts +0 -61
  358. package/src/ui/theme/presets/arcade.ts +0 -261
  359. package/src/ui/theme/presets/studio.ts +0 -261
  360. package/src/ui/theme/presets/tabletop.ts +0 -266
  361. package/src/ui/theme/tokens.ts +0 -392
  362. package/src/ui/types/hex-color.ts +0 -20
  363. package/src/ui/types/player-state.ts +0 -463
  364. package/src/ui/types/tiled-board.ts +0 -785
  365. package/src/ui/types/visual-state.ts +0 -137
  366. package/src/ui.ts +0 -1
  367. /package/dist/{chunk-NKCRKGR2.js.map → chunk-3RQEICD3.js.map} +0 -0
  368. /package/dist/{chunk-I46YJSOD.js.map → codegen.js.map} +0 -0
  369. /package/dist/{chunk-T52J5RMF.js.map → reducer-contract.js.map} +0 -0
  370. /package/dist/{generated → runtime}/runtime-api.js.map +0 -0
  371. /package/dist/ui/{types/player-state.js → player-state.js} +0 -0
  372. /package/dist/ui/{types/player-state.js.map → player-state.js.map} +0 -0
@@ -1,1550 +0,0 @@
1
- // Public SDK contract DTOs extracted from Dreamboard's public API schema.
2
- // This package owns these types for SDK consumers; backend API clients are published separately.
3
-
4
- /**
5
- * Supported player-count metadata for the game
6
- */
7
- export type PlayersDefinition = {
8
- minPlayers: number;
9
- maxPlayers: number;
10
- optimalPlayers?: number;
11
- };
12
-
13
- export type PresetCardSetDefinition = {
14
- /**
15
- * Unique local identifier for the authored card set
16
- */
17
- id: string;
18
- /**
19
- * Built-in preset card-set selector
20
- */
21
- presetId: string;
22
- /**
23
- * Display name of the card set
24
- */
25
- name: string;
26
- /**
27
- * Type of card set source
28
- */
29
- type: 'preset';
30
- };
31
-
32
- /**
33
- * Arbitrary authored JSON value.
34
- */
35
- export type JsonValue = string | number | boolean | null | Array<JsonValue> | {
36
- [key: string]: JsonValue;
37
- };
38
-
39
- export type PropertySchema = {
40
- /**
41
- * The data type of the property.
42
- */
43
- type: 'string' | 'integer' | 'number' | 'boolean' | 'zoneId' | 'cardId' | 'playerId' | 'boardId' | 'edgeId' | 'vertexId' | 'spaceId' | 'pieceId' | 'dieId' | 'resourceId' | 'array' | 'object' | 'record' | 'enum';
44
- /**
45
- * Optional description of the property's purpose and usage.
46
- */
47
- description?: string;
48
- /**
49
- * Whether an object property may be omitted.
50
- */
51
- optional?: boolean;
52
- /**
53
- * Whether the value may be null.
54
- */
55
- nullable?: boolean;
56
- /**
57
- * Optional authored default value for this property. When present, omitted
58
- * seed values materialize to the default and generated TypeScript treats
59
- * the property as present even if `optional: true` is also set.
60
- *
61
- */
62
- default?: JsonValue;
63
- /**
64
- * For array types, the schema of the array items. Required if type is 'array'.
65
- */
66
- items?: PropertySchema;
67
- /**
68
- * For object types, the schema of the object's properties. Required if type is 'object'.
69
- */
70
- properties?: {
71
- [key: string]: PropertySchema;
72
- };
73
- /**
74
- * For enum types, the list of allowed string values. Required if type is 'enum'.
75
- */
76
- enums?: Array<string>;
77
- /**
78
- * For record types, the schema of the record's values. Required if type is 'record'.
79
- */
80
- values?: PropertySchema;
81
- };
82
-
83
- export type ObjectSchema = {
84
- /**
85
- * Map of property names to their schemas. Type is always 'object' and all properties are required.
86
- */
87
- properties: {
88
- [key: string]: PropertySchema;
89
- };
90
- };
91
-
92
- export type CardPropertySchemaVariants = {
93
- /**
94
- * Property schemas present on every card-type variant.
95
- */
96
- shared?: {
97
- [key: string]: PropertySchema;
98
- };
99
- /**
100
- * Property schema for each card type in this manual card set.
101
- */
102
- variants: {
103
- [key: string]: ObjectSchema;
104
- };
105
- };
106
-
107
- export type CardPropertySchema = ObjectSchema | CardPropertySchemaVariants;
108
-
109
- export type DetachedHomeSpec = {
110
- type: 'detached';
111
- };
112
-
113
- export type ZoneHomeSpec = {
114
- type: 'zone';
115
- zoneId: string;
116
- };
117
-
118
- export type SpaceHomeSpec = {
119
- type: 'space';
120
- boardId: string;
121
- spaceId: string;
122
- };
123
-
124
- export type ContainerHomeSpec = {
125
- type: 'container';
126
- boardId: string;
127
- containerId: string;
128
- };
129
-
130
- /**
131
- * Tiled board edge identified by the spaces that border it
132
- */
133
- export type BoardEdgeRef = {
134
- spaces: Array<string>;
135
- };
136
-
137
- export type EdgeHomeSpec = {
138
- type: 'edge';
139
- boardId: string;
140
- ref: BoardEdgeRef;
141
- };
142
-
143
- /**
144
- * Tiled board vertex identified by the spaces that touch it
145
- */
146
- export type BoardVertexRef = {
147
- spaces: Array<string>;
148
- };
149
-
150
- export type VertexHomeSpec = {
151
- type: 'vertex';
152
- boardId: string;
153
- ref: BoardVertexRef;
154
- };
155
-
156
- export type PieceSlotHostRef = {
157
- kind: 'piece';
158
- id: string;
159
- };
160
-
161
- export type DieSlotHostRef = {
162
- kind: 'die';
163
- id: string;
164
- };
165
-
166
- export type SlotHostRef = ({
167
- kind: 'piece';
168
- } & PieceSlotHostRef) | ({
169
- kind: 'die';
170
- } & DieSlotHostRef);
171
-
172
- export type SlotHomeSpec = {
173
- type: 'slot';
174
- host: SlotHostRef;
175
- slotId: string;
176
- };
177
-
178
- export type ComponentHomeSpec = ({
179
- type: 'detached';
180
- } & DetachedHomeSpec) | ({
181
- type: 'zone';
182
- } & ZoneHomeSpec) | ({
183
- type: 'space';
184
- } & SpaceHomeSpec) | ({
185
- type: 'container';
186
- } & ContainerHomeSpec) | ({
187
- type: 'edge';
188
- } & EdgeHomeSpec) | ({
189
- type: 'vertex';
190
- } & VertexHomeSpec) | ({
191
- type: 'slot';
192
- } & SlotHomeSpec);
193
-
194
- /**
195
- * Default authored visibility for a component instance
196
- */
197
- export type ComponentVisibilitySpec = {
198
- faceUp?: boolean;
199
- /**
200
- * When omitted, visible to all players
201
- */
202
- visibleTo?: Array<string>;
203
- };
204
-
205
- export type BoardCard = {
206
- /**
207
- * Card type identifier used to generate runtime CardIds. When count > 1, runtime IDs are generated as '{type}-1', '{type}-2', etc.
208
- */
209
- type: string;
210
- /**
211
- * Display name of the card
212
- */
213
- name: string;
214
- /**
215
- * URL to the card's image
216
- */
217
- imageUrl?: string;
218
- /**
219
- * Text content on the card
220
- */
221
- text?: string;
222
- /**
223
- * Number of copies of this card
224
- */
225
- count: number;
226
- /**
227
- * Optional authored card category or subtype identifier
228
- */
229
- cardType?: string;
230
- /**
231
- * Optional authored home for this card inventory. When omitted, cards start detached until reducer setup places them.
232
- */
233
- home?: ComponentHomeSpec;
234
- /**
235
- * Default authored visibility for the card inventory
236
- */
237
- visibility?: ComponentVisibilitySpec;
238
- /**
239
- * Actual property values for this specific card instance. Keys must match the properties defined in the referenced cardSchema.
240
- */
241
- properties: {
242
- [key: string]: JsonValue;
243
- };
244
- };
245
-
246
- export type ManualCardSetDefinition = {
247
- /**
248
- * Unique identifier for the card set
249
- */
250
- id: string;
251
- /**
252
- * Display name of the card set
253
- */
254
- name: string;
255
- /**
256
- * Type of card set source
257
- */
258
- type: 'manual';
259
- /**
260
- * Schema definition for authored card properties in this card set
261
- */
262
- cardSchema: CardPropertySchema;
263
- /**
264
- * List of authored cards in this card set
265
- */
266
- cards: Array<BoardCard>;
267
- };
268
-
269
- export type CardSetDefinition = ({
270
- type: 'preset';
271
- } & PresetCardSetDefinition) | ({
272
- type: 'manual';
273
- } & ManualCardSetDefinition);
274
-
275
- /**
276
- * Whether authored topology exists once for the table or once per player
277
- */
278
- export type TopologyScope = 'shared' | 'perPlayer';
279
-
280
- /**
281
- * Default topology visibility for a zone or slot
282
- */
283
- export type ZoneVisibility = 'ownerOnly' | 'public' | 'hidden';
284
-
285
- /**
286
- * Generic authored container that can hold cards, pieces, or dice
287
- */
288
- export type ZoneSpec = {
289
- /**
290
- * Stable zone identifier
291
- */
292
- id: string;
293
- /**
294
- * Display name for the zone
295
- */
296
- name: string;
297
- scope: TopologyScope;
298
- /**
299
- * Optional card-set restriction for this zone
300
- */
301
- allowedCardSetIds?: Array<string>;
302
- visibility?: ZoneVisibility;
303
- };
304
-
305
- /**
306
- * Stable authored board space or slot anchor
307
- */
308
- export type BoardSpaceSpec = {
309
- /**
310
- * Stable space identifier local to the board
311
- */
312
- id: string;
313
- /**
314
- * Human-readable space name
315
- */
316
- name?: string;
317
- /**
318
- * Optional authored space type identifier
319
- */
320
- typeId?: string;
321
- /**
322
- * Typed authored fields validated against the board's spaceFieldsSchema
323
- */
324
- fields?: {
325
- [key: string]: JsonValue;
326
- };
327
- };
328
-
329
- /**
330
- * Named relation between two authored spaces
331
- */
332
- export type BoardRelationSpec = {
333
- /**
334
- * Optional stable relation identifier
335
- */
336
- id?: string;
337
- /**
338
- * Relation type identifier such as adjacent, covers, blocks, or linked
339
- */
340
- typeId: string;
341
- fromSpaceId: string;
342
- toSpaceId: string;
343
- directed?: boolean;
344
- /**
345
- * Typed authored relation fields validated against relationFieldsSchema
346
- */
347
- fields?: {
348
- [key: string]: JsonValue;
349
- };
350
- };
351
-
352
- export type BoardHostSpec = {
353
- type: 'board';
354
- };
355
-
356
- export type SpaceHostSpec = {
357
- type: 'space';
358
- spaceId: string;
359
- };
360
-
361
- export type BoardContainerHostSpec = ({
362
- type: 'board';
363
- } & BoardHostSpec) | ({
364
- type: 'space';
365
- } & SpaceHostSpec);
366
-
367
- /**
368
- * Authored board-attached or space-attached container/slot
369
- */
370
- export type BoardContainerSpec = {
371
- /**
372
- * Stable container identifier local to the board
373
- */
374
- id: string;
375
- /**
376
- * Display name for the container
377
- */
378
- name: string;
379
- host: BoardContainerHostSpec;
380
- allowedCardSetIds?: Array<string>;
381
- /**
382
- * Typed authored container fields validated against containerFieldsSchema
383
- */
384
- fields?: {
385
- [key: string]: JsonValue;
386
- };
387
- };
388
-
389
- /**
390
- * Reusable authored board topology template
391
- */
392
- export type GenericBoardTemplateSpec = {
393
- /**
394
- * Stable template identifier
395
- */
396
- id: string;
397
- name: string;
398
- layout: 'generic';
399
- /**
400
- * Optional authored board type identifier such as track, map, tableau, or grid
401
- */
402
- typeId?: string;
403
- boardFieldsSchema?: ObjectSchema;
404
- spaceFieldsSchema?: ObjectSchema;
405
- relationFieldsSchema?: ObjectSchema;
406
- containerFieldsSchema?: ObjectSchema;
407
- spaces?: Array<BoardSpaceSpec>;
408
- relations?: Array<BoardRelationSpec>;
409
- containers?: Array<BoardContainerSpec>;
410
- };
411
-
412
- /**
413
- * Visual orientation for authored hex coordinates
414
- */
415
- export type HexOrientation = 'pointy-top' | 'flat-top';
416
-
417
- /**
418
- * One authored hex space in axial coordinates
419
- */
420
- export type HexSpaceSpec = {
421
- /**
422
- * Stable space identifier local to the board
423
- */
424
- id: string;
425
- /**
426
- * Axial q coordinate
427
- */
428
- q: number;
429
- /**
430
- * Axial r coordinate
431
- */
432
- r: number;
433
- /**
434
- * Optional authored space type identifier
435
- */
436
- typeId?: string;
437
- /**
438
- * Optional hex-space label for setup or rendering
439
- */
440
- label?: string;
441
- /**
442
- * Typed authored fields validated against the board's spaceFieldsSchema
443
- */
444
- fields?: {
445
- [key: string]: JsonValue;
446
- };
447
- };
448
-
449
- /**
450
- * Hex edge identified by two adjacent hex spaces
451
- */
452
- export type HexEdgeRef = {
453
- spaces: [
454
- string,
455
- string
456
- ];
457
- };
458
-
459
- /**
460
- * Authored metadata attached to one derived hex edge
461
- */
462
- export type HexEdgeSpec = {
463
- ref: HexEdgeRef;
464
- /**
465
- * Optional authored edge type identifier
466
- */
467
- typeId?: string;
468
- /**
469
- * Optional edge label for setup or rendering
470
- */
471
- label?: string;
472
- tags?: Array<string>;
473
- /**
474
- * Typed authored edge fields validated against edgeFieldsSchema
475
- */
476
- fields?: {
477
- [key: string]: JsonValue;
478
- };
479
- };
480
-
481
- /**
482
- * Hex vertex identified by three touching hex spaces
483
- */
484
- export type HexVertexRef = {
485
- spaces: [
486
- string,
487
- string,
488
- string
489
- ];
490
- };
491
-
492
- /**
493
- * Authored metadata attached to one derived hex vertex
494
- */
495
- export type HexVertexSpec = {
496
- ref: HexVertexRef;
497
- /**
498
- * Optional authored vertex type identifier
499
- */
500
- typeId?: string;
501
- /**
502
- * Optional vertex label for setup or rendering
503
- */
504
- label?: string;
505
- tags?: Array<string>;
506
- /**
507
- * Typed authored vertex fields validated against vertexFieldsSchema
508
- */
509
- fields?: {
510
- [key: string]: JsonValue;
511
- };
512
- };
513
-
514
- /**
515
- * Reusable authored hex board topology template
516
- */
517
- export type HexBoardTemplateSpec = {
518
- /**
519
- * Stable template identifier
520
- */
521
- id: string;
522
- name: string;
523
- layout: 'hex';
524
- /**
525
- * Optional authored board type identifier
526
- */
527
- typeId?: string;
528
- orientation?: HexOrientation;
529
- boardFieldsSchema?: ObjectSchema;
530
- spaceFieldsSchema?: ObjectSchema;
531
- edgeFieldsSchema?: ObjectSchema;
532
- vertexFieldsSchema?: ObjectSchema;
533
- spaces?: Array<HexSpaceSpec>;
534
- edges?: Array<HexEdgeSpec>;
535
- vertices?: Array<HexVertexSpec>;
536
- };
537
-
538
- /**
539
- * One authored square space in row/column coordinates
540
- */
541
- export type SquareSpaceSpec = {
542
- /**
543
- * Stable space identifier local to the board
544
- */
545
- id: string;
546
- /**
547
- * Zero-based row coordinate
548
- */
549
- row: number;
550
- /**
551
- * Zero-based column coordinate
552
- */
553
- col: number;
554
- /**
555
- * Optional authored space type identifier
556
- */
557
- typeId?: string;
558
- /**
559
- * Optional square-space label for setup or rendering
560
- */
561
- label?: string;
562
- /**
563
- * Typed authored fields validated against the board's spaceFieldsSchema
564
- */
565
- fields?: {
566
- [key: string]: JsonValue;
567
- };
568
- };
569
-
570
- /**
571
- * Authored metadata attached to one derived square edge
572
- */
573
- export type SquareEdgeSpec = {
574
- ref: BoardEdgeRef;
575
- /**
576
- * Optional authored edge type identifier
577
- */
578
- typeId?: string;
579
- /**
580
- * Optional edge label for setup or rendering
581
- */
582
- label?: string;
583
- tags?: Array<string>;
584
- /**
585
- * Typed authored edge fields validated against edgeFieldsSchema
586
- */
587
- fields?: {
588
- [key: string]: JsonValue;
589
- };
590
- };
591
-
592
- /**
593
- * Authored metadata attached to one derived square vertex
594
- */
595
- export type SquareVertexSpec = {
596
- ref: BoardVertexRef;
597
- /**
598
- * Optional authored vertex type identifier
599
- */
600
- typeId?: string;
601
- /**
602
- * Optional vertex label for setup or rendering
603
- */
604
- label?: string;
605
- tags?: Array<string>;
606
- /**
607
- * Typed authored vertex fields validated against vertexFieldsSchema
608
- */
609
- fields?: {
610
- [key: string]: JsonValue;
611
- };
612
- };
613
-
614
- /**
615
- * Reusable authored square board topology template
616
- */
617
- export type SquareBoardTemplateSpec = {
618
- /**
619
- * Stable template identifier
620
- */
621
- id: string;
622
- name: string;
623
- layout: 'square';
624
- /**
625
- * Optional authored board type identifier
626
- */
627
- typeId?: string;
628
- boardFieldsSchema?: ObjectSchema;
629
- spaceFieldsSchema?: ObjectSchema;
630
- relationFieldsSchema?: ObjectSchema;
631
- containerFieldsSchema?: ObjectSchema;
632
- edgeFieldsSchema?: ObjectSchema;
633
- vertexFieldsSchema?: ObjectSchema;
634
- spaces?: Array<SquareSpaceSpec>;
635
- relations?: Array<BoardRelationSpec>;
636
- containers?: Array<BoardContainerSpec>;
637
- edges?: Array<SquareEdgeSpec>;
638
- vertices?: Array<SquareVertexSpec>;
639
- };
640
-
641
- export type BoardTemplateSpec = ({
642
- layout: 'generic';
643
- } & GenericBoardTemplateSpec) | ({
644
- layout: 'hex';
645
- } & HexBoardTemplateSpec) | ({
646
- layout: 'square';
647
- } & SquareBoardTemplateSpec);
648
-
649
- /**
650
- * Shared or per-player authored board instance shell
651
- */
652
- export type GenericBoardSpec = {
653
- /**
654
- * Stable board identifier
655
- */
656
- id: string;
657
- name: string;
658
- layout: 'generic';
659
- /**
660
- * Optional authored board type identifier such as track, map, tableau, or grid
661
- */
662
- typeId?: string;
663
- scope: TopologyScope;
664
- /**
665
- * Optional board template to clone before applying inline authored additions
666
- */
667
- templateId?: string;
668
- boardFieldsSchema?: ObjectSchema;
669
- spaceFieldsSchema?: ObjectSchema;
670
- relationFieldsSchema?: ObjectSchema;
671
- containerFieldsSchema?: ObjectSchema;
672
- /**
673
- * Typed authored board fields validated against boardFieldsSchema
674
- */
675
- fields?: {
676
- [key: string]: JsonValue;
677
- };
678
- spaces?: Array<BoardSpaceSpec>;
679
- relations?: Array<BoardRelationSpec>;
680
- containers?: Array<BoardContainerSpec>;
681
- };
682
-
683
- /**
684
- * Shared or per-player authored hex board instance shell
685
- */
686
- export type HexBoardSpec = {
687
- /**
688
- * Stable board identifier
689
- */
690
- id: string;
691
- name: string;
692
- layout: 'hex';
693
- /**
694
- * Optional authored board type identifier
695
- */
696
- typeId?: string;
697
- scope: TopologyScope;
698
- /**
699
- * Optional hex board template to clone before applying inline authored additions
700
- */
701
- templateId?: string;
702
- orientation?: HexOrientation;
703
- boardFieldsSchema?: ObjectSchema;
704
- spaceFieldsSchema?: ObjectSchema;
705
- edgeFieldsSchema?: ObjectSchema;
706
- vertexFieldsSchema?: ObjectSchema;
707
- /**
708
- * Typed authored board fields validated against boardFieldsSchema
709
- */
710
- fields?: {
711
- [key: string]: JsonValue;
712
- };
713
- spaces?: Array<HexSpaceSpec>;
714
- edges?: Array<HexEdgeSpec>;
715
- vertices?: Array<HexVertexSpec>;
716
- };
717
-
718
- /**
719
- * Shared or per-player authored square board instance shell
720
- */
721
- export type SquareBoardSpec = {
722
- /**
723
- * Stable board identifier
724
- */
725
- id: string;
726
- name: string;
727
- layout: 'square';
728
- /**
729
- * Optional authored board type identifier
730
- */
731
- typeId?: string;
732
- scope: TopologyScope;
733
- /**
734
- * Optional square board template to clone before applying inline authored additions
735
- */
736
- templateId?: string;
737
- boardFieldsSchema?: ObjectSchema;
738
- spaceFieldsSchema?: ObjectSchema;
739
- relationFieldsSchema?: ObjectSchema;
740
- containerFieldsSchema?: ObjectSchema;
741
- edgeFieldsSchema?: ObjectSchema;
742
- vertexFieldsSchema?: ObjectSchema;
743
- /**
744
- * Typed authored board fields validated against boardFieldsSchema
745
- */
746
- fields?: {
747
- [key: string]: JsonValue;
748
- };
749
- spaces?: Array<SquareSpaceSpec>;
750
- relations?: Array<BoardRelationSpec>;
751
- containers?: Array<BoardContainerSpec>;
752
- edges?: Array<SquareEdgeSpec>;
753
- vertices?: Array<SquareVertexSpec>;
754
- };
755
-
756
- export type BoardSpec = ({
757
- layout: 'generic';
758
- } & GenericBoardSpec) | ({
759
- layout: 'hex';
760
- } & HexBoardSpec) | ({
761
- layout: 'square';
762
- } & SquareBoardSpec);
763
-
764
- /**
765
- * Named authored slot exposed by a piece or die type
766
- */
767
- export type ComponentSlotSpec = {
768
- id: string;
769
- name?: string;
770
- };
771
-
772
- /**
773
- * Reusable authored piece type
774
- */
775
- export type PieceTypeSpec = {
776
- id: string;
777
- name: string;
778
- fieldsSchema?: ObjectSchema;
779
- slots?: Array<ComponentSlotSpec>;
780
- };
781
-
782
- /**
783
- * Authored seeded piece inventory or supply definition
784
- */
785
- export type PieceSeedSpec = {
786
- /**
787
- * Stable piece id seed. When count > 1, runtime ids are generated as '{id}-1', '{id}-2', etc.
788
- */
789
- id?: string;
790
- name?: string;
791
- typeId: string;
792
- count?: number;
793
- ownerId?: string;
794
- home?: ComponentHomeSpec;
795
- visibility?: ComponentVisibilitySpec;
796
- /**
797
- * Typed authored piece fields validated against the piece type schema
798
- */
799
- fields?: {
800
- [key: string]: JsonValue;
801
- };
802
- };
803
-
804
- /**
805
- * Reusable authored die type
806
- */
807
- export type DieTypeSpec = {
808
- id: string;
809
- name: string;
810
- sides?: number;
811
- fieldsSchema?: ObjectSchema;
812
- slots?: Array<ComponentSlotSpec>;
813
- };
814
-
815
- /**
816
- * Authored seeded die inventory or supply definition
817
- */
818
- export type DieSeedSpec = {
819
- /**
820
- * Stable die id seed. When count > 1, runtime ids are generated as '{id}-1', '{id}-2', etc.
821
- */
822
- id?: string;
823
- name?: string;
824
- typeId: string;
825
- count?: number;
826
- ownerId?: string;
827
- home?: ComponentHomeSpec;
828
- visibility?: ComponentVisibilitySpec;
829
- /**
830
- * Typed authored die fields validated against the die type schema
831
- */
832
- fields?: {
833
- [key: string]: JsonValue;
834
- };
835
- };
836
-
837
- /**
838
- * Definition of a game resource type
839
- */
840
- export type ResourceDefinition = {
841
- /**
842
- * Unique identifier for the resource. Used as a typed ResourceId.
843
- */
844
- id: string;
845
- /**
846
- * Human-readable display name for the resource
847
- */
848
- name: string;
849
- /**
850
- * Optional compact icon or emoji rendered by generic UI resource controls.
851
- */
852
- icon?: string;
853
- };
854
-
855
- /**
856
- * One authored setup option choice
857
- */
858
- export type SetupOptionChoiceSpec = {
859
- id: string;
860
- label: string;
861
- description?: string;
862
- };
863
-
864
- /**
865
- * Authored setup module/variant axis metadata
866
- */
867
- export type SetupOptionSpec = {
868
- id: string;
869
- name: string;
870
- description?: string;
871
- choices?: Array<SetupOptionChoiceSpec>;
872
- };
873
-
874
- /**
875
- * Reducer-consumed authored setup profile, recipe, or loadout metadata
876
- */
877
- export type SetupProfileSpec = {
878
- id: string;
879
- name: string;
880
- description?: string;
881
- /**
882
- * Selected setup-option values for this profile
883
- */
884
- optionValues?: {
885
- [key: string]: string;
886
- };
887
- };
888
-
889
- /**
890
- * Authoritative topology manifest for reducer-native games
891
- */
892
- export type GameTopologyManifest = {
893
- players: PlayersDefinition;
894
- /**
895
- * Authored card catalogs and schemas
896
- */
897
- cardSets: Array<CardSetDefinition>;
898
- /**
899
- * Shared and per-player authored containers
900
- */
901
- zones?: Array<ZoneSpec>;
902
- /**
903
- * Reusable board topology templates
904
- */
905
- boardTemplates?: Array<BoardTemplateSpec>;
906
- /**
907
- * Shared and per-player authored board shells
908
- */
909
- boards?: Array<BoardSpec>;
910
- pieceTypes?: Array<PieceTypeSpec>;
911
- pieceSeeds?: Array<PieceSeedSpec>;
912
- dieTypes?: Array<DieTypeSpec>;
913
- dieSeeds?: Array<DieSeedSpec>;
914
- resources?: Array<ResourceDefinition>;
915
- /**
916
- * Authored setup-option metadata consumed by reducer-owned setup flows
917
- */
918
- setupOptions?: Array<SetupOptionSpec>;
919
- /**
920
- * Authored setup recipes, loadouts, or module profiles consumed by reducer setup code
921
- */
922
- setupProfiles?: Array<SetupProfileSpec>;
923
- };
924
-
925
- /**
926
- * Authenticated user acting in a session.
927
- */
928
- export type SessionActorAuthUser = {
929
- kind: 'AUTH_USER';
930
- /**
931
- * Internal user id
932
- */
933
- id: string;
934
- };
935
-
936
- /**
937
- * Anonymous demo principal for one demo_sessions row (shared across tabs).
938
- */
939
- export type SessionActorDemoGuest = {
940
- kind: 'DEMO_GUEST';
941
- /**
942
- * demo_sessions.id
943
- */
944
- demoActorSessionId: string;
945
- };
946
-
947
- export type SessionActor = ({
948
- kind: 'AUTH_USER';
949
- } & SessionActorAuthUser) | ({
950
- kind: 'DEMO_GUEST';
951
- } & SessionActorDemoGuest);
952
-
953
- export type SessionGameSourceUserCompiled = {
954
- kind: 'USER_COMPILED';
955
- ownerUserId: string;
956
- gameId: string;
957
- compiledResultId: string;
958
- };
959
-
960
- export type SessionGameSourceDemoRevision = {
961
- kind: 'DEMO_REVISION';
962
- slug: string;
963
- revisionId: string;
964
- };
965
-
966
- export type SessionGameSource = ({
967
- kind: 'USER_COMPILED';
968
- } & SessionGameSourceUserCompiled) | ({
969
- kind: 'DEMO_REVISION';
970
- } & SessionGameSourceDemoRevision);
971
-
972
- export type SessionSnapshotPhase = 'lobby' | 'gameplay' | 'ended';
973
-
974
- export type HostSessionStatus = 'active' | 'ended';
975
-
976
- /**
977
- * Summary of a game state history entry.
978
- */
979
- export type HistoryEntrySummary = {
980
- id: string;
981
- generation: number;
982
- version: number;
983
- timestamp: string;
984
- description: string;
985
- playerId?: string;
986
- actionType?: string;
987
- isCurrent: boolean;
988
- };
989
-
990
- export type SessionSnapshotHistory = {
991
- entries: Array<HistoryEntrySummary>;
992
- currentIndex: number;
993
- canGoBack: boolean;
994
- canGoForward: boolean;
995
- };
996
-
997
- export type HostSessionContext = {
998
- /**
999
- * Unique identifier for the session.
1000
- */
1001
- sessionId: string;
1002
- /**
1003
- * Memorable short code for sharing.
1004
- */
1005
- shortCode: string;
1006
- phase: SessionSnapshotPhase;
1007
- status: HostSessionStatus;
1008
- hostActor: SessionActor;
1009
- gameSource: SessionGameSource;
1010
- /**
1011
- * Selected authored setup profile for this session.
1012
- */
1013
- setupProfileId?: string;
1014
- /**
1015
- * Player IDs the authenticated session actor may select.
1016
- */
1017
- switchablePlayerIds: Array<string>;
1018
- history?: SessionSnapshotHistory;
1019
- };
1020
-
1021
- export type SeatAssignment = {
1022
- /**
1023
- * Player identifier (e.g., 'player-1')
1024
- */
1025
- playerId: string;
1026
- /**
1027
- * Session actor controlling this seat (null if empty)
1028
- */
1029
- controllerActor?: SessionActor;
1030
- /**
1031
- * Display name for this seat/player
1032
- */
1033
- displayName: string;
1034
- /**
1035
- * Hex color code for the player (e.g., '#FF5733')
1036
- */
1037
- playerColor?: string;
1038
- /**
1039
- * Whether this seat is the host
1040
- */
1041
- isHost?: boolean;
1042
- };
1043
-
1044
- export type HostLobbyView = {
1045
- /**
1046
- * Current public seat assignments for the session.
1047
- */
1048
- seats: Array<SeatAssignment>;
1049
- /**
1050
- * Whether the lobby can currently be started.
1051
- */
1052
- canStart: boolean;
1053
- /**
1054
- * Session actor that hosts this session.
1055
- */
1056
- hostActor: SessionActor;
1057
- /**
1058
- * Selected authored setup profile for this session.
1059
- */
1060
- setupProfileId?: string;
1061
- };
1062
-
1063
- export type HostLobbySessionSnapshot = {
1064
- type: 'lobby';
1065
- context: HostSessionContext;
1066
- lobby: HostLobbyView;
1067
- };
1068
-
1069
- export type SimultaneousPhaseSnapshot = {
1070
- phaseName: string;
1071
- interactionId: string;
1072
- actorIds: Array<string>;
1073
- sealedPlayerIds: Array<string>;
1074
- pendingPlayerIds: Array<string>;
1075
- };
1076
-
1077
- export type HostGameplaySharedView = {
1078
- /**
1079
- * Player IDs currently active in the game state.
1080
- */
1081
- activePlayers: Array<string>;
1082
- /**
1083
- * Current reducer-native gameplay phase.
1084
- */
1085
- currentPhase: string;
1086
- /**
1087
- * Current stage within the phase. Null when the phase has no active stage.
1088
- */
1089
- currentStage: string | null;
1090
- /**
1091
- * Player IDs this stage currently admits.
1092
- */
1093
- stageSeats: Array<string>;
1094
- /**
1095
- * Visibility-safe progress metadata for an active simultaneous-player phase.
1096
- */
1097
- simultaneousPhase?: SimultaneousPhaseSnapshot | null;
1098
- /**
1099
- * JSON-serialized session-scoped static view. Populated on gameplay bootstrap payloads only.
1100
- */
1101
- boardStatic?: string | null;
1102
- /**
1103
- * Content hash of the session-scoped static view held on the host.
1104
- */
1105
- boardStaticHash?: string | null;
1106
- };
1107
-
1108
- /**
1109
- * Draft commit policy consumed by default UI surfaces.
1110
- */
1111
- export type InteractionCommitPolicy = {
1112
- mode: 'manual' | 'autoWhenReady';
1113
- };
1114
-
1115
- /**
1116
- * Single-value input selection.
1117
- */
1118
- export type SingleInputSelection = {
1119
- mode: 'single';
1120
- };
1121
-
1122
- /**
1123
- * Multi-value input selection.
1124
- */
1125
- export type ManyInputSelection = {
1126
- mode: 'many';
1127
- min: number;
1128
- max?: number;
1129
- distinct?: boolean;
1130
- };
1131
-
1132
- export type InputSelection = ({
1133
- mode: 'single';
1134
- } & SingleInputSelection) | ({
1135
- mode: 'many';
1136
- } & ManyInputSelection);
1137
-
1138
- export type InputDomain = ({
1139
- type: 'cardTarget';
1140
- } & CardTargetDomain) | ({
1141
- type: 'boardTarget';
1142
- } & BoardTargetDomain) | ({
1143
- type: 'resourceMap';
1144
- } & ResourceMapDomain) | ({
1145
- type: 'boundedNumber';
1146
- } & BoundedNumberDomain) | ({
1147
- type: 'choice';
1148
- } & ChoiceDomain) | ({
1149
- type: 'choiceList';
1150
- } & ChoiceListDomain);
1151
-
1152
- export type InputDomainDependencyCase = {
1153
- when: {
1154
- [key: string]: string;
1155
- };
1156
- domain: InputDomain;
1157
- };
1158
-
1159
- export type EagerInputDomainDependencies = {
1160
- mode: 'eager';
1161
- dependentCases: Array<InputDomainDependencyCase>;
1162
- };
1163
-
1164
- export type ResolvedCardTargetDomain = {
1165
- type: 'cardTarget';
1166
- projection: 'resolved';
1167
- targetKind: 'card';
1168
- zoneIds: Array<string>;
1169
- eligibleTargets: Array<string>;
1170
- selection?: InputSelection;
1171
- dependencies?: EagerInputDomainDependencies;
1172
- };
1173
-
1174
- export type InputDomainResolver = {
1175
- interactionKey?: string;
1176
- inputKey: string;
1177
- };
1178
-
1179
- export type LazyInputDomainDependencies = {
1180
- mode: 'lazy';
1181
- dependsOn: Array<string>;
1182
- resolver: InputDomainResolver;
1183
- };
1184
-
1185
- export type LazyCardTargetDomain = {
1186
- type: 'cardTarget';
1187
- projection: 'lazy';
1188
- targetKind: 'card';
1189
- zoneIds: Array<string>;
1190
- selection?: InputSelection;
1191
- dependencies: LazyInputDomainDependencies;
1192
- };
1193
-
1194
- export type CardTargetDomain = ({
1195
- projection: 'resolved';
1196
- } & ResolvedCardTargetDomain) | ({
1197
- projection: 'lazy';
1198
- } & LazyCardTargetDomain);
1199
-
1200
- export type ResolvedBoardTargetDomain = {
1201
- type: 'boardTarget';
1202
- projection: 'resolved';
1203
- targetKind: 'edge' | 'vertex' | 'space' | 'tile';
1204
- boardId: string;
1205
- valueKind?: 'board-id' | 'player-board-space';
1206
- eligibleTargets: Array<string>;
1207
- selection?: InputSelection;
1208
- dependencies?: EagerInputDomainDependencies;
1209
- };
1210
-
1211
- export type LazyBoardTargetDomain = {
1212
- type: 'boardTarget';
1213
- projection: 'lazy';
1214
- targetKind: 'edge' | 'vertex' | 'space' | 'tile';
1215
- boardId: string;
1216
- valueKind?: 'board-id' | 'player-board-space';
1217
- selection?: InputSelection;
1218
- dependencies: LazyInputDomainDependencies;
1219
- };
1220
-
1221
- export type BoardTargetDomain = ({
1222
- projection: 'resolved';
1223
- } & ResolvedBoardTargetDomain) | ({
1224
- projection: 'lazy';
1225
- } & LazyBoardTargetDomain);
1226
-
1227
- export type ResourceMapDomainEntry = {
1228
- resourceId: string;
1229
- label?: string;
1230
- icon?: string;
1231
- min: number;
1232
- max: number;
1233
- };
1234
-
1235
- export type ResourceMapDomain = {
1236
- type: 'resourceMap';
1237
- resources: Array<ResourceMapDomainEntry>;
1238
- selection?: InputSelection;
1239
- };
1240
-
1241
- export type BoundedNumberDomain = {
1242
- type: 'boundedNumber';
1243
- min: number;
1244
- max: number;
1245
- step?: number;
1246
- selection?: InputSelection;
1247
- };
1248
-
1249
- export type ChoiceDomainOption = {
1250
- value: string | null;
1251
- label: string;
1252
- icon?: string;
1253
- badge?: string;
1254
- description?: string;
1255
- disabled?: boolean;
1256
- disabledReason?: string;
1257
- };
1258
-
1259
- export type ChoiceDomain = {
1260
- type: 'choice';
1261
- choices: Array<ChoiceDomainOption>;
1262
- selection?: InputSelection;
1263
- dependencies?: EagerInputDomainDependencies;
1264
- };
1265
-
1266
- export type ChoiceListDomain = {
1267
- type: 'choiceList';
1268
- choices: Array<ChoiceDomainOption>;
1269
- min?: number;
1270
- max?: number;
1271
- selection?: InputSelection;
1272
- dependencies?: EagerInputDomainDependencies;
1273
- };
1274
-
1275
- /**
1276
- * Canonical descriptor for one interaction input collector.
1277
- */
1278
- export type InteractionInputDescriptor = {
1279
- key: string;
1280
- kind: string;
1281
- domain: InputDomain;
1282
- /**
1283
- * Optional default value applied to this input when the player has not
1284
- * yet drafted a value. Mirrors the input collector's `defaultValue`
1285
- * from the authored interaction, so plugins can render a sensible
1286
- * starting state (e.g. a pre-selected resource for a bank trade).
1287
- *
1288
- */
1289
- defaultValue?: JsonValue;
1290
- };
1291
-
1292
- export type AvailableInteractionAvailability = {
1293
- status: 'available';
1294
- };
1295
-
1296
- export type NotYourTurnInteractionAvailability = {
1297
- status: 'notYourTurn';
1298
- reason: string;
1299
- };
1300
-
1301
- export type InsufficientResourcesInteractionAvailability = {
1302
- status: 'insufficientResources';
1303
- reason: string;
1304
- /**
1305
- * Resource shortfall by resource id when a costed interaction is not currently affordable.
1306
- */
1307
- missingResources: {
1308
- [key: string]: number;
1309
- };
1310
- };
1311
-
1312
- export type BlockedInteractionAvailability = {
1313
- status: 'blocked';
1314
- reason: string;
1315
- code?: string;
1316
- };
1317
-
1318
- export type InteractionAvailability = ({
1319
- status: 'available';
1320
- } & AvailableInteractionAvailability) | ({
1321
- status: 'notYourTurn';
1322
- } & NotYourTurnInteractionAvailability) | ({
1323
- status: 'insufficientResources';
1324
- } & InsufficientResourcesInteractionAvailability) | ({
1325
- status: 'blocked';
1326
- } & BlockedInteractionAvailability);
1327
-
1328
- /**
1329
- * Authoritative interaction descriptor resolved by the trusted bundle.
1330
- */
1331
- export type InteractionDescriptorBase = {
1332
- phaseName: string;
1333
- interactionKey: string;
1334
- interactionId: string;
1335
- zoneId?: string;
1336
- /**
1337
- * Draft commit policy materialized by the trusted reducer bundle. Omitted authoring specs default to manual before this descriptor crosses the runtime boundary.
1338
- */
1339
- commit: InteractionCommitPolicy;
1340
- /**
1341
- * Ordered input descriptors. Each entry is the canonical source for its collector key, collector kind, and valid-value domain.
1342
- */
1343
- inputs: Array<InteractionInputDescriptor>;
1344
- cost?: {
1345
- [key: string]: JsonValue;
1346
- };
1347
- currentResources?: {
1348
- [key: string]: JsonValue;
1349
- };
1350
- availability: InteractionAvailability;
1351
- };
1352
-
1353
- export type ActionInteractionDescriptor = InteractionDescriptorBase & {
1354
- kind: 'action';
1355
- };
1356
-
1357
- export type InteractionContextOption = {
1358
- id: string;
1359
- label: string;
1360
- };
1361
-
1362
- export type InteractionContext = {
1363
- to: string;
1364
- title?: string;
1365
- payload?: {
1366
- [key: string]: JsonValue;
1367
- };
1368
- options?: Array<InteractionContextOption>;
1369
- };
1370
-
1371
- export type PromptInteractionDescriptor = InteractionDescriptorBase & {
1372
- kind: 'prompt';
1373
- context: InteractionContext;
1374
- };
1375
-
1376
- export type InteractionDescriptor = ({
1377
- kind: 'action';
1378
- } & ActionInteractionDescriptor) | ({
1379
- kind: 'prompt';
1380
- } & PromptInteractionDescriptor);
1381
-
1382
- export type ZoneHandles = {
1383
- cardIds: Array<string>;
1384
- cardViewsById: {
1385
- [key: string]: string;
1386
- };
1387
- playableByCardId: {
1388
- [key: string]: Array<string>;
1389
- };
1390
- };
1391
-
1392
- export type HostGameplaySeatView = {
1393
- /**
1394
- * Opaque revision token for this seat's available descriptors and input domains.
1395
- */
1396
- actionSetVersion: string;
1397
- /**
1398
- * JSON-serialized reducer-projected UI view for this player.
1399
- */
1400
- view: string | null;
1401
- /**
1402
- * Descriptor refs for interactions available to this player.
1403
- */
1404
- availableInteractionRefs: Array<string>;
1405
- /**
1406
- * Zone handles for this player, keyed by zone id.
1407
- */
1408
- zones: {
1409
- [key: string]: ZoneHandles;
1410
- };
1411
- };
1412
-
1413
- export type HostPlayerGameplayView = {
1414
- /**
1415
- * Monotonic gameplay version for stale-client detection.
1416
- */
1417
- version: number;
1418
- /**
1419
- * Opaque revision token for the returned descriptors and input domains.
1420
- */
1421
- actionSetVersion: string;
1422
- /**
1423
- * Player ID currently selected for rendering and input.
1424
- */
1425
- perspectivePlayerId: string;
1426
- /**
1427
- * Player IDs included in this normalized projection envelope.
1428
- */
1429
- controllablePlayerIds: Array<string>;
1430
- shared: HostGameplaySharedView;
1431
- /**
1432
- * Deduplicated interaction descriptor registry keyed by stable descriptor ref.
1433
- */
1434
- interactionsByRef: {
1435
- [key: string]: InteractionDescriptor;
1436
- };
1437
- /**
1438
- * Player-scoped projections keyed by authorized player id.
1439
- */
1440
- seats: {
1441
- [key: string]: HostGameplaySeatView;
1442
- };
1443
- };
1444
-
1445
- export type HostGameplaySessionSnapshot = {
1446
- type: 'gameplay';
1447
- context: HostSessionContext;
1448
- lobby: HostLobbyView;
1449
- gameplay: HostPlayerGameplayView;
1450
- };
1451
-
1452
- export type HostEndedSessionSnapshot = {
1453
- type: 'ended';
1454
- context: HostSessionContext;
1455
- lobby: HostLobbyView;
1456
- };
1457
-
1458
- export type HostSessionSnapshot = ({
1459
- type: 'lobby';
1460
- } & HostLobbySessionSnapshot) | ({
1461
- type: 'gameplay';
1462
- } & HostGameplaySessionSnapshot) | ({
1463
- type: 'ended';
1464
- } & HostEndedSessionSnapshot);
1465
-
1466
- export type HostSessionEventCausation = {
1467
- clientActionId?: string;
1468
- };
1469
-
1470
- export type HostSessionGameplayUpdatedEvent = {
1471
- type: 'session.gameplayUpdated';
1472
- context: HostSessionContext;
1473
- gameplay: HostPlayerGameplayView;
1474
- causation?: HostSessionEventCausation;
1475
- };
1476
-
1477
- export type HostActionSubmitResponse = {
1478
- success: boolean;
1479
- version: number;
1480
- actionSetVersion: string;
1481
- accepted?: boolean;
1482
- durabilityStatus?: 'COMMITTED';
1483
- errorCode?: string;
1484
- message?: string;
1485
- clientActionId?: string;
1486
- update?: HostSessionGameplayUpdatedEvent;
1487
- };
1488
-
1489
- /**
1490
- * Type of parameter accepted by a runtime action
1491
- */
1492
- export type ParameterType = 'cardId' | 'cardType' | 'playerId' | 'string' | 'number' | 'boolean' | 'zoneId' | 'pieceId' | 'dieId' | 'boardId' | 'edgeId' | 'vertexId' | 'spaceId' | 'resourceId';
1493
-
1494
- /**
1495
- * Defines a parameter for an action
1496
- */
1497
- export type ActionParameterDefinition = {
1498
- name: string;
1499
- type: ParameterType;
1500
- required?: boolean;
1501
- array?: boolean;
1502
- minLength?: number;
1503
- maxLength?: number;
1504
- /**
1505
- * Optional card set ID to specify which card set a CARD_ID parameter refers to
1506
- */
1507
- cardSetId?: string;
1508
- description?: string;
1509
- };
1510
-
1511
- /**
1512
- * Defines an available player action with metadata and parameter definitions
1513
- */
1514
- export type ActionDefinition = {
1515
- /**
1516
- * Unique action identifier
1517
- */
1518
- actionType: string;
1519
- /**
1520
- * UI display name for this action
1521
- */
1522
- displayName: string;
1523
- /**
1524
- * Optional help text describing the action
1525
- */
1526
- description?: string;
1527
- /**
1528
- * List of parameters this action accepts
1529
- */
1530
- parameters: Array<ActionParameterDefinition>;
1531
- /**
1532
- * List of possible validation error codes
1533
- */
1534
- errorCodes?: Array<string>;
1535
- };
1536
-
1537
- /**
1538
- * Type of source for the card set
1539
- */
1540
- export type CardSetSourceType = 'preset' | 'csv' | 'manual';
1541
-
1542
- /**
1543
- * Engine-level structural board layout discriminator
1544
- */
1545
- export type BoardLayout = 'generic' | 'hex' | 'square';
1546
-
1547
- /**
1548
- * Unique identifier for the player (e.g., 'player-1')
1549
- */
1550
- export type PlayerId = string;