@dreamboard-games/sdk 0.4.0-alpha.7 → 0.4.0-alpha.9

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 (112) hide show
  1. package/REFERENCE.md +1292 -287
  2. package/dist/authoring/index.d.ts +4 -9
  3. package/dist/authoring/index.js +11 -547
  4. package/dist/authoring/index.js.map +1 -1
  5. package/dist/authoring-compiler.d.ts +27 -0
  6. package/dist/authoring-compiler.js +12 -0
  7. package/dist/authoring-compiler.js.map +1 -0
  8. package/dist/authoring-materialize-cli.d.ts +1 -0
  9. package/dist/authoring-materialize-cli.js +46 -0
  10. package/dist/authoring-materialize-cli.js.map +1 -0
  11. package/dist/browser-interaction.d.ts +1 -1
  12. package/dist/{chunk-TGMXBRKY.js → chunk-3PFDHTR7.js} +19 -7
  13. package/dist/chunk-3PFDHTR7.js.map +1 -0
  14. package/dist/chunk-45P5CEGH.js +176 -0
  15. package/dist/chunk-45P5CEGH.js.map +1 -0
  16. package/dist/chunk-5XTAQ4EQ.js +32 -0
  17. package/dist/chunk-5XTAQ4EQ.js.map +1 -0
  18. package/dist/chunk-7ADPYKFT.js +532 -0
  19. package/dist/chunk-7ADPYKFT.js.map +1 -0
  20. package/dist/{chunk-RKGJ64UN.js → chunk-BUOODBVO.js} +2 -2
  21. package/dist/{chunk-VLG4YST5.js → chunk-GMOBG7Y7.js} +4 -4
  22. package/dist/{chunk-Q322XCY2.js → chunk-JRGP6W4V.js} +3 -3
  23. package/dist/chunk-L3W2FPRQ.js +1793 -0
  24. package/dist/chunk-L3W2FPRQ.js.map +1 -0
  25. package/dist/{chunk-3QIZKXJ2.js → chunk-NGYFBNBP.js} +3 -3
  26. package/dist/chunk-P6IJ5YVY.js +154 -0
  27. package/dist/chunk-P6IJ5YVY.js.map +1 -0
  28. package/dist/{chunk-5IHU5CUK.js → chunk-QQNL4WTX.js} +25 -22
  29. package/dist/chunk-QQNL4WTX.js.map +1 -0
  30. package/dist/{chunk-52DH7VQF.js → chunk-SACZWUA6.js} +143 -47
  31. package/dist/chunk-SACZWUA6.js.map +1 -0
  32. package/dist/{chunk-KYEWGZ2Y.js → chunk-SFOAY5H4.js} +2 -2
  33. package/dist/{chunk-KYEWGZ2Y.js.map → chunk-SFOAY5H4.js.map} +1 -1
  34. package/dist/chunk-UNVCT5Z7.js +73 -0
  35. package/dist/chunk-UNVCT5Z7.js.map +1 -0
  36. package/dist/{chunk-NO537WSS.js → chunk-WDR7SKBM.js} +2 -2
  37. package/dist/chunk-XDGRC6OR.js +7039 -0
  38. package/dist/chunk-XDGRC6OR.js.map +1 -0
  39. package/dist/chunk-XLHLFTLI.js +399 -0
  40. package/dist/chunk-XLHLFTLI.js.map +1 -0
  41. package/dist/{chunk-B2YBS3SG.js → chunk-YNW3KBDE.js} +41 -13
  42. package/dist/chunk-YNW3KBDE.js.map +1 -0
  43. package/dist/codegen.js +1 -1
  44. package/dist/{components-BTwSIjXj.d.ts → components-BPzsSRs8.d.ts} +1 -1
  45. package/dist/definitions-0kjPV9wh.d.ts +294 -0
  46. package/dist/{diagnostics-1BWjRo6-.d.ts → diagnostics-DIi3ina7.d.ts} +2 -1
  47. package/dist/{index-CFTjJIXd.d.ts → index-CWzWpQzM.d.ts} +1 -1
  48. package/dist/{index.d-DMASeF6M.d.ts → index.d-C7Ztirg6.d.ts} +234 -5
  49. package/dist/index.js +2 -2
  50. package/dist/package-set.d.ts +2 -2
  51. package/dist/package-set.js +2 -2
  52. package/dist/{protocol-835hEGne.d.ts → protocol-B2LWcqB4.d.ts} +14 -0
  53. package/dist/reducer/advanced.d.ts +4 -4
  54. package/dist/reducer/advanced.js +7 -26
  55. package/dist/reducer/advanced.js.map +1 -1
  56. package/dist/reducer-contract.d.ts +1 -1
  57. package/dist/reducer-contract.js +2 -2
  58. package/dist/reducer.d.ts +37 -28
  59. package/dist/reducer.js +43 -6018
  60. package/dist/reducer.js.map +1 -1
  61. package/dist/reference-game-compiler.d.ts +45 -0
  62. package/dist/reference-game-compiler.js +25 -0
  63. package/dist/reference-game-compiler.js.map +1 -0
  64. package/dist/reference-game-source-manifest-cli.d.ts +1 -0
  65. package/dist/reference-game-source-manifest-cli.js +84 -0
  66. package/dist/reference-game-source-manifest-cli.js.map +1 -0
  67. package/dist/reference-games/index.d.ts +7 -217
  68. package/dist/reference-games/index.js +28 -208
  69. package/dist/reference-games/index.js.map +1 -1
  70. package/dist/runtime/primitives.d.ts +3 -3
  71. package/dist/runtime/primitives.js +3 -3
  72. package/dist/runtime/runtime-api.d.ts +1 -1
  73. package/dist/runtime/workspace-contract.d.ts +4 -4
  74. package/dist/runtime/workspace-contract.js +4 -4
  75. package/dist/{runtime-Dkfm1x2r.d.ts → runtime-B_w9AO2n.d.ts} +60 -5
  76. package/dist/{runtime-api-C6aWo9c0.d.ts → runtime-api-xCWLMQRT.d.ts} +2 -0
  77. package/dist/runtime.d.ts +7 -7
  78. package/dist/runtime.js +13 -13
  79. package/dist/schema-9jZzlEWZ.d.ts +220 -0
  80. package/dist/{stale-contract-artifact-error-C5AaZPJ8.d.ts → stale-contract-artifact-error-XLaweZtF.d.ts} +1 -1
  81. package/dist/testing-compiler.d.ts +36 -0
  82. package/dist/testing-compiler.js +236 -0
  83. package/dist/testing-compiler.js.map +1 -0
  84. package/dist/testing-runtime.d.ts +97 -21
  85. package/dist/testing-runtime.js +154 -95
  86. package/dist/testing-runtime.js.map +1 -1
  87. package/dist/testing.d.ts +178 -60
  88. package/dist/testing.js +641 -26
  89. package/dist/testing.js.map +1 -1
  90. package/dist/types-Bvptkukh.d.ts +122 -0
  91. package/dist/{types-aI4V9CWe.d.ts → types-_zfC_7CD.d.ts} +1 -1
  92. package/dist/types.d.ts +4 -0
  93. package/dist/ui/components.d.ts +2 -2
  94. package/dist/ui/plugin-styles.css +1 -1
  95. package/dist/{ui-contract-Ue6SywvO.d.ts → ui-contract-CUC7Lyoc.d.ts} +1 -1
  96. package/dist/ui.d.ts +3 -3
  97. package/dist/{views-32rSsfeU.d.ts → views-DE2eZxPz.d.ts} +42 -13
  98. package/package.json +22 -3
  99. package/dist/chunk-3OZMHZK3.js +0 -40
  100. package/dist/chunk-3OZMHZK3.js.map +0 -1
  101. package/dist/chunk-52DH7VQF.js.map +0 -1
  102. package/dist/chunk-5IHU5CUK.js.map +0 -1
  103. package/dist/chunk-B2YBS3SG.js.map +0 -1
  104. package/dist/chunk-IU6KGPY7.js +0 -659
  105. package/dist/chunk-IU6KGPY7.js.map +0 -1
  106. package/dist/chunk-TGMXBRKY.js.map +0 -1
  107. package/dist/types-DcADVHe9.d.ts +0 -192
  108. /package/dist/{chunk-RKGJ64UN.js.map → chunk-BUOODBVO.js.map} +0 -0
  109. /package/dist/{chunk-VLG4YST5.js.map → chunk-GMOBG7Y7.js.map} +0 -0
  110. /package/dist/{chunk-Q322XCY2.js.map → chunk-JRGP6W4V.js.map} +0 -0
  111. /package/dist/{chunk-3QIZKXJ2.js.map → chunk-NGYFBNBP.js.map} +0 -0
  112. /package/dist/{chunk-NO537WSS.js.map → chunk-WDR7SKBM.js.map} +0 -0
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../plugin-runtime-contract/dist/chunk-GX5V4QL7.js","../../plugin-runtime-contract/dist/chunk-X6IFFMYH.js","../../plugin-runtime-contract/dist/index.js"],"sourcesContent":["// src/json.ts\nimport { sha256 } from \"@noble/hashes/sha2.js\";\nimport { bytesToHex, utf8ToBytes } from \"@noble/hashes/utils.js\";\nfunction canonicalizePluginRuntimeJson(value) {\n assertRuntimeJson(value);\n return canonicalizeJson(value);\n}\nfunction encodeCanonicalPluginRuntimeJson(value) {\n return JSON.stringify(canonicalizePluginRuntimeJson(value));\n}\nfunction digestPluginRuntimeJson(value) {\n return `sha256:${sha256Hex(encodeCanonicalPluginRuntimeJson(value))}`;\n}\nfunction canonicalizeJson(value) {\n if (value === null || typeof value === \"boolean\" || typeof value === \"string\") {\n return value;\n }\n if (typeof value === \"number\") {\n if (!Number.isFinite(value)) {\n throw new Error(\"canonical JSON contains a non-finite number\");\n }\n return value;\n }\n if (Array.isArray(value)) {\n return value.map((item) => canonicalizeJson(item));\n }\n return Object.fromEntries(\n Object.entries(value).filter(([, item]) => item !== void 0).sort(([left], [right]) => left < right ? -1 : left > right ? 1 : 0).map(([key, item]) => [key, canonicalizeJson(item)])\n );\n}\nfunction assertRuntimeJson(value) {\n if (value === null || typeof value === \"boolean\" || typeof value === \"string\") {\n return;\n }\n if (typeof value === \"number\") {\n if (!Number.isFinite(value)) {\n throw new Error(\"runtime JSON contains a non-finite number\");\n }\n return;\n }\n if (Array.isArray(value)) {\n value.forEach(assertRuntimeJson);\n return;\n }\n if (typeof value === \"object\") {\n Object.values(value).forEach((item) => {\n if (item !== void 0) {\n assertRuntimeJson(item);\n }\n });\n return;\n }\n throw new Error(`runtime JSON contains unsupported ${typeof value} value`);\n}\nfunction sha256Hex(input) {\n return bytesToHex(sha256(utf8ToBytes(input)));\n}\n\n// src/digest.ts\nfunction computePluginActionSetVersion(input) {\n return digestPluginRuntimeJson({\n digestVersion: \"plugin-action-set@3\",\n gameVersion: input.gameVersion,\n availableInteractions: input.availableInteractions\n });\n}\nfunction digestPluginGameplayFrame(frame) {\n return digestPluginRuntimeJson({\n digestVersion: \"plugin-gameplay-frame@3\",\n frame\n });\n}\nfunction digestPluginCommandRequest(command) {\n return digestPluginRuntimeJson({\n digestVersion: \"plugin-command-request@3\",\n command\n });\n}\n\nexport {\n canonicalizePluginRuntimeJson,\n encodeCanonicalPluginRuntimeJson,\n digestPluginRuntimeJson,\n computePluginActionSetVersion,\n digestPluginGameplayFrame,\n digestPluginCommandRequest\n};\n","// src/schema.ts\nimport { z } from \"zod\";\n\n// src/protocol.ts\nvar DREAMBOARD_PLUGIN_PROTOCOL = \"dreamboard-plugin\";\nvar DREAMBOARD_PLUGIN_PROTOCOL_VERSION = 3;\n\n// src/schema.ts\nvar RuntimeJsonSchema = z.lazy(\n () => z.union([\n z.null(),\n z.boolean(),\n z.number().finite(),\n z.string(),\n z.array(RuntimeJsonSchema),\n z.record(z.string(), RuntimeJsonSchema)\n ])\n);\nvar BoardStaticProjectionSchema = z.object({\n view: RuntimeJsonSchema,\n hash: z.string().optional(),\n manifestVersion: z.string().optional()\n}).strict();\nvar SetupGuidanceStepSchema = z.object({\n id: z.string().min(1),\n label: z.string().min(1),\n description: z.string().optional()\n}).strict();\nvar GameGuidanceProjectionSchema = z.object({\n phase: z.object({\n id: z.string().min(1),\n label: z.string().min(1),\n summary: z.string().optional(),\n objective: z.string().optional()\n }).strict(),\n setup: z.object({\n profileId: z.string().min(1),\n name: z.string().min(1),\n summary: z.string().optional(),\n steps: z.array(SetupGuidanceStepSchema)\n }).strict().optional()\n}).strict();\nvar GameEventDetailSchema = z.object({\n label: z.string().min(1),\n value: z.union([z.string(), z.number().finite(), z.boolean()])\n}).strict();\nvar SystemActionEventSchema = z.object({\n kind: z.literal(\"systemAction\"),\n procedureId: z.string().min(1),\n title: z.string().min(1),\n summary: z.string().optional(),\n details: z.array(GameEventDetailSchema).optional()\n}).strict();\nvar GameEventSchema = z.discriminatedUnion(\"kind\", [\n SystemActionEventSchema\n]);\nvar ProjectedGameEventSchema = GameEventSchema.and(\n z.object({\n version: z.number().int().nonnegative(),\n index: z.number().int().nonnegative()\n }).strict()\n);\nvar SeatProjectionBundleSchema = z.object({\n currentStage: z.string().nullable().optional(),\n stageSeats: z.array(z.string()).optional(),\n simultaneousPhase: z.unknown().nullable().optional(),\n schedulerFlow: z.object({\n version: z.literal(1),\n activePlayerIds: z.array(z.string()),\n pendingPlayerIds: z.array(z.string()),\n continuationDependencies: z.array(\n z.object({\n waiterPlayerId: z.string(),\n blockerPlayerIds: z.array(z.string())\n }).strict()\n )\n }).strict().optional(),\n guidance: GameGuidanceProjectionSchema.nullable().optional(),\n recentEvents: z.array(ProjectedGameEventSchema).optional(),\n sharedView: z.unknown().optional(),\n interactionsByRef: z.record(z.string(), z.unknown()).optional(),\n seats: z.record(\n z.string(),\n z.object({\n view: z.unknown().optional(),\n availableInteractionRefs: z.array(z.string()).optional(),\n zones: z.unknown().optional()\n }).strict()\n )\n}).strict();\nvar PlayerIdSchema = z.string().min(1);\nvar PluginPlayerSummarySchema = z.object({\n playerId: PlayerIdSchema,\n displayName: z.string(),\n color: z.string().optional()\n}).strict();\nvar PluginSessionDescriptorSchema = z.object({\n sessionId: z.string().min(1),\n players: z.array(PluginPlayerSummarySchema)\n}).strict();\nvar InteractionCommitPolicySchema = z.discriminatedUnion(\"mode\", [\n z.object({ mode: z.literal(\"manual\") }).strict(),\n z.object({ mode: z.literal(\"autoWhenReady\") }).strict()\n]);\nvar InputSelectionSchema = z.discriminatedUnion(\"mode\", [\n z.object({ mode: z.literal(\"single\") }).strict(),\n z.object({\n mode: z.literal(\"many\"),\n min: z.number().int(),\n max: z.number().int().optional(),\n distinct: z.boolean().optional()\n }).strict()\n]);\nvar InputDomainDependencyCaseSchema = z.lazy(\n () => z.object({\n when: z.record(z.string(), z.string()),\n domain: InputDomainSchema\n }).strict()\n);\nvar InputDomainDependenciesSchema = z.discriminatedUnion(\"mode\", [\n z.object({\n mode: z.literal(\"eager\"),\n dependentCases: z.array(InputDomainDependencyCaseSchema)\n }).strict(),\n z.object({\n mode: z.literal(\"lazy\"),\n dependsOn: z.array(z.string()),\n resolver: z.object({\n interactionKey: z.string().optional(),\n inputKey: z.string()\n }).strict()\n }).strict()\n]);\nvar InputDomainSchema = z.object({\n type: z.string(),\n selection: InputSelectionSchema.optional(),\n dependencies: InputDomainDependenciesSchema.optional()\n}).catchall(RuntimeJsonSchema);\nvar InteractionChoiceOptionSchema = z.object({\n value: z.string().nullable(),\n label: z.string(),\n icon: z.string().optional(),\n badge: z.string().optional(),\n description: z.string().optional(),\n disabled: z.boolean().optional(),\n disabledReason: z.string().optional()\n}).strict();\nvar InteractionInputDescriptorSchema = z.object({\n key: z.string().min(1),\n kind: z.string().min(1),\n domain: InputDomainSchema,\n defaultValue: RuntimeJsonSchema.optional()\n}).strict();\nvar InteractionAvailabilitySchema = z.discriminatedUnion(\"status\", [\n z.object({ status: z.literal(\"available\") }).strict(),\n z.object({ status: z.literal(\"notYourTurn\"), reason: z.string() }).strict(),\n z.object({\n status: z.literal(\"insufficientResources\"),\n reason: z.string(),\n missingResources: z.record(z.string(), z.number().finite())\n }).strict(),\n z.object({\n status: z.literal(\"blocked\"),\n reason: z.string(),\n code: z.string().optional()\n }).strict()\n]);\nvar InteractionBaseSchema = z.object({\n phaseName: z.string().min(1),\n interactionKey: z.string().min(1),\n interactionId: z.string().min(1),\n label: z.string().min(1),\n help: z.string().optional(),\n zoneId: z.string().optional(),\n zoneIds: z.array(z.string()).optional(),\n commit: InteractionCommitPolicySchema,\n descriptorDigest: z.string().optional(),\n actorSeat: z.number().int().optional(),\n draftDigest: z.string().optional(),\n inputs: z.array(InteractionInputDescriptorSchema),\n cost: z.record(z.string(), RuntimeJsonSchema).optional(),\n currentResources: z.record(z.string(), RuntimeJsonSchema).optional(),\n availability: InteractionAvailabilitySchema,\n reasons: z.array(\n z.object({\n ruleId: z.string(),\n errorCode: z.string()\n }).strict()\n ).optional()\n}).strict();\nvar InteractionContextSchema = z.object({\n to: z.string().min(1),\n title: z.string().optional(),\n payload: z.record(z.string(), RuntimeJsonSchema).optional(),\n options: z.array(\n z.object({\n id: z.string(),\n label: z.string().optional()\n }).strict()\n ).optional()\n}).strict();\nvar InteractionDescriptorSchema = z.discriminatedUnion(\"kind\", [\n InteractionBaseSchema.extend({ kind: z.literal(\"action\") }).strict(),\n InteractionBaseSchema.extend({\n kind: z.literal(\"prompt\"),\n context: InteractionContextSchema\n }).strict()\n]);\nvar ZoneHandlesSnapshotSchema = z.object({\n cardIds: z.array(z.string()),\n cardViewsById: z.record(z.string(), z.string()),\n playableByCardId: z.record(\n z.string(),\n z.array(InteractionDescriptorSchema)\n )\n}).strict();\nvar SimultaneousPhaseSnapshotSchema = z.object({\n phaseName: z.string().min(1),\n interactionId: z.string().min(1),\n actorIds: z.array(PlayerIdSchema),\n sealedPlayerIds: z.array(PlayerIdSchema),\n pendingPlayerIds: z.array(PlayerIdSchema)\n}).strict();\nvar PluginGameplayFrameSchema = z.object({\n gameVersion: z.number().int().nonnegative(),\n actionSetVersion: z.string().min(1),\n perspectivePlayerId: PlayerIdSchema.nullable(),\n sharedView: z.object({\n boardStatic: RuntimeJsonSchema.nullable(),\n dynamicView: RuntimeJsonSchema.nullable()\n }).strict(),\n view: RuntimeJsonSchema.nullable(),\n flow: z.object({\n currentPhase: z.string().nullable(),\n currentStage: z.string().nullable(),\n activePlayers: z.array(PlayerIdSchema),\n simultaneousPhase: SimultaneousPhaseSnapshotSchema.nullable()\n }).strict(),\n availableInteractions: z.array(InteractionDescriptorSchema),\n guidance: GameGuidanceProjectionSchema.nullable().optional(),\n recentEvents: z.array(ProjectedGameEventSchema),\n zones: z.record(z.string(), ZoneHandlesSnapshotSchema)\n}).strict();\nvar ValidationResultSchema = z.object({\n valid: z.boolean(),\n errorCode: z.string().optional(),\n message: z.string().optional()\n}).strict();\nvar SubmissionResultSchema = z.discriminatedUnion(\"accepted\", [\n z.object({ accepted: z.literal(true) }).strict(),\n z.object({\n accepted: z.literal(false),\n errorCode: z.string().min(1),\n message: z.string().optional()\n }).strict()\n]);\nvar PluginInteractionBasisSchema = z.object({\n gameVersion: z.number().int().nonnegative(),\n actionSetVersion: z.string().min(1),\n perspectivePlayerId: PlayerIdSchema.nullable()\n}).strict();\nvar ValidateInteractionCommandSchema = z.object({\n type: z.literal(\"interaction.validate\"),\n requestId: z.string().min(1),\n basis: PluginInteractionBasisSchema,\n interactionId: z.string().min(1),\n params: RuntimeJsonSchema\n}).strict();\nvar SubmitInteractionCommandSchema = z.object({\n type: z.literal(\"interaction.submit\"),\n requestId: z.string().min(1),\n basis: PluginInteractionBasisSchema,\n interactionId: z.string().min(1),\n params: RuntimeJsonSchema\n}).strict();\nvar HostToPluginPayloadSchema = z.discriminatedUnion(\"type\", [\n z.object({\n type: z.literal(\"runtime.init\"),\n session: PluginSessionDescriptorSchema\n }).strict(),\n z.object({\n type: z.literal(\"gameplay.frame\"),\n frame: PluginGameplayFrameSchema\n }).strict(),\n z.object({\n type: z.literal(\"interaction.validation-result\"),\n requestId: z.string().min(1),\n result: ValidationResultSchema\n }).strict(),\n z.object({\n type: z.literal(\"interaction.submit-result\"),\n requestId: z.string().min(1),\n result: SubmissionResultSchema\n }).strict()\n]);\nvar PluginToHostPayloadSchema = z.discriminatedUnion(\"type\", [\n z.object({ type: z.literal(\"runtime.ready\") }).strict(),\n z.object({\n type: z.literal(\"runtime.ack\"),\n sequence: z.number().int().nonnegative(),\n clientReceivedAtMs: z.number().finite().optional(),\n clientRenderedAtMs: z.number().finite().optional()\n }).strict(),\n ValidateInteractionCommandSchema,\n SubmitInteractionCommandSchema,\n z.object({\n type: z.literal(\"runtime.error\"),\n message: z.string(),\n code: z.string().optional()\n }).strict()\n]);\nfunction createPluginProtocolEnvelopeSchema(payloadSchema) {\n return z.object({\n protocol: z.literal(DREAMBOARD_PLUGIN_PROTOCOL),\n version: z.literal(DREAMBOARD_PLUGIN_PROTOCOL_VERSION),\n channelId: z.string().min(1),\n sequence: z.number().int().nonnegative(),\n payload: payloadSchema\n }).strict();\n}\nvar HostToPluginEnvelopeSchema = createPluginProtocolEnvelopeSchema(\n HostToPluginPayloadSchema\n);\nvar PluginToHostEnvelopeSchema = createPluginProtocolEnvelopeSchema(\n PluginToHostPayloadSchema\n);\nvar PluginProtocolFrameSchema = z.object({\n id: z.string().min(1),\n frame: PluginGameplayFrameSchema,\n projectionDigest: z.string().regex(/^sha256:[a-f0-9]{64}$/)\n}).strict();\nvar PluginProtocolStepSchema = z.discriminatedUnion(\"kind\", [\n z.object({\n id: z.string().min(1),\n kind: z.literal(\"host.frame\"),\n frameId: z.string().min(1)\n }).strict(),\n z.object({\n id: z.string().min(1),\n kind: z.literal(\"client.validate\"),\n fromFrameId: z.string().min(1),\n requestDigest: z.string().regex(/^sha256:[a-f0-9]{64}$/),\n response: ValidationResultSchema\n }).strict(),\n z.object({\n id: z.string().min(1),\n kind: z.literal(\"client.submit\"),\n fromFrameId: z.string().min(1),\n requestDigest: z.string().regex(/^sha256:[a-f0-9]{64}$/),\n response: SubmissionResultSchema\n }).strict()\n]);\nvar PluginProtocolTapeSchema = z.object({\n session: PluginSessionDescriptorSchema,\n frames: z.array(PluginProtocolFrameSchema),\n steps: z.array(PluginProtocolStepSchema)\n}).strict();\nfunction parsePluginSessionDescriptor(value) {\n return PluginSessionDescriptorSchema.parse(value);\n}\nfunction parsePluginGameplayFrame(value) {\n return PluginGameplayFrameSchema.parse(value);\n}\nfunction parseHostToPluginEnvelope(value) {\n return HostToPluginEnvelopeSchema.parse(value);\n}\nfunction parsePluginToHostEnvelope(value) {\n return PluginToHostEnvelopeSchema.parse(value);\n}\n\nexport {\n DREAMBOARD_PLUGIN_PROTOCOL,\n DREAMBOARD_PLUGIN_PROTOCOL_VERSION,\n RuntimeJsonSchema,\n BoardStaticProjectionSchema,\n SetupGuidanceStepSchema,\n GameGuidanceProjectionSchema,\n GameEventDetailSchema,\n SystemActionEventSchema,\n GameEventSchema,\n ProjectedGameEventSchema,\n SeatProjectionBundleSchema,\n PlayerIdSchema,\n PluginPlayerSummarySchema,\n PluginSessionDescriptorSchema,\n InteractionCommitPolicySchema,\n InputSelectionSchema,\n InputDomainDependenciesSchema,\n InputDomainSchema,\n InteractionChoiceOptionSchema,\n InteractionInputDescriptorSchema,\n InteractionAvailabilitySchema,\n InteractionContextSchema,\n InteractionDescriptorSchema,\n ZoneHandlesSnapshotSchema,\n SimultaneousPhaseSnapshotSchema,\n PluginGameplayFrameSchema,\n ValidationResultSchema,\n SubmissionResultSchema,\n PluginInteractionBasisSchema,\n ValidateInteractionCommandSchema,\n SubmitInteractionCommandSchema,\n HostToPluginPayloadSchema,\n PluginToHostPayloadSchema,\n createPluginProtocolEnvelopeSchema,\n HostToPluginEnvelopeSchema,\n PluginToHostEnvelopeSchema,\n PluginProtocolFrameSchema,\n PluginProtocolStepSchema,\n PluginProtocolTapeSchema,\n parsePluginSessionDescriptor,\n parsePluginGameplayFrame,\n parseHostToPluginEnvelope,\n parsePluginToHostEnvelope\n};\n","import {\n canonicalizePluginRuntimeJson,\n computePluginActionSetVersion,\n digestPluginCommandRequest,\n digestPluginGameplayFrame,\n digestPluginRuntimeJson,\n encodeCanonicalPluginRuntimeJson\n} from \"./chunk-GX5V4QL7.js\";\nimport {\n BoardStaticProjectionSchema,\n DREAMBOARD_PLUGIN_PROTOCOL,\n DREAMBOARD_PLUGIN_PROTOCOL_VERSION,\n GameEventDetailSchema,\n GameEventSchema,\n HostToPluginEnvelopeSchema,\n HostToPluginPayloadSchema,\n InputDomainDependenciesSchema,\n InputDomainSchema,\n InteractionAvailabilitySchema,\n InteractionCommitPolicySchema,\n InteractionContextSchema,\n InteractionDescriptorSchema,\n InteractionInputDescriptorSchema,\n PluginGameplayFrameSchema,\n PluginInteractionBasisSchema,\n PluginPlayerSummarySchema,\n PluginProtocolFrameSchema,\n PluginProtocolStepSchema,\n PluginProtocolTapeSchema,\n PluginSessionDescriptorSchema,\n PluginToHostEnvelopeSchema,\n PluginToHostPayloadSchema,\n ProjectedGameEventSchema,\n RuntimeJsonSchema,\n SeatProjectionBundleSchema,\n SimultaneousPhaseSnapshotSchema,\n SubmissionResultSchema,\n SubmitInteractionCommandSchema,\n SystemActionEventSchema,\n ValidateInteractionCommandSchema,\n ValidationResultSchema,\n ZoneHandlesSnapshotSchema,\n createPluginProtocolEnvelopeSchema,\n parseHostToPluginEnvelope,\n parsePluginGameplayFrame,\n parsePluginSessionDescriptor,\n parsePluginToHostEnvelope\n} from \"./chunk-X6IFFMYH.js\";\n\n// src/projection.ts\nfunction materializePluginGameplayFrame(input) {\n const dynamicProjection = SeatProjectionBundleSchema.parse(\n canonicalizeReducerProjection(input.dynamicProjection)\n );\n const staticProjection = input.staticProjection == null ? null : BoardStaticProjectionSchema.parse(\n canonicalizeReducerProjection(input.staticProjection)\n );\n const registry = parseInteractionRegistry(\n dynamicProjection.interactionsByRef\n );\n const seat = input.perspectivePlayerId == null ? null : dynamicProjection.seats[input.perspectivePlayerId] ?? null;\n const availableInteractions = seat == null ? [] : hydrateInteractionRefs(\n registry,\n seat.availableInteractionRefs,\n \"availableInteractionRefs\"\n );\n const zones = seat?.zones == null ? {} : hydrateZones(registry, seat.zones, \"zones\");\n const frame = {\n gameVersion: input.gameVersion,\n actionSetVersion: input.actionSetVersion,\n perspectivePlayerId: input.perspectivePlayerId,\n sharedView: {\n boardStatic: staticProjection?.view ?? null,\n dynamicView: dynamicProjection.sharedView === void 0 ? null : dynamicProjection.sharedView\n },\n view: seat?.view === void 0 ? null : seat.view,\n flow: {\n currentPhase: input.currentPhase,\n currentStage: dynamicProjection.currentStage ?? null,\n activePlayers: [...input.activePlayers],\n simultaneousPhase: dynamicProjection.simultaneousPhase ?? null\n },\n availableInteractions,\n guidance: dynamicProjection.guidance ?? null,\n recentEvents: [...dynamicProjection.recentEvents ?? []],\n zones\n };\n return PluginGameplayFrameSchema.parse(frame);\n}\nfunction canonicalizeReducerProjection(value) {\n return canonicalizePluginRuntimeJson(value);\n}\nfunction parseInteractionRegistry(value) {\n if (value == null) return {};\n if (!isRecord(value)) {\n throw new Error(\"Seat projection interactionsByRef must be an object.\");\n }\n return Object.fromEntries(\n Object.entries(value).map(([ref, descriptor]) => [\n ref,\n InteractionDescriptorSchema.parse(descriptor)\n ])\n );\n}\nfunction hydrateZones(registry, value, path) {\n if (!isRecord(value)) {\n throw new Error(`Seat projection ${path} must be an object.`);\n }\n return Object.fromEntries(\n Object.entries(value).map(([zoneId, zoneValue]) => [\n zoneId,\n hydrateZone(registry, zoneValue, `${path}.${zoneId}`)\n ])\n );\n}\nfunction hydrateZone(registry, value, path) {\n if (!isRecord(value)) {\n throw new Error(`Seat projection ${path} must be an object.`);\n }\n const cardIds = arrayOfStrings(value.cardIds, `${path}.cardIds`);\n const cardViewsById = stringRecord(\n value.cardViewsById,\n `${path}.cardViewsById`\n );\n if (!isRecord(value.playableByCardId)) {\n throw new Error(\n `Seat projection ${path}.playableByCardId must be an object.`\n );\n }\n const playableByCardId = Object.fromEntries(\n Object.entries(value.playableByCardId).map(([cardId, refs]) => [\n cardId,\n hydrateInteractionRefs(\n registry,\n refs,\n `${path}.playableByCardId.${cardId}`\n )\n ])\n );\n return ZoneHandlesSnapshotSchema.parse({\n cardIds,\n cardViewsById,\n playableByCardId\n });\n}\nfunction hydrateInteractionRefs(registry, value, path) {\n if (!Array.isArray(value)) {\n throw new Error(`Seat projection ${path} must be an array of refs.`);\n }\n return value.map((ref, index) => {\n if (typeof ref !== \"string\") {\n throw new Error(\n `Seat projection ${path}[${index}] must be a ref string.`\n );\n }\n const descriptor = registry[ref];\n if (!descriptor) {\n throw new Error(\n `Seat projection ${path}[${index}] references '${ref}', which is missing from interactionsByRef.`\n );\n }\n return descriptor;\n });\n}\nfunction arrayOfStrings(value, path) {\n if (!Array.isArray(value) || value.some((item) => typeof item !== \"string\")) {\n throw new Error(`Seat projection ${path} must be an array of strings.`);\n }\n return value;\n}\nfunction stringRecord(value, path) {\n if (!isRecord(value)) {\n throw new Error(`Seat projection ${path} must be an object.`);\n }\n const result = {};\n for (const [key, item] of Object.entries(value)) {\n if (typeof item !== \"string\") {\n throw new Error(`Seat projection ${path}.${key} must be a string.`);\n }\n result[key] = item;\n }\n return result;\n}\nfunction isRecord(value) {\n return value !== null && typeof value === \"object\" && !Array.isArray(value) && (Object.getPrototypeOf(value) === Object.prototype || Object.getPrototypeOf(value) === null);\n}\nexport {\n BoardStaticProjectionSchema,\n DREAMBOARD_PLUGIN_PROTOCOL,\n DREAMBOARD_PLUGIN_PROTOCOL_VERSION,\n GameEventDetailSchema,\n GameEventSchema,\n HostToPluginEnvelopeSchema,\n HostToPluginPayloadSchema,\n InputDomainDependenciesSchema,\n InputDomainSchema,\n InteractionAvailabilitySchema,\n InteractionCommitPolicySchema,\n InteractionContextSchema,\n InteractionDescriptorSchema,\n InteractionInputDescriptorSchema,\n PluginGameplayFrameSchema,\n PluginInteractionBasisSchema,\n PluginPlayerSummarySchema,\n PluginProtocolFrameSchema,\n PluginProtocolStepSchema,\n PluginProtocolTapeSchema,\n PluginSessionDescriptorSchema,\n PluginToHostEnvelopeSchema,\n PluginToHostPayloadSchema,\n ProjectedGameEventSchema,\n RuntimeJsonSchema,\n SeatProjectionBundleSchema,\n SimultaneousPhaseSnapshotSchema,\n SubmissionResultSchema,\n SubmitInteractionCommandSchema,\n SystemActionEventSchema,\n ValidateInteractionCommandSchema,\n ValidationResultSchema,\n ZoneHandlesSnapshotSchema,\n canonicalizePluginRuntimeJson,\n computePluginActionSetVersion,\n createPluginProtocolEnvelopeSchema,\n digestPluginCommandRequest,\n digestPluginGameplayFrame,\n digestPluginRuntimeJson,\n encodeCanonicalPluginRuntimeJson,\n materializePluginGameplayFrame,\n parseHostToPluginEnvelope,\n parsePluginGameplayFrame,\n parsePluginSessionDescriptor,\n parsePluginToHostEnvelope\n};\n"],"mappings":"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","names":[]}
@@ -4260,6 +4260,9 @@ function renderGenericBoardStateSchema(board, runtimeBoardId) {
4260
4260
  fields: ${`${boardContainerFieldsTypeName(board.board.id)}Schema`},
4261
4261
  })`
4262
4262
  ).join(",\n ");
4263
+ const renderedContainers = containerEntries ? `
4264
+ ${containerEntries}
4265
+ ` : "";
4263
4266
  return `z.object({
4264
4267
  id: z.literal(${quote(runtimeBoardId)}),
4265
4268
  baseId: z.literal(${quote(board.board.id)}),
@@ -4298,9 +4301,7 @@ function renderGenericBoardStateSchema(board, runtimeBoardId) {
4298
4301
  fields: ${`${boardRelationFieldsTypeName(board.board.id)}Schema`},
4299
4302
  }),
4300
4303
  ),
