@dreamboard-games/sdk 0.5.0-alpha.0 → 0.5.0-alpha.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (113) hide show
  1. package/README.md +127 -0
  2. package/dist/browser-interaction.d.ts +22 -22
  3. package/dist/{chunk-VRRR6QZT.js → chunk-32PFKDV7.js} +170 -406
  4. package/dist/chunk-32PFKDV7.js.map +1 -0
  5. package/dist/{chunk-N33CGX2F.js → chunk-3BAD4VC2.js} +3 -3
  6. package/dist/{chunk-LMHCGCA6.js → chunk-3SKDNDPG.js} +2 -2
  7. package/dist/chunk-5YV2WHJ4.js +25 -0
  8. package/dist/chunk-5YV2WHJ4.js.map +1 -0
  9. package/dist/{chunk-VWTKGIYF.js → chunk-ANRB4XKA.js} +1 -1
  10. package/dist/chunk-ANRB4XKA.js.map +1 -0
  11. package/dist/{chunk-EOEA3I64.js → chunk-BI4G3PM2.js} +7 -7
  12. package/dist/chunk-BI4G3PM2.js.map +1 -0
  13. package/dist/{chunk-KRJPRYEA.js → chunk-EVCLTY4Q.js} +21 -8
  14. package/dist/chunk-EVCLTY4Q.js.map +1 -0
  15. package/dist/{chunk-DQS2EG5E.js → chunk-GDPKTBUR.js} +2 -2
  16. package/dist/{chunk-FL67RDID.js → chunk-H6VDGFL5.js} +128 -128
  17. package/dist/chunk-H6VDGFL5.js.map +1 -0
  18. package/dist/{chunk-6LMESVGT.js → chunk-LR3ZTWQF.js} +3 -3
  19. package/dist/chunk-LR3ZTWQF.js.map +1 -0
  20. package/dist/{chunk-TXELBVTG.js → chunk-PN5O6GG2.js} +2 -2
  21. package/dist/{chunk-533O7C4L.js → chunk-S2JEDVWH.js} +500 -430
  22. package/dist/chunk-S2JEDVWH.js.map +1 -0
  23. package/dist/{chunk-2GQIALJL.js → chunk-UGH54WZ2.js} +6 -2
  24. package/dist/chunk-UGH54WZ2.js.map +1 -0
  25. package/dist/chunk-VCDWP5VL.js +746 -0
  26. package/dist/chunk-VCDWP5VL.js.map +1 -0
  27. package/dist/{chunk-ZSTCUJKZ.js → chunk-Y75CFE77.js} +2 -6
  28. package/dist/chunk-Y75CFE77.js.map +1 -0
  29. package/dist/chunk-Z7QCREWI.js +3435 -0
  30. package/dist/chunk-Z7QCREWI.js.map +1 -0
  31. package/dist/chunk-ZZGN2ATS.js +1941 -0
  32. package/dist/chunk-ZZGN2ATS.js.map +1 -0
  33. package/dist/{components-CNAt5J1p.d.ts → components-gAbIz7hK.d.ts} +2 -18
  34. package/dist/{definitions-bZSBaPjj.d.ts → definitions-BgmV_GhC.d.ts} +3 -3
  35. package/dist/digest.d.ts +2 -2
  36. package/dist/game-CsZScpcn.d.ts +763 -0
  37. package/dist/{index-CR69MyWr.d.ts → index-CcT9Q7N7.d.ts} +1 -1
  38. package/dist/{index.d-Bw8AOcgp.d.ts → index.d-DjzoK7zn.d.ts} +67 -2
  39. package/dist/index.js +1 -2
  40. package/dist/package-set.js +1 -2
  41. package/dist/plugin-runtime-contract.d.ts +4 -4
  42. package/dist/plugin-runtime-contract.js +13 -15
  43. package/dist/{protocol-CVaSqPgX.d.ts → protocol-dYgafTYY.d.ts} +1 -7
  44. package/dist/reducer/advanced.d.ts +12 -11
  45. package/dist/reducer/advanced.js +10 -4
  46. package/dist/reducer-contract.d.ts +10 -2
  47. package/dist/reducer-contract.js +4 -4
  48. package/dist/reducer.d.ts +12 -689
  49. package/dist/reducer.js +19 -1293
  50. package/dist/reducer.js.map +1 -1
  51. package/dist/runtime/primitives.d.ts +4 -4
  52. package/dist/runtime/primitives.js +5 -5
  53. package/dist/runtime/runtime-api.d.ts +2 -2
  54. package/dist/runtime/workspace-contract.d.ts +50 -17
  55. package/dist/runtime/workspace-contract.js +15 -10
  56. package/dist/{runtime-C7Z2acNU.d.ts → runtime-RJ5orDJU.d.ts} +23 -30
  57. package/dist/{plugin-state-BRH3UiUp.d.ts → runtime-api-Bz5pwNU_.d.ts} +86 -4
  58. package/dist/runtime.d.ts +8 -8
  59. package/dist/runtime.js +19 -17
  60. package/dist/runtime.js.map +1 -1
  61. package/dist/schema.d.ts +2 -28
  62. package/dist/testing-compiler.d.ts +4 -4
  63. package/dist/testing-runtime.d.ts +7 -7
  64. package/dist/testing-runtime.js +6 -6
  65. package/dist/testing.d.ts +17 -17
  66. package/dist/testing.js +14 -14
  67. package/dist/{types-q1Guidm5.d.ts → types-DR7DoB1x.d.ts} +1 -1
  68. package/dist/{types-DN4O7kH_.d.ts → types-JWCYHmu7.d.ts} +2 -2
  69. package/dist/types.js +6 -18
  70. package/dist/types.js.map +1 -1
  71. package/dist/ui/components.d.ts +3 -4
  72. package/dist/ui/components.js +1 -5
  73. package/dist/{ui-contract-BC4JpysE.d.ts → ui-contract-GTUPkf8z.d.ts} +175 -176
  74. package/dist/ui.d.ts +4 -5
  75. package/dist/ui.js +2 -6
  76. package/dist/{views-D2Cfzr3h.d.ts → views-BpuWcOyN.d.ts} +101 -48
  77. package/package.json +3 -22
  78. package/dist/authoring/index.d.ts +0 -59
  79. package/dist/authoring/index.js +0 -24
  80. package/dist/authoring/index.js.map +0 -1
  81. package/dist/authoring-compiler.d.ts +0 -27
  82. package/dist/authoring-compiler.js +0 -11
  83. package/dist/authoring-compiler.js.map +0 -1
  84. package/dist/authoring-materialize-cli.d.ts +0 -1
  85. package/dist/authoring-materialize-cli.js +0 -45
  86. package/dist/authoring-materialize-cli.js.map +0 -1
  87. package/dist/chunk-2GQIALJL.js.map +0 -1
  88. package/dist/chunk-533O7C4L.js.map +0 -1
  89. package/dist/chunk-6LMESVGT.js.map +0 -1
  90. package/dist/chunk-EOEA3I64.js.map +0 -1
  91. package/dist/chunk-FL67RDID.js.map +0 -1
  92. package/dist/chunk-HIH6Y4FA.js +0 -7802
  93. package/dist/chunk-HIH6Y4FA.js.map +0 -1
  94. package/dist/chunk-HUK4234C.js +0 -166
  95. package/dist/chunk-HUK4234C.js.map +0 -1
  96. package/dist/chunk-KGV2EUNN.js +0 -532
  97. package/dist/chunk-KGV2EUNN.js.map +0 -1
  98. package/dist/chunk-KRJPRYEA.js.map +0 -1
  99. package/dist/chunk-KWHOFBDM.js +0 -9
  100. package/dist/chunk-KWHOFBDM.js.map +0 -1
  101. package/dist/chunk-VRRR6QZT.js.map +0 -1
  102. package/dist/chunk-VWTKGIYF.js.map +0 -1
  103. package/dist/chunk-XFMSLL3P.js +0 -637
  104. package/dist/chunk-XFMSLL3P.js.map +0 -1
  105. package/dist/chunk-ZSTCUJKZ.js.map +0 -1
  106. package/dist/codegen.d.ts +0 -941
  107. package/dist/codegen.js +0 -44
  108. package/dist/codegen.js.map +0 -1
  109. package/dist/runtime-api-CgPuEVeF.d.ts +0 -86
  110. /package/dist/{chunk-N33CGX2F.js.map → chunk-3BAD4VC2.js.map} +0 -0
  111. /package/dist/{chunk-LMHCGCA6.js.map → chunk-3SKDNDPG.js.map} +0 -0
  112. /package/dist/{chunk-DQS2EG5E.js.map → chunk-GDPKTBUR.js.map} +0 -0
  113. /package/dist/{chunk-TXELBVTG.js.map → chunk-PN5O6GG2.js.map} +0 -0
package/dist/codegen.d.ts DELETED
@@ -1,941 +0,0 @@
1
- /**
2
- * Supported player-count metadata for the game
3
- */
4
- type PlayersDefinition = {
5
- minPlayers: number;
6
- maxPlayers: number;
7
- optimalPlayers?: number;
8
- };
9
- type PresetCardSetDefinition = {
10
- /**
11
- * Unique local identifier for the authored card set
12
- */
13
- id: string;
14
- /**
15
- * Built-in preset card-set selector
16
- */
17
- presetId: string;
18
- /**
19
- * Display name of the card set
20
- */
21
- name: string;
22
- /**
23
- * Type of card set source
24
- */
25
- type: "preset";
26
- /**
27
- * Default initial home for cards materialized from the preset.
28
- */
29
- defaultHome: ComponentHomeSpec;
30
- };
31
- /**
32
- * Arbitrary authored JSON value.
33
- */
34
- type JsonValue = string | number | boolean | null | Array<JsonValue> | {
35
- [key: string]: JsonValue;
36
- };
37
- type PropertySchema = {
38
- /**
39
- * The data type of the property.
40
- */
41
- type: "string" | "integer" | "number" | "boolean" | "zoneId" | "cardId" | "playerId" | "boardId" | "edgeId" | "vertexId" | "spaceId" | "pieceId" | "dieId" | "resourceId" | "array" | "object" | "record" | "enum";
42
- /**
43
- * Optional description of the property's purpose and usage.
44
- */
45
- description?: string;
46
- /**
47
- * Whether an object property may be omitted.
48
- */
49
- optional?: boolean;
50
- /**
51
- * Whether the value may be null.
52
- */
53
- nullable?: boolean;
54
- /**
55
- * Optional authored default value for this property. When present, omitted
56
- * seed values materialize to the default and generated TypeScript treats
57
- * the property as present even if `optional: true` is also set.
58
- *
59
- */
60
- default?: JsonValue;
61
- /**
62
- * For array types, the schema of the array items. Required if type is 'array'.
63
- */
64
- items?: PropertySchema;
65
- /**
66
- * For object types, the schema of the object's properties. Required if type is 'object'.
67
- */
68
- properties?: {
69
- [key: string]: PropertySchema;
70
- };
71
- /**
72
- * For enum types, the list of allowed string values. Required if type is 'enum'.
73
- */
74
- enums?: Array<string>;
75
- /**
76
- * For record types, the schema of the record's values. Required if type is 'record'.
77
- */
78
- values?: PropertySchema;
79
- };
80
- type ObjectSchema = {
81
- /**
82
- * Map of property names to their schemas. Type is always 'object' and all properties are required.
83
- */
84
- properties: {
85
- [key: string]: PropertySchema;
86
- };
87
- };
88
- type CardPropertySchemaVariants = {
89
- /**
90
- * Property schemas present on every card-type variant.
91
- */
92
- shared?: {
93
- [key: string]: PropertySchema;
94
- };
95
- /**
96
- * Property schema for each card type in this manual card set.
97
- */
98
- variants: {
99
- [key: string]: ObjectSchema;
100
- };
101
- };
102
- type CardPropertySchema = ObjectSchema | CardPropertySchemaVariants;
103
- type DetachedHomeSpec = {
104
- type: "detached";
105
- };
106
- type ZoneHomeSpec = {
107
- type: "zone";
108
- zoneId: string;
109
- };
110
- type SpaceHomeSpec = {
111
- type: "space";
112
- boardId: string;
113
- spaceId: string;
114
- };
115
- type ContainerHomeSpec = {
116
- type: "container";
117
- boardId: string;
118
- containerId: string;
119
- };
120
- /**
121
- * Tiled board edge identified by the spaces that border it
122
- */
123
- type BoardEdgeRef = {
124
- spaces: Array<string>;
125
- };
126
- type EdgeHomeSpec = {
127
- type: "edge";
128
- boardId: string;
129
- ref: BoardEdgeRef;
130
- };
131
- /**
132
- * Tiled board vertex identified by the spaces that touch it
133
- */
134
- type BoardVertexRef = {
135
- spaces: Array<string>;
136
- };
137
- type VertexHomeSpec = {
138
- type: "vertex";
139
- boardId: string;
140
- ref: BoardVertexRef;
141
- };
142
- type PieceSlotHostRef = {
143
- kind: "piece";
144
- id: string;
145
- };
146
- type DieSlotHostRef = {
147
- kind: "die";
148
- id: string;
149
- };
150
- type SlotHostRef = ({
151
- kind: "piece";
152
- } & PieceSlotHostRef) | ({
153
- kind: "die";
154
- } & DieSlotHostRef);
155
- type SlotHomeSpec = {
156
- type: "slot";
157
- host: SlotHostRef;
158
- slotId: string;
159
- };
160
- type ComponentHomeSpec = ({
161
- type: "detached";
162
- } & DetachedHomeSpec) | ({
163
- type: "zone";
164
- } & ZoneHomeSpec) | ({
165
- type: "space";
166
- } & SpaceHomeSpec) | ({
167
- type: "container";
168
- } & ContainerHomeSpec) | ({
169
- type: "edge";
170
- } & EdgeHomeSpec) | ({
171
- type: "vertex";
172
- } & VertexHomeSpec) | ({
173
- type: "slot";
174
- } & SlotHomeSpec);
175
- /**
176
- * Default authored visibility for a component instance
177
- */
178
- type ComponentVisibilitySpec = {
179
- faceUp?: boolean;
180
- /**
181
- * When omitted, visible to all players
182
- */
183
- visibleTo?: Array<string>;
184
- };
185
- type BoardCard = {
186
- /**
187
- * Card type identifier used to generate runtime CardIds. When count > 1, runtime IDs are generated as '{type}-1', '{type}-2', etc.
188
- */
189
- type: string;
190
- /**
191
- * Display name of the card
192
- */
193
- name: string;
194
- /**
195
- * URL to the card's image
196
- */
197
- imageUrl?: string;
198
- /**
199
- * Text content on the card
200
- */
201
- text?: string;
202
- /**
203
- * Number of copies of this card
204
- */
205
- count: number;
206
- /**
207
- * Optional authored card category or subtype identifier
208
- */
209
- cardType?: string;
210
- /**
211
- * Optional per-card initial home. Omitted cards use their manual card set's
212
- * defaultHome. Compatibility declarations such as allowedCardSetIds never
213
- * imply placement. Player-scoped distribution belongs in reducer setup.
214
- */
215
- home?: ComponentHomeSpec;
216
- /**
217
- * Default authored visibility for the card inventory
218
- */
219
- visibility?: ComponentVisibilitySpec;
220
- /**
221
- * Actual property values for this specific card instance. Keys must match the properties defined in the referenced cardSchema.
222
- */
223
- properties: {
224
- [key: string]: JsonValue;
225
- };
226
- };
227
- type ManualCardSetDefinition = {
228
- /**
229
- * Unique identifier for the card set
230
- */
231
- id: string;
232
- /**
233
- * Display name of the card set
234
- */
235
- name: string;
236
- /**
237
- * Type of card set source
238
- */
239
- type: "manual";
240
- /**
241
- * Schema definition for authored card properties in this card set
242
- */
243
- cardSchema: CardPropertySchema;
244
- /**
245
- * Default initial home for cards that do not declare a per-card home.
246
- */
247
- defaultHome: ComponentHomeSpec;
248
- /**
249
- * List of authored cards in this card set
250
- */
251
- cards: Array<BoardCard>;
252
- };
253
- type CardSetDefinition = ({
254
- type: "preset";
255
- } & PresetCardSetDefinition) | ({
256
- type: "manual";
257
- } & ManualCardSetDefinition);
258
- /**
259
- * Whether authored topology exists once for the table or once per player
260
- */
261
- type TopologyScope = "shared" | "perPlayer";
262
- /**
263
- * Default topology visibility for a zone or slot
264
- */
265
- type ZoneVisibility = "ownerOnly" | "public" | "hidden";
266
- /**
267
- * Generic authored container that can hold cards, pieces, or dice
268
- */
269
- type ZoneSpec = {
270
- /**
271
- * Stable zone identifier
272
- */
273
- id: string;
274
- /**
275
- * Display name for the zone
276
- */
277
- name: string;
278
- scope: TopologyScope;
279
- /**
280
- * Optional card-set restriction for this zone
281
- */
282
- allowedCardSetIds?: Array<string>;
283
- visibility?: ZoneVisibility;
284
- };
285
- /**
286
- * Stable authored board space or slot anchor
287
- */
288
- type BoardSpaceSpec = {
289
- /**
290
- * Stable space identifier local to the board
291
- */
292
- id: string;
293
- /**
294
- * Human-readable space name
295
- */
296
- name?: string;
297
- /**
298
- * Optional authored space type identifier
299
- */
300
- typeId?: string;
301
- /**
302
- * Typed authored fields validated against the board's spaceFieldsSchema
303
- */
304
- fields?: {
305
- [key: string]: JsonValue;
306
- };
307
- };
308
- /**
309
- * Named relation between two authored spaces
310
- */
311
- type BoardRelationSpec = {
312
- /**
313
- * Optional stable relation identifier
314
- */
315
- id?: string;
316
- /**
317
- * Relation type identifier such as adjacent, covers, blocks, or linked
318
- */
319
- typeId: string;
320
- fromSpaceId: string;
321
- toSpaceId: string;
322
- directed?: boolean;
323
- /**
324
- * Typed authored relation fields validated against relationFieldsSchema
325
- */
326
- fields?: {
327
- [key: string]: JsonValue;
328
- };
329
- };
330
- type BoardHostSpec = {
331
- type: "board";
332
- };
333
- type SpaceHostSpec = {
334
- type: "space";
335
- spaceId: string;
336
- };
337
- type BoardContainerHostSpec = ({
338
- type: "board";
339
- } & BoardHostSpec) | ({
340
- type: "space";
341
- } & SpaceHostSpec);
342
- /**
343
- * Authored board-attached or space-attached container/slot
344
- */
345
- type BoardContainerSpec = {
346
- /**
347
- * Stable container identifier local to the board
348
- */
349
- id: string;
350
- /**
351
- * Display name for the container
352
- */
353
- name: string;
354
- host: BoardContainerHostSpec;
355
- allowedCardSetIds?: Array<string>;
356
- /**
357
- * Typed authored container fields validated against containerFieldsSchema
358
- */
359
- fields?: {
360
- [key: string]: JsonValue;
361
- };
362
- };
363
- /**
364
- * Reusable authored board topology template
365
- */
366
- type GenericBoardTemplateSpec = {
367
- /**
368
- * Stable template identifier
369
- */
370
- id: string;
371
- name: string;
372
- layout: "generic";
373
- /**
374
- * Optional authored board type identifier such as track, map, tableau, or grid
375
- */
376
- typeId?: string;
377
- boardFieldsSchema?: ObjectSchema;
378
- spaceFieldsSchema?: ObjectSchema;
379
- relationFieldsSchema?: ObjectSchema;
380
- containerFieldsSchema?: ObjectSchema;
381
- spaces?: Array<BoardSpaceSpec>;
382
- relations?: Array<BoardRelationSpec>;
383
- containers?: Array<BoardContainerSpec>;
384
- };
385
- /**
386
- * Visual orientation for authored hex coordinates
387
- */
388
- type HexOrientation = "pointy-top" | "flat-top";
389
- /**
390
- * One authored hex space in axial coordinates
391
- */
392
- type HexSpaceSpec = {
393
- /**
394
- * Stable space identifier local to the board
395
- */
396
- id: string;
397
- /**
398
- * Axial q coordinate
399
- */
400
- q: number;
401
- /**
402
- * Axial r coordinate
403
- */
404
- r: number;
405
- /**
406
- * Optional authored space type identifier
407
- */
408
- typeId?: string;
409
- /**
410
- * Optional hex-space label for setup or rendering
411
- */
412
- label?: string;
413
- /**
414
- * Typed authored fields validated against the board's spaceFieldsSchema
415
- */
416
- fields?: {
417
- [key: string]: JsonValue;
418
- };
419
- };
420
- /**
421
- * Hex edge identified by two adjacent hex spaces
422
- */
423
- type HexEdgeRef = {
424
- spaces: [string, string];
425
- };
426
- /**
427
- * Authored metadata attached to one derived hex edge
428
- */
429
- type HexEdgeSpec = {
430
- ref: HexEdgeRef;
431
- /**
432
- * Optional authored edge type identifier
433
- */
434
- typeId?: string;
435
- /**
436
- * Optional edge label for setup or rendering
437
- */
438
- label?: string;
439
- tags?: Array<string>;
440
- /**
441
- * Typed authored edge fields validated against edgeFieldsSchema
442
- */
443
- fields?: {
444
- [key: string]: JsonValue;
445
- };
446
- };
447
- /**
448
- * Hex vertex identified by three touching hex spaces
449
- */
450
- type HexVertexRef = {
451
- spaces: [string, string, string];
452
- };
453
- /**
454
- * Authored metadata attached to one derived hex vertex
455
- */
456
- type HexVertexSpec = {
457
- ref: HexVertexRef;
458
- /**
459
- * Optional authored vertex type identifier
460
- */
461
- typeId?: string;
462
- /**
463
- * Optional vertex label for setup or rendering
464
- */
465
- label?: string;
466
- tags?: Array<string>;
467
- /**
468
- * Typed authored vertex fields validated against vertexFieldsSchema
469
- */
470
- fields?: {
471
- [key: string]: JsonValue;
472
- };
473
- };
474
- /**
475
- * Reusable authored hex board topology template
476
- */
477
- type HexBoardTemplateSpec = {
478
- /**
479
- * Stable template identifier
480
- */
481
- id: string;
482
- name: string;
483
- layout: "hex";
484
- /**
485
- * Optional authored board type identifier
486
- */
487
- typeId?: string;
488
- orientation?: HexOrientation;
489
- boardFieldsSchema?: ObjectSchema;
490
- spaceFieldsSchema?: ObjectSchema;
491
- edgeFieldsSchema?: ObjectSchema;
492
- vertexFieldsSchema?: ObjectSchema;
493
- spaces?: Array<HexSpaceSpec>;
494
- edges?: Array<HexEdgeSpec>;
495
- vertices?: Array<HexVertexSpec>;
496
- };
497
- /**
498
- * One authored square space in row/column coordinates
499
- */
500
- type SquareSpaceSpec = {
501
- /**
502
- * Stable space identifier local to the board
503
- */
504
- id: string;
505
- /**
506
- * Zero-based row coordinate
507
- */
508
- row: number;
509
- /**
510
- * Zero-based column coordinate
511
- */
512
- col: number;
513
- /**
514
- * Optional authored space type identifier
515
- */
516
- typeId?: string;
517
- /**
518
- * Optional square-space label for setup or rendering
519
- */
520
- label?: string;
521
- /**
522
- * Typed authored fields validated against the board's spaceFieldsSchema
523
- */
524
- fields?: {
525
- [key: string]: JsonValue;
526
- };
527
- };
528
- /**
529
- * Authored metadata attached to one derived square edge
530
- */
531
- type SquareEdgeSpec = {
532
- ref: BoardEdgeRef;
533
- /**
534
- * Optional authored edge type identifier
535
- */
536
- typeId?: string;
537
- /**
538
- * Optional edge label for setup or rendering
539
- */
540
- label?: string;
541
- tags?: Array<string>;
542
- /**
543
- * Typed authored edge fields validated against edgeFieldsSchema
544
- */
545
- fields?: {
546
- [key: string]: JsonValue;
547
- };
548
- };
549
- /**
550
- * Authored metadata attached to one derived square vertex
551
- */
552
- type SquareVertexSpec = {
553
- ref: BoardVertexRef;
554
- /**
555
- * Optional authored vertex type identifier
556
- */
557
- typeId?: string;
558
- /**
559
- * Optional vertex label for setup or rendering
560
- */
561
- label?: string;
562
- tags?: Array<string>;
563
- /**
564
- * Typed authored vertex fields validated against vertexFieldsSchema
565
- */
566
- fields?: {
567
- [key: string]: JsonValue;
568
- };
569
- };
570
- /**
571
- * Reusable authored square board topology template
572
- */
573
- type SquareBoardTemplateSpec = {
574
- /**
575
- * Stable template identifier
576
- */
577
- id: string;
578
- name: string;
579
- layout: "square";
580
- /**
581
- * Optional authored board type identifier
582
- */
583
- typeId?: string;
584
- boardFieldsSchema?: ObjectSchema;
585
- spaceFieldsSchema?: ObjectSchema;
586
- relationFieldsSchema?: ObjectSchema;
587
- containerFieldsSchema?: ObjectSchema;
588
- edgeFieldsSchema?: ObjectSchema;
589
- vertexFieldsSchema?: ObjectSchema;
590
- spaces?: Array<SquareSpaceSpec>;
591
- relations?: Array<BoardRelationSpec>;
592
- containers?: Array<BoardContainerSpec>;
593
- edges?: Array<SquareEdgeSpec>;
594
- vertices?: Array<SquareVertexSpec>;
595
- };
596
- type BoardTemplateSpec = ({
597
- layout: "generic";
598
- } & GenericBoardTemplateSpec) | ({
599
- layout: "hex";
600
- } & HexBoardTemplateSpec) | ({
601
- layout: "square";
602
- } & SquareBoardTemplateSpec);
603
- /**
604
- * Shared or per-player authored board instance shell
605
- */
606
- type GenericBoardSpec = {
607
- /**
608
- * Stable board identifier
609
- */
610
- id: string;
611
- name: string;
612
- layout: "generic";
613
- /**
614
- * Optional authored board type identifier such as track, map, tableau, or grid
615
- */
616
- typeId?: string;
617
- scope: TopologyScope;
618
- /**
619
- * Optional board template to clone before applying inline authored additions
620
- */
621
- templateId?: string;
622
- boardFieldsSchema?: ObjectSchema;
623
- spaceFieldsSchema?: ObjectSchema;
624
- relationFieldsSchema?: ObjectSchema;
625
- containerFieldsSchema?: ObjectSchema;
626
- /**
627
- * Typed authored board fields validated against boardFieldsSchema
628
- */
629
- fields?: {
630
- [key: string]: JsonValue;
631
- };
632
- spaces?: Array<BoardSpaceSpec>;
633
- relations?: Array<BoardRelationSpec>;
634
- containers?: Array<BoardContainerSpec>;
635
- };
636
- /**
637
- * Shared or per-player authored hex board instance shell
638
- */
639
- type HexBoardSpec = {
640
- /**
641
- * Stable board identifier
642
- */
643
- id: string;
644
- name: string;
645
- layout: "hex";
646
- /**
647
- * Optional authored board type identifier
648
- */
649
- typeId?: string;
650
- scope: TopologyScope;
651
- /**
652
- * Optional hex board template to clone before applying inline authored additions
653
- */
654
- templateId?: string;
655
- orientation?: HexOrientation;
656
- boardFieldsSchema?: ObjectSchema;
657
- spaceFieldsSchema?: ObjectSchema;
658
- edgeFieldsSchema?: ObjectSchema;
659
- vertexFieldsSchema?: ObjectSchema;
660
- /**
661
- * Typed authored board fields validated against boardFieldsSchema
662
- */
663
- fields?: {
664
- [key: string]: JsonValue;
665
- };
666
- spaces?: Array<HexSpaceSpec>;
667
- edges?: Array<HexEdgeSpec>;
668
- vertices?: Array<HexVertexSpec>;
669
- };
670
- /**
671
- * Shared or per-player authored square board instance shell
672
- */
673
- type SquareBoardSpec = {
674
- /**
675
- * Stable board identifier
676
- */
677
- id: string;
678
- name: string;
679
- layout: "square";
680
- /**
681
- * Optional authored board type identifier
682
- */
683
- typeId?: string;
684
- scope: TopologyScope;
685
- /**
686
- * Optional square board template to clone before applying inline authored additions
687
- */
688
- templateId?: string;
689
- boardFieldsSchema?: ObjectSchema;
690
- spaceFieldsSchema?: ObjectSchema;
691
- relationFieldsSchema?: ObjectSchema;
692
- containerFieldsSchema?: ObjectSchema;
693
- edgeFieldsSchema?: ObjectSchema;
694
- vertexFieldsSchema?: ObjectSchema;
695
- /**
696
- * Typed authored board fields validated against boardFieldsSchema
697
- */
698
- fields?: {
699
- [key: string]: JsonValue;
700
- };
701
- spaces?: Array<SquareSpaceSpec>;
702
- relations?: Array<BoardRelationSpec>;
703
- containers?: Array<BoardContainerSpec>;
704
- edges?: Array<SquareEdgeSpec>;
705
- vertices?: Array<SquareVertexSpec>;
706
- };
707
- type BoardSpec = ({
708
- layout: "generic";
709
- } & GenericBoardSpec) | ({
710
- layout: "hex";
711
- } & HexBoardSpec) | ({
712
- layout: "square";
713
- } & SquareBoardSpec);
714
- /**
715
- * Named authored slot exposed by a piece or die type
716
- */
717
- type ComponentSlotSpec = {
718
- id: string;
719
- name?: string;
720
- };
721
- /**
722
- * Reusable authored piece type
723
- */
724
- type PieceTypeSpec = {
725
- id: string;
726
- name: string;
727
- fieldsSchema?: ObjectSchema;
728
- slots?: Array<ComponentSlotSpec>;
729
- };
730
- /**
731
- * Authored seeded piece inventory or supply definition
732
- */
733
- type PieceSeedSpec = {
734
- /**
735
- * Stable piece id seed. When count > 1, runtime ids are generated as '{id}-1', '{id}-2', etc.
736
- */
737
- id?: string;
738
- name?: string;
739
- typeId: string;
740
- count?: number;
741
- ownerId?: string;
742
- home?: ComponentHomeSpec;
743
- visibility?: ComponentVisibilitySpec;
744
- /**
745
- * Typed authored piece fields validated against the piece type schema
746
- */
747
- fields?: {
748
- [key: string]: JsonValue;
749
- };
750
- };
751
- /**
752
- * Reusable authored die type
753
- */
754
- type DieTypeSpec$2 = {
755
- id: string;
756
- name: string;
757
- sides?: number;
758
- fieldsSchema?: ObjectSchema;
759
- slots?: Array<ComponentSlotSpec>;
760
- };
761
- /**
762
- * Authored seeded die inventory or supply definition
763
- */
764
- type DieSeedSpec = {
765
- /**
766
- * Stable die id seed. When count > 1, runtime ids are generated as '{id}-1', '{id}-2', etc.
767
- */
768
- id?: string;
769
- name?: string;
770
- typeId: string;
771
- count?: number;
772
- ownerId?: string;
773
- home?: ComponentHomeSpec;
774
- visibility?: ComponentVisibilitySpec;
775
- /**
776
- * Typed authored die fields validated against the die type schema
777
- */
778
- fields?: {
779
- [key: string]: JsonValue;
780
- };
781
- };
782
- /**
783
- * Definition of a game resource type
784
- */
785
- type ResourceDefinition = {
786
- /**
787
- * Unique identifier for the resource. Used as a typed ResourceId.
788
- */
789
- id: string;
790
- /**
791
- * Human-readable display name for the resource
792
- */
793
- name: string;
794
- /**
795
- * Optional compact icon or emoji rendered by generic UI resource controls.
796
- */
797
- icon?: string;
798
- };
799
- /**
800
- * One authored setup option choice
801
- */
802
- type SetupOptionChoiceSpec = {
803
- id: string;
804
- label: string;
805
- description?: string;
806
- };
807
- /**
808
- * Authored setup module/variant axis metadata
809
- */
810
- type SetupOptionSpec = {
811
- id: string;
812
- name: string;
813
- description?: string;
814
- choices?: Array<SetupOptionChoiceSpec>;
815
- };
816
- /**
817
- * One player-facing setup guidance step. Completion state remains game-owned
818
- * view data; the framework only preserves authored copy.
819
- */
820
- type SetupGuidanceStep = {
821
- id: string;
822
- label: string;
823
- description?: string;
824
- };
825
- /**
826
- * Reducer-consumed authored setup profile, recipe, or loadout metadata
827
- */
828
- type SetupProfileSpec = {
829
- id: string;
830
- name: string;
831
- description?: string;
832
- /**
833
- * Selected setup-option values for this profile
834
- */
835
- optionValues?: {
836
- [key: string]: string;
837
- };
838
- guidance?: {
839
- summary?: string;
840
- steps?: ReadonlyArray<SetupGuidanceStep>;
841
- };
842
- };
843
- /**
844
- * Authoritative topology manifest for reducer-native games
845
- */
846
- type GameTopologyManifest$2 = {
847
- players: PlayersDefinition;
848
- /**
849
- * Authored card catalogs and schemas
850
- */
851
- cardSets: Array<CardSetDefinition>;
852
- /**
853
- * Shared and per-player authored containers
854
- */
855
- zones?: Array<ZoneSpec>;
856
- /**
857
- * Reusable board topology templates
858
- */
859
- boardTemplates?: Array<BoardTemplateSpec>;
860
- /**
861
- * Shared and per-player authored board shells
862
- */
863
- boards?: Array<BoardSpec>;
864
- pieceTypes?: Array<PieceTypeSpec>;
865
- pieceSeeds?: Array<PieceSeedSpec>;
866
- dieTypes?: Array<DieTypeSpec$2>;
867
- dieSeeds?: Array<DieSeedSpec>;
868
- resources?: Array<ResourceDefinition>;
869
- /**
870
- * Authored setup-option metadata consumed by reducer-owned setup flows
871
- */
872
- setupOptions?: Array<SetupOptionSpec>;
873
- /**
874
- * Authored setup recipes, loadouts, or module profiles consumed by reducer setup code
875
- */
876
- setupProfiles?: Array<SetupProfileSpec>;
877
- };
878
-
879
- type DieTypeSpec = Omit<DieTypeSpec$2, "sides"> & {
880
- sides?: DieTypeSpec$2["sides"];
881
- };
882
- type GameTopologyManifest = Omit<GameTopologyManifest$2, "dieTypes"> & {
883
- dieTypes?: Array<DieTypeSpec>;
884
- };
885
-
886
- declare function materializeManifestTable(options: {
887
- manifest: GameTopologyManifest;
888
- playerIds: readonly string[];
889
- shuffleItems: <Value>(values: readonly Value[]) => Value[];
890
- }): Record<string, unknown>;
891
-
892
- type ManifestAuthoringValidationResult = {
893
- errors: string[];
894
- warnings: string[];
895
- };
896
- declare function validateManifestAuthoring(manifest: GameTopologyManifest): ManifestAuthoringValidationResult;
897
-
898
- type OwnershipPattern = {
899
- prefix: string;
900
- suffix: string;
901
- };
902
- type ScaffoldingOwnership = {
903
- version: number;
904
- allowedPaths: {
905
- rootFiles: string[];
906
- directoryPrefixes: string[];
907
- };
908
- dynamic: {
909
- generatedFiles: string[];
910
- seedFiles: string[];
911
- seedFilePatterns: OwnershipPattern[];
912
- };
913
- cliStatic: {
914
- exactFiles: string[];
915
- directoryPrefixes: string[];
916
- };
917
- preservedUserFiles: string[];
918
- };
919
- declare const WORKSPACE_CODEGEN_OWNERSHIP: ScaffoldingOwnership;
920
- declare const AUTHORITATIVE_GENERATED_FILES: string[];
921
- declare const SEED_FILES: string[];
922
- declare const SEED_FILE_PATTERNS: OwnershipPattern[];
923
- declare const PRESERVED_USER_FILES: Set<string>;
924
- declare function isAllowedGamePath(filePath: string): boolean;
925
- declare function isAuthoritativeGeneratedPath(filePath: string): boolean;
926
- declare function isDynamicSeedPath(filePath: string): boolean;
927
- declare function isCliStaticPath(filePath: string): boolean;
928
- declare function isLibraryPath(filePath: string): boolean;
929
-
930
- declare const SETUP_PROFILES_SEED_MARKER = "Generated by dreamboard setup-profiles scaffold.";
931
- declare function isFrameworkOwnedSetupProfilesSeed(content: string | null | undefined): boolean;
932
- declare function generateSeedFiles(manifest: GameTopologyManifest): Record<string, string>;
933
-
934
- declare function materializePresetCardSet(presetCardSet: PresetCardSetDefinition): ManualCardSetDefinition;
935
- declare function materializeCardSet(cardSet: GameTopologyManifest["cardSets"][number]): ManualCardSetDefinition;
936
-
937
- declare function generateAuthoritativeFiles(manifest: GameTopologyManifest): Record<string, string>;
938
-
939
- declare function generateDynamicGeneratedFiles(manifest: GameTopologyManifest): Record<string, string>;
940
-
941
- export { AUTHORITATIVE_GENERATED_FILES, PRESERVED_USER_FILES, SEED_FILES, SEED_FILE_PATTERNS, SETUP_PROFILES_SEED_MARKER, WORKSPACE_CODEGEN_OWNERSHIP, generateAuthoritativeFiles, generateDynamicGeneratedFiles, generateSeedFiles, isAllowedGamePath, isAuthoritativeGeneratedPath, isCliStaticPath, isDynamicSeedPath, isFrameworkOwnedSetupProfilesSeed, isLibraryPath, materializeCardSet, materializeManifestTable, materializePresetCardSet, validateManifestAuthoring };