@dreamboard-games/sdk 0.4.0-alpha.1 → 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 (78) hide show
  1. package/REFERENCE.md +1215 -125
  2. package/dist/{ResourceCounter-BTXklCEZ.d.ts → ResourceCounter-BuiNstXs.d.ts} +5 -1
  3. package/dist/{ThemeProvider-DvMl17Ny.d.ts → ThemeProvider-B1sIoBlX.d.ts} +1 -1
  4. package/dist/{attributes-BrZtP9az.d.ts → attributes-DbvyMbXw.d.ts} +17 -2
  5. package/dist/authoring/index.d.ts +66 -0
  6. package/dist/authoring/index.js +560 -0
  7. package/dist/authoring/index.js.map +1 -0
  8. package/dist/browser-interaction.d.ts +205 -5
  9. package/dist/browser-interaction.js +14 -2
  10. package/dist/{chunk-7W6TQO3X.js → chunk-45FI6XII.js} +613 -366
  11. package/dist/chunk-45FI6XII.js.map +1 -0
  12. package/dist/{chunk-3K362ZKR.js → chunk-6JQFGSLD.js} +202 -38
  13. package/dist/chunk-6JQFGSLD.js.map +1 -0
  14. package/dist/{chunk-XXBSIPJX.js → chunk-CP35NPPY.js} +131 -59
  15. package/dist/chunk-CP35NPPY.js.map +1 -0
  16. package/dist/{chunk-XJYUSD5F.js → chunk-FWVV2X74.js} +2 -2
  17. package/dist/{chunk-IUGKW2GS.js → chunk-HWJS3VOJ.js} +6 -2
  18. package/dist/chunk-HWJS3VOJ.js.map +1 -0
  19. package/dist/chunk-K5ZRJTZZ.js +328 -0
  20. package/dist/chunk-K5ZRJTZZ.js.map +1 -0
  21. package/dist/{chunk-7LZZEI25.js → chunk-N6ZDIMRB.js} +1 -1
  22. package/dist/chunk-N6ZDIMRB.js.map +1 -0
  23. package/dist/chunk-O6M6PN4E.js +1225 -0
  24. package/dist/chunk-O6M6PN4E.js.map +1 -0
  25. package/dist/{chunk-AEUXCFGM.js → chunk-PF7L4BMG.js} +1 -8
  26. package/dist/{chunk-AEUXCFGM.js.map → chunk-PF7L4BMG.js.map} +1 -1
  27. package/dist/{chunk-CZMFAS3E.js → chunk-WOWFONLZ.js} +517 -1274
  28. package/dist/chunk-WOWFONLZ.js.map +1 -0
  29. package/dist/{chunk-MALRKLRR.js → chunk-WUIVY2KE.js} +301 -12
  30. package/dist/chunk-WUIVY2KE.js.map +1 -0
  31. package/dist/chunk-ZAS2SENW.js +12 -0
  32. package/dist/chunk-ZAS2SENW.js.map +1 -0
  33. package/dist/codegen.d.ts +11 -3
  34. package/dist/codegen.js +1 -1
  35. package/dist/{components-Dqr_LuZJ.d.ts → components-BbWPnZCF.d.ts} +37 -6
  36. package/dist/{hex-board-view-UCUjMALd.d.ts → hex-board-view-Kz9Q_zsv.d.ts} +1 -1
  37. package/dist/index.js +2 -1
  38. package/dist/package-set.d.ts +2 -2
  39. package/dist/package-set.js +2 -1
  40. package/dist/player-state-Cqpyeql0.d.ts +371 -0
  41. package/dist/protocol-BP193lva.d.ts +267 -0
  42. package/dist/reducer/advanced.js +1 -1
  43. package/dist/reducer-contract.js +1 -1
  44. package/dist/reducer.js +2 -2
  45. package/dist/reducer.js.map +1 -1
  46. package/dist/runtime/primitives.d.ts +10 -10
  47. package/dist/runtime/primitives.js +9 -7
  48. package/dist/runtime/runtime-api.d.ts +2 -2
  49. package/dist/runtime/workspace-contract.d.ts +23 -12
  50. package/dist/runtime/workspace-contract.js +7 -6
  51. package/dist/runtime-api-BJharVaj.d.ts +198 -0
  52. package/dist/runtime-api-C6aWo9c0.d.ts +95 -0
  53. package/dist/runtime.d.ts +35 -31
  54. package/dist/runtime.js +87 -797
  55. package/dist/runtime.js.map +1 -1
  56. package/dist/testing.d.ts +254 -140
  57. package/dist/testing.js +964 -149
  58. package/dist/testing.js.map +1 -1
  59. package/dist/types-CYeN0wLK.d.ts +29 -0
  60. package/dist/{types-BqzHkNMA.d.ts → types-DJj5MJkl.d.ts} +32 -5
  61. package/dist/types.d.ts +13 -8
  62. package/dist/ui/components.d.ts +4 -5
  63. package/dist/ui/components.js +19 -1
  64. package/dist/ui/player-state.d.ts +2 -365
  65. package/dist/{ui-contract-W2-kxObe.d.ts → ui-contract-CY7cxsCC.d.ts} +16 -26
  66. package/dist/ui.d.ts +7 -8
  67. package/dist/ui.js +20 -2
  68. package/package.json +25 -19
  69. package/dist/chunk-3K362ZKR.js.map +0 -1
  70. package/dist/chunk-7LZZEI25.js.map +0 -1
  71. package/dist/chunk-7W6TQO3X.js.map +0 -1
  72. package/dist/chunk-CZMFAS3E.js.map +0 -1
  73. package/dist/chunk-IUGKW2GS.js.map +0 -1
  74. package/dist/chunk-MALRKLRR.js.map +0 -1
  75. package/dist/chunk-XXBSIPJX.js.map +0 -1
  76. package/dist/hex-color-MhOyuY-o.d.ts +0 -8
  77. package/dist/runtime-api-BXd70c2e.d.ts +0 -490
  78. /package/dist/{chunk-XJYUSD5F.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.1";
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.1";
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.1";
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.1";
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._
@@ -8372,6 +8355,7 @@ function CardDropTargetView({
8372
8355
  style,
8373
8356
  order,
8374
8357
  role,
8358
+ browserInteractionAttributes,
8375
8359
  }: CardDropTargetViewProps): react_jsx_runtime.JSX.Element;
8376
8360
  ```
8377
8361
 
@@ -10618,6 +10602,149 @@ function normalizeSquareBoardInput<TBoard extends AnySquareBoardInput>(
10618
10602
 
10619
10603
  _No JSDoc summary is available yet._
10620
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
+
10621
10748
  ### PanZoomTransform
10622
10749
 
10623
10750
  ```ts
@@ -11862,6 +11989,14 @@ function useMobileHandTrayActive(): boolean;
11862
11989
 
11863
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>`.
11864
11991
 
11992
+ ### useOverlayInsets
11993
+
11994
+ ```ts
11995
+ function useOverlayInsets(): { bottom: number };
11996
+ ```
11997
+
11998
+ _No JSDoc summary is available yet._
11999
+
11865
12000
  ### UsePanZoomOptions
11866
12001
 
11867
12002
  ```ts
@@ -11878,6 +12013,14 @@ interface UsePanZoomReturn { ... }
11878
12013
 
11879
12014
  _No JSDoc summary is available yet._
11880
12015
 
12016
+ ### useRegisterBottomOverlayInset
12017
+
12018
+ ```ts
12019
+ function useRegisterBottomOverlayInset(id: string, height: number): void;
12020
+ ```
12021
+
12022
+ _No JSDoc summary is available yet._
12023
+
11881
12024
  ### useRegisterMobileHand
11882
12025
 
11883
12026
  ```ts
@@ -12240,6 +12383,7 @@ function CardDropTargetView({
12240
12383
  style,
12241
12384
  order,
12242
12385
  role,
12386
+ browserInteractionAttributes,
12243
12387
  }: CardDropTargetViewProps): react_jsx_runtime.JSX.Element;
12244
12388
  ```
12245
12389
 
@@ -13851,6 +13995,149 @@ interface NetworkPiece {
13851
13995
 
13852
13996
  _No JSDoc summary is available yet._
13853
13997
 
13998
+ ### Panel
13999
+
14000
+ ```ts
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({
14017
+ className,
14018
+ style,
14019
+ children,
14020
+ ...props
14021
+ }: PanelPartProps): react_jsx_runtime.JSX.Element;
14022
+ ```
14023
+
14024
+ _No JSDoc summary is available yet._
14025
+
14026
+ ### PanelBody
14027
+
14028
+ ```ts
14029
+ function PanelBody({
14030
+ className,
14031
+ style,
14032
+ children,
14033
+ ...props
14034
+ }: PanelPartProps): react_jsx_runtime.JSX.Element;
14035
+ ```
14036
+
14037
+ _No JSDoc summary is available yet._
14038
+
14039
+ ### PanelDescription
14040
+
14041
+ ```ts
14042
+ function PanelDescription({
14043
+ className,
14044
+ style,
14045
+ children,
14046
+ ...props
14047
+ }: PanelDescriptionProps): react_jsx_runtime.JSX.Element;
14048
+ ```
14049
+
14050
+ _No JSDoc summary is available yet._
14051
+
14052
+ ### PanelDescriptionProps
14053
+
14054
+ ```ts
14055
+ interface PanelDescriptionProps extends HTMLAttributes<HTMLParagraphElement> {
14056
+ children?: ReactNode;
14057
+ }
14058
+ ```
14059
+
14060
+ _No JSDoc summary is available yet._
14061
+
14062
+ ### PanelHeader
14063
+
14064
+ ```ts
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;
14080
+ }
14081
+ ```
14082
+
14083
+ _No JSDoc summary is available yet._
14084
+
14085
+ ### PanelRoot
14086
+
14087
+ ```ts
14088
+ function PanelRoot({
14089
+ tone,
14090
+ className,
14091
+ children,
14092
+ style,
14093
+ ...props
14094
+ }: PanelRootProps): react_jsx_runtime.JSX.Element;
14095
+ ```
14096
+
14097
+ _No JSDoc summary is available yet._
14098
+
14099
+ ### PanelRootProps
14100
+
14101
+ ```ts
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
+
13854
14141
  ### PhaseIndicator
13855
14142
 
13856
14143
  ```ts
@@ -14631,6 +14918,22 @@ function useMobileHandTrayActive(): boolean;
14631
14918
 
14632
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>`.
14633
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
+
14634
14937
  ### useRegisterMobileHand
14635
14938
 
14636
14939
  ```ts
@@ -15324,23 +15627,43 @@ type ClientParamSchemaMap = Readonly<
15324
15627
 
15325
15628
  _No JSDoc summary is available yet._
15326
15629
 
15327
- ### createWorkspaceUIContract
15630
+ ### createPluginRuntimeClient
15328
15631
 
15329
15632
  ```ts
15330
- function createWorkspaceUIContract<
15331
- WorkspaceUI,
15332
- Contract extends UIContract,
15333
- Resource extends string,
15334
- Card,
15335
- HexBoards extends Record<string, unknown>,
15336
- >(
15337
- options: WorkspaceContractOptions<Contract, Resource, Card, HexBoards>,
15338
- ): WorkspaceUI;
15633
+ function createPluginRuntimeClient(
15634
+ options: PluginRuntimeClientOptions,
15635
+ ): PluginRuntimeClient;
15339
15636
  ```
15340
15637
 
15341
15638
  _No JSDoc summary is available yet._
15342
15639
 
15343
- ### DreamboardUI
15640
+ ### createPostMessagePluginTransport
15641
+
15642
+ ```ts
15643
+ function createPostMessagePluginTransport(
15644
+ options?: PostMessagePluginTransportOptions,
15645
+ ): PluginTransport;
15646
+ ```
15647
+
15648
+ _No JSDoc summary is available yet._
15649
+
15650
+ ### createWorkspaceUIContract
15651
+
15652
+ ```ts
15653
+ function createWorkspaceUIContract<
15654
+ WorkspaceUI,
15655
+ Contract extends UIContract,
15656
+ Resource extends string,
15657
+ Card,
15658
+ HexBoards extends Record<string, unknown>,
15659
+ >(
15660
+ options: WorkspaceContractOptions<Contract, Resource, Card, HexBoards>,
15661
+ ): WorkspaceUI;
15662
+ ```
15663
+
15664
+ _No JSDoc summary is available yet._
15665
+
15666
+ ### DreamboardUI
15344
15667
 
15345
15668
  ```ts
15346
15669
  type DreamboardUI<Contract extends UIContract = RegisteredUI> =
@@ -15365,7 +15688,6 @@ _No JSDoc summary is available yet._
15365
15688
  interface GameMeState<PlayerIdValue extends string = PlayerId> {
15366
15689
  playerId: PlayerIdValue | null;
15367
15690
  player: GamePlayer<PlayerIdValue> | null;
15368
- controllablePlayerIds: readonly PlayerIdValue[];
15369
15691
  canAct: boolean;
15370
15692
  }
15371
15693
  ```
@@ -15448,6 +15770,49 @@ function PluginRuntime({
15448
15770
 
15449
15771
  PluginRuntime provides the RuntimeContext for plugin components.
15450
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
+
15451
15816
  ### PluginRuntimeProps
15452
15817
 
15453
15818
  ```ts
@@ -15456,6 +15821,29 @@ interface PluginRuntimeProps { ... }
15456
15821
 
15457
15822
  _No JSDoc summary is available yet._
15458
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
+
15459
15847
  ### RegisteredUI
15460
15848
 
15461
15849
  ```ts
@@ -15478,6 +15866,26 @@ interface ResourceCounterComponents<Resource extends string = ResourceId> {
15478
15866
 
15479
15867
  _No JSDoc summary is available yet._
15480
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
+
15481
15889
  ### TypedGame
15482
15890
 
15483
15891
  ```ts
@@ -15581,14 +15989,7 @@ _No JSDoc summary is available yet._
15581
15989
  ### WorkspaceHandSurface
15582
15990
 
15583
15991
  ```ts
15584
- interface WorkspaceHandSurface<Zone extends string, Card> {
15585
- readonly Hand: WorkspaceZoneCardsComponent<Card>;
15586
- readonly Card: WorkspaceZoneCardComponent<Card>;
15587
- readonly Staging: WorkspaceZoneStagingComponent<Card>;
15588
- readonly slot: {
15589
- readonly card: WorkspaceCardInputSlot<Zone>;
15590
- };
15591
- }
15992
+ interface WorkspaceHandSurface { ... }
15592
15993
  ```
15593
15994
 
15594
15995
  _No JSDoc summary is available yet._
@@ -16046,7 +16447,9 @@ Translate a raw SDK `CardIntent` into the author-facing `AuthoredCardIntent` sha
16046
16447
  ### descriptorsHaveDestinationInput
16047
16448
 
16048
16449
  ```ts
16049
- function descriptorsHaveDestinationInput(state: PluginStateSnapshot): boolean;
16450
+ function descriptorsHaveDestinationInput(
16451
+ availableInteractions: readonly InteractionDescriptor[],
16452
+ ): boolean;
16050
16453
  ```
16051
16454
 
16052
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.
@@ -16149,6 +16552,7 @@ Convenience helper for builders of generated hand surfaces. Encodes a typed targ
16149
16552
  const Game: {
16150
16553
  Root: typeof GameRoot;
16151
16554
  Chrome: typeof GameChrome;
16555
+ Viewport: typeof GameViewport;
16152
16556
  };
16153
16557
  ```
16154
16558
 
@@ -16222,7 +16626,6 @@ _No JSDoc summary is available yet._
16222
16626
  interface GameMeState<PlayerIdValue extends string = PlayerId> {
16223
16627
  playerId: PlayerIdValue | null;
16224
16628
  player: GamePlayer<PlayerIdValue> | null;
16225
- controllablePlayerIds: readonly PlayerIdValue[];
16226
16629
  canAct: boolean;
16227
16630
  }
16228
16631
  ```
@@ -16263,7 +16666,6 @@ type GamePlayerEntry<PlayerIdValue extends string = PlayerId> =
16263
16666
  index: number;
16264
16667
  isActive: boolean;
16265
16668
  isCurrentPlayer: boolean;
16266
- isControllable: boolean;
16267
16669
  };
16268
16670
  ```
16269
16671
 
@@ -16357,6 +16759,28 @@ interface GameTurnState<
16357
16759
 
16358
16760
  _No JSDoc summary is available yet._
16359
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
+
16360
16784
  ### HandSurfaceView
16361
16785
 
16362
16786
  ```ts
@@ -16980,8 +17404,6 @@ interface PlayerRosterEntry {
16980
17404
  index: number;
16981
17405
  isActive: boolean;
16982
17406
  isCurrentPlayer: boolean;
16983
- isControllable: boolean;
16984
- canSwitchToPlayer: boolean;
16985
17407
  score?: number;
16986
17408
  scoreLabel?: string;
16987
17409
  badges: readonly PlayerRosterBadge[];
@@ -17081,34 +17503,6 @@ function PlayerRosterScore({
17081
17503
 
17082
17504
  _No JSDoc summary is available yet._
17083
17505
 
17084
- ### PlayerRosterSwitchButton
17085
-
17086
- ```ts
17087
- function PlayerRosterSwitchButton({
17088
- player,
17089
- disabled,
17090
- onClick,
17091
- ...props
17092
- }: PlayerRosterSwitchButtonProps): ReactElement<
17093
- unknown,
17094
- string | react.JSXElementConstructor<any>
17095
- >;
17096
- ```
17097
-
17098
- _No JSDoc summary is available yet._
17099
-
17100
- ### PlayerRosterSwitchButtonProps
17101
-
17102
- ```ts
17103
- type PlayerRosterSwitchButtonProps = Omit<PrimitiveCommonProps, "children"> &
17104
- ButtonHTMLAttributes<HTMLButtonElement> & {
17105
- player: PlayerRosterEntry;
17106
- children?: ReactNode;
17107
- };
17108
- ```
17109
-
17110
- _No JSDoc summary is available yet._
17111
-
17112
17506
  ### PrimitiveCommonProps
17113
17507
 
17114
17508
  ```ts
@@ -18015,7 +18409,6 @@ _No JSDoc summary is available yet._
18015
18409
  interface GameMeState<PlayerIdValue extends string = PlayerId> {
18016
18410
  playerId: PlayerIdValue | null;
18017
18411
  player: GamePlayer<PlayerIdValue> | null;
18018
- controllablePlayerIds: readonly PlayerIdValue[];
18019
18412
  canAct: boolean;
18020
18413
  }
18021
18414
  ```
@@ -18206,14 +18599,7 @@ _No JSDoc summary is available yet._
18206
18599
  ### WorkspaceHandSurface
18207
18600
 
18208
18601
  ```ts
18209
- interface WorkspaceHandSurface<Zone extends string, Card> {
18210
- readonly Hand: WorkspaceZoneCardsComponent<Card>;
18211
- readonly Card: WorkspaceZoneCardComponent<Card>;
18212
- readonly Staging: WorkspaceZoneStagingComponent<Card>;
18213
- readonly slot: {
18214
- readonly card: WorkspaceCardInputSlot<Zone>;
18215
- };
18216
- }
18602
+ interface WorkspaceHandSurface { ... }
18217
18603
  ```
18218
18604
 
18219
18605
  _No JSDoc summary is available yet._
@@ -18355,26 +18741,53 @@ _No JSDoc summary is available yet._
18355
18741
  ### PluginSessionState
18356
18742
 
18357
18743
  ```ts
18358
- 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
+ }
18359
18752
  ```
18360
18753
 
18361
18754
  Plugin session state
18362
18755
 
18363
- ### PluginStateSnapshot
18756
+ ### RuntimeAPI
18757
+
18758
+ ```ts
18759
+ interface RuntimeAPI { ... }
18760
+ ```
18761
+
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.
18763
+
18764
+ ### RuntimeDiagnosticEvent
18364
18765
 
18365
18766
  ```ts
18366
- interface PluginStateSnapshot { ... }
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
+ };
18367
18780
  ```
18368
18781
 
18369
- The complete state snapshot sent to the plugin via state-sync. This is the single source of truth for all reducer-native plugin state.
18782
+ _No JSDoc summary is available yet._
18370
18783
 
18371
- ### RuntimeAPI
18784
+ ### RuntimeDiagnosticHandler
18372
18785
 
18373
18786
  ```ts
18374
- interface RuntimeAPI { ... }
18787
+ type RuntimeDiagnosticHandler = (event: RuntimeDiagnosticEvent) => void;
18375
18788
  ```
18376
18789
 
18377
- 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.
18790
+ _No JSDoc summary is available yet._
18378
18791
 
18379
18792
  ### SubmissionError
18380
18793
 
@@ -18589,6 +19002,181 @@ const WORKSPACE_CODEGEN_OWNERSHIP: ScaffoldingOwnership;
18589
19002
 
18590
19003
  _No JSDoc summary is available yet._
18591
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
+
18592
19180
  ## @dreamboard-games/sdk/reducer-contract
18593
19181
 
18594
19182
  ### materializeManifestTable
@@ -18750,10 +19338,42 @@ function canonicalUIFixtureJson(value: unknown): string;
18750
19338
 
18751
19339
  _No JSDoc summary is available yet._
18752
19340
 
18753
- ### compileUIScenarioFixture
19341
+ ### compareUIParityObservations
18754
19342
 
18755
19343
  ```ts
18756
- function compileUIScenarioFixture(
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(
18757
19377
  options: CompileUIScenarioFixtureOptions,
18758
19378
  ): UIScenarioFixture;
18759
19379
  ```
@@ -18768,6 +19388,14 @@ interface CompileUIScenarioFixtureOptions { ... }
18768
19388
 
18769
19389
  _No JSDoc summary is available yet._
18770
19390
 
19391
+ ### createDeterministicIdFactory
19392
+
19393
+ ```ts
19394
+ function createDeterministicIdFactory(seed: string): DeterministicIdFactory;
19395
+ ```
19396
+
19397
+ _No JSDoc summary is available yet._
19398
+
18771
19399
  ### CreatedTestRuntime
18772
19400
 
18773
19401
  ```ts
@@ -18784,6 +19412,57 @@ function createExpectApi(options?: CreateExpectApiOptions): ExpectFn;
18784
19412
 
18785
19413
  _No JSDoc summary is available yet._
18786
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
+
18787
19466
  ### createTestRuntime
18788
19467
 
18789
19468
  ```ts
@@ -18814,6 +19493,29 @@ type CreateTestRuntimeOptions = {
18814
19493
 
18815
19494
  _No JSDoc summary is available yet._
18816
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
+
18817
19519
  ### defineBase
18818
19520
 
18819
19521
  ```ts
@@ -18838,6 +19540,22 @@ function defineScenario<
18838
19540
 
18839
19541
  _No JSDoc summary is available yet._
18840
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
+
18841
19559
  ### digestUIFixtureJson
18842
19560
 
18843
19561
  ```ts
@@ -18854,6 +19572,23 @@ function digestUIFixtureRequest(request: UIReplayRequest): string;
18854
19572
 
18855
19573
  _No JSDoc summary is available yet._
18856
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
+
18857
19592
  ### digestUIScenarioFixture
18858
19593
 
18859
19594
  ```ts
@@ -18878,6 +19613,87 @@ type ExpectMatchers = ...;
18878
19613
 
18879
19614
  _No JSDoc summary is available yet._
18880
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
+
18881
19697
  ### InteractionAvailabilityLike
18882
19698
 
18883
19699
  ```ts
@@ -18944,6 +19760,14 @@ function isStaleContractArtifactError(
18944
19760
 
18945
19761
  _No JSDoc summary is available yet._
18946
19762
 
19763
+ ### parseUIParityObservationV1
19764
+
19765
+ ```ts
19766
+ function parseUIParityObservationV1(value: unknown): UIParityObservationV1;
19767
+ ```
19768
+
19769
+ _No JSDoc summary is available yet._
19770
+
18947
19771
  ### parseUIScenarioFixture
18948
19772
 
18949
19773
  ```ts
@@ -18962,6 +19786,26 @@ function parseUIScenarioFixtureBundleIndex(
18962
19786
 
18963
19787
  _No JSDoc summary is available yet._
18964
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
+
18965
19809
  ### PortableSemanticReplayStep
18966
19810
 
18967
19811
  ```ts
@@ -18980,6 +19824,107 @@ declare const portableSemanticReplayStepSchema: ...;
18980
19824
 
18981
19825
  _No JSDoc summary is available yet._
18982
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
+
18983
19928
  ### RejectionExpectation
18984
19929
 
18985
19930
  ```ts
@@ -19066,67 +20011,74 @@ _No JSDoc summary is available yet._
19066
20011
  ### UI_SCENARIO_FIXTURE_BUNDLE_SCHEMA_VERSION
19067
20012
 
19068
20013
  ```ts
19069
- const UI_SCENARIO_FIXTURE_BUNDLE_SCHEMA_VERSION = 1;
20014
+ const UI_SCENARIO_FIXTURE_BUNDLE_SCHEMA_VERSION = 2;
19070
20015
  ```
19071
20016
 
19072
20017
  _No JSDoc summary is available yet._
19073
20018
 
19074
- ### UI_SCENARIO_FIXTURE_SCHEMA_VERSION
20019
+ ### UI_SCENARIO_FIXTURE_PLUGIN_RUNTIME_PROTOCOL
19075
20020
 
19076
20021
  ```ts
19077
- const UI_SCENARIO_FIXTURE_SCHEMA_VERSION = 1;
20022
+ const UI_SCENARIO_FIXTURE_PLUGIN_RUNTIME_PROTOCOL: 3;
19078
20023
  ```
19079
20024
 
19080
20025
  _No JSDoc summary is available yet._
19081
20026
 
19082
- ### UI_SCENARIO_FIXTURE_SUPPORTED_BROWSER_PROTOCOL_MAJOR
20027
+ ### UI_SCENARIO_FIXTURE_SCHEMA_VERSION
19083
20028
 
19084
20029
  ```ts
19085
- const UI_SCENARIO_FIXTURE_SUPPORTED_BROWSER_PROTOCOL_MAJOR = 2;
20030
+ const UI_SCENARIO_FIXTURE_SCHEMA_VERSION = 2;
19086
20031
  ```
19087
20032
 
19088
20033
  _No JSDoc summary is available yet._
19089
20034
 
19090
- ### UIFixtureFrame
20035
+ ### UI_SCENARIO_FIXTURE_SUPPORTED_BROWSER_PROTOCOL_MAJOR
19091
20036
 
19092
20037
  ```ts
19093
- type UIFixtureFrame = Omit<z.infer<typeof uiFixtureFrameSchema>, "snapshot"> & {
19094
- readonly snapshot: PluginStateSnapshot$1;
19095
- };
20038
+ const UI_SCENARIO_FIXTURE_SUPPORTED_BROWSER_PROTOCOL_MAJOR = 3;
19096
20039
  ```
19097
20040
 
19098
20041
  _No JSDoc summary is available yet._
19099
20042
 
19100
- ### uiFixtureFrameSchema
20043
+ ### UIFixtureFrame
19101
20044
 
19102
20045
  ```ts
19103
- declare const uiFixtureFrameSchema: ...;
20046
+ type UIFixtureFrame = s;
19104
20047
  ```
19105
20048
 
19106
20049
  _No JSDoc summary is available yet._
19107
20050
 
19108
- ### uiFixturePluginStateSnapshotSchema
20051
+ ### uiFixtureFrameSchema
19109
20052
 
19110
20053
  ```ts
19111
- declare const uiFixturePluginStateSnapshotSchema: ...;
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
+ >;
19112
20066
  ```
19113
20067
 
19114
20068
  _No JSDoc summary is available yet._
19115
20069
 
19116
- ### UIFixtureTransportExchange
20070
+ ### UIFixtureProtocolStep
19117
20071
 
19118
20072
  ```ts
19119
- type UIFixtureTransportExchange = z.infer<
19120
- typeof uiFixtureTransportExchangeSchema
19121
- >;
20073
+ type UIFixtureProtocolStep = t;
19122
20074
  ```
19123
20075
 
19124
20076
  _No JSDoc summary is available yet._
19125
20077
 
19126
- ### uiFixtureTransportExchangeSchema
20078
+ ### uiFixtureProtocolStepSchema
19127
20079
 
19128
20080
  ```ts
19129
- declare const uiFixtureTransportExchangeSchema: ...;
20081
+ declare const uiFixtureProtocolStepSchema: ...;
19130
20082
  ```
19131
20083
 
19132
20084
  _No JSDoc summary is available yet._
@@ -19206,9 +20158,9 @@ _No JSDoc summary is available yet._
19206
20158
  ```ts
19207
20159
  type UIScenarioFixture = Omit<
19208
20160
  z.infer<typeof uiScenarioFixtureSchema>,
19209
- "frames" | "replay"
20161
+ "protocol" | "replay"
19210
20162
  > & {
19211
- readonly frames: readonly UIFixtureFrame[];
20163
+ readonly protocol: PluginProtocolTape;
19212
20164
  readonly replay: readonly UIScenarioReplayStep[];
19213
20165
  };
19214
20166
  ```
@@ -19360,7 +20312,11 @@ _No JSDoc summary is available yet._
19360
20312
  ### BROWSER_INTERACTION_RECORD_ROLES
19361
20313
 
19362
20314
  ```ts
19363
- const BROWSER_INTERACTION_RECORD_ROLES: readonly ["interaction", "actuator"];
20315
+ const BROWSER_INTERACTION_RECORD_ROLES: readonly [
20316
+ "interaction",
20317
+ "actuator",
20318
+ "pointer-target",
20319
+ ];
19364
20320
  ```
19365
20321
 
19366
20322
  _No JSDoc summary is available yet._
@@ -19473,6 +20429,7 @@ declare const browserInteractionDiagnosticSchema: z.ZodObject<
19473
20429
  interactionKey: z.ZodOptional<z.ZodString>;
19474
20430
  intent: z.ZodOptional<z.ZodString>;
19475
20431
  actuatorId: z.ZodOptional<z.ZodString>;
20432
+ targetId: z.ZodOptional<z.ZodString>;
19476
20433
  },
19477
20434
  z.core.$strip
19478
20435
  >;
@@ -19586,31 +20543,97 @@ _No JSDoc summary is available yet._
19586
20543
  ### BrowserInteractionEntity
19587
20544
 
19588
20545
  ```ts
19589
- 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;
19590
20587
  readonly interactionKey: string;
19591
20588
  readonly interactionId: string;
19592
20589
  readonly descriptorDigest?: string;
19593
- readonly draftDigest?: string;
19594
- readonly readiness: BrowserInteractionReadiness;
19595
- 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";
19596
20619
  readonly diagnostics: readonly BrowserInteractionDiagnostic[];
19597
20620
  }
19598
20621
  ```
19599
20622
 
19600
20623
  _No JSDoc summary is available yet._
19601
20624
 
19602
- ### BrowserInteractionIntent
20625
+ ### BrowserInteractionPointerTargetResolutionSuccess
19603
20626
 
19604
20627
  ```ts
19605
- type BrowserInteractionIntent = string;
20628
+ interface BrowserInteractionPointerTargetResolutionSuccess { ... }
19606
20629
  ```
19607
20630
 
19608
20631
  _No JSDoc summary is available yet._
19609
20632
 
19610
- ### BrowserInteractionIntentRequest
20633
+ ### browserInteractionPointerTargetSchema
19611
20634
 
19612
20635
  ```ts
19613
- interface BrowserInteractionIntentRequest { ... }
20636
+ declare const browserInteractionPointerTargetSchema: ...;
19614
20637
  ```
19615
20638
 
19616
20639
  _No JSDoc summary is available yet._
@@ -19634,7 +20657,7 @@ _No JSDoc summary is available yet._
19634
20657
  ```ts
19635
20658
  interface BrowserInteractionProtocolIdentity {
19636
20659
  readonly name: "dreamboard-browser-interaction";
19637
- readonly version: "2.0.0";
20660
+ readonly version: "3.0.0";
19638
20661
  }
19639
20662
  ```
19640
20663
 
@@ -19906,6 +20929,16 @@ function createBrowserInteractionActuatorKey(input: {
19906
20929
 
19907
20930
  _No JSDoc summary is available yet._
19908
20931
 
20932
+ ### createBrowserInteractionPointerTargetAttributes
20933
+
20934
+ ```ts
20935
+ function createBrowserInteractionPointerTargetAttributes(
20936
+ input: BrowserInteractionPointerTargetAttributesInput,
20937
+ ): BrowserInteractionAttributeMap;
20938
+ ```
20939
+
20940
+ _No JSDoc summary is available yet._
20941
+
19909
20942
  ### createBrowserInteractionRegistry
19910
20943
 
19911
20944
  ```ts
@@ -19946,6 +20979,16 @@ function createGameplayInteractionRootAttributes(
19946
20979
 
19947
20980
  _No JSDoc summary is available yet._
19948
20981
 
20982
+ ### createGameplayPointerTargetAttributes
20983
+
20984
+ ```ts
20985
+ function createGameplayPointerTargetAttributes(
20986
+ input: GameplayPointerTargetAttributesInput,
20987
+ ): BrowserInteractionAttributeMap;
20988
+ ```
20989
+
20990
+ _No JSDoc summary is available yet._
20991
+
19949
20992
  ### decodeBrowserInteractionEffect
19950
20993
 
19951
20994
  ```ts
@@ -20008,7 +21051,7 @@ _No JSDoc summary is available yet._
20008
21051
  ### DREAMBOARD_BROWSER_INTERACTION_PROTOCOL_VERSION
20009
21052
 
20010
21053
  ```ts
20011
- const DREAMBOARD_BROWSER_INTERACTION_PROTOCOL_VERSION: "2.0.0";
21054
+ const DREAMBOARD_BROWSER_INTERACTION_PROTOCOL_VERSION: "3.0.0";
20012
21055
  ```
20013
21056
 
20014
21057
  _No JSDoc summary is available yet._
@@ -20184,6 +21227,19 @@ function gameplayInvokeEffect(): GameplaySemanticEffect;
20184
21227
 
20185
21228
  _No JSDoc summary is available yet._
20186
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
+
20187
21243
  ### GameplaySemanticEffect
20188
21244
 
20189
21245
  ```ts
@@ -20264,6 +21320,29 @@ interface NormalizeBrowserInteractionRecordsOptions {
20264
21320
 
20265
21321
  _No JSDoc summary is available yet._
20266
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
+
20267
21346
  ### resolveBrowserInteractionEffect
20268
21347
 
20269
21348
  ```ts
@@ -20286,6 +21365,17 @@ function resolveBrowserInteractionIntent(
20286
21365
 
20287
21366
  _No JSDoc summary is available yet._
20288
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
+
20289
21379
  ### targetIdentityKey
20290
21380
 
20291
21381
  ```ts