@dreamboard-games/sdk 0.4.0-alpha.0 → 0.4.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 (84) hide show
  1. package/README.md +8 -1
  2. package/REFERENCE.md +1849 -379
  3. package/dist/{ResourceCounter-BTXklCEZ.d.ts → ResourceCounter-BuiNstXs.d.ts} +5 -1
  4. package/dist/{ThemeProvider-DvMl17Ny.d.ts → ThemeProvider-B1sIoBlX.d.ts} +1 -1
  5. package/dist/attributes-DbvyMbXw.d.ts +68 -0
  6. package/dist/authoring/index.d.ts +66 -0
  7. package/dist/authoring/index.js +560 -0
  8. package/dist/authoring/index.js.map +1 -0
  9. package/dist/browser-interaction.d.ts +246 -44
  10. package/dist/browser-interaction.js +14 -1
  11. package/dist/{chunk-Q5O7GPVY.js → chunk-45FI6XII.js} +630 -375
  12. package/dist/chunk-45FI6XII.js.map +1 -0
  13. package/dist/{chunk-4G7552LO.js → chunk-6JQFGSLD.js} +216 -47
  14. package/dist/chunk-6JQFGSLD.js.map +1 -0
  15. package/dist/{chunk-NBAEEHAU.js → chunk-CP35NPPY.js} +5926 -5266
  16. package/dist/chunk-CP35NPPY.js.map +1 -0
  17. package/dist/{chunk-2LDZ5C3T.js → chunk-FWVV2X74.js} +2 -2
  18. package/dist/{chunk-MNKDSGIA.js → chunk-HWJS3VOJ.js} +6 -2
  19. package/dist/chunk-HWJS3VOJ.js.map +1 -0
  20. package/dist/chunk-K5ZRJTZZ.js +328 -0
  21. package/dist/chunk-K5ZRJTZZ.js.map +1 -0
  22. package/dist/{chunk-U5KBV2BA.js → chunk-N6ZDIMRB.js} +444 -223
  23. package/dist/chunk-N6ZDIMRB.js.map +1 -0
  24. package/dist/chunk-O6M6PN4E.js +1225 -0
  25. package/dist/chunk-O6M6PN4E.js.map +1 -0
  26. package/dist/chunk-PF7L4BMG.js +117 -0
  27. package/dist/chunk-PF7L4BMG.js.map +1 -0
  28. package/dist/{chunk-P7F4L2FF.js → chunk-WOWFONLZ.js} +609 -1287
  29. package/dist/chunk-WOWFONLZ.js.map +1 -0
  30. package/dist/{chunk-QLG6VEMW.js → chunk-WUIVY2KE.js} +318 -21
  31. package/dist/chunk-WUIVY2KE.js.map +1 -0
  32. package/dist/chunk-ZAS2SENW.js +12 -0
  33. package/dist/chunk-ZAS2SENW.js.map +1 -0
  34. package/dist/codegen.d.ts +11 -1
  35. package/dist/codegen.js +1 -1
  36. package/dist/{components-DaIqi9QM.d.ts → components-BbWPnZCF.d.ts} +37 -70
  37. package/dist/{hex-board-view-UCUjMALd.d.ts → hex-board-view-Kz9Q_zsv.d.ts} +1 -1
  38. package/dist/index.js +2 -1
  39. package/dist/package-set.d.ts +2 -2
  40. package/dist/package-set.js +2 -1
  41. package/dist/player-state-Cqpyeql0.d.ts +371 -0
  42. package/dist/protocol-BP193lva.d.ts +267 -0
  43. package/dist/reducer/advanced.d.ts +2 -2
  44. package/dist/reducer/advanced.js +1 -1
  45. package/dist/reducer-contract.js +1 -1
  46. package/dist/reducer.d.ts +7 -7
  47. package/dist/reducer.js +190 -183
  48. package/dist/reducer.js.map +1 -1
  49. package/dist/runtime/primitives.d.ts +10 -9
  50. package/dist/runtime/primitives.js +9 -6
  51. package/dist/runtime/runtime-api.d.ts +2 -2
  52. package/dist/runtime/workspace-contract.d.ts +28 -76
  53. package/dist/runtime/workspace-contract.js +7 -5
  54. package/dist/runtime-api-BJharVaj.d.ts +198 -0
  55. package/dist/runtime-api-C6aWo9c0.d.ts +95 -0
  56. package/dist/runtime-json-CQ9QbLZ5.d.ts +5 -0
  57. package/dist/runtime.d.ts +80 -11
  58. package/dist/runtime.js +89 -445
  59. package/dist/runtime.js.map +1 -1
  60. package/dist/testing.d.ts +643 -22
  61. package/dist/testing.js +1371 -76
  62. package/dist/testing.js.map +1 -1
  63. package/dist/types-CYeN0wLK.d.ts +29 -0
  64. package/dist/{attributes-BeRyboMS.d.ts → types-DJj5MJkl.d.ts} +32 -55
  65. package/dist/types.d.ts +14 -7
  66. package/dist/ui/components.d.ts +4 -5
  67. package/dist/ui/components.js +19 -1
  68. package/dist/ui/player-state.d.ts +2 -365
  69. package/dist/ui/plugin-styles.css +1 -1
  70. package/dist/{ui-contract-BUC6iS3s.d.ts → ui-contract-CY7cxsCC.d.ts} +17 -26
  71. package/dist/ui.d.ts +8 -13
  72. package/dist/ui.js +20 -2
  73. package/dist/{views-B0hlW6IT.d.ts → views-fn2RuXOx.d.ts} +59 -44
  74. package/package.json +28 -4
  75. package/dist/chunk-4G7552LO.js.map +0 -1
  76. package/dist/chunk-MNKDSGIA.js.map +0 -1
  77. package/dist/chunk-NBAEEHAU.js.map +0 -1
  78. package/dist/chunk-P7F4L2FF.js.map +0 -1
  79. package/dist/chunk-Q5O7GPVY.js.map +0 -1
  80. package/dist/chunk-QLG6VEMW.js.map +0 -1
  81. package/dist/chunk-U5KBV2BA.js.map +0 -1
  82. package/dist/hex-color-MhOyuY-o.d.ts +0 -8
  83. package/dist/runtime-api-BXd70c2e.d.ts +0 -490
  84. /package/dist/{chunk-2LDZ5C3T.js.map → chunk-FWVV2X74.js.map} +0 -0
package/REFERENCE.md CHANGED
@@ -47,7 +47,7 @@ _No JSDoc summary is available yet._
47
47
 
48
48
  ```ts
49
49
  const DREAMBOARD_SDK_PACKAGES: {
50
- readonly "@dreamboard-games/sdk": "0.4.0-alpha.0";
50
+ readonly "@dreamboard-games/sdk": "0.4.0-alpha.2";
51
51
  };
52
52
  ```
53
53
 
@@ -56,7 +56,7 @@ _No JSDoc summary is available yet._
56
56
  ### DREAMBOARD_SDK_VERSION
57
57
 
58
58
  ```ts
59
- const DREAMBOARD_SDK_VERSION = "0.4.0-alpha.0";
59
+ const DREAMBOARD_SDK_VERSION: "0.4.0-alpha.2";
60
60
  ```
61
61
 
62
62
  _No JSDoc summary is available yet._
@@ -95,7 +95,7 @@ _No JSDoc summary is available yet._
95
95
 
96
96
  ```ts
97
97
  const DREAMBOARD_SDK_PACKAGES: {
98
- readonly "@dreamboard-games/sdk": "0.4.0-alpha.0";
98
+ readonly "@dreamboard-games/sdk": "0.4.0-alpha.2";
99
99
  };
100
100
  ```
101
101
 
@@ -104,7 +104,7 @@ _No JSDoc summary is available yet._
104
104
  ### DREAMBOARD_SDK_VERSION
105
105
 
106
106
  ```ts
107
- const DREAMBOARD_SDK_VERSION = "0.4.0-alpha.0";
107
+ const DREAMBOARD_SDK_VERSION: "0.4.0-alpha.2";
108
108
  ```
109
109
 
110
110
  _No JSDoc summary is available yet._
@@ -1270,24 +1270,7 @@ Supported player-count metadata for the game
1270
1270
  ### PresetCardSetDefinition
1271
1271
 
1272
1272
  ```ts
1273
- type PresetCardSetDefinition = {
1274
- /**
1275
- * Unique local identifier for the authored card set
1276
- */
1277
- id: string;
1278
- /**
1279
- * Built-in preset card-set selector
1280
- */
1281
- presetId: string;
1282
- /**
1283
- * Display name of the card set
1284
- */
1285
- name: string;
1286
- /**
1287
- * Type of card set source
1288
- */
1289
- type: "preset";
1290
- };
1273
+ type PresetCardSetDefinition = ...;
1291
1274
  ```
1292
1275
 
1293
1276
  _No JSDoc summary is available yet._
@@ -2500,16 +2483,16 @@ _No JSDoc summary is available yet._
2500
2483
  ### GameStateOf
2501
2484
 
2502
2485
  ```ts
2503
- type GameStateOf<Source> =
2504
- Source extends ReducerGameDefinition<
2505
- infer Contract,
2506
- infer Definitions,
2507
- infer _Views
2508
- >
2486
+ type GameStateOf<Source> = Source extends {
2487
+ contract: infer Contract extends ReducerGameContractLike;
2488
+ phases: infer Definitions;
2489
+ }
2490
+ ? Definitions extends PhaseMapOf<Contract>
2509
2491
  ? ResolvedGameStateOf<Contract, Definitions>
2510
- : Source extends ReducerGameContract<any, any, any, any, any, any, any>
2511
- ? BaseGameStateOfContract<Source>
2512
- : never;
2492
+ : never
2493
+ : Source extends ReducerGameContract<any, any, any, any, any, any, any>
2494
+ ? BaseGameStateOfContract<Source>
2495
+ : never;
2513
2496
  ```
2514
2497
 
2515
2498
  _No JSDoc summary is available yet._
@@ -3789,7 +3772,19 @@ _No JSDoc summary is available yet._
3789
3772
  ### CardInputZoneIdsOfDefinition
3790
3773
 
3791
3774
  ```ts
3792
- type CardInputZoneIdsOfDefinition = ...;
3775
+ type CardInputZoneIdsOfDefinition<
3776
+ Definition,
3777
+ PhaseName extends PhaseNamesOfDefinition<Definition>,
3778
+ InteractionId extends InteractionIdOfDefinitionPhase<Definition, PhaseName>,
3779
+ Input extends string,
3780
+ > =
3781
+ InteractionSpecByNameOfDefinitionPhase<
3782
+ Definition,
3783
+ PhaseName,
3784
+ InteractionId
3785
+ > extends infer Spec
3786
+ ? CardInputZoneIdsOfInteractionDefinition<Spec, Input>
3787
+ : never;
3793
3788
  ```
3794
3789
 
3795
3790
  _No JSDoc summary is available yet._
@@ -4102,7 +4097,7 @@ _No JSDoc summary is available yet._
4102
4097
 
4103
4098
  ```ts
4104
4099
  type ContinuationResponseOf<Token> =
4105
- Token extends ContinuationToken<any, string, infer Response>
4100
+ Token extends ContinuationToken<unknown, string, infer Response>
4106
4101
  ? Response
4107
4102
  : never;
4108
4103
  ```
@@ -4227,7 +4222,19 @@ _No JSDoc summary is available yet._
4227
4222
  ### DefaultedClientParamKeysOfInteractionOfDefinition
4228
4223
 
4229
4224
  ```ts
4230
- type DefaultedClientParamKeysOfInteractionOfDefinition = ...;
4225
+ type DefaultedClientParamKeysOfInteractionOfDefinition<
4226
+ Definition,
4227
+ PhaseName extends PhaseNamesOfDefinition<Definition>,
4228
+ InteractionId extends InteractionIdOfDefinitionPhase<Definition, PhaseName>,
4229
+ > =
4230
+ InteractionSpecByNameOfDefinitionPhase<
4231
+ Definition,
4232
+ PhaseName,
4233
+ InteractionId
4234
+ > extends infer Spec
4235
+ ? DefaultedClientCollectorKeys<CollectorsOfInteractionDefinition<Spec>> &
4236
+ string
4237
+ : never;
4231
4238
  ```
4232
4239
 
4233
4240
  _No JSDoc summary is available yet._
@@ -4494,16 +4501,16 @@ _No JSDoc summary is available yet._
4494
4501
  ### GameStateOf
4495
4502
 
4496
4503
  ```ts
4497
- type GameStateOf<Source> =
4498
- Source extends ReducerGameDefinition<
4499
- infer Contract,
4500
- infer Definitions,
4501
- infer _Views
4502
- >
4504
+ type GameStateOf<Source> = Source extends {
4505
+ contract: infer Contract extends ReducerGameContractLike;
4506
+ phases: infer Definitions;
4507
+ }
4508
+ ? Definitions extends PhaseMapOf<Contract>
4503
4509
  ? ResolvedGameStateOf<Contract, Definitions>
4504
- : Source extends ReducerGameContract<any, any, any, any, any, any, any>
4505
- ? BaseGameStateOfContract<Source>
4506
- : never;
4510
+ : never
4511
+ : Source extends ReducerGameContract<any, any, any, any, any, any, any>
4512
+ ? BaseGameStateOfContract<Source>
4513
+ : never;
4507
4514
  ```
4508
4515
 
4509
4516
  _No JSDoc summary is available yet._
@@ -4752,8 +4759,8 @@ _No JSDoc summary is available yet._
4752
4759
  ```ts
4753
4760
  type HiddenSchemaOfContract<Contract> =
4754
4761
  StateDefinitionOfContract<Contract> extends StateDefinition<
4755
- infer _PublicSchema,
4756
- infer _PrivateSchema,
4762
+ SchemaLike<object>,
4763
+ SchemaLike<object>,
4757
4764
  infer HiddenSchema
4758
4765
  >
4759
4766
  ? HiddenSchema
@@ -4914,7 +4921,19 @@ _No JSDoc summary is available yet._
4914
4921
  ### InputKeysWithCollectorKindOfDefinition
4915
4922
 
4916
4923
  ```ts