4301
- containers: z.object({
4302
- ${containerEntries}
4303
- }),
4304
+ containers: z.object({${renderedContainers}}),
4304
4305
  })`;
4305
4306
  }
4306
4307
  function renderHexBoardStateSchema(board, runtimeBoardId) {
@@ -4376,6 +4377,9 @@ function renderSquareBoardStateSchema(board, runtimeBoardId) {
4376
4377
  fields: ${`${boardContainerFieldsTypeName(board.board.id)}Schema`},
4377
4378
  })`
4378
4379
  ).join(",\n ");
4380
+ const renderedContainers = containerEntries ? `
4381
+ ${containerEntries}
4382
+ ` : "";
4379
4383
  return `z.object({
4380
4384
  id: z.literal(${quote(runtimeBoardId)}),
4381
4385
  baseId: z.literal(${quote(board.board.id)}),
@@ -4408,9 +4412,7 @@ function renderSquareBoardStateSchema(board, runtimeBoardId) {
4408
4412
  fields: ${`${boardRelationFieldsTypeName(board.board.id)}Schema`},
4409
4413
  }),
4410
4414
  ),
4411
- containers: z.object({
4412
- ${containerEntries}
4413
- }),
4415
+ containers: z.object({${renderedContainers}}),
4414
4416
  edges: z.array(
4415
4417
  z.object({
4416
4418
  id: ids.edgeId,
@@ -5414,39 +5416,117 @@ const playerIdSchema = markManifestScopedSchema(
5414
5416
  .string()
5415
5417
  .min(1)
5416
5418
  .transform((value) => asPlayerId(value)),
5419
+ "playerId",
5420
+ );
5421
+ const phaseNameSchema = markManifestScopedSchema(z.string(), "phaseName");
5422
+ const boardLayoutSchema = createManifestStringLiteralSchema(
5423
+ literals.boardLayouts,
5424
+ "boardLayout",
5425
+ );
5426
+ const setupOptionIdSchema = createManifestStringLiteralSchema(
5427
+ literals.setupOptionIds,
5428
+ "setupOptionId",
5417
5429
  );
5418
- const phaseNameSchema = markManifestScopedSchema(z.string());
5419
- const boardLayoutSchema = createManifestStringLiteralSchema(literals.boardLayouts);
5420
- const setupOptionIdSchema = createManifestStringLiteralSchema(literals.setupOptionIds);
5421
5430
  const setupProfileIdSchema = createManifestStringLiteralSchema(
5422
5431
  literals.setupProfileIds,
5432
+ "setupProfileId",
5433
+ );
5434
+ const cardSetIdSchema = createManifestStringLiteralSchema(
5435
+ literals.cardSetIds,
5436
+ "cardSetId",
5437
+ );
5438
+ const cardTypeSchema = createManifestStringLiteralSchema(
5439
+ literals.cardTypes,
5440
+ "cardType",
5441
+ );
5442
+ const cardIdSchema = createManifestStringLiteralSchema(
5443
+ literals.cardIds,
5444
+ "cardId",
5445
+ );
5446
+ const deckIdSchema = createManifestStringLiteralSchema(
5447
+ literals.deckIds,
5448
+ "deckId",
5449
+ );
5450
+ const handIdSchema = createManifestStringLiteralSchema(
5451
+ literals.handIds,
5452
+ "handId",
5453
+ );
5454
+ const sharedZoneIdSchema = createManifestStringLiteralSchema(
5455
+ literals.sharedZoneIds,
5456
+ "sharedZoneId",
5457
+ );
5458
+ const playerZoneIdSchema = createManifestStringLiteralSchema(
5459
+ literals.playerZoneIds,
5460
+ "playerZoneId",
5461
+ );
5462
+ const zoneIdSchema = createManifestStringLiteralSchema(
5463
+ literals.zoneIds,
5464
+ "zoneId",
5465
+ );
5466
+ const resourceIdSchema = createManifestStringLiteralSchema(
5467
+ literals.resourceIds,
5468
+ "resourceId",
5469
+ );
5470
+ const pieceTypeIdSchema = createManifestStringLiteralSchema(
5471
+ literals.pieceTypeIds,
5472
+ "pieceTypeId",
5473
+ );
5474
+ const pieceIdSchema = createManifestStringLiteralSchema(
5475
+ literals.pieceIds,
5476
+ "pieceId",
5477
+ );
5478
+ const dieTypeIdSchema = createManifestStringLiteralSchema(
5479
+ literals.dieTypeIds,
5480
+ "dieTypeId",
5481
+ );
5482
+ const dieIdSchema = createManifestStringLiteralSchema(
5483
+ literals.dieIds,
5484
+ "dieId",
5485
+ );
5486
+ const boardTypeIdSchema = createManifestStringLiteralSchema(
5487
+ literals.boardTypeIds,
5488
+ "boardTypeId",
5489
+ );
5490
+ const boardBaseIdSchema = createManifestStringLiteralSchema(
5491
+ literals.boardBaseIds,
5492
+ "boardBaseId",
5493
+ );
5494
+ const boardIdSchema = createManifestStringLiteralSchema(
5495
+ literals.boardIds,
5496
+ "boardId",
5423
5497
  );
5424
- const cardSetIdSchema = createManifestStringLiteralSchema(literals.cardSetIds);
5425
- const cardTypeSchema = createManifestStringLiteralSchema(literals.cardTypes);
5426
- const cardIdSchema = createManifestStringLiteralSchema(literals.cardIds);
5427
- const deckIdSchema = createManifestStringLiteralSchema(literals.deckIds);
5428
- const handIdSchema = createManifestStringLiteralSchema(literals.handIds);
5429
- const sharedZoneIdSchema = createManifestStringLiteralSchema(literals.sharedZoneIds);
5430
- const playerZoneIdSchema = createManifestStringLiteralSchema(literals.playerZoneIds);
5431
- const zoneIdSchema = createManifestStringLiteralSchema(literals.zoneIds);
5432
- const resourceIdSchema = createManifestStringLiteralSchema(literals.resourceIds);
5433
- const pieceTypeIdSchema = createManifestStringLiteralSchema(literals.pieceTypeIds);
5434
- const pieceIdSchema = createManifestStringLiteralSchema(literals.pieceIds);
5435
- const dieTypeIdSchema = createManifestStringLiteralSchema(literals.dieTypeIds);
5436
- const dieIdSchema = createManifestStringLiteralSchema(literals.dieIds);
5437
- const boardTypeIdSchema = createManifestStringLiteralSchema(literals.boardTypeIds);
5438
- const boardBaseIdSchema = createManifestStringLiteralSchema(literals.boardBaseIds);
5439
- const boardIdSchema = createManifestStringLiteralSchema(literals.boardIds);
5440
5498
  const boardContainerIdSchema = createManifestStringLiteralSchema(
5441
5499
  literals.boardContainerIds,
5500
+ "boardContainerId",
5501
+ );
5502
+ const relationTypeIdSchema = createManifestStringLiteralSchema(
5503
+ literals.relationTypeIds,
5504
+ "relationTypeId",
5505
+ );
5506
+ const edgeIdSchema = createManifestStringLiteralSchema(
5507
+ literals.edgeIds,
5508
+ "edgeId",
5509
+ );
5510
+ const edgeTypeIdSchema = createManifestStringLiteralSchema(
5511
+ literals.edgeTypeIds,
5512
+ "edgeTypeId",
5513
+ );
5514
+ const vertexIdSchema = createManifestStringLiteralSchema(
5515
+ literals.vertexIds,
5516
+ "vertexId",
5517
+ );
5518
+ const vertexTypeIdSchema = createManifestStringLiteralSchema(
5519
+ literals.vertexTypeIds,
5520
+ "vertexTypeId",
5521
+ );
5522
+ const spaceIdSchema = createManifestStringLiteralSchema(
5523
+ literals.spaceIds,
5524
+ "spaceId",
5525
+ );
5526
+ const spaceTypeIdSchema = createManifestStringLiteralSchema(
5527
+ literals.spaceTypeIds,
5528
+ "spaceTypeId",
5442
5529
  );
5443
- const relationTypeIdSchema = createManifestStringLiteralSchema(literals.relationTypeIds);
5444
- const edgeIdSchema = createManifestStringLiteralSchema(literals.edgeIds);
5445
- const edgeTypeIdSchema = createManifestStringLiteralSchema(literals.edgeTypeIds);
5446
- const vertexIdSchema = createManifestStringLiteralSchema(literals.vertexIds);
5447
- const vertexTypeIdSchema = createManifestStringLiteralSchema(literals.vertexTypeIds);
5448
- const spaceIdSchema = createManifestStringLiteralSchema(literals.spaceIds);
5449
- const spaceTypeIdSchema = createManifestStringLiteralSchema(literals.spaceTypeIds);
5450
5530
 
5451
5531
  export const ids = {
5452
5532
  playerId: playerIdSchema,
@@ -5456,9 +5536,9 @@ export const ids = {
5456
5536
  setupProfileId: setupProfileIdSchema,
5457
5537
  cardSetId: cardSetIdSchema,
5458
5538
  cardType: cardTypeSchema,
5459
- cardId: cardIdSchema as unknown as z.ZodType<CardId>,
5460
- deckId: deckIdSchema as unknown as z.ZodType<DeckId>,
5461
- handId: handIdSchema as unknown as z.ZodType<HandId>,
5539
+ cardId: cardIdSchema as unknown as typeof cardIdSchema & z.ZodType<CardId>,
5540
+ deckId: deckIdSchema as unknown as typeof deckIdSchema & z.ZodType<DeckId>,
5541
+ handId: handIdSchema as unknown as typeof handIdSchema & z.ZodType<HandId>,
5462
5542
  sharedZoneId: sharedZoneIdSchema,
5463
5543
  playerZoneId: playerZoneIdSchema,
5464
5544
  zoneId: zoneIdSchema,
@@ -6333,6 +6413,13 @@ export function createInitialTable(options: {
6333
6413
  return tableSchema.parse(table);
6334
6414
  }
6335
6415
 
6416
+ export const normalSetup = {
6417
+ minPlayers: ${JSON.stringify(manifest.players.minPlayers)},
6418
+ maxPlayers: ${JSON.stringify(manifest.players.maxPlayers)},
6419
+ createInitialTable: (options: { readonly playerIds: readonly string[] }) =>
6420
+ createInitialTable({ playerIds: options.playerIds }),
6421
+ } as const;
6422
+
6336
6423
  export const schemas = {
6337
6424
  table: tableSchema,
6338
6425
  runtime: runtimeSchema,
@@ -6376,10 +6463,14 @@ export const manifestContract: ReducerManifestContract<
6376
6463
  DeckId,
6377
6464
  HandId,
6378
6465
  CardId
6379
- > = {
6466
+ > & {
6467
+ readonly ids: typeof ids;
6468
+ readonly normalSetup: typeof normalSetup;
6469
+ } = {
6380
6470
  literals,
6381
6471
  ids,
6382
6472
  defaults,
6473
+ normalSetup,
6383
6474
  staticBoards: staticBoards as unknown as StaticBoards<TableState>,
6384
6475
  setupOptionsById,
6385
6476
  setupChoiceIdsByOptionId,
@@ -6532,14 +6623,14 @@ const unknownRecordSchema`
6532
6623
  "literals.playerIds as unknown as readonly PlayerId[]",