4917
- type InputKeysWithCollectorKindOfDefinition = ...;
4924
+ type InputKeysWithCollectorKindOfDefinition<
4925
+ Definition,
4926
+ PhaseName extends PhaseNamesOfDefinition<Definition>,
4927
+ InteractionId extends InteractionIdOfDefinitionPhase<Definition, PhaseName>,
4928
+ Kind extends string,
4929
+ > =
4930
+ InteractionSpecByNameOfDefinitionPhase<
4931
+ Definition,
4932
+ PhaseName,
4933
+ InteractionId
4934
+ > extends infer Spec
4935
+ ? InputKeysWithCollectorKindOfInteractionDefinition<Spec, Kind>
4936
+ : never;
4918
4937
  ```
4919
4938
 
4920
4939
  _No JSDoc summary is available yet._
@@ -5623,9 +5642,9 @@ _No JSDoc summary is available yet._
5623
5642
  ```ts
5624
5643
  type PrivateSchemaOfContract<Contract> =
5625
5644
  StateDefinitionOfContract<Contract> extends StateDefinition<
5626
- infer _PublicSchema,
5645
+ SchemaLike<object>,
5627
5646
  infer PrivateSchema,
5628
- infer _HiddenSchema
5647
+ SchemaLike<object>
5629
5648
  >
5630
5649
  ? PrivateSchema
5631
5650
  : never;
@@ -5690,8 +5709,8 @@ _No JSDoc summary is available yet._
5690
5709
  type PublicSchemaOfContract<Contract> =
5691
5710
  StateDefinitionOfContract<Contract> extends StateDefinition<
5692
5711
  infer PublicSchema,
5693
- infer _PrivateSchema,
5694
- infer _HiddenSchema
5712
+ SchemaLike<object>,
5713
+ SchemaLike<object>
5695
5714
  >
5696
5715
  ? PublicSchema
5697
5716
  : never;
@@ -6514,7 +6533,7 @@ _No JSDoc summary is available yet._
6514
6533
 
6515
6534
  ```ts
6516
6535
  interface RuntimeRecord {
6517
- [key: string]: RuntimePayload | undefined;
6536
+ [key: string]: RuntimePayload;
6518
6537
  }
6519
6538
  ```
6520
6539
 
@@ -7907,11 +7926,9 @@ type ViewOfDefinition<
7907
7926
  Definition,
7908
7927
  ViewName extends ViewNamesOfDefinition<Definition>,
7909
7928
  > =
7910
- ViewDefinitionByName<Definition, ViewName> extends ViewDefinition<
7911
- infer _State,
7912
- infer _Manifest,
7913
- infer Projection
7914
- >
7929
+ ViewDefinitionByName<Definition, ViewName> extends {
7930
+ project: (...args: never[]) => infer Projection;
7931
+ }
7915
7932
  ? Projection
7916
7933
  : never;
7917
7934
  ```
@@ -8338,6 +8355,7 @@ function CardDropTargetView({
8338
8355
  style,
8339
8356
  order,
8340
8357
  role,
8358
+ browserInteractionAttributes,
8341
8359
  }: CardDropTargetViewProps): react_jsx_runtime.JSX.Element;
8342
8360
  ```
8343
8361
 