6533
6624
  "literals.playerIds"
6534
6625
  ).replaceAll(
6535
- "cardId: cardIdSchema as unknown as z.ZodType<CardId>,",
6536
- "cardId: assumeManifestSchema<CardId>(cardIdSchema),"
6626
+ "cardId: cardIdSchema as unknown as typeof cardIdSchema & z.ZodType<CardId>,",
6627
+ 'cardId: assumeManifestSchema<CardId, "cardId">(cardIdSchema),'
6537
6628
  ).replaceAll(
6538
- "deckId: deckIdSchema as unknown as z.ZodType<DeckId>,",
6539
- "deckId: assumeManifestSchema<DeckId>(deckIdSchema),"
6629
+ "deckId: deckIdSchema as unknown as typeof deckIdSchema & z.ZodType<DeckId>,",
6630
+ 'deckId: assumeManifestSchema<DeckId, "deckId">(deckIdSchema),'
6540
6631
  ).replaceAll(
6541
- "handId: handIdSchema as unknown as z.ZodType<HandId>,",
6542
- "handId: assumeManifestSchema<HandId>(handIdSchema),"
6632
+ "handId: handIdSchema as unknown as typeof handIdSchema & z.ZodType<HandId>,",
6633
+ 'handId: assumeManifestSchema<HandId, "handId">(handIdSchema),'
6543
6634
  ).replace(
6544
6635
  " type StaticBoards,\n",
6545
6636
  " type StaticBoards,\n type StaticBoardsJsonEnvelope,\n"
@@ -6572,13 +6663,15 @@ const unknownRecordSchema`
6572
6663
  .string()
6573
6664
  .min(1)
6574
6665
  .transform((value) => asPlayerId(value)),
6666
+ "playerId",
6575
6667
  );`,
6576
- `const playerIdSchema = assumeManifestSchema<PublicPlayerId>(
6668
+ `const playerIdSchema = assumeManifestSchema<PublicPlayerId, "playerId">(
6577
6669
  markManifestScopedSchema(
6578
6670
  z
6579
6671
  .string()
6580
6672
  .min(1)
6581
6673
  .transform((value) => asPlayerId(value)),
6674
+ "playerId",
6582
6675
  ),
6583
6676
  );`
6584
6677
  );
@@ -7976,9 +8069,9 @@ export type InteractionRoute<Key extends InteractionKey> = {
7976
8069
  readonly collect: InteractionCollectSlots<Key>;
7977
8070
  };
7978
8071
 
7979
- export type InteractionRoutes = {
8072
+ export type InteractionRoutes = Partial<{
7980
8073
  [Key in InteractionKey]: InteractionRoute<Key>;
7981
- };
8074
+ }>;
7982
8075
 
7983
8076
  export type InteractionRoutesProps = {
7984
8077
  routes: InteractionRoutes;
@@ -8496,7 +8589,10 @@ export default authoring.game({
8496
8589
  initialPhase: "setup",
8497
8590
  setupProfiles,
8498
8591
  phases,
8499
- views: {},
8592
+ views: {
8593
+ shared: authoring.emptyView(),
8594
+ player: authoring.emptyView(),
8595
+ },
8500
8596
  });
8501
8597
  `;
8502
8598
  }
@@ -8841,4 +8937,4 @@ export {
8841
8937
  generateAuthoritativeFiles,
8842
8938
  generateDynamicGeneratedFiles
8843
8939
  };
8844
- //# sourceMappingURL=chunk-52DH7VQF.js.map
8940
+ //# sourceMappingURL=chunk-SACZWUA6.js.map