@@ -10584,6 +10602,149 @@ function normalizeSquareBoardInput<TBoard extends AnySquareBoardInput>(
10584
10602
 
10585
10603
  _No JSDoc summary is available yet._
10586
10604
 
10605
+ ### Panel
10606
+
10607
+ ```ts
10608
+ const Panel: {
10609
+ Root: typeof PanelRoot;
10610
+ Header: typeof PanelHeader;
10611
+ Title: typeof PanelTitle;
10612
+ Description: typeof PanelDescription;
10613
+ Body: typeof PanelBody;
10614
+ Actions: typeof PanelActions;
10615
+ };
10616
+ ```
10617
+
10618
+ _No JSDoc summary is available yet._
10619
+
10620
+ ### PanelActions
10621
+
10622
+ ```ts
10623
+ function PanelActions({
10624
+ className,
10625
+ style,
10626
+ children,
10627
+ ...props
10628
+ }: PanelPartProps): react_jsx_runtime.JSX.Element;
10629
+ ```
10630
+
10631
+ _No JSDoc summary is available yet._
10632
+
10633
+ ### PanelBody
10634
+
10635
+ ```ts
10636
+ function PanelBody({
10637
+ className,
10638
+ style,
10639
+ children,
10640
+ ...props
10641
+ }: PanelPartProps): react_jsx_runtime.JSX.Element;
10642
+ ```
10643
+
10644
+ _No JSDoc summary is available yet._
10645
+
10646
+ ### PanelDescription
10647
+
10648
+ ```ts
10649
+ function PanelDescription({
10650
+ className,
10651
+ style,
10652
+ children,
10653
+ ...props
10654
+ }: PanelDescriptionProps): react_jsx_runtime.JSX.Element;
10655
+ ```
10656
+
10657
+ _No JSDoc summary is available yet._
10658
+
10659
+ ### PanelDescriptionProps
10660
+
10661
+ ```ts
10662
+ interface PanelDescriptionProps extends HTMLAttributes<HTMLParagraphElement> {
10663
+ children?: ReactNode;
10664
+ }
10665
+ ```
10666
+
10667
+ _No JSDoc summary is available yet._
10668
+
10669
+ ### PanelHeader
10670
+
10671
+ ```ts
10672
+ function PanelHeader({
10673
+ className,
10674
+ style,
10675
+ children,
10676
+ ...props
10677
+ }: PanelPartProps): react_jsx_runtime.JSX.Element;
10678
+ ```
10679
+
10680
+ _No JSDoc summary is available yet._
10681
+
10682
+ ### PanelPartProps
10683
+
10684
+ ```ts
10685
+ interface PanelPartProps extends HTMLAttributes<HTMLDivElement> {
10686
+ children?: ReactNode;
10687
+ }
10688
+ ```
10689
+
10690
+ _No JSDoc summary is available yet._
10691
+
10692
+ ### PanelRoot
10693
+
10694
+ ```ts
10695
+ function PanelRoot({
10696
+ tone,
10697
+ className,
10698
+ children,
10699
+ style,
10700
+ ...props
10701
+ }: PanelRootProps): react_jsx_runtime.JSX.Element;
10702
+ ```
10703
+
10704
+ _No JSDoc summary is available yet._
10705
+
10706
+ ### PanelRootProps
10707
+
10708
+ ```ts
10709
+ interface PanelRootProps extends HTMLAttributes<HTMLDivElement> {
10710
+ tone?: PanelTone;
10711
+ children: ReactNode;
10712
+ }
10713
+ ```
10714
+
10715
+ _No JSDoc summary is available yet._
10716
+
10717
+ ### PanelTitle
10718
+
10719
+ ```ts
10720
+ function PanelTitle({
10721
+ className,
10722
+ style,
10723
+ children,
10724
+ ...props
10725
+ }: PanelTitleProps): react_jsx_runtime.JSX.Element;
10726
+ ```
10727
+
10728
+ _No JSDoc summary is available yet._
10729
+
10730
+ ### PanelTitleProps
10731
+
10732
+ ```ts
10733
+ interface PanelTitleProps extends HTMLAttributes<HTMLHeadingElement> {
10734
+ children?: ReactNode;
10735
+ }
10736
+ ```
10737
+
10738
+ _No JSDoc summary is available yet._
10739
+
10740
+ ### PanelTone
10741
+
10742
+ ```ts
10743
+ type PanelTone = "card" | "hud" | "inset";
10744
+ ```
10745
+
10746
+ _No JSDoc summary is available yet._
10747
+
10587
10748
  ### PanZoomTransform
10588
10749
 
10589
10750
  ```ts
@@ -11787,19 +11948,6 @@ function useChromeSuppression(id: string, suppressed: boolean): void;
11787
11948
 
11788
11949
  _No JSDoc summary is available yet._
11789
11950
 
11790
- ### useHandLayout
11791
-
11792
- ```ts
11793
- function useHandLayout({
11794
- cardCount,
11795
- cardSize,
11796
- layout,
11797
- containerPadding,
11798
- }: UseHandLayoutOptions): UseHandLayoutReturn;
11799
- ```
11800
-
11801
- Hook for managing hand layout calculations and interactions.
11802
-
11803
11951
  ### UseHandLayoutOptions
11804
11952
 
11805
11953
  ```ts
@@ -11841,13 +11989,13 @@ function useMobileHandTrayActive(): boolean;
11841
11989
 
11842
11990
  Whether the mobile hand tray is currently presenting hands — i.e. the viewport is below the mobile breakpoint and at least one primary/auxiliary hand has registered. Authors can use this to drop redundant inline hand chrome (labels, framing) that the tray already provides, instead of guessing the breakpoint with a CSS media query. Returns `false` outside `<UI.Root>`.
11843
11991
 
11844
- ### usePanZoom
11992
+ ### useOverlayInsets
11845
11993
 
11846
11994
  ```ts
11847
- function usePanZoom(options?: UsePanZoomOptions): UsePanZoomReturn;
11995
+ function useOverlayInsets(): { bottom: number };
11848
11996
  ```
11849
11997
 
11850
- Hook for pan and zoom gestures on board components
11998
+ _No JSDoc summary is available yet._
11851
11999
 
11852
12000
  ### UsePanZoomOptions
11853
12001
 
@@ -11865,6 +12013,14 @@ interface UsePanZoomReturn { ... }
11865
12013
 
11866
12014
  _No JSDoc summary is available yet._
11867
12015
 
12016
+ ### useRegisterBottomOverlayInset
12017
+
12018
+ ```ts
12019
+ function useRegisterBottomOverlayInset(id: string, height: number): void;
12020
+ ```
12021
+
12022
+ _No JSDoc summary is available yet._
12023
+
11868
12024
  ### useRegisterMobileHand
11869
12025
 
11870
12026
  ```ts
@@ -12227,6 +12383,7 @@ function CardDropTargetView({
12227
12383
  style,
12228
12384
  order,
12229
12385
  role,
12386
+ browserInteractionAttributes,
12230
12387
  }: CardDropTargetViewProps): react_jsx_runtime.JSX.Element;
12231
12388
  ```
12232
12389
 
@@ -13838,101 +13995,244 @@ interface NetworkPiece {
13838
13995
 
13839
13996
  _No JSDoc summary is available yet._
13840
13997
 
13841
- ### PhaseIndicator
13998
+ ### Panel
13842
13999
 
13843
14000
  ```ts
13844
- function PhaseIndicator({
13845
- currentPhase,
13846
- phaseLabels,
13847
- isMyTurn,
13848
- activePlayerNames,
13849
- variant,
14001
+ const Panel: {
14002
+ Root: typeof PanelRoot;
14003
+ Header: typeof PanelHeader;
14004
+ Title: typeof PanelTitle;
14005
+ Description: typeof PanelDescription;
14006
+ Body: typeof PanelBody;
14007
+ Actions: typeof PanelActions;
14008
+ };
14009
+ ```
14010
+
14011
+ _No JSDoc summary is available yet._
14012
+
14013
+ ### PanelActions
14014
+
14015
+ ```ts
14016
+ function PanelActions({
13850
14017
  className,
13851
- }: PhaseIndicatorProps): react_jsx_runtime.JSX.Element;
14018
+ style,
14019
+ children,
14020
+ ...props
14021
+ }: PanelPartProps): react_jsx_runtime.JSX.Element;
13852
14022
  ```
13853
14023
 
13854
14024
  _No JSDoc summary is available yet._
13855
14025
 
13856
- ### PhaseIndicatorProps
14026
+ ### PanelBody
13857
14027
 
13858
14028
  ```ts
13859
- interface PhaseIndicatorProps {
13860
- currentPhase: string;
13861
- phaseLabels?: Record<string, string>;
13862
- isMyTurn?: boolean;
13863
- activePlayerNames?: string[];
13864
- variant?: "badge" | "bar" | "minimal";
13865
- className?: string;
13866
- }
14029
+ function PanelBody({
14030
+ className,
14031
+ style,
14032
+ children,
14033
+ ...props
14034
+ }: PanelPartProps): react_jsx_runtime.JSX.Element;
13867
14035
  ```
13868
14036
 
13869
- Surfaces the dominant turn-state question — "is this me?" / "who am I waiting for?" — as a single headline, with the phase label demoted to secondary copy underneath.
14037
+ _No JSDoc summary is available yet._
13870
14038
 
13871
- ### PlayArea
14039
+ ### PanelDescription
13872
14040
 
13873
14041
  ```ts
13874
- function PlayArea<
13875
- CardData extends ViewCard = ViewCard<string, string, Record<string, unknown>>,
13876
- >({
13877
- cards,
13878
- filter,
13879
- cardSize,
13880
- renderCard,
13881
- layout,
13882
- interactive,
13883
- onCardClick,
13884
- "aria-label": ariaLabel,
14042
+ function PanelDescription({
13885
14043
  className,
13886
- }: PlayAreaProps<CardData>): react_jsx_runtime.JSX.Element;
14044
+ style,
14045
+ children,
14046
+ ...props
14047
+ }: PanelDescriptionProps): react_jsx_runtime.JSX.Element;
13887
14048
  ```
13888
14049
 
13889
14050
  _No JSDoc summary is available yet._
13890
14051
 
13891
- ### PlayAreaProps
14052
+ ### PanelDescriptionProps
13892
14053
 
13893
14054
  ```ts
13894
- interface PlayAreaProps<CardData extends ViewCard = ViewCard> {
13895
- cards: readonly CardData[];
13896
- filter?: (card: CardData) => boolean;
13897
- cardSize?: CardFaceProps["size"];
13898
- renderCard?: CardFaceProps<CardData>["renderContent"];
13899
- layout?: "grid" | "row";
13900
- interactive?: boolean;
13901
- onCardClick?: (cardId: string) => void;
13902
- "aria-label"?: string;
13903
- className?: string;
14055
+ interface PanelDescriptionProps extends HTMLAttributes<HTMLParagraphElement> {
14056
+ children?: ReactNode;
13904
14057
  }
13905
14058
  ```
13906
14059
 
13907
14060
  _No JSDoc summary is available yet._
13908
14061
 
13909
- ### PlayerScore
14062
+ ### PanelHeader
13910
14063
 
13911
14064
  ```ts
13912
- interface PlayerScore {
13913
- playerId: string;
13914
- name: string;
13915
- score: number;
13916
- isWinner?: boolean;
13917
- details?: Record<string, number>;
14065
+ function PanelHeader({
14066
+ className,
14067
+ style,
14068
+ children,
14069
+ ...props
14070
+ }: PanelPartProps): react_jsx_runtime.JSX.Element;
14071
+ ```
14072
+
14073
+ _No JSDoc summary is available yet._
14074
+
14075
+ ### PanelPartProps
14076
+
14077
+ ```ts
14078
+ interface PanelPartProps extends HTMLAttributes<HTMLDivElement> {
14079
+ children?: ReactNode;
13918
14080
  }
13919
14081
  ```
13920
14082
 
13921
- End-of-game winner display and scoreboard overlay.
14083
+ _No JSDoc summary is available yet._
13922
14084
 
13923
- ### PrimaryActionAttention
14085
+ ### PanelRoot
13924
14086
 
13925
14087
  ```ts
13926
- type PrimaryActionAttention = "auto" | "always" | "off";
14088
+ function PanelRoot({
14089
+ tone,
14090
+ className,
14091
+ children,
14092
+ style,
14093
+ ...props
14094
+ }: PanelRootProps): react_jsx_runtime.JSX.Element;
13927
14095
  ```
13928
14096
 
13929
- Attention-pulse policy for the trailing halo.
14097
+ _No JSDoc summary is available yet._
13930
14098
 
13931
- ### PrimaryActionButton
14099
+ ### PanelRootProps
13932
14100
 
13933
14101
  ```ts
13934
- function PrimaryActionButton({
13935
- variant,
14102
+ interface PanelRootProps extends HTMLAttributes<HTMLDivElement> {
14103
+ tone?: PanelTone;
14104
+ children: ReactNode;
14105
+ }
14106
+ ```
14107
+
14108
+ _No JSDoc summary is available yet._
14109
+
14110
+ ### PanelTitle
14111
+
14112
+ ```ts
14113
+ function PanelTitle({
14114
+ className,
14115
+ style,
14116
+ children,
14117
+ ...props
14118
+ }: PanelTitleProps): react_jsx_runtime.JSX.Element;
14119
+ ```
14120
+
14121
+ _No JSDoc summary is available yet._
14122
+
14123
+ ### PanelTitleProps
14124
+
14125
+ ```ts
14126
+ interface PanelTitleProps extends HTMLAttributes<HTMLHeadingElement> {
14127
+ children?: ReactNode;
14128
+ }
14129
+ ```
14130
+
14131
+ _No JSDoc summary is available yet._
14132
+
14133
+ ### PanelTone
14134
+
14135
+ ```ts
14136
+ type PanelTone = "card" | "hud" | "inset";
14137
+ ```
14138
+
14139
+ _No JSDoc summary is available yet._
14140
+
14141
+ ### PhaseIndicator
14142
+
14143
+ ```ts
14144
+ function PhaseIndicator({
14145
+ currentPhase,
14146
+ phaseLabels,
14147
+ isMyTurn,
14148
+ activePlayerNames,
14149
+ variant,
14150
+ className,
14151
+ }: PhaseIndicatorProps): react_jsx_runtime.JSX.Element;
14152
+ ```
14153
+
14154
+ _No JSDoc summary is available yet._
14155
+
14156
+ ### PhaseIndicatorProps
14157
+
14158
+ ```ts
14159
+ interface PhaseIndicatorProps {
14160
+ currentPhase: string;
14161
+ phaseLabels?: Record<string, string>;
14162
+ isMyTurn?: boolean;
14163
+ activePlayerNames?: string[];
14164
+ variant?: "badge" | "bar" | "minimal";
14165
+ className?: string;
14166
+ }
14167
+ ```
14168
+
14169
+ Surfaces the dominant turn-state question — "is this me?" / "who am I waiting for?" — as a single headline, with the phase label demoted to secondary copy underneath.
14170
+
14171
+ ### PlayArea
14172
+
14173
+ ```ts
14174
+ function PlayArea<
14175
+ CardData extends ViewCard = ViewCard<string, string, Record<string, unknown>>,
14176
+ >({
14177
+ cards,
14178
+ filter,
14179
+ cardSize,
14180
+ renderCard,
14181
+ layout,
14182
+ interactive,
14183
+ onCardClick,
14184
+ "aria-label": ariaLabel,
14185
+ className,
14186
+ }: PlayAreaProps<CardData>): react_jsx_runtime.JSX.Element;
14187
+ ```
14188
+
14189
+ _No JSDoc summary is available yet._
14190
+
14191
+ ### PlayAreaProps
14192
+
14193
+ ```ts
14194
+ interface PlayAreaProps<CardData extends ViewCard = ViewCard> {
14195
+ cards: readonly CardData[];
14196
+ filter?: (card: CardData) => boolean;
14197
+ cardSize?: CardFaceProps["size"];
14198
+ renderCard?: CardFaceProps<CardData>["renderContent"];
14199
+ layout?: "grid" | "row";
14200
+ interactive?: boolean;
14201
+ onCardClick?: (cardId: string) => void;
14202
+ "aria-label"?: string;
14203
+ className?: string;
14204
+ }
14205
+ ```
14206
+
14207
+ _No JSDoc summary is available yet._
14208
+
14209
+ ### PlayerScore
14210
+
14211
+ ```ts
14212
+ interface PlayerScore {
14213
+ playerId: string;
14214
+ name: string;
14215
+ score: number;
14216
+ isWinner?: boolean;
14217
+ details?: Record<string, number>;
14218
+ }
14219
+ ```
14220
+
14221
+ End-of-game winner display and scoreboard overlay.
14222
+
14223
+ ### PrimaryActionAttention
14224
+
14225
+ ```ts
14226
+ type PrimaryActionAttention = "auto" | "always" | "off";
14227
+ ```
14228
+
14229
+ Attention-pulse policy for the trailing halo.
14230
+
14231
+ ### PrimaryActionButton
14232
+
14233
+ ```ts
14234
+ function PrimaryActionButton({
14235
+ variant,
13936
14236
  size,
13937
14237
  label,
13938
14238
  ready,
@@ -14618,6 +14918,22 @@ function useMobileHandTrayActive(): boolean;
14618
14918
 
14619
14919
  Whether the mobile hand tray is currently presenting hands — i.e. the viewport is below the mobile breakpoint and at least one primary/auxiliary hand has registered. Authors can use this to drop redundant inline hand chrome (labels, framing) that the tray already provides, instead of guessing the breakpoint with a CSS media query. Returns `false` outside `<UI.Root>`.
14620
14920
 
14921
+ ### useOverlayInsets
14922
+
14923
+ ```ts
14924
+ function useOverlayInsets(): { bottom: number };
14925
+ ```
14926
+
14927
+ _No JSDoc summary is available yet._
14928
+
14929
+ ### useRegisterBottomOverlayInset
14930
+
14931
+ ```ts
14932
+ function useRegisterBottomOverlayInset(id: string, height: number): void;
14933
+ ```
14934
+
14935
+ _No JSDoc summary is available yet._
14936
+
14621
14937
  ### useRegisterMobileHand
14622
14938
 
14623
14939
  ```ts
@@ -15311,12 +15627,32 @@ type ClientParamSchemaMap = Readonly<
15311
15627
 
15312
15628
  _No JSDoc summary is available yet._
15313
15629
 
15630
+ ### createPluginRuntimeClient
15631
+
15632
+ ```ts
15633
+ function createPluginRuntimeClient(
15634
+ options: PluginRuntimeClientOptions,
15635
+ ): PluginRuntimeClient;
15636
+ ```
15637
+
15638
+ _No JSDoc summary is available yet._
15639
+
15640
+ ### createPostMessagePluginTransport
15641
+
15642
+ ```ts
15643
+ function createPostMessagePluginTransport(
15644
+ options?: PostMessagePluginTransportOptions,
15645
+ ): PluginTransport;
15646
+ ```
15647
+
15648
+ _No JSDoc summary is available yet._
15649
+
15314
15650
  ### createWorkspaceUIContract
15315
15651
 
15316
15652
  ```ts
15317
15653
  function createWorkspaceUIContract<
15318
15654
  WorkspaceUI,
15319
- Contract extends UIContract$1,
15655
+ Contract extends UIContract,
15320
15656
  Resource extends string,
15321
15657
  Card,
15322
15658
  HexBoards extends Record<string, unknown>,
@@ -15339,7 +15675,9 @@ _No JSDoc summary is available yet._
15339
15675
  ### DreamboardUIRegister
15340
15676
 
15341
15677
  ```ts
15342
- interface DreamboardUIRegister {}
15678
+ interface DreamboardUIRegister {
15679
+ readonly __dreamboardUIRegister?: never;
15680
+ }
15343
15681
  ```
15344
15682
 
15345
15683
  _No JSDoc summary is available yet._
@@ -15350,7 +15688,6 @@ _No JSDoc summary is available yet._
15350
15688
  interface GameMeState<PlayerIdValue extends string = PlayerId> {
15351
15689
  playerId: PlayerIdValue | null;
15352
15690
  player: GamePlayer<PlayerIdValue> | null;
15353
- controllablePlayerIds: readonly PlayerIdValue[];
15354
15691
  canAct: boolean;
15355
15692
  }
15356
15693
  ```
@@ -15433,6 +15770,49 @@ function PluginRuntime({
15433
15770
 
15434
15771
  PluginRuntime provides the RuntimeContext for plugin components.
15435
15772
 
15773
+ ### PluginRuntimeBoundary
15774
+
15775
+ ```ts
15776
+ function PluginRuntimeBoundary({
15777
+ runtime,
15778
+ children,
15779
+ }: {
15780
+ runtime: PluginRuntimeClient;
15781
+ children: react__default.ReactNode;
15782
+ }): react_jsx_runtime.JSX.Element;
15783
+ ```
15784
+
15785
+ _No JSDoc summary is available yet._
15786
+
15787
+ ### PluginRuntimeClient
15788
+
15789
+ ```ts
15790
+ interface PluginRuntimeClient {
15791
+ getSession(): v | null;
15792
+ subscribeSession(listener: () => void): () => void;
15793
+ getFrame(): o | null;
15794
+ subscribeFrame(listener: () => void): () => void;
15795
+ validateInteraction(interactionId: string, params: unknown): Promise<G>;
15796
+ submitInteraction(interactionId: string, params: unknown): Promise<void>;
15797
+ disconnect(): void;
15798
+ }
15799
+ ```
15800
+
15801
+ _No JSDoc summary is available yet._
15802
+
15803
+ ### PluginRuntimeClientOptions
15804
+
15805
+ ```ts
15806
+ interface PluginRuntimeClientOptions {
15807
+ transport: PluginTransport;
15808
+ idFactory?: RuntimeIdFactory;
15809
+ clock?: RuntimeClock;
15810
+ requestTimeoutMs?: number;
15811
+ }
15812
+ ```
15813
+
15814
+ _No JSDoc summary is available yet._
15815
+
15436
15816
  ### PluginRuntimeProps
15437
15817
 
15438
15818
  ```ts
@@ -15441,6 +15821,29 @@ interface PluginRuntimeProps { ... }
15441
15821
 
15442
15822
  _No JSDoc summary is available yet._
15443
15823
 
15824
+ ### PluginTransport
15825
+
15826
+ ```ts
15827
+ interface PluginTransport {
15828
+ start(onMessage: (message: H) => void): () => void;
15829
+ send(message: x): void;
15830
+ }
15831
+ ```
15832
+
15833
+ _No JSDoc summary is available yet._
15834
+
15835
+ ### PostMessagePluginTransportOptions
15836
+
15837
+ ```ts
15838
+ interface PostMessagePluginTransportOptions {
15839
+ readonly targetWindow?: Window;
15840
+ readonly parentWindow?: Window;
15841
+ readonly onInvalidMessage?: (reason: string, value: unknown) => void;
15842
+ }
15843
+ ```
15844
+
15845
+ _No JSDoc summary is available yet._
15846
+
15444
15847
  ### RegisteredUI
15445
15848
 
15446
15849
  ```ts
@@ -15463,6 +15866,26 @@ interface ResourceCounterComponents<Resource extends string = ResourceId> {
15463
15866
 
15464
15867
  _No JSDoc summary is available yet._
15465
15868
 
15869
+ ### RuntimeClock
15870
+
15871
+ ```ts
15872
+ interface RuntimeClock {
15873
+ now(): number;
15874
+ }
15875
+ ```
15876
+
15877
+ _No JSDoc summary is available yet._
15878
+
15879
+ ### RuntimeIdFactory
15880
+
15881
+ ```ts
15882
+ interface RuntimeIdFactory {
15883
+ nextId(prefix: string): string;
15884
+ }
15885
+ ```
15886
+
15887
+ _No JSDoc summary is available yet._
15888
+
15466
15889
  ### TypedGame
15467
15890
 
15468
15891
  ```ts
@@ -15566,14 +15989,7 @@ _No JSDoc summary is available yet._
15566
15989
  ### WorkspaceHandSurface
15567
15990
 
15568
15991
  ```ts
15569
- interface WorkspaceHandSurface<Zone extends string, Card> {
15570
- readonly Hand: WorkspaceZoneCardsComponent<Card>;
15571
- readonly Card: WorkspaceZoneCardComponent<Card>;
15572
- readonly Staging: WorkspaceZoneStagingComponent<Card>;
15573
- readonly slot: {
15574
- readonly card: WorkspaceCardInputSlot<Zone>;
15575
- };
15576
- }
15992
+ interface WorkspaceHandSurface { ... }
15577
15993
  ```
15578
15994
 
15579
15995
  _No JSDoc summary is available yet._
@@ -16031,7 +16447,9 @@ Translate a raw SDK `CardIntent` into the author-facing `AuthoredCardIntent` sha
16031
16447
  ### descriptorsHaveDestinationInput
16032
16448
 
16033
16449
  ```ts
16034
- function descriptorsHaveDestinationInput(state: PluginStateSnapshot): boolean;
16450
+ function descriptorsHaveDestinationInput(
16451
+ availableInteractions: readonly InteractionDescriptor[],
16452
+ ): boolean;
16035
16453
  ```
16036
16454
 
16037
16455
  Determine whether any descriptor in the available list expects a board or card destination input alongside a card target. Used by generated facades to decide whether to mount a drag surface even before the author wires dropTargets.
@@ -16134,6 +16552,7 @@ Convenience helper for builders of generated hand surfaces. Encodes a typed targ
16134
16552
  const Game: {
16135
16553
  Root: typeof GameRoot;
16136
16554
  Chrome: typeof GameChrome;
16555
+ Viewport: typeof GameViewport;
16137
16556
  };
16138
16557
  ```
16139
16558
 
@@ -16207,7 +16626,6 @@ _No JSDoc summary is available yet._
16207
16626
  interface GameMeState<PlayerIdValue extends string = PlayerId> {
16208
16627
  playerId: PlayerIdValue | null;
16209
16628
  player: GamePlayer<PlayerIdValue> | null;
16210
- controllablePlayerIds: readonly PlayerIdValue[];
16211
16629
  canAct: boolean;
16212
16630
  }
16213
16631
  ```
@@ -16248,7 +16666,6 @@ type GamePlayerEntry<PlayerIdValue extends string = PlayerId> =
16248
16666
  index: number;
16249
16667
  isActive: boolean;
16250
16668
  isCurrentPlayer: boolean;
16251
- isControllable: boolean;
16252
16669
  };
16253
16670
  ```
16254
16671
 
@@ -16342,6 +16759,28 @@ interface GameTurnState<
16342
16759
 
16343
16760
  _No JSDoc summary is available yet._
16344
16761
 
16762
+ ### GameViewport
16763
+
16764
+ ```ts
16765
+ function GameViewport({
16766
+ children,
16767
+ style,
16768
+ ...props
16769
+ }: GameViewportProps): react_jsx_runtime.JSX.Element;
16770
+ ```
16771
+
16772
+ _No JSDoc summary is available yet._
16773
+
16774
+ ### GameViewportProps
16775
+
16776
+ ```ts
16777
+ interface GameViewportProps extends HTMLAttributes<HTMLDivElement> {
16778
+ children?: ReactNode;
16779
+ }
16780
+ ```
16781
+
16782
+ _No JSDoc summary is available yet._
16783
+
16345
16784
  ### HandSurfaceView
16346
16785
 
16347
16786
  ```ts
@@ -16965,8 +17404,6 @@ interface PlayerRosterEntry {
16965
17404
  index: number;
16966
17405
  isActive: boolean;
16967
17406
  isCurrentPlayer: boolean;
16968
- isControllable: boolean;
16969
- canSwitchToPlayer: boolean;
16970
17407
  score?: number;
16971
17408
  scoreLabel?: string;
16972
17409
  badges: readonly PlayerRosterBadge[];
@@ -17066,34 +17503,6 @@ function PlayerRosterScore({
17066
17503
 
17067
17504
  _No JSDoc summary is available yet._
17068
17505
 
17069
- ### PlayerRosterSwitchButton
17070
-
17071
- ```ts
17072
- function PlayerRosterSwitchButton({
17073
- player,
17074
- disabled,
17075
- onClick,
17076
- ...props
17077
- }: PlayerRosterSwitchButtonProps): ReactElement<
17078
- unknown,
17079
- string | react.JSXElementConstructor<any>
17080
- >;
17081
- ```
17082
-
17083
- _No JSDoc summary is available yet._
17084
-
17085
- ### PlayerRosterSwitchButtonProps
17086
-
17087
- ```ts
17088
- type PlayerRosterSwitchButtonProps = Omit<PrimitiveCommonProps, "children"> &
17089
- ButtonHTMLAttributes<HTMLButtonElement> & {
17090
- player: PlayerRosterEntry;
17091
- children?: ReactNode;
17092
- };
17093
- ```
17094
-
17095
- _No JSDoc summary is available yet._
17096
-
17097
17506
  ### PrimitiveCommonProps
17098
17507
 
17099
17508
  ```ts
@@ -17913,14 +18322,6 @@ _No JSDoc summary is available yet._
17913
18322
 
17914
18323
  ## @dreamboard-games/sdk/runtime/workspace-contract
17915
18324
 
17916
- ### a
17917
-
17918
- ```ts
17919
- interface a { ... }
17920
- ```
17921
-
17922
- _No JSDoc summary is available yet._
17923
-
17924
18325
  ### BoardHexGridProps
17925
18326
 
17926
18327
  ```ts
@@ -17983,7 +18384,7 @@ _No JSDoc summary is available yet._
17983
18384
  ```ts
17984
18385
  function createWorkspaceUIContract<
17985
18386
  WorkspaceUI,
17986
- Contract extends UIContract$1,
18387
+ Contract extends UIContract,
17987
18388
  Resource extends string,
17988
18389
  Card,
17989
18390
  HexBoards extends Record<string, unknown>,
@@ -17994,19 +18395,10 @@ function createWorkspaceUIContract<
17994
18395
 
17995
18396
  _No JSDoc summary is available yet._
17996
18397
 
17997
- ### D
18398
+ ### DreamboardUI
17998
18399
 
17999
18400
  ```ts
18000
- interface DreamboardUIRegister {}
18001
- ```
18002
-
18003
- _No JSDoc summary is available yet._
18004
-
18005
- ### DreamboardUI
18006
-
18007
- ```ts
18008
- type DreamboardUI<Contract extends UIContract = RegisteredUI> =
18009
- DreamboardUI$1<Contract>;
18401
+ interface DreamboardUI { ... }
18010
18402
  ```
18011
18403
 
18012
18404
  _No JSDoc summary is available yet._
@@ -18017,7 +18409,6 @@ _No JSDoc summary is available yet._
18017
18409
  interface GameMeState<PlayerIdValue extends string = PlayerId> {
18018
18410
  playerId: PlayerIdValue | null;
18019
18411
  player: GamePlayer<PlayerIdValue> | null;
18020
- controllablePlayerIds: readonly PlayerIdValue[];
18021
18412
  canAct: boolean;
18022
18413
  }
18023
18414
  ```
@@ -18076,28 +18467,6 @@ interface GameTurnState<
18076
18467
 
18077
18468
  _No JSDoc summary is available yet._
18078
18469
 
18079
- ### P
18080
-
18081
- ```ts
18082
- function P({
18083
- children,
18084
- timeout,
18085
- loadingComponent,
18086
- errorComponent,
18087
- onDiagnostic,
18088
- }: PluginRuntimeProps): react_jsx_runtime.JSX.Element;
18089
- ```
18090
-
18091
- PluginRuntime provides the RuntimeContext for plugin components.
18092
-
18093
- ### R
18094
-
18095
- ```ts
18096
- type RegisteredUI = RegisteredUIContract;
18097
- ```
18098
-
18099
- _No JSDoc summary is available yet._
18100
-
18101
18470
  ### ResourceCounterComponents
18102
18471
 
18103
18472
  ```ts
@@ -18116,11 +18485,16 @@ _No JSDoc summary is available yet._
18116
18485
 
18117
18486
  ```ts
18118
18487
  type TypedGame<
18119
- Contract extends UIContract,
18488
+ _Contract extends UIContract,
18120
18489
  View = unknown,
18121
- Player extends string = string,
18122
- Phase extends string = string,
18123
- > = TypedGame$1<Contract, View, Player, Phase>;
18490
+ Player extends string = PlayerKey<_Contract>,
18491
+ Phase extends string = PhaseKey<_Contract>,
18492
+ > = Omit<typeof Game, "Root"> & {
18493
+ Root(props: GameRootProps<View, Player, Phase>): ReactElement;
18494
+ Chrome(
18495
+ props: GameChromeProps<View, Player, Phase, InteractionKey<_Contract>>,
18496
+ ): ReactElement;
18497
+ };
18124
18498
  ```
18125
18499
 
18126
18500
  _No JSDoc summary is available yet._
@@ -18128,7 +18502,17 @@ _No JSDoc summary is available yet._
18128
18502
  ### UIContract
18129
18503
 
18130
18504
  ```ts
18131
- type UIContract = UIContract$1;
18505
+ interface UIContract {
18506
+ interactions?: UIContractBucket;
18507
+ inputs?: UIContractBucket;
18508
+ prompts?: UIContractBucket;
18509
+ promptOptions?: UIContractBucket;
18510
+ players?: UIContractBucket;
18511
+ zones?: UIContractBucket;
18512
+ cards?: UIContractBucket;
18513
+ phases?: UIContractBucket;
18514
+ boardTargets?: UIContractBucket;
18515
+ }
18132
18516
  ```
18133
18517
 
18134
18518
  _No JSDoc summary is available yet._
@@ -18215,14 +18599,7 @@ _No JSDoc summary is available yet._
18215
18599
  ### WorkspaceHandSurface
18216
18600
 
18217
18601
  ```ts
18218
- interface WorkspaceHandSurface<Zone extends string, Card> {
18219
- readonly Hand: WorkspaceZoneCardsComponent<Card>;
18220
- readonly Card: WorkspaceZoneCardComponent<Card>;
18221
- readonly Staging: WorkspaceZoneStagingComponent<Card>;
18222
- readonly slot: {
18223
- readonly card: WorkspaceCardInputSlot<Zone>;
18224
- };
18225
- }
18602
+ interface WorkspaceHandSurface { ... }
18226
18603
  ```
18227
18604
 
18228
18605
  _No JSDoc summary is available yet._
@@ -18364,26 +18741,53 @@ _No JSDoc summary is available yet._
18364
18741
  ### PluginSessionState
18365
18742
 
18366
18743
  ```ts
18367
- interface PluginSessionState { ... }
18744
+ interface PluginSessionState {
18745
+ /** Session initialization status */
18746
+ status: "loading" | "ready";
18747
+ /** Current session ID (null if not initialized) */
18748
+ sessionId: string | null;
18749
+ /** The player perspective represented by the current gameplay frame */
18750
+ controllingPlayerId: PlayerId | null;
18751
+ }
18368
18752
  ```
18369
18753
 
18370
18754
  Plugin session state
18371
18755
 
18372
- ### PluginStateSnapshot
18756
+ ### RuntimeAPI
18373
18757
 
18374
18758
  ```ts
18375
- interface PluginStateSnapshot { ... }
18759
+ interface RuntimeAPI { ... }
18376
18760
  ```
18377
18761
 
18378
- The complete state snapshot sent to the plugin via state-sync. This is the single source of truth for all reducer-native plugin state.
18762
+ RuntimeAPI provides the interface between plugin code and the game runtime. This API is exposed to plugin iframes for subscribing to game events and submitting actions.
18379
18763
 
18380
- ### RuntimeAPI
18764
+ ### RuntimeDiagnosticEvent
18381
18765
 
18382
18766
  ```ts
18383
- interface RuntimeAPI { ... }
18767
+ type RuntimeDiagnosticEvent =
18768
+ | {
18769
+ type: "runtimeLog";
18770
+ level: "log" | "warn" | "error";
18771
+ message: string;
18772
+ details?: readonly unknown[];
18773
+ }
18774
+ | {
18775
+ type: "internalError";
18776
+ code: string;
18777
+ message: string;
18778
+ stack?: string;
18779
+ };
18384
18780
  ```
18385
18781
 
18386
- RuntimeAPI provides the interface between plugin code and the game runtime. This API is exposed to plugin iframes for subscribing to game events and submitting actions.
18782
+ _No JSDoc summary is available yet._
18783
+
18784
+ ### RuntimeDiagnosticHandler
18785
+
18786
+ ```ts
18787
+ type RuntimeDiagnosticHandler = (event: RuntimeDiagnosticEvent) => void;
18788
+ ```
18789
+
18790
+ _No JSDoc summary is available yet._
18387
18791
 
18388
18792
  ### SubmissionError
18389
18793
 
@@ -18598,6 +19002,181 @@ const WORKSPACE_CODEGEN_OWNERSHIP: ScaffoldingOwnership;
18598
19002
 
18599
19003
  _No JSDoc summary is available yet._
18600
19004
 
19005
+ ## @dreamboard-games/sdk/authoring
19006
+
19007
+ ### AuthoringManifestConformanceCaseV1
19008
+
19009
+ ```ts
19010
+ type AuthoringManifestConformanceCaseV1 = {
19011
+ id: string;
19012
+ manifest: JsonValue;
19013
+ expected:
19014
+ | {
19015
+ valid: true;
19016
+ transportValid: true;
19017
+ materializedSha256: string;
19018
+ }
19019
+ | {
19020
+ valid: false;
19021
+ transportValid: boolean;
19022
+ diagnosticCodes: readonly string[];
19023
+ };
19024
+ };
19025
+ ```
19026
+
19027
+ _No JSDoc summary is available yet._
19028
+
19029
+ ### AuthoringValidationResultV1
19030
+
19031
+ ```ts
19032
+ type AuthoringValidationResultV1 = {
19033
+ valid: boolean;
19034
+ errors: readonly string[];
19035
+ warnings: readonly string[];
19036
+ };
19037
+ ```
19038
+
19039
+ _No JSDoc summary is available yet._
19040
+
19041
+ ### diagnosticCodesForValidationErrors
19042
+
19043
+ ```ts
19044
+ function diagnosticCodesForValidationErrors(
19045
+ errors: readonly string[],
19046
+ ): readonly string[];
19047
+ ```
19048
+
19049
+ _No JSDoc summary is available yet._
19050
+
19051
+ ### GENERATED_WORKSPACE_PATH_PATTERNS
19052
+
19053
+ ```ts
19054
+ const GENERATED_WORKSPACE_PATH_PATTERNS: {
19055
+ prefix: string;
19056
+ suffix: string;
19057
+ }[];
19058
+ ```
19059
+
19060
+ _No JSDoc summary is available yet._
19061
+
19062
+ ### GENERATED_WORKSPACE_PATHS
19063
+
19064
+ ```ts
19065
+ const GENERATED_WORKSPACE_PATHS: readonly [
19066
+ ...string[],
19067
+ "test/generated/base-state.json",
19068
+ ];
19069
+ ```
19070
+
19071
+ _No JSDoc summary is available yet._
19072
+
19073
+ ### GeneratedArtifactV1
19074
+
19075
+ ```ts
19076
+ type GeneratedArtifactV1 = {
19077
+ path: string;
19078
+ ownership: "authoritative" | "seed" | "derived-test";
19079
+ content: string;
19080
+ contentSha256: string;
19081
+ };
19082
+ ```
19083
+
19084
+ _No JSDoc summary is available yet._
19085
+
19086
+ ### GeneratedAuthoringMetadataV1
19087
+
19088
+ ```ts
19089
+ type GeneratedAuthoringMetadataV1 = {
19090
+ sdkVersion: string;
19091
+ codegenVersion: string;
19092
+ manifestSchemaVersion: number;
19093
+ generatedArtifactSchemaVersion: number;
19094
+ };
19095
+ ```
19096
+
19097
+ _No JSDoc summary is available yet._
19098
+
19099
+ ### GeneratedPathPatternV1
19100
+
19101
+ ```ts
19102
+ type GeneratedPathPatternV1 = {
19103
+ prefix: string;
19104
+ suffix: string;
19105
+ };
19106
+ ```
19107
+
19108
+ _No JSDoc summary is available yet._
19109
+
19110
+ ### generateTestArtifacts
19111
+
19112
+ ```ts
19113
+ function generateTestArtifacts(
19114
+ input: GenerateTestArtifactsInputV1,
19115
+ ): readonly GeneratedArtifactV1[];
19116
+ ```
19117
+
19118
+ _No JSDoc summary is available yet._
19119
+
19120
+ ### GenerateTestArtifactsInputV1
19121
+
19122
+ ```ts
19123
+ type GenerateTestArtifactsInputV1 = {
19124
+ manifest: GameTopologyManifest;
19125
+ };
19126
+ ```
19127
+
19128
+ _No JSDoc summary is available yet._
19129
+
19130
+ ### generateWorkspaceArtifacts
19131
+
19132
+ ```ts
19133
+ function generateWorkspaceArtifacts(
19134
+ manifest: unknown,
19135
+ ): readonly GeneratedArtifactV1[];
19136
+ ```
19137
+
19138
+ _No JSDoc summary is available yet._
19139
+
19140
+ ### MANIFEST_CONFORMANCE_CASES
19141
+
19142
+ ```ts
19143
+ const MANIFEST_CONFORMANCE_CASES: readonly AuthoringManifestConformanceCaseV1[];
19144
+ ```
19145
+
19146
+ _No JSDoc summary is available yet._
19147
+
19148
+ ### materializeManifest
19149
+
19150
+ ```ts
19151
+ function materializeManifest(manifest: unknown): JsonValue;
19152
+ ```
19153
+
19154
+ _No JSDoc summary is available yet._
19155
+
19156
+ ### projectAuthoringAdapter
19157
+
19158
+ ```ts
19159
+ const projectAuthoringAdapter: ProjectAuthoringAdapterV1;
19160
+ ```
19161
+
19162
+ _No JSDoc summary is available yet._
19163
+
19164
+ ### ProjectAuthoringAdapterV1
19165
+
19166
+ ```ts
19167
+ type ProjectAuthoringAdapterV1 = ...;
19168
+ ```
19169
+
19170
+ _No JSDoc summary is available yet._
19171
+
19172
+ ### validateManifest
19173
+
19174
+ ```ts
19175
+ function validateManifest(manifest: unknown): AuthoringValidationResultV1;
19176
+ ```
19177
+
19178
+ _No JSDoc summary is available yet._
19179
+
18601
19180
  ## @dreamboard-games/sdk/reducer-contract
18602
19181
 
18603
19182
  ### materializeManifestTable
@@ -18628,284 +19207,1031 @@ const REDUCER_CONTRACT_VERSION: "0.2.1";
18628
19207
 
18629
19208
  The wire-protocol version this package implements. Bumped in lockstep with any breaking change to schema/reducer-runtime.schema.json. At bundle load time hosts refuse bundles whose major version differs.
18630
19209
 
18631
- ### ReducerBundleContract
19210
+ ### ReducerBundleContract
19211
+
19212
+ ```ts
19213
+ interface ReducerBundleContract { ... }
19214
+ ```
19215
+
19216
+ Canonical erased reducer boundary for `createReducerBundle(...)`.
19217
+
19218
+ ### ReducerWire
19219
+
19220
+ ```ts
19221
+ ReducerWire: ...;
19222
+ ```
19223
+
19224
+ _No JSDoc summary is available yet._
19225
+
19226
+ ### ReducerWireZod
19227
+
19228
+ ```ts
19229
+ declare const ReducerWireZod: typeof zod;
19230
+ ```
19231
+
19232
+ _No JSDoc summary is available yet._
19233
+
19234
+ ## @dreamboard-games/sdk/testing
19235
+
19236
+ ### assertDeterministicUIScenarioFixture
19237
+
19238
+ ```ts
19239
+ function assertDeterministicUIScenarioFixture(
19240
+ first: UIScenarioFixture,
19241
+ second: UIScenarioFixture,
19242
+ ): void;
19243
+ ```
19244
+
19245
+ _No JSDoc summary is available yet._
19246
+
19247
+ ### assertSupportedBrowserInteractionProtocol
19248
+
19249
+ ```ts
19250
+ function assertSupportedBrowserInteractionProtocol(version: string): void;
19251
+ ```
19252
+
19253
+ _No JSDoc summary is available yet._
19254
+
19255
+ ### assertUIStepExpectationSatisfied
19256
+
19257
+ ```ts
19258
+ function assertUIStepExpectationSatisfied(
19259
+ stepId: string,
19260
+ expected: UIStepExpectation,
19261
+ actual: UIStepExpectation,
19262
+ ): void;
19263
+ ```
19264
+
19265
+ _No JSDoc summary is available yet._
19266
+
19267
+ ### assertUniqueReplayIdentity
19268
+
19269
+ ```ts
19270
+ function assertUniqueReplayIdentity(
19271
+ step: Pick<PortableSemanticReplayStep, "stepId" | "expectedIdentity">,
19272
+ candidates: readonly UIReplayIdentityCandidate[],
19273
+ ): UIReplayIdentityCandidate;
19274
+ ```
19275
+
19276
+ _No JSDoc summary is available yet._
19277
+
19278
+ ### BaseContext
19279
+
19280
+ ```ts
19281
+ interface BaseContext<PlayerId extends string = string> {
19282
+ game: {
19283
+ start(): Promise<void>;
19284
+ patchState?(
19285
+ mutator: (state: Record<string, unknown>) => void,
19286
+ ): Promise<void>;
19287
+ submit(
19288
+ playerId: PlayerId,
19289
+ interactionId: string,
19290
+ params?: unknown,
19291
+ ): Promise<void>;
19292
+ };
19293
+ players(): readonly PlayerId[];
19294
+ seat(index: number): PlayerId;
19295
+ }
19296
+ ```
19297
+
19298
+ _No JSDoc summary is available yet._
19299
+
19300
+ ### BaseDefinition
19301
+
19302
+ ```ts
19303
+ interface BaseDefinition {
19304
+ id: string;
19305
+ seed?: number;
19306
+ players?: number;
19307
+ setupProfileId?: string | null;
19308
+ extends?: string;
19309
+ setup: (ctx: BaseContext) => void | Promise<void>;
19310
+ }
19311
+ ```
19312
+
19313
+ _No JSDoc summary is available yet._
19314
+
19315
+ ### canonicalizeUIFixtureJson
19316
+
19317
+ ```ts
19318
+ function canonicalizeUIFixtureJson(value: unknown): CanonicalJson;
19319
+ ```
19320
+
19321
+ _No JSDoc summary is available yet._
19322
+
19323
+ ### canonicalizeUIScenarioFixture
19324
+
19325
+ ```ts
19326
+ function canonicalizeUIScenarioFixture(
19327
+ fixture: UIScenarioFixture,
19328
+ ): UIScenarioFixture;
19329
+ ```
19330
+
19331
+ _No JSDoc summary is available yet._
19332
+
19333
+ ### canonicalUIFixtureJson
19334
+
19335
+ ```ts
19336
+ function canonicalUIFixtureJson(value: unknown): string;
19337
+ ```
19338
+
19339
+ _No JSDoc summary is available yet._
19340
+
19341
+ ### compareUIParityObservations
19342
+
19343
+ ```ts
19344
+ function compareUIParityObservations(
19345
+ expected: UIParityObservationV1,
19346
+ actual: UIParityObservationV1,
19347
+ ): UIParityComparisonResult;
19348
+ ```
19349
+
19350
+ _No JSDoc summary is available yet._
19351
+
19352
+ ### compilePluginProtocolTape
19353
+
19354
+ ```ts
19355
+ function compilePluginProtocolTape(
19356
+ options: CompilePluginProtocolTapeOptions,
19357
+ ): PluginProtocolTape;
19358
+ ```
19359
+
19360
+ _No JSDoc summary is available yet._
19361
+
19362
+ ### CompilePluginProtocolTapeOptions
19363
+
19364
+ ```ts
19365
+ interface CompilePluginProtocolTapeOptions {
19366
+ readonly trace: ReducerScenarioTrace;
19367
+ readonly session: v;
19368
+ }
19369
+ ```
19370
+
19371
+ _No JSDoc summary is available yet._
19372
+
19373
+ ### compileUIScenarioFixture
19374
+
19375
+ ```ts
19376
+ function compileUIScenarioFixture(
19377
+ options: CompileUIScenarioFixtureOptions,
19378
+ ): UIScenarioFixture;
19379
+ ```
19380
+
19381
+ _No JSDoc summary is available yet._
19382
+
19383
+ ### CompileUIScenarioFixtureOptions
19384
+
19385
+ ```ts
19386
+ interface CompileUIScenarioFixtureOptions { ... }
19387
+ ```
19388
+
19389
+ _No JSDoc summary is available yet._
19390
+
19391
+ ### createDeterministicIdFactory
19392
+
19393
+ ```ts
19394
+ function createDeterministicIdFactory(seed: string): DeterministicIdFactory;
19395
+ ```
19396
+
19397
+ _No JSDoc summary is available yet._
19398
+
19399
+ ### CreatedTestRuntime
19400
+
19401
+ ```ts
19402
+ type CreatedTestRuntime = ...;
19403
+ ```
19404
+
19405
+ _No JSDoc summary is available yet._
19406
+
19407
+ ### createExpectApi
19408
+
19409
+ ```ts
19410
+ function createExpectApi(options?: CreateExpectApiOptions): ExpectFn;
19411
+ ```
19412
+
19413
+ _No JSDoc summary is available yet._
19414
+
19415
+ ### createFixtureHostHarness
19416
+
19417
+ ```ts
19418
+ function createFixtureHostHarness(
19419
+ options: CreateFixtureHostHarnessOptions,
19420
+ ): FixtureHostHarness;
19421
+ ```
19422
+
19423
+ _No JSDoc summary is available yet._
19424
+
19425
+ ### CreateFixtureHostHarnessOptions
19426
+
19427
+ ```ts
19428
+ interface CreateFixtureHostHarnessOptions {
19429
+ readonly tape: u;
19430
+ readonly strict?: boolean;
19431
+ readonly latencyMs?: number;
19432
+ readonly channelId?: string;
19433
+ readonly onEvent?: (event: FixtureHostEvent) => void;
19434
+ readonly nowMs?: () => number;
19435
+ }
19436
+ ```
19437
+
19438
+ _No JSDoc summary is available yet._
19439
+
19440
+ ### createReducerScenarioRunner
19441
+
19442
+ ```ts
19443
+ function createReducerScenarioRunner(
19444
+ options: CreateReducerScenarioRunnerOptions,
19445
+ ): ReducerScenarioRunner;
19446
+ ```
19447
+
19448
+ _No JSDoc summary is available yet._
19449
+
19450
+ ### CreateReducerScenarioRunnerOptions
19451
+
19452
+ ```ts
19453
+ interface CreateReducerScenarioRunnerOptions {
19454
+ readonly scenarioId: string;
19455
+ readonly gameId: string;
19456
+ readonly initialState: wire.ReducerSessionState;
19457
+ readonly bundle: ReducerScenarioBundle;
19458
+ readonly viewer: ReducerScenarioViewer;
19459
+ readonly playerIds: readonly string[];
19460
+ readonly initialGameVersion?: number;
19461
+ }
19462
+ ```
19463
+
19464
+ _No JSDoc summary is available yet._
19465
+
19466
+ ### createTestRuntime
19467
+
19468
+ ```ts
19469
+ function createTestRuntime(
19470
+ options: CreateTestRuntimeOptions,
19471
+ ): CreatedTestRuntime;
19472
+ ```
19473
+
19474
+ _No JSDoc summary is available yet._
19475
+
19476
+ ### CreateTestRuntimeOptions
19477
+
19478
+ ```ts
19479
+ type CreateTestRuntimeOptions = {
19480
+ baseId: string;
19481
+ baseStates: Record<string, BaseStateArtifact>;
19482
+ bundle: ReducerBundleLike;
19483
+ phase?: string;
19484
+ playerIds?: readonly string[];
19485
+ sessionId?: string;
19486
+ userId?: string | null;
19487
+ gameId?: string;
19488
+ displayNameByPlayerId?: Record<string, string>;
19489
+ contractFingerprint?: string;
19490
+ expectedBaseStateFingerprint?: string;
19491
+ };
19492
+ ```
19493
+
19494
+ _No JSDoc summary is available yet._
19495
+
19496
+ ### createUIParityObservationFromFixture
19497
+
19498
+ ```ts
19499
+ function createUIParityObservationFromFixture({
19500
+ fixture,
19501
+ sdkCandidateDigest,
19502
+ environment,
19503
+ fixtureDigest,
19504
+ screenshotsByStepId,
19505
+ diagnostics,
19506
+ }: CreateUIParityObservationFromFixtureOptions): UIParityObservationV1;
19507
+ ```
19508
+
19509
+ _No JSDoc summary is available yet._
19510
+
19511
+ ### defaultFixtureEnvironmentInit
19512
+
19513
+ ```ts
19514
+ const defaultFixtureEnvironmentInit: FixtureEnvironmentInit;
19515
+ ```
19516
+
19517
+ _No JSDoc summary is available yet._
19518
+
19519
+ ### defineBase
19520
+
19521
+ ```ts
19522
+ function defineBase<const Definition extends BaseDefinition>(
19523
+ definition: Definition,
19524
+ ): Definition;
19525
+ ```
19526
+
19527
+ _No JSDoc summary is available yet._
19528
+
19529
+ ### defineScenario
19530
+
19531
+ ```ts
19532
+ function defineScenario<
19533
+ const Runners extends readonly TestRunner[] = readonly ["reducer"],
19534
+ const PhaseName extends string = string,
19535
+ const StageName extends string = string,
19536
+ >(
19537
+ definition: ScenarioDefinition<Runners, PhaseName, StageName>,
19538
+ ): ScenarioDefinition<Runners, PhaseName, StageName>;
19539
+ ```
19540
+
19541
+ _No JSDoc summary is available yet._
19542
+
19543
+ ### DeterministicIdFactory
19544
+
19545
+ ```ts
19546
+ type DeterministicIdFactory = () => string;
19547
+ ```
19548
+
19549
+ _No JSDoc summary is available yet._
19550
+
19551
+ ### digestPluginProtocolTape
19552
+
19553
+ ```ts
19554
+ function digestPluginProtocolTape(tape: PluginProtocolTape): string;
19555
+ ```
19556
+
19557
+ _No JSDoc summary is available yet._
19558
+
19559
+ ### digestUIFixtureJson
19560
+
19561
+ ```ts
19562
+ function digestUIFixtureJson(value: unknown): string;
19563
+ ```
19564
+
19565
+ _No JSDoc summary is available yet._
19566
+
19567
+ ### digestUIFixtureRequest
19568
+
19569
+ ```ts
19570
+ function digestUIFixtureRequest(request: UIReplayRequest): string;
19571
+ ```
19572
+
19573
+ _No JSDoc summary is available yet._
19574
+
19575
+ ### digestUIFixtureTransportRequest
19576
+
19577
+ ```ts
19578
+ function digestUIFixtureTransportRequest(request: {
19579
+ readonly operation: "validate" | "submit";
19580
+ readonly basis?: {
19581
+ readonly gameVersion: number;
19582
+ readonly actionSetVersion: string;
19583
+ readonly perspectivePlayerId: string | null;
19584
+ };
19585
+ readonly interactionId?: string;
19586
+ readonly payload?: unknown;
19587
+ }): string;
19588
+ ```
19589
+
19590
+ _No JSDoc summary is available yet._
19591
+
19592
+ ### digestUIScenarioFixture
19593
+
19594
+ ```ts
19595
+ function digestUIScenarioFixture(fixture: UIScenarioFixture): string;
19596
+ ```
19597
+
19598
+ _No JSDoc summary is available yet._
19599
+
19600
+ ### ExpectFn
19601
+
19602
+ ```ts
19603
+ type ExpectFn = (actual: unknown) => ExpectMatchers;
19604
+ ```
19605
+
19606
+ _No JSDoc summary is available yet._
19607
+
19608
+ ### ExpectMatchers
19609
+
19610
+ ```ts
19611
+ type ExpectMatchers = ...;
19612
+ ```
19613
+
19614
+ _No JSDoc summary is available yet._
19615
+
19616
+ ### FixtureEnvironmentInit
19617
+
19618
+ ```ts
19619
+ interface FixtureEnvironmentInit {
19620
+ readonly clockIso: string;
19621
+ readonly randomSeed: string;
19622
+ readonly locale: "en-US";
19623
+ readonly timezone: "UTC";
19624
+ readonly reducedMotion: true;
19625
+ readonly network: "blocked";
19626
+ }
19627
+ ```
19628
+
19629
+ _No JSDoc summary is available yet._
19630
+
19631
+ ### fixtureEnvironmentInitFor
19632
+
19633
+ ```ts
19634
+ function fixtureEnvironmentInitFor(options: {
19635
+ readonly clockIso: string;
19636
+ readonly randomSeed: string;
19637
+ }): FixtureEnvironmentInit;
19638
+ ```
19639
+
19640
+ _No JSDoc summary is available yet._
19641
+
19642
+ ### FixtureHostEvent
19643
+
19644
+ ```ts
19645
+ interface FixtureHostEvent {
19646
+ readonly sequence: number;
19647
+ readonly atMs: number;
19648
+ readonly kind:
19649
+ | "frame-sent"
19650
+ | "validate-received"
19651
+ | "submit-received"
19652
+ | "ack-received"
19653
+ | "ready-received"
19654
+ | "diagnostic";
19655
+ readonly requestDigest?: string;
19656
+ readonly frameId?: string;
19657
+ readonly projectionDigest?: string;
19658
+ readonly result?: "accepted" | "rejected";
19659
+ }
19660
+ ```
19661
+
19662
+ _No JSDoc summary is available yet._
19663
+
19664
+ ### FixtureHostHarness
19665
+
19666
+ ```ts
19667
+ interface FixtureHostHarness {
19668
+ readonly transport: PluginTransport;
19669
+ readonly tape: u;
19670
+ reset(): void;
19671
+ flush(): Promise<void>;
19672
+ advanceHost(): Promise<void>;
19673
+ getCurrentFrameId(): string;
19674
+ getEvents(): readonly FixtureHostEvent[];
19675
+ assertConsumed(): void;
19676
+ }
19677
+ ```
19678
+
19679
+ _No JSDoc summary is available yet._
19680
+
19681
+ ### FixturePluginRuntime
19682
+
19683
+ ```ts
19684
+ function FixturePluginRuntime({
19685
+ harness,
19686
+ runtime,
19687
+ children,
19688
+ }: {
19689
+ harness: FixtureHostHarness;
19690
+ runtime?: PluginRuntimeClient;
19691
+ children: react__default.ReactNode;
19692
+ }): react_jsx_runtime.JSX.Element;
19693
+ ```
19694
+
19695
+ _No JSDoc summary is available yet._
19696
+
19697
+ ### InteractionAvailabilityLike
19698
+
19699
+ ```ts
19700
+ type InteractionAvailabilityLike =
19701
+ | {
19702
+ status: "available";
19703
+ }
19704
+ | {
19705
+ status: "notYourTurn";
19706
+ reason: string;
19707
+ }
19708
+ | {
19709
+ status: "insufficientResources";
19710
+ reason: string;
19711
+ missingResources?: Record<string, unknown>;
19712
+ }
19713
+ | {
19714
+ status: "blocked";
19715
+ reason: string;
19716
+ };
19717
+ ```
19718
+
19719
+ _No JSDoc summary is available yet._
19720
+
19721
+ ### InteractionDescriptorLike
19722
+
19723
+ ```ts
19724
+ type InteractionDescriptorLike = {
19725
+ interactionId?: string;
19726
+ surface?: string;
19727
+ kind?: string;
19728
+ availability?: InteractionAvailabilityLike;
19729
+ context?: {
19730
+ to?: string;
19731
+ };
19732
+ } & Record<string, unknown>;
19733
+ ```
19734
+
19735
+ _No JSDoc summary is available yet._
19736
+
19737
+ ### InteractionExplanationLike
19738
+
19739
+ ```ts
19740
+ type InteractionExplanationLike = ...;
19741
+ ```
19742
+
19743
+ _No JSDoc summary is available yet._
19744
+
19745
+ ### isSha256Digest
19746
+
19747
+ ```ts
19748
+ function isSha256Digest(value: string): boolean;
19749
+ ```
19750
+
19751
+ _No JSDoc summary is available yet._
19752
+
19753
+ ### isStaleContractArtifactError
19754
+
19755
+ ```ts
19756
+ function isStaleContractArtifactError(
19757
+ error: unknown,
19758
+ ): error is StaleContractArtifactError;
19759
+ ```
19760
+
19761
+ _No JSDoc summary is available yet._
19762
+
19763
+ ### parseUIParityObservationV1
19764
+
19765
+ ```ts
19766
+ function parseUIParityObservationV1(value: unknown): UIParityObservationV1;
19767
+ ```
19768
+
19769
+ _No JSDoc summary is available yet._
19770
+
19771
+ ### parseUIScenarioFixture
19772
+
19773
+ ```ts
19774
+ function parseUIScenarioFixture(value: unknown): UIScenarioFixture;
19775
+ ```
19776
+
19777
+ _No JSDoc summary is available yet._
19778
+
19779
+ ### parseUIScenarioFixtureBundleIndex
19780
+
19781
+ ```ts
19782
+ function parseUIScenarioFixtureBundleIndex(
19783
+ value: unknown,
19784
+ ): UIScenarioFixtureBundleIndex;
19785
+ ```
19786
+
19787
+ _No JSDoc summary is available yet._
19788
+
19789
+ ### PluginProtocolTape
19790
+
19791
+ ```ts
19792
+ type PluginProtocolTape = u;
19793
+ ```
19794
+
19795
+ _No JSDoc summary is available yet._
19796
+
19797
+ ### pluginProtocolTapeSchema
19798
+
19799
+ ```ts
19800
+ const pluginProtocolTapeSchema: z.ZodType<
19801
+ u,
19802
+ unknown,
19803
+ z.core.$ZodTypeInternals<u, unknown>
19804
+ >;
19805
+ ```
19806
+
19807
+ _No JSDoc summary is available yet._
19808
+
19809
+ ### PortableSemanticReplayStep
19810
+
19811
+ ```ts
19812
+ type PortableSemanticReplayStep = z.infer<
19813
+ typeof portableSemanticReplayStepSchema
19814
+ >;
19815
+ ```
19816
+
19817
+ _No JSDoc summary is available yet._
19818
+
19819
+ ### portableSemanticReplayStepSchema
19820
+
19821
+ ```ts
19822
+ declare const portableSemanticReplayStepSchema: ...;
19823
+ ```
19824
+
19825
+ _No JSDoc summary is available yet._
19826
+
19827
+ ### ReducerScenarioBundle
19828
+
19829
+ ```ts
19830
+ type ReducerScenarioBundle = Pick<
19831
+ ReducerBundleContract,
19832
+ "projectSeatsDynamic" | "validateInput" | "dispatch" | "projectStatic"
19833
+ >;
19834
+ ```
19835
+
19836
+ _No JSDoc summary is available yet._
19837
+
19838
+ ### ReducerScenarioDiagnostic
19839
+
19840
+ ```ts
19841
+ interface ReducerScenarioDiagnostic {
19842
+ readonly code: string;
19843
+ readonly message: string;
19844
+ }
19845
+ ```
19846
+
19847
+ _No JSDoc summary is available yet._
19848
+
19849
+ ### ReducerScenarioExchange
19850
+
19851
+ ```ts
19852
+ type ReducerScenarioExchange = ...;
19853
+ ```
19854
+
19855
+ _No JSDoc summary is available yet._
19856
+
19857
+ ### ReducerScenarioFrame
19858
+
19859
+ ```ts
19860
+ interface ReducerScenarioFrame {
19861
+ readonly id: string;
19862
+ readonly reducerState: wire.ReducerSessionState;
19863
+ readonly dynamicProjection: wire.SeatProjectionBundle;
19864
+ readonly staticProjection?: wire.BoardStaticProjection | null;
19865
+ readonly gameVersion: number;
19866
+ readonly actionSetVersion: string;
19867
+ readonly projectionDigest: string;
19868
+ }
19869
+ ```
19870
+
19871
+ _No JSDoc summary is available yet._
19872
+
19873
+ ### ReducerScenarioOperation
19874
+
19875
+ ```ts
19876
+ type ReducerScenarioOperation =
19877
+ | {
19878
+ readonly id: string;
19879
+ readonly operation: "validate";
19880
+ readonly input: wire.GameInput;
19881
+ }
19882
+ | {
19883
+ readonly id: string;
19884
+ readonly operation: "submit";
19885
+ readonly input: wire.GameInput;
19886
+ };
19887
+ ```
19888
+
19889
+ _No JSDoc summary is available yet._
19890
+
19891
+ ### ReducerScenarioRunner
19892
+
19893
+ ```ts
19894
+ interface ReducerScenarioRunner {
19895
+ run(
19896
+ operations: readonly ReducerScenarioOperation[],
19897
+ ): Promise<ReducerScenarioTrace>;
19898
+ }
19899
+ ```
19900
+
19901
+ _No JSDoc summary is available yet._
19902
+
19903
+ ### ReducerScenarioTrace
19904
+
19905
+ ```ts
19906
+ interface ReducerScenarioTrace {
19907
+ readonly scenarioId: string;
19908
+ readonly gameId: string;
19909
+ readonly viewer: ReducerScenarioViewer;
19910
+ readonly frames: readonly ReducerScenarioFrame[];
19911
+ readonly exchanges: readonly ReducerScenarioExchange[];
19912
+ }
19913
+ ```
19914
+
19915
+ _No JSDoc summary is available yet._
19916
+
19917
+ ### ReducerScenarioViewer
19918
+
19919
+ ```ts
19920
+ interface ReducerScenarioViewer {
19921
+ readonly seatId: string;
19922
+ readonly playerId: string;
19923
+ }
19924
+ ```
19925
+
19926
+ _No JSDoc summary is available yet._
19927
+
19928
+ ### RejectionExpectation
19929
+
19930
+ ```ts
19931
+ type RejectionExpectation = {
19932
+ errorCode?: string;
19933
+ message?: string | RegExp;
19934
+ };
19935
+ ```
19936
+
19937
+ _No JSDoc summary is available yet._
19938
+
19939
+ ### ScenarioDefinition
19940
+
19941
+ ```ts
19942
+ interface ScenarioDefinition { ... }
19943
+ ```
19944
+
19945
+ _No JSDoc summary is available yet._
19946
+
19947
+ ### serializeUIScenarioFixture
19948
+
19949
+ ```ts
19950
+ function serializeUIScenarioFixture(fixture: UIScenarioFixture): string;
19951
+ ```
19952
+
19953
+ _No JSDoc summary is available yet._
19954
+
19955
+ ### SharedScenarioContext
19956
+
19957
+ ```ts
19958
+ interface SharedScenarioContext { ... }
19959
+ ```
19960
+
19961
+ _No JSDoc summary is available yet._
19962
+
19963
+ ### SnapshotMatcherHandler
19964
+
19965
+ ```ts
19966
+ type SnapshotMatcherHandler = (
19967
+ name: string | undefined,
19968
+ actual: unknown,
19969
+ ) => void;
19970
+ ```
19971
+
19972
+ _No JSDoc summary is available yet._
19973
+
19974
+ ### StaleContractArtifactError
19975
+
19976
+ ```ts
19977
+ class StaleContractArtifactError(options: StaleContractArtifactErrorOptions): StaleContractArtifactError;
19978
+ ```
19979
+
19980
+ _No JSDoc summary is available yet._
19981
+
19982
+ ### StaleContractArtifactErrorOptions
19983
+
19984
+ ```ts
19985
+ type StaleContractArtifactErrorOptions = {
19986
+ artifact: StaleContractArtifactKind;
19987
+ expected: string;
19988
+ found: string;
19989
+ remedy?: string;
19990
+ };
19991
+ ```
19992
+
19993
+ _No JSDoc summary is available yet._
19994
+
19995
+ ### StaleContractArtifactKind
18632
19996
 
18633
19997
  ```ts
18634
- interface ReducerBundleContract { ... }
19998
+ type StaleContractArtifactKind = "base-states" | "session-state";
18635
19999
  ```
18636
20000
 
18637
- Canonical erased reducer boundary for `createReducerBundle(...)`.
20001
+ _No JSDoc summary is available yet._
18638
20002
 
18639
- ### ReducerWire
20003
+ ### TestRunner
18640
20004
 
18641
20005
  ```ts
18642
- ReducerWire: ...;
20006
+ type TestRunner = "reducer" | "remote" | "browser";
18643
20007
  ```
18644
20008
 
18645
20009
  _No JSDoc summary is available yet._
18646
20010
 
18647
- ### ReducerWireZod
20011
+ ### UI_SCENARIO_FIXTURE_BUNDLE_SCHEMA_VERSION
18648
20012
 
18649
20013
  ```ts
18650
- declare const ReducerWireZod: typeof zod;
20014
+ const UI_SCENARIO_FIXTURE_BUNDLE_SCHEMA_VERSION = 2;
18651
20015
  ```
18652
20016
 
18653
20017
  _No JSDoc summary is available yet._
18654
20018
 
18655
- ## @dreamboard-games/sdk/testing
18656
-
18657
- ### BaseContext
20019
+ ### UI_SCENARIO_FIXTURE_PLUGIN_RUNTIME_PROTOCOL
18658
20020
 
18659
20021
  ```ts
18660
- interface BaseContext<PlayerId extends string = string> {
18661
- game: {
18662
- start(): Promise<void>;
18663
- patchState?(
18664
- mutator: (state: Record<string, unknown>) => void,
18665
- ): Promise<void>;
18666
- submit(
18667
- playerId: PlayerId,
18668
- interactionId: string,
18669
- params?: unknown,
18670
- ): Promise<void>;
18671
- };
18672
- players(): readonly PlayerId[];
18673
- seat(index: number): PlayerId;
18674
- }
20022
+ const UI_SCENARIO_FIXTURE_PLUGIN_RUNTIME_PROTOCOL: 3;
18675
20023
  ```
18676
20024
 
18677
20025
  _No JSDoc summary is available yet._
18678
20026
 
18679
- ### BaseDefinition
20027
+ ### UI_SCENARIO_FIXTURE_SCHEMA_VERSION
18680
20028
 
18681
20029
  ```ts
18682
- interface BaseDefinition {
18683
- id: string;
18684
- seed?: number;
18685
- players?: number;
18686
- setupProfileId?: string | null;
18687
- extends?: string;
18688
- setup: (ctx: BaseContext) => void | Promise<void>;
18689
- }
20030
+ const UI_SCENARIO_FIXTURE_SCHEMA_VERSION = 2;
18690
20031
  ```
18691
20032
 
18692
20033
  _No JSDoc summary is available yet._
18693
20034
 
18694
- ### CreatedTestRuntime
20035
+ ### UI_SCENARIO_FIXTURE_SUPPORTED_BROWSER_PROTOCOL_MAJOR
18695
20036
 
18696
20037
  ```ts
18697
- type CreatedTestRuntime = ...;
20038
+ const UI_SCENARIO_FIXTURE_SUPPORTED_BROWSER_PROTOCOL_MAJOR = 3;
18698
20039
  ```
18699
20040
 
18700
20041
  _No JSDoc summary is available yet._
18701
20042
 
18702
- ### createExpectApi
20043
+ ### UIFixtureFrame
18703
20044
 
18704
20045
  ```ts
18705
- function createExpectApi(options?: CreateExpectApiOptions): ExpectFn;
20046
+ type UIFixtureFrame = s;
18706
20047
  ```
18707
20048
 
18708
20049
  _No JSDoc summary is available yet._
18709
20050
 
18710
- ### createTestRuntime
20051
+ ### uiFixtureFrameSchema
18711
20052
 
18712
20053
  ```ts
18713
- function createTestRuntime(
18714
- options: CreateTestRuntimeOptions,
18715
- ): CreatedTestRuntime;
20054
+ const uiFixtureFrameSchema: z.ZodObject<
20055
+ {
20056
+ id: z.ZodString;
20057
+ frame: z.ZodType<
20058
+ o<unknown, string, string, string>,
20059
+ unknown,
20060
+ z.core.$ZodTypeInternals<o<unknown, string, string, string>, unknown>
20061
+ >;
20062
+ projectionDigest: z.ZodString;
20063
+ },
20064
+ z.core.$strict
20065
+ >;
18716
20066
  ```
18717
20067
 
18718
20068
  _No JSDoc summary is available yet._
18719
20069
 
18720
- ### CreateTestRuntimeOptions
20070
+ ### UIFixtureProtocolStep
18721
20071
 
18722
20072
  ```ts
18723
- type CreateTestRuntimeOptions = {
18724
- baseId: string;
18725
- baseStates: Record<string, BaseStateArtifact>;
18726
- bundle: ReducerBundleLike;
18727
- phase?: string;
18728
- playerIds?: readonly string[];
18729
- sessionId?: string;
18730
- userId?: string | null;
18731
- gameId?: string;
18732
- displayNameByPlayerId?: Record<string, string>;
18733
- contractFingerprint?: string;
18734
- expectedBaseStateFingerprint?: string;
18735
- };
20073
+ type UIFixtureProtocolStep = t;
18736
20074
  ```
18737
20075
 
18738
20076
  _No JSDoc summary is available yet._
18739
20077
 
18740
- ### defineBase
20078
+ ### uiFixtureProtocolStepSchema
18741
20079
 
18742
20080
  ```ts
18743
- function defineBase<const Definition extends BaseDefinition>(
18744
- definition: Definition,
18745
- ): Definition;
20081
+ declare const uiFixtureProtocolStepSchema: ...;
18746
20082
  ```
18747
20083
 
18748
20084
  _No JSDoc summary is available yet._
18749
20085
 
18750
- ### defineScenario
20086
+ ### UIReplayExecution
18751
20087
 
18752
20088
  ```ts
18753
- function defineScenario<
18754
- const Runners extends readonly TestRunner[] = readonly ["reducer"],
18755
- const PhaseName extends string = string,
18756
- const StageName extends string = string,
18757
- >(
18758
- definition: ScenarioDefinition<Runners, PhaseName, StageName>,
18759
- ): ScenarioDefinition<Runners, PhaseName, StageName>;
20089
+ type UIReplayExecution = z.infer<typeof uiReplayExecutionSchema>;
18760
20090
  ```
18761
20091
 
18762
20092
  _No JSDoc summary is available yet._
18763
20093
 
18764
- ### ExpectFn
20094
+ ### uiReplayExecutionSchema
18765
20095
 
18766
20096
  ```ts
18767
- type ExpectFn = (actual: unknown) => ExpectMatchers;
20097
+ declare const uiReplayExecutionSchema: ...;
18768
20098
  ```
18769
20099
 
18770
20100
  _No JSDoc summary is available yet._
18771
20101
 
18772
- ### ExpectMatchers
20102
+ ### UIReplayIdentityCandidate
18773
20103
 
18774
20104
  ```ts
18775
- type ExpectMatchers = ...;
20105
+ type UIReplayIdentityCandidate = UIResolvedReplayIdentity;
18776
20106
  ```
18777
20107
 
18778
20108
  _No JSDoc summary is available yet._
18779
20109
 
18780
- ### InteractionAvailabilityLike
20110
+ ### UIReplayRequest
18781
20111
 
18782
20112
  ```ts
18783
- type InteractionAvailabilityLike =
18784
- | {
18785
- status: "available";
18786
- }
18787
- | {
18788
- status: "notYourTurn";
18789
- reason: string;
18790
- }
18791
- | {
18792
- status: "insufficientResources";
18793
- reason: string;
18794
- missingResources?: Record<string, unknown>;
18795
- }
18796
- | {
18797
- status: "blocked";
18798
- reason: string;
18799
- };
20113
+ type UIReplayRequest =
20114
+ | BrowserInteractionIntentRequest
20115
+ | BrowserInteractionEffectRequest;
18800
20116
  ```
18801
20117
 
18802
20118
  _No JSDoc summary is available yet._
18803
20119
 
18804
- ### InteractionDescriptorLike
20120
+ ### uiReplayRequestSchema
18805
20121
 
18806
20122
  ```ts
18807
- type InteractionDescriptorLike = {
18808
- interactionId?: string;
18809
- surface?: string;
18810
- kind?: string;
18811
- availability?: InteractionAvailabilityLike;
18812
- context?: {
18813
- to?: string;
18814
- };
18815
- } & Record<string, unknown>;
20123
+ declare const uiReplayRequestSchema: ...;
18816
20124
  ```
18817
20125
 
18818
20126
  _No JSDoc summary is available yet._
18819
20127
 
18820
- ### InteractionExplanationLike
20128
+ ### UIResolvedReplayIdentity
18821
20129
 
18822
20130
  ```ts
18823
- type InteractionExplanationLike = ...;
20131
+ type UIResolvedReplayIdentity = z.infer<typeof uiResolvedReplayIdentitySchema>;
18824
20132
  ```
18825
20133
 
18826
20134
  _No JSDoc summary is available yet._
18827
20135
 
18828
- ### isStaleContractArtifactError
20136
+ ### uiResolvedReplayIdentitySchema
18829
20137
 
18830
20138
  ```ts
18831
- function isStaleContractArtifactError(
18832
- error: unknown,
18833
- ): error is StaleContractArtifactError;
20139
+ const uiResolvedReplayIdentitySchema: z.ZodObject<
20140
+ {
20141
+ stepId: z.ZodString;
20142
+ surface: z.ZodString;
20143
+ scopeId: z.ZodString;
20144
+ interactionKey: z.ZodString;
20145
+ interactionId: z.ZodString;
20146
+ actuatorId: z.ZodString;
20147
+ descriptorDigest: z.ZodOptional<z.ZodString>;
20148
+ draftDigest: z.ZodOptional<z.ZodString>;
20149
+ },
20150
+ z.core.$strict
20151
+ >;
18834
20152
  ```
18835
20153
 
18836
20154
  _No JSDoc summary is available yet._
18837
20155
 
18838
- ### RejectionExpectation
20156
+ ### UIScenarioFixture
18839
20157
 
18840
20158
  ```ts
18841
- type RejectionExpectation = {
18842
- errorCode?: string;
18843
- message?: string | RegExp;
20159
+ type UIScenarioFixture = Omit<
20160
+ z.infer<typeof uiScenarioFixtureSchema>,
20161
+ "protocol" | "replay"
20162
+ > & {
20163
+ readonly protocol: PluginProtocolTape;
20164
+ readonly replay: readonly UIScenarioReplayStep[];
18844
20165
  };
18845
20166
  ```
18846
20167
 
18847
20168
  _No JSDoc summary is available yet._
18848
20169
 
18849
- ### ScenarioDefinition
20170
+ ### UIScenarioFixtureBundleIndex
18850
20171
 
18851
20172
  ```ts
18852
- interface ScenarioDefinition { ... }
20173
+ type UIScenarioFixtureBundleIndex = z.infer<
20174
+ typeof uiScenarioFixtureBundleIndexSchema
20175
+ >;
18853
20176
  ```
18854
20177
 
18855
20178
  _No JSDoc summary is available yet._
18856
20179
 
18857
- ### SharedScenarioContext
20180
+ ### uiScenarioFixtureBundleIndexSchema
18858
20181
 
18859
20182
  ```ts
18860
- interface SharedScenarioContext { ... }
20183
+ declare const uiScenarioFixtureBundleIndexSchema: ...;
18861
20184
  ```
18862
20185
 
18863
20186
  _No JSDoc summary is available yet._
18864
20187
 
18865
- ### SnapshotMatcherHandler
20188
+ ### uiScenarioFixtureSchema
18866
20189
 
18867
20190
  ```ts
18868
- type SnapshotMatcherHandler = (
18869
- name: string | undefined,
18870
- actual: unknown,
18871
- ) => void;
20191
+ declare const uiScenarioFixtureSchema: ...;
18872
20192
  ```
18873
20193
 
18874
20194
  _No JSDoc summary is available yet._
18875
20195
 
18876
- ### StaleContractArtifactError
20196
+ ### UIScenarioReplayStep
18877
20197
 
18878
20198
  ```ts
18879
- class StaleContractArtifactError(options: StaleContractArtifactErrorOptions): StaleContractArtifactError;
20199
+ type UIScenarioReplayStep = z.infer<typeof uiScenarioReplayStepSchema>;
18880
20200
  ```
18881
20201
 
18882
20202
  _No JSDoc summary is available yet._
18883
20203
 
18884
- ### StaleContractArtifactErrorOptions
20204
+ ### uiScenarioReplayStepSchema
18885
20205
 
18886
20206
  ```ts
18887
- type StaleContractArtifactErrorOptions = {
18888
- artifact: StaleContractArtifactKind;
18889
- expected: string;
18890
- found: string;
18891
- remedy?: string;
18892
- };
20207
+ declare const uiScenarioReplayStepSchema: ...;
18893
20208
  ```
18894
20209
 
18895
20210
  _No JSDoc summary is available yet._
18896
20211
 
18897
- ### StaleContractArtifactKind
20212
+ ### UIStepExpectation
18898
20213
 
18899
20214
  ```ts
18900
- type StaleContractArtifactKind = "base-states" | "session-state";
20215
+ type UIStepExpectation = z.infer<typeof uiStepExpectationSchema>;
18901
20216
  ```
18902
20217
 
18903
20218
  _No JSDoc summary is available yet._
18904
20219
 
18905
- ### TestRunner
20220
+ ### uiStepExpectationSchema
18906
20221
 
18907
20222
  ```ts
18908
- type TestRunner = "reducer" | "remote" | "browser";
20223
+ declare const uiStepExpectationSchema: z.ZodObject<
20224
+ {
20225
+ frameId: z.ZodOptional<z.ZodString>;
20226
+ projectionDigest: z.ZodOptional<z.ZodString>;
20227
+ semanticDigest: z.ZodOptional<z.ZodString>;
20228
+ draftDigest: z.ZodOptional<z.ZodString>;
20229
+ submissionDigest: z.ZodOptional<z.ZodString>;
20230
+ focusedInteractionKey: z.ZodOptional<z.ZodString>;
20231
+ visibleInteractionKeys: z.ZodOptional<z.ZodArray<z.ZodString>>;
20232
+ },
20233
+ z.core.$strict
20234
+ >;
18909
20235
  ```
18910
20236
 
18911
20237
  _No JSDoc summary is available yet._
@@ -18986,7 +20312,11 @@ _No JSDoc summary is available yet._
18986
20312
  ### BROWSER_INTERACTION_RECORD_ROLES
18987
20313
 
18988
20314
  ```ts
18989
- const BROWSER_INTERACTION_RECORD_ROLES: readonly ["interaction", "actuator"];
20315
+ const BROWSER_INTERACTION_RECORD_ROLES: readonly [
20316
+ "interaction",
20317
+ "actuator",
20318
+ "pointer-target",
20319
+ ];
18990
20320
  ```
18991
20321
 
18992
20322
  _No JSDoc summary is available yet._
@@ -19099,6 +20429,7 @@ declare const browserInteractionDiagnosticSchema: z.ZodObject<
19099
20429
  interactionKey: z.ZodOptional<z.ZodString>;
19100
20430
  intent: z.ZodOptional<z.ZodString>;
19101
20431
  actuatorId: z.ZodOptional<z.ZodString>;
20432
+ targetId: z.ZodOptional<z.ZodString>;
19102
20433
  },
19103
20434
  z.core.$strip
19104
20435
  >;
@@ -19196,7 +20527,13 @@ const browserInteractionEffectSchema: z.ZodObject<
19196
20527
  kind: z.ZodString;
19197
20528
  },
19198
20529
  z.core.$catchall<
19199
- z.ZodType<unknown, unknown, z.core.$ZodTypeInternals<unknown, unknown>>
20530
+ z.ZodPreprocess<
20531
+ z.ZodType<
20532
+ RuntimeJson,
20533
+ unknown,
20534
+ z.core.$ZodTypeInternals<RuntimeJson, unknown>
20535
+ >
20536
+ >
19200
20537
  >
19201
20538
  >;
19202
20539
  ```
@@ -19206,31 +20543,97 @@ _No JSDoc summary is available yet._
19206
20543
  ### BrowserInteractionEntity
19207
20544
 
19208
20545
  ```ts
19209
- interface BrowserInteractionEntity {
20546
+ interface BrowserInteractionEntity { ... }
20547
+ ```
20548
+
20549
+ _No JSDoc summary is available yet._
20550
+
20551
+ ### BrowserInteractionIntent
20552
+
20553
+ ```ts
20554
+ type BrowserInteractionIntent = string;
20555
+ ```
20556
+
20557
+ _No JSDoc summary is available yet._
20558
+
20559
+ ### BrowserInteractionIntentRequest
20560
+
20561
+ ```ts
20562
+ interface BrowserInteractionIntentRequest { ... }
20563
+ ```
20564
+
20565
+ _No JSDoc summary is available yet._
20566
+
20567
+ ### BrowserInteractionPointerTarget
20568
+
20569
+ ```ts
20570
+ interface BrowserInteractionPointerTarget {
20571
+ readonly targetId: string;
20572
+ readonly enabled: boolean;
20573
+ readonly acceptedEffectPatterns: readonly BrowserInteractionEffectPattern[];
20574
+ readonly descriptorDigest?: string;
20575
+ readonly diagnostics: readonly BrowserInteractionDiagnostic[];
20576
+ }
20577
+ ```
20578
+
20579
+ _No JSDoc summary is available yet._
20580
+
20581
+ ### BrowserInteractionPointerTargetAttributesInput
20582
+
20583
+ ```ts
20584
+ interface BrowserInteractionPointerTargetAttributesInput {
20585
+ readonly surface: string;
20586
+ readonly scopeId: string;
19210
20587
  readonly interactionKey: string;
19211
20588
  readonly interactionId: string;
19212
20589
  readonly descriptorDigest?: string;
19213
- readonly draftDigest?: string;
19214
- readonly readiness: BrowserInteractionReadiness;
19215
- readonly actuators: readonly BrowserInteractionActuator[];
20590
+ readonly targetId: string;
20591
+ readonly enabled?: boolean;
20592
+ readonly acceptedEffectPatterns: readonly BrowserInteractionEffectPattern[];
20593
+ }
20594
+ ```
20595
+
20596
+ _No JSDoc summary is available yet._
20597
+
20598
+ ### BrowserInteractionPointerTargetResolution
20599
+
20600
+ ```ts
20601
+ type BrowserInteractionPointerTargetResolution =
20602
+ | BrowserInteractionPointerTargetResolutionSuccess
20603
+ | BrowserInteractionPointerTargetResolutionFailure;
20604
+ ```
20605
+
20606
+ _No JSDoc summary is available yet._
20607
+
20608
+ ### BrowserInteractionPointerTargetResolutionFailure
20609
+
20610
+ ```ts
20611
+ interface BrowserInteractionPointerTargetResolutionFailure {
20612
+ readonly ok: false;
20613
+ readonly code:
20614
+ | "ambiguous"
20615
+ | "invalid-effect"
20616
+ | "invalid-snapshot"
20617
+ | "not-found"
20618
+ | "unavailable";
19216
20619
  readonly diagnostics: readonly BrowserInteractionDiagnostic[];
19217
20620
  }
19218
20621
  ```
19219
20622
 
19220
20623
  _No JSDoc summary is available yet._
19221
20624
 
19222
- ### BrowserInteractionIntent
20625
+ ### BrowserInteractionPointerTargetResolutionSuccess
19223
20626
 
19224
20627
  ```ts
19225
- type BrowserInteractionIntent = string;
20628
+ interface BrowserInteractionPointerTargetResolutionSuccess { ... }
19226
20629
  ```
19227
20630
 
19228
20631
  _No JSDoc summary is available yet._
19229
20632
 
19230
- ### BrowserInteractionIntentRequest
20633
+ ### browserInteractionPointerTargetSchema
19231
20634
 
19232
20635
  ```ts
19233
- interface BrowserInteractionIntentRequest { ... }
20636
+ declare const browserInteractionPointerTargetSchema: ...;
19234
20637
  ```
19235
20638
 
19236
20639
  _No JSDoc summary is available yet._
@@ -19254,7 +20657,7 @@ _No JSDoc summary is available yet._
19254
20657
  ```ts
19255
20658
  interface BrowserInteractionProtocolIdentity {
19256
20659
  readonly name: "dreamboard-browser-interaction";
19257
- readonly version: "2.0.0";
20660
+ readonly version: "3.0.0";
19258
20661
  }
19259
20662
  ```
19260
20663
 
@@ -19526,6 +20929,16 @@ function createBrowserInteractionActuatorKey(input: {
19526
20929
 
19527
20930
  _No JSDoc summary is available yet._
19528
20931
 
20932
+ ### createBrowserInteractionPointerTargetAttributes
20933
+
20934
+ ```ts
20935
+ function createBrowserInteractionPointerTargetAttributes(
20936
+ input: BrowserInteractionPointerTargetAttributesInput,
20937
+ ): BrowserInteractionAttributeMap;
20938
+ ```
20939
+
20940
+ _No JSDoc summary is available yet._
20941
+
19529
20942
  ### createBrowserInteractionRegistry
19530
20943
 
19531
20944
  ```ts
@@ -19566,6 +20979,16 @@ function createGameplayInteractionRootAttributes(
19566
20979
 
19567
20980
  _No JSDoc summary is available yet._
19568
20981
 
20982
+ ### createGameplayPointerTargetAttributes
20983
+
20984
+ ```ts
20985
+ function createGameplayPointerTargetAttributes(
20986
+ input: GameplayPointerTargetAttributesInput,
20987
+ ): BrowserInteractionAttributeMap;
20988
+ ```
20989
+
20990
+ _No JSDoc summary is available yet._
20991
+
19569
20992
  ### decodeBrowserInteractionEffect
19570
20993
 
19571
20994
  ```ts
@@ -19628,7 +21051,7 @@ _No JSDoc summary is available yet._
19628
21051
  ### DREAMBOARD_BROWSER_INTERACTION_PROTOCOL_VERSION
19629
21052
 
19630
21053
  ```ts
19631
- const DREAMBOARD_BROWSER_INTERACTION_PROTOCOL_VERSION: "2.0.0";
21054
+ const DREAMBOARD_BROWSER_INTERACTION_PROTOCOL_VERSION: "3.0.0";
19632
21055
  ```
19633
21056
 
19634
21057
  _No JSDoc summary is available yet._
@@ -19804,6 +21227,19 @@ function gameplayInvokeEffect(): GameplaySemanticEffect;
19804
21227
 
19805
21228
  _No JSDoc summary is available yet._
19806
21229
 
21230
+ ### GameplayPointerTargetAttributesInput
21231
+
21232
+ ```ts
21233
+ type GameplayPointerTargetAttributesInput = Omit<
21234
+ BrowserInteractionPointerTargetAttributesInput,
21235
+ "surface" | "acceptedEffectPatterns"
21236
+ > & {
21237
+ readonly acceptedEffectPatterns: readonly GameplaySemanticEffectPattern[];
21238
+ };
21239
+ ```
21240
+
21241
+ _No JSDoc summary is available yet._
21242
+
19807
21243
  ### GameplaySemanticEffect
19808
21244
 
19809
21245
  ```ts
@@ -19884,6 +21320,29 @@ interface NormalizeBrowserInteractionRecordsOptions {
19884
21320
 
19885
21321
  _No JSDoc summary is available yet._
19886
21322
 
21323
+ ### pointerTargetIdentityKey
21324
+
21325
+ ```ts
21326
+ function pointerTargetIdentityKey(input: {
21327
+ readonly surface: string;
21328
+ readonly scopeId: string;
21329
+ readonly interactionKey: string;
21330
+ readonly pointerTarget: Pick<BrowserInteractionPointerTarget, "targetId">;
21331
+ }): string;
21332
+ ```
21333
+
21334
+ _No JSDoc summary is available yet._
21335
+
21336
+ ### readBrowserInteractionSnapshot
21337
+
21338
+ ```ts
21339
+ function readBrowserInteractionSnapshot(
21340
+ root: ParentNode,
21341
+ ): BrowserInteractionSnapshot;
21342
+ ```
21343
+
21344
+ _No JSDoc summary is available yet._
21345
+
19887
21346
  ### resolveBrowserInteractionEffect
19888
21347
 
19889
21348
  ```ts
@@ -19906,6 +21365,17 @@ function resolveBrowserInteractionIntent(
19906
21365
 
19907
21366
  _No JSDoc summary is available yet._
19908
21367
 
21368
+ ### resolveBrowserPointerTarget
21369
+
21370
+ ```ts
21371
+ function resolveBrowserPointerTarget(
21372
+ snapshot: BrowserInteractionSnapshot,
21373
+ request: BrowserInteractionEffectRequest,
21374
+ ): BrowserInteractionPointerTargetResolution;
21375
+ ```
21376
+
21377
+ _No JSDoc summary is available yet._
21378
+
19909
21379
  ### targetIdentityKey
19910
21380
 
19911
21381
  ```ts