@dreamboard-games/sdk 0.4.0-alpha.1 → 0.4.0-alpha.3

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 (79) hide show
  1. package/REFERENCE.md +1318 -201
  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-IUGKW2GS.js → chunk-BKD7XAWB.js} +6 -2
  15. package/dist/chunk-BKD7XAWB.js.map +1 -0
  16. package/dist/{chunk-XXBSIPJX.js → chunk-CP35NPPY.js} +131 -59
  17. package/dist/chunk-CP35NPPY.js.map +1 -0
  18. package/dist/chunk-DQ7GCD6C.js +12 -0
  19. package/dist/chunk-DQ7GCD6C.js.map +1 -0
  20. package/dist/{chunk-XJYUSD5F.js → chunk-FWVV2X74.js} +2 -2
  21. package/dist/chunk-K5ZRJTZZ.js +328 -0
  22. package/dist/chunk-K5ZRJTZZ.js.map +1 -0
  23. package/dist/{chunk-7LZZEI25.js → chunk-N6ZDIMRB.js} +1 -1
  24. package/dist/chunk-N6ZDIMRB.js.map +1 -0
  25. package/dist/chunk-O6M6PN4E.js +1225 -0
  26. package/dist/chunk-O6M6PN4E.js.map +1 -0
  27. package/dist/{chunk-AEUXCFGM.js → chunk-PF7L4BMG.js} +1 -8
  28. package/dist/{chunk-AEUXCFGM.js.map → chunk-PF7L4BMG.js.map} +1 -1
  29. package/dist/{chunk-CZMFAS3E.js → chunk-WOWFONLZ.js} +517 -1274
  30. package/dist/chunk-WOWFONLZ.js.map +1 -0
  31. package/dist/{chunk-MALRKLRR.js → chunk-WUIVY2KE.js} +301 -12
  32. package/dist/chunk-WUIVY2KE.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-BLwlj7mO.d.ts +191 -0
  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.js +1 -1
  44. package/dist/reducer-contract.js +1 -1
  45. package/dist/reducer.js +2 -2
  46. package/dist/reducer.js.map +1 -1
  47. package/dist/runtime/primitives.d.ts +10 -10
  48. package/dist/runtime/primitives.js +9 -7
  49. package/dist/runtime/runtime-api.d.ts +2 -2
  50. package/dist/runtime/workspace-contract.d.ts +21 -167
  51. package/dist/runtime/workspace-contract.js +7 -6
  52. package/dist/runtime-api-BJharVaj.d.ts +198 -0
  53. package/dist/runtime-api-C6aWo9c0.d.ts +95 -0
  54. package/dist/runtime.d.ts +36 -32
  55. package/dist/runtime.js +87 -797
  56. package/dist/runtime.js.map +1 -1
  57. package/dist/testing.d.ts +254 -140
  58. package/dist/testing.js +964 -149
  59. package/dist/testing.js.map +1 -1
  60. package/dist/types-CYeN0wLK.d.ts +29 -0
  61. package/dist/{types-BqzHkNMA.d.ts → types-DJj5MJkl.d.ts} +32 -5
  62. package/dist/types.d.ts +13 -8
  63. package/dist/ui/components.d.ts +4 -5
  64. package/dist/ui/components.js +19 -1
  65. package/dist/ui/player-state.d.ts +2 -365
  66. package/dist/{ui-contract-W2-kxObe.d.ts → ui-contract-CY7cxsCC.d.ts} +16 -26
  67. package/dist/ui.d.ts +7 -8
  68. package/dist/ui.js +20 -2
  69. package/package.json +25 -19
  70. package/dist/chunk-3K362ZKR.js.map +0 -1
  71. package/dist/chunk-7LZZEI25.js.map +0 -1
  72. package/dist/chunk-7W6TQO3X.js.map +0 -1
  73. package/dist/chunk-CZMFAS3E.js.map +0 -1
  74. package/dist/chunk-IUGKW2GS.js.map +0 -1
  75. package/dist/chunk-MALRKLRR.js.map +0 -1
  76. package/dist/chunk-XXBSIPJX.js.map +0 -1
  77. package/dist/hex-color-MhOyuY-o.d.ts +0 -8
  78. package/dist/runtime-api-BXd70c2e.d.ts +0 -490
  79. /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.3";
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.3";
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.3";
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.3";
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
@@ -18001,6 +18395,14 @@ function createWorkspaceUIContract<
18001
18395
 
18002
18396
  _No JSDoc summary is available yet._
18003
18397
 
18398
+ ### DefineGameUIConfig
18399
+
18400
+ ```ts
18401
+ interface DefineGameUIConfig { ... }
18402
+ ```
18403
+
18404
+ _No JSDoc summary is available yet._
18405
+
18004
18406
  ### DreamboardUI
18005
18407
 
18006
18408
  ```ts
@@ -18015,7 +18417,6 @@ _No JSDoc summary is available yet._
18015
18417
  interface GameMeState<PlayerIdValue extends string = PlayerId> {
18016
18418
  playerId: PlayerIdValue | null;
18017
18419
  player: GamePlayer<PlayerIdValue> | null;
18018
- controllablePlayerIds: readonly PlayerIdValue[];
18019
18420
  canAct: boolean;
18020
18421
  }
18021
18422
  ```
@@ -18206,14 +18607,7 @@ _No JSDoc summary is available yet._
18206
18607
  ### WorkspaceHandSurface
18207
18608
 
18208
18609
  ```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
- }
18610
+ interface WorkspaceHandSurface { ... }
18217
18611
  ```
18218
18612
 
18219
18613
  _No JSDoc summary is available yet._
@@ -18245,6 +18639,25 @@ interface WorkspaceInteractionFormDescriptor<
18245
18639
 
18246
18640
  _No JSDoc summary is available yet._
18247
18641
 
18642
+ ### WorkspaceInteractionFormDialogProps
18643
+
18644
+ ```ts
18645
+ interface WorkspaceInteractionFormDialogProps extends Omit<
18646
+ InteractionDialogProps,
18647
+ "children"
18648
+ > {
18649
+ title: ReactNode;
18650
+ description?: ReactNode;
18651
+ trigger?: ReactNode;
18652
+ children: ReactNode;
18653
+ contentClassName?: string;
18654
+ overlayClassName?: string;
18655
+ showCloseButton?: boolean;
18656
+ }
18657
+ ```
18658
+
18659
+ _No JSDoc summary is available yet._
18660
+
18248
18661
  ### WorkspaceInteractionFormsDescriptor
18249
18662
 
18250
18663
  ```ts
@@ -18355,26 +18768,53 @@ _No JSDoc summary is available yet._
18355
18768
  ### PluginSessionState
18356
18769
 
18357
18770
  ```ts
18358
- interface PluginSessionState { ... }
18771
+ interface PluginSessionState {
18772
+ /** Session initialization status */
18773
+ status: "loading" | "ready";
18774
+ /** Current session ID (null if not initialized) */
18775
+ sessionId: string | null;
18776
+ /** The player perspective represented by the current gameplay frame */
18777
+ controllingPlayerId: PlayerId | null;
18778
+ }
18359
18779
  ```
18360
18780
 
18361
18781
  Plugin session state
18362
18782
 
18363
- ### PluginStateSnapshot
18783
+ ### RuntimeAPI
18784
+
18785
+ ```ts
18786
+ interface RuntimeAPI { ... }
18787
+ ```
18788
+
18789
+ 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
+
18791
+ ### RuntimeDiagnosticEvent
18364
18792
 
18365
18793
  ```ts
18366
- interface PluginStateSnapshot { ... }
18794
+ type RuntimeDiagnosticEvent =
18795
+ | {
18796
+ type: "runtimeLog";
18797
+ level: "log" | "warn" | "error";
18798
+ message: string;
18799
+ details?: readonly unknown[];
18800
+ }
18801
+ | {
18802
+ type: "internalError";
18803
+ code: string;
18804
+ message: string;
18805
+ stack?: string;
18806
+ };
18367
18807
  ```
18368
18808
 
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.
18809
+ _No JSDoc summary is available yet._
18370
18810
 
18371
- ### RuntimeAPI
18811
+ ### RuntimeDiagnosticHandler
18372
18812
 
18373
18813
  ```ts
18374
- interface RuntimeAPI { ... }
18814
+ type RuntimeDiagnosticHandler = (event: RuntimeDiagnosticEvent) => void;
18375
18815
  ```
18376
18816
 
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.
18817
+ _No JSDoc summary is available yet._
18378
18818
 
18379
18819
  ### SubmissionError
18380
18820
 
@@ -18589,185 +19029,400 @@ const WORKSPACE_CODEGEN_OWNERSHIP: ScaffoldingOwnership;
18589
19029
 
18590
19030
  _No JSDoc summary is available yet._
18591
19031
 
18592
- ## @dreamboard-games/sdk/reducer-contract
19032
+ ## @dreamboard-games/sdk/authoring
18593
19033
 
18594
- ### materializeManifestTable
19034
+ ### AuthoringManifestConformanceCaseV1
18595
19035
 
18596
19036
  ```ts
18597
- function materializeManifestTable(options: {
18598
- manifest: GameTopologyManifest;
18599
- playerIds: readonly string[];
18600
- shuffleItems: <Value>(values: readonly Value[]) => Value[];
18601
- }): Record<string, unknown>;
19037
+ type AuthoringManifestConformanceCaseV1 = {
19038
+ id: string;
19039
+ manifest: JsonValue;
19040
+ expected:
19041
+ | {
19042
+ valid: true;
19043
+ transportValid: true;
19044
+ materializedSha256: string;
19045
+ }
19046
+ | {
19047
+ valid: false;
19048
+ transportValid: boolean;
19049
+ diagnosticCodes: readonly string[];
19050
+ };
19051
+ };
18602
19052
  ```
18603
19053
 
18604
19054
  _No JSDoc summary is available yet._
18605
19055
 
18606
- ### MaybePromise
19056
+ ### AuthoringValidationResultV1
18607
19057
 
18608
19058
  ```ts
18609
- type MaybePromise<T> = T | Promise<T>;
19059
+ type AuthoringValidationResultV1 = {
19060
+ valid: boolean;
19061
+ errors: readonly string[];
19062
+ warnings: readonly string[];
19063
+ };
18610
19064
  ```
18611
19065
 
18612
19066
  _No JSDoc summary is available yet._
18613
19067
 
18614
- ### REDUCER_CONTRACT_VERSION
19068
+ ### diagnosticCodesForValidationErrors
18615
19069
 
18616
19070
  ```ts
18617
- const REDUCER_CONTRACT_VERSION: "0.2.1";
19071
+ function diagnosticCodesForValidationErrors(
19072
+ errors: readonly string[],
19073
+ ): readonly string[];
18618
19074
  ```
18619
19075
 
18620
- 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.
19076
+ _No JSDoc summary is available yet._
18621
19077
 
18622
- ### ReducerBundleContract
19078
+ ### GENERATED_WORKSPACE_PATH_PATTERNS
18623
19079
 
18624
19080
  ```ts
18625
- interface ReducerBundleContract { ... }
19081
+ const GENERATED_WORKSPACE_PATH_PATTERNS: {
19082
+ prefix: string;
19083
+ suffix: string;
19084
+ }[];
18626
19085
  ```
18627
19086
 
18628
- Canonical erased reducer boundary for `createReducerBundle(...)`.
19087
+ _No JSDoc summary is available yet._
18629
19088
 
18630
- ### ReducerWire
19089
+ ### GENERATED_WORKSPACE_PATHS
18631
19090
 
18632
19091
  ```ts
18633
- ReducerWire: ...;
19092
+ const GENERATED_WORKSPACE_PATHS: readonly [
19093
+ ...string[],
19094
+ "test/generated/base-state.json",
19095
+ ];
18634
19096
  ```
18635
19097
 
18636
19098
  _No JSDoc summary is available yet._
18637
19099
 
18638
- ### ReducerWireZod
19100
+ ### GeneratedArtifactV1
18639
19101
 
18640
19102
  ```ts
18641
- declare const ReducerWireZod: typeof zod;
19103
+ type GeneratedArtifactV1 = {
19104
+ path: string;
19105
+ ownership: "authoritative" | "seed" | "derived-test";
19106
+ content: string;
19107
+ contentSha256: string;
19108
+ };
18642
19109
  ```
18643
19110
 
18644
19111
  _No JSDoc summary is available yet._
18645
19112
 
18646
- ## @dreamboard-games/sdk/testing
18647
-
18648
- ### assertDeterministicUIScenarioFixture
19113
+ ### GeneratedAuthoringMetadataV1
18649
19114
 
18650
19115
  ```ts
18651
- function assertDeterministicUIScenarioFixture(
18652
- first: UIScenarioFixture,
18653
- second: UIScenarioFixture,
18654
- ): void;
19116
+ type GeneratedAuthoringMetadataV1 = {
19117
+ sdkVersion: string;
19118
+ codegenVersion: string;
19119
+ manifestSchemaVersion: number;
19120
+ generatedArtifactSchemaVersion: number;
19121
+ };
18655
19122
  ```
18656
19123
 
18657
19124
  _No JSDoc summary is available yet._
18658
19125
 
18659
- ### assertSupportedBrowserInteractionProtocol
19126
+ ### GeneratedPathPatternV1
18660
19127
 
18661
19128
  ```ts
18662
- function assertSupportedBrowserInteractionProtocol(version: string): void;
19129
+ type GeneratedPathPatternV1 = {
19130
+ prefix: string;
19131
+ suffix: string;
19132
+ };
18663
19133
  ```
18664
19134
 
18665
19135
  _No JSDoc summary is available yet._
18666
19136
 
18667
- ### assertUIStepExpectationSatisfied
19137
+ ### generateTestArtifacts
18668
19138
 
18669
19139
  ```ts
18670
- function assertUIStepExpectationSatisfied(
18671
- stepId: string,
18672
- expected: UIStepExpectation,
18673
- actual: UIStepExpectation,
18674
- ): void;
19140
+ function generateTestArtifacts(
19141
+ input: GenerateTestArtifactsInputV1,
19142
+ ): readonly GeneratedArtifactV1[];
18675
19143
  ```
18676
19144
 
18677
19145
  _No JSDoc summary is available yet._
18678
19146
 
18679
- ### assertUniqueReplayIdentity
19147
+ ### GenerateTestArtifactsInputV1
18680
19148
 
18681
19149
  ```ts
18682
- function assertUniqueReplayIdentity(
18683
- step: Pick<PortableSemanticReplayStep, "stepId" | "expectedIdentity">,
18684
- candidates: readonly UIReplayIdentityCandidate[],
18685
- ): UIReplayIdentityCandidate;
19150
+ type GenerateTestArtifactsInputV1 = {
19151
+ manifest: GameTopologyManifest;
19152
+ };
18686
19153
  ```
18687
19154
 
18688
19155
  _No JSDoc summary is available yet._
18689
19156
 
18690
- ### BaseContext
19157
+ ### generateWorkspaceArtifacts
18691
19158
 
18692
19159
  ```ts
18693
- interface BaseContext<PlayerId extends string = string> {
18694
- game: {
18695
- start(): Promise<void>;
18696
- patchState?(
18697
- mutator: (state: Record<string, unknown>) => void,
18698
- ): Promise<void>;
18699
- submit(
18700
- playerId: PlayerId,
18701
- interactionId: string,
18702
- params?: unknown,
18703
- ): Promise<void>;
18704
- };
18705
- players(): readonly PlayerId[];
18706
- seat(index: number): PlayerId;
18707
- }
19160
+ function generateWorkspaceArtifacts(
19161
+ manifest: unknown,
19162
+ ): readonly GeneratedArtifactV1[];
18708
19163
  ```
18709
19164
 
18710
19165
  _No JSDoc summary is available yet._
18711
19166
 
18712
- ### BaseDefinition
19167
+ ### MANIFEST_CONFORMANCE_CASES
18713
19168
 
18714
19169
  ```ts
18715
- interface BaseDefinition {
18716
- id: string;
18717
- seed?: number;
18718
- players?: number;
18719
- setupProfileId?: string | null;
18720
- extends?: string;
18721
- setup: (ctx: BaseContext) => void | Promise<void>;
18722
- }
19170
+ const MANIFEST_CONFORMANCE_CASES: readonly AuthoringManifestConformanceCaseV1[];
18723
19171
  ```
18724
19172
 
18725
19173
  _No JSDoc summary is available yet._
18726
19174
 
18727
- ### canonicalizeUIFixtureJson
19175
+ ### materializeManifest
18728
19176
 
18729
19177
  ```ts
18730
- function canonicalizeUIFixtureJson(value: unknown): CanonicalJson;
19178
+ function materializeManifest(manifest: unknown): JsonValue;
18731
19179
  ```
18732
19180
 
18733
19181
  _No JSDoc summary is available yet._
18734
19182
 
18735
- ### canonicalizeUIScenarioFixture
19183
+ ### projectAuthoringAdapter
18736
19184
 
18737
19185
  ```ts
18738
- function canonicalizeUIScenarioFixture(
18739
- fixture: UIScenarioFixture,
18740
- ): UIScenarioFixture;
19186
+ const projectAuthoringAdapter: ProjectAuthoringAdapterV1;
18741
19187
  ```
18742
19188
 
18743
19189
  _No JSDoc summary is available yet._
18744
19190
 
18745
- ### canonicalUIFixtureJson
19191
+ ### ProjectAuthoringAdapterV1
18746
19192
 
18747
19193
  ```ts
18748
- function canonicalUIFixtureJson(value: unknown): string;
19194
+ type ProjectAuthoringAdapterV1 = ...;
18749
19195
  ```
18750
19196
 
18751
19197
  _No JSDoc summary is available yet._
18752
19198
 
18753
- ### compileUIScenarioFixture
19199
+ ### validateManifest
18754
19200
 
18755
19201
  ```ts
18756
- function compileUIScenarioFixture(
18757
- options: CompileUIScenarioFixtureOptions,
18758
- ): UIScenarioFixture;
19202
+ function validateManifest(manifest: unknown): AuthoringValidationResultV1;
18759
19203
  ```
18760
19204
 
18761
19205
  _No JSDoc summary is available yet._
18762
19206
 
18763
- ### CompileUIScenarioFixtureOptions
19207
+ ## @dreamboard-games/sdk/reducer-contract
18764
19208
 
18765
- ```ts
19209
+ ### materializeManifestTable
19210
+
19211
+ ```ts
19212
+ function materializeManifestTable(options: {
19213
+ manifest: GameTopologyManifest;
19214
+ playerIds: readonly string[];
19215
+ shuffleItems: <Value>(values: readonly Value[]) => Value[];
19216
+ }): Record<string, unknown>;
19217
+ ```
19218
+
19219
+ _No JSDoc summary is available yet._
19220
+
19221
+ ### MaybePromise
19222
+
19223
+ ```ts
19224
+ type MaybePromise<T> = T | Promise<T>;
19225
+ ```
19226
+
19227
+ _No JSDoc summary is available yet._
19228
+
19229
+ ### REDUCER_CONTRACT_VERSION
19230
+
19231
+ ```ts
19232
+ const REDUCER_CONTRACT_VERSION: "0.2.1";
19233
+ ```
19234
+
19235
+ 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.
19236
+
19237
+ ### ReducerBundleContract
19238
+
19239
+ ```ts
19240
+ interface ReducerBundleContract { ... }
19241
+ ```
19242
+
19243
+ Canonical erased reducer boundary for `createReducerBundle(...)`.
19244
+
19245
+ ### ReducerWire
19246
+
19247
+ ```ts
19248
+ ReducerWire: ...;
19249
+ ```
19250
+
19251
+ _No JSDoc summary is available yet._
19252
+
19253
+ ### ReducerWireZod
19254
+
19255
+ ```ts
19256
+ declare const ReducerWireZod: typeof zod;
19257
+ ```
19258
+
19259
+ _No JSDoc summary is available yet._
19260
+
19261
+ ## @dreamboard-games/sdk/testing
19262
+
19263
+ ### assertDeterministicUIScenarioFixture
19264
+
19265
+ ```ts
19266
+ function assertDeterministicUIScenarioFixture(
19267
+ first: UIScenarioFixture,
19268
+ second: UIScenarioFixture,
19269
+ ): void;
19270
+ ```
19271
+
19272
+ _No JSDoc summary is available yet._
19273
+
19274
+ ### assertSupportedBrowserInteractionProtocol
19275
+
19276
+ ```ts
19277
+ function assertSupportedBrowserInteractionProtocol(version: string): void;
19278
+ ```
19279
+
19280
+ _No JSDoc summary is available yet._
19281
+
19282
+ ### assertUIStepExpectationSatisfied
19283
+
19284
+ ```ts
19285
+ function assertUIStepExpectationSatisfied(
19286
+ stepId: string,
19287
+ expected: UIStepExpectation,
19288
+ actual: UIStepExpectation,
19289
+ ): void;
19290
+ ```
19291
+
19292
+ _No JSDoc summary is available yet._
19293
+
19294
+ ### assertUniqueReplayIdentity
19295
+
19296
+ ```ts
19297
+ function assertUniqueReplayIdentity(
19298
+ step: Pick<PortableSemanticReplayStep, "stepId" | "expectedIdentity">,
19299
+ candidates: readonly UIReplayIdentityCandidate[],
19300
+ ): UIReplayIdentityCandidate;
19301
+ ```
19302
+
19303
+ _No JSDoc summary is available yet._
19304
+
19305
+ ### BaseContext
19306
+
19307
+ ```ts
19308
+ interface BaseContext<PlayerId extends string = string> {
19309
+ game: {
19310
+ start(): Promise<void>;
19311
+ patchState?(
19312
+ mutator: (state: Record<string, unknown>) => void,
19313
+ ): Promise<void>;
19314
+ submit(
19315
+ playerId: PlayerId,
19316
+ interactionId: string,
19317
+ params?: unknown,
19318
+ ): Promise<void>;
19319
+ };
19320
+ players(): readonly PlayerId[];
19321
+ seat(index: number): PlayerId;
19322
+ }
19323
+ ```
19324
+
19325
+ _No JSDoc summary is available yet._
19326
+
19327
+ ### BaseDefinition
19328
+
19329
+ ```ts
19330
+ interface BaseDefinition {
19331
+ id: string;
19332
+ seed?: number;
19333
+ players?: number;
19334
+ setupProfileId?: string | null;
19335
+ extends?: string;
19336
+ setup: (ctx: BaseContext) => void | Promise<void>;
19337
+ }
19338
+ ```
19339
+
19340
+ _No JSDoc summary is available yet._
19341
+
19342
+ ### canonicalizeUIFixtureJson
19343
+
19344
+ ```ts
19345
+ function canonicalizeUIFixtureJson(value: unknown): CanonicalJson;
19346
+ ```
19347
+
19348
+ _No JSDoc summary is available yet._
19349
+
19350
+ ### canonicalizeUIScenarioFixture
19351
+
19352
+ ```ts
19353
+ function canonicalizeUIScenarioFixture(
19354
+ fixture: UIScenarioFixture,
19355
+ ): UIScenarioFixture;
19356
+ ```
19357
+
19358
+ _No JSDoc summary is available yet._
19359
+
19360
+ ### canonicalUIFixtureJson
19361
+
19362
+ ```ts
19363
+ function canonicalUIFixtureJson(value: unknown): string;
19364
+ ```
19365
+
19366
+ _No JSDoc summary is available yet._
19367
+
19368
+ ### compareUIParityObservations
19369
+
19370
+ ```ts
19371
+ function compareUIParityObservations(
19372
+ expected: UIParityObservationV1,
19373
+ actual: UIParityObservationV1,
19374
+ ): UIParityComparisonResult;
19375
+ ```
19376
+
19377
+ _No JSDoc summary is available yet._
19378
+
19379
+ ### compilePluginProtocolTape
19380
+
19381
+ ```ts
19382
+ function compilePluginProtocolTape(
19383
+ options: CompilePluginProtocolTapeOptions,
19384
+ ): PluginProtocolTape;
19385
+ ```
19386
+
19387
+ _No JSDoc summary is available yet._
19388
+
19389
+ ### CompilePluginProtocolTapeOptions
19390
+
19391
+ ```ts
19392
+ interface CompilePluginProtocolTapeOptions {
19393
+ readonly trace: ReducerScenarioTrace;
19394
+ readonly session: v;
19395
+ }
19396
+ ```
19397
+
19398
+ _No JSDoc summary is available yet._
19399
+
19400
+ ### compileUIScenarioFixture
19401
+
19402
+ ```ts
19403
+ function compileUIScenarioFixture(
19404
+ options: CompileUIScenarioFixtureOptions,
19405
+ ): UIScenarioFixture;
19406
+ ```
19407
+
19408
+ _No JSDoc summary is available yet._
19409
+
19410
+ ### CompileUIScenarioFixtureOptions
19411
+
19412
+ ```ts
18766
19413
  interface CompileUIScenarioFixtureOptions { ... }
18767
19414
  ```
18768
19415
 
18769
19416
  _No JSDoc summary is available yet._
18770
19417
 
19418
+ ### createDeterministicIdFactory
19419
+
19420
+ ```ts
19421
+ function createDeterministicIdFactory(seed: string): DeterministicIdFactory;
19422
+ ```
19423
+
19424
+ _No JSDoc summary is available yet._
19425
+
18771
19426
  ### CreatedTestRuntime
18772
19427
 
18773
19428
  ```ts
@@ -18784,6 +19439,57 @@ function createExpectApi(options?: CreateExpectApiOptions): ExpectFn;
18784
19439
 
18785
19440
  _No JSDoc summary is available yet._
18786
19441
 
19442
+ ### createFixtureHostHarness
19443
+
19444
+ ```ts
19445
+ function createFixtureHostHarness(
19446
+ options: CreateFixtureHostHarnessOptions,
19447
+ ): FixtureHostHarness;
19448
+ ```
19449
+
19450
+ _No JSDoc summary is available yet._
19451
+
19452
+ ### CreateFixtureHostHarnessOptions
19453
+
19454
+ ```ts
19455
+ interface CreateFixtureHostHarnessOptions {
19456
+ readonly tape: u;
19457
+ readonly strict?: boolean;
19458
+ readonly latencyMs?: number;
19459
+ readonly channelId?: string;
19460
+ readonly onEvent?: (event: FixtureHostEvent) => void;
19461
+ readonly nowMs?: () => number;
19462
+ }
19463
+ ```
19464
+
19465
+ _No JSDoc summary is available yet._
19466
+
19467
+ ### createReducerScenarioRunner
19468
+
19469
+ ```ts
19470
+ function createReducerScenarioRunner(
19471
+ options: CreateReducerScenarioRunnerOptions,
19472
+ ): ReducerScenarioRunner;
19473
+ ```
19474
+
19475
+ _No JSDoc summary is available yet._
19476
+
19477
+ ### CreateReducerScenarioRunnerOptions
19478
+
19479
+ ```ts
19480
+ interface CreateReducerScenarioRunnerOptions {
19481
+ readonly scenarioId: string;
19482
+ readonly gameId: string;
19483
+ readonly initialState: wire.ReducerSessionState;
19484
+ readonly bundle: ReducerScenarioBundle;
19485
+ readonly viewer: ReducerScenarioViewer;
19486
+ readonly playerIds: readonly string[];
19487
+ readonly initialGameVersion?: number;
19488
+ }
19489
+ ```
19490
+
19491
+ _No JSDoc summary is available yet._
19492
+
18787
19493
  ### createTestRuntime
18788
19494
 
18789
19495
  ```ts
@@ -18814,6 +19520,29 @@ type CreateTestRuntimeOptions = {
18814
19520
 
18815
19521
  _No JSDoc summary is available yet._
18816
19522
 
19523
+ ### createUIParityObservationFromFixture
19524
+
19525
+ ```ts
19526
+ function createUIParityObservationFromFixture({
19527
+ fixture,
19528
+ sdkCandidateDigest,
19529
+ environment,
19530
+ fixtureDigest,
19531
+ screenshotsByStepId,
19532
+ diagnostics,
19533
+ }: CreateUIParityObservationFromFixtureOptions): UIParityObservationV1;
19534
+ ```
19535
+
19536
+ _No JSDoc summary is available yet._
19537
+
19538
+ ### defaultFixtureEnvironmentInit
19539
+
19540
+ ```ts
19541
+ const defaultFixtureEnvironmentInit: FixtureEnvironmentInit;
19542
+ ```
19543
+
19544
+ _No JSDoc summary is available yet._
19545
+
18817
19546
  ### defineBase
18818
19547
 
18819
19548
  ```ts
@@ -18838,6 +19567,22 @@ function defineScenario<
18838
19567
 
18839
19568
  _No JSDoc summary is available yet._
18840
19569
 
19570
+ ### DeterministicIdFactory
19571
+
19572
+ ```ts
19573
+ type DeterministicIdFactory = () => string;
19574
+ ```
19575
+
19576
+ _No JSDoc summary is available yet._
19577
+
19578
+ ### digestPluginProtocolTape
19579
+
19580
+ ```ts
19581
+ function digestPluginProtocolTape(tape: PluginProtocolTape): string;
19582
+ ```
19583
+
19584
+ _No JSDoc summary is available yet._
19585
+
18841
19586
  ### digestUIFixtureJson
18842
19587
 
18843
19588
  ```ts
@@ -18854,6 +19599,23 @@ function digestUIFixtureRequest(request: UIReplayRequest): string;
18854
19599
 
18855
19600
  _No JSDoc summary is available yet._
18856
19601
 
19602
+ ### digestUIFixtureTransportRequest
19603
+
19604
+ ```ts
19605
+ function digestUIFixtureTransportRequest(request: {
19606
+ readonly operation: "validate" | "submit";
19607
+ readonly basis?: {
19608
+ readonly gameVersion: number;
19609
+ readonly actionSetVersion: string;
19610
+ readonly perspectivePlayerId: string | null;
19611
+ };
19612
+ readonly interactionId?: string;
19613
+ readonly payload?: unknown;
19614
+ }): string;
19615
+ ```
19616
+
19617
+ _No JSDoc summary is available yet._
19618
+
18857
19619
  ### digestUIScenarioFixture
18858
19620
 
18859
19621
  ```ts
@@ -18878,6 +19640,87 @@ type ExpectMatchers = ...;
18878
19640
 
18879
19641
  _No JSDoc summary is available yet._
18880
19642
 
19643
+ ### FixtureEnvironmentInit
19644
+
19645
+ ```ts
19646
+ interface FixtureEnvironmentInit {
19647
+ readonly clockIso: string;
19648
+ readonly randomSeed: string;
19649
+ readonly locale: "en-US";
19650
+ readonly timezone: "UTC";
19651
+ readonly reducedMotion: true;
19652
+ readonly network: "blocked";
19653
+ }
19654
+ ```
19655
+
19656
+ _No JSDoc summary is available yet._
19657
+
19658
+ ### fixtureEnvironmentInitFor
19659
+
19660
+ ```ts
19661
+ function fixtureEnvironmentInitFor(options: {
19662
+ readonly clockIso: string;
19663
+ readonly randomSeed: string;
19664
+ }): FixtureEnvironmentInit;
19665
+ ```
19666
+
19667
+ _No JSDoc summary is available yet._
19668
+
19669
+ ### FixtureHostEvent
19670
+
19671
+ ```ts
19672
+ interface FixtureHostEvent {
19673
+ readonly sequence: number;
19674
+ readonly atMs: number;
19675
+ readonly kind:
19676
+ | "frame-sent"
19677
+ | "validate-received"
19678
+ | "submit-received"
19679
+ | "ack-received"
19680
+ | "ready-received"
19681
+ | "diagnostic";
19682
+ readonly requestDigest?: string;
19683
+ readonly frameId?: string;
19684
+ readonly projectionDigest?: string;
19685
+ readonly result?: "accepted" | "rejected";
19686
+ }
19687
+ ```
19688
+
19689
+ _No JSDoc summary is available yet._
19690
+
19691
+ ### FixtureHostHarness
19692
+
19693
+ ```ts
19694
+ interface FixtureHostHarness {
19695
+ readonly transport: PluginTransport;
19696
+ readonly tape: u;
19697
+ reset(): void;
19698
+ flush(): Promise<void>;
19699
+ advanceHost(): Promise<void>;
19700
+ getCurrentFrameId(): string;
19701
+ getEvents(): readonly FixtureHostEvent[];
19702
+ assertConsumed(): void;
19703
+ }
19704
+ ```
19705
+
19706
+ _No JSDoc summary is available yet._
19707
+
19708
+ ### FixturePluginRuntime
19709
+
19710
+ ```ts
19711
+ function FixturePluginRuntime({
19712
+ harness,
19713
+ runtime,
19714
+ children,
19715
+ }: {
19716
+ harness: FixtureHostHarness;
19717
+ runtime?: PluginRuntimeClient;
19718
+ children: react__default.ReactNode;
19719
+ }): react_jsx_runtime.JSX.Element;
19720
+ ```
19721
+
19722
+ _No JSDoc summary is available yet._
19723
+
18881
19724
  ### InteractionAvailabilityLike
18882
19725
 
18883
19726
  ```ts
@@ -18944,6 +19787,14 @@ function isStaleContractArtifactError(
18944
19787
 
18945
19788
  _No JSDoc summary is available yet._
18946
19789
 
19790
+ ### parseUIParityObservationV1
19791
+
19792
+ ```ts
19793
+ function parseUIParityObservationV1(value: unknown): UIParityObservationV1;
19794
+ ```
19795
+
19796
+ _No JSDoc summary is available yet._
19797
+
18947
19798
  ### parseUIScenarioFixture
18948
19799
 
18949
19800
  ```ts
@@ -18962,6 +19813,26 @@ function parseUIScenarioFixtureBundleIndex(
18962
19813
 
18963
19814
  _No JSDoc summary is available yet._
18964
19815
 
19816
+ ### PluginProtocolTape
19817
+
19818
+ ```ts
19819
+ type PluginProtocolTape = u;
19820
+ ```
19821
+
19822
+ _No JSDoc summary is available yet._
19823
+
19824
+ ### pluginProtocolTapeSchema
19825
+
19826
+ ```ts
19827
+ const pluginProtocolTapeSchema: z.ZodType<
19828
+ u,
19829
+ unknown,
19830
+ z.core.$ZodTypeInternals<u, unknown>
19831
+ >;
19832
+ ```
19833
+
19834
+ _No JSDoc summary is available yet._
19835
+
18965
19836
  ### PortableSemanticReplayStep
18966
19837
 
18967
19838
  ```ts
@@ -18980,6 +19851,107 @@ declare const portableSemanticReplayStepSchema: ...;
18980
19851
 
18981
19852
  _No JSDoc summary is available yet._
18982
19853
 
19854
+ ### ReducerScenarioBundle
19855
+
19856
+ ```ts
19857
+ type ReducerScenarioBundle = Pick<
19858
+ ReducerBundleContract,
19859
+ "projectSeatsDynamic" | "validateInput" | "dispatch" | "projectStatic"
19860
+ >;
19861
+ ```
19862
+
19863
+ _No JSDoc summary is available yet._
19864
+
19865
+ ### ReducerScenarioDiagnostic
19866
+
19867
+ ```ts
19868
+ interface ReducerScenarioDiagnostic {
19869
+ readonly code: string;
19870
+ readonly message: string;
19871
+ }
19872
+ ```
19873
+
19874
+ _No JSDoc summary is available yet._
19875
+
19876
+ ### ReducerScenarioExchange
19877
+
19878
+ ```ts
19879
+ type ReducerScenarioExchange = ...;
19880
+ ```
19881
+
19882
+ _No JSDoc summary is available yet._
19883
+
19884
+ ### ReducerScenarioFrame
19885
+
19886
+ ```ts
19887
+ interface ReducerScenarioFrame {
19888
+ readonly id: string;
19889
+ readonly reducerState: wire.ReducerSessionState;
19890
+ readonly dynamicProjection: wire.SeatProjectionBundle;
19891
+ readonly staticProjection?: wire.BoardStaticProjection | null;
19892
+ readonly gameVersion: number;
19893
+ readonly actionSetVersion: string;
19894
+ readonly projectionDigest: string;
19895
+ }
19896
+ ```
19897
+
19898
+ _No JSDoc summary is available yet._
19899
+
19900
+ ### ReducerScenarioOperation
19901
+
19902
+ ```ts
19903
+ type ReducerScenarioOperation =
19904
+ | {
19905
+ readonly id: string;
19906
+ readonly operation: "validate";
19907
+ readonly input: wire.GameInput;
19908
+ }
19909
+ | {
19910
+ readonly id: string;
19911
+ readonly operation: "submit";
19912
+ readonly input: wire.GameInput;
19913
+ };
19914
+ ```
19915
+
19916
+ _No JSDoc summary is available yet._
19917
+
19918
+ ### ReducerScenarioRunner
19919
+
19920
+ ```ts
19921
+ interface ReducerScenarioRunner {
19922
+ run(
19923
+ operations: readonly ReducerScenarioOperation[],
19924
+ ): Promise<ReducerScenarioTrace>;
19925
+ }
19926
+ ```
19927
+
19928
+ _No JSDoc summary is available yet._
19929
+
19930
+ ### ReducerScenarioTrace
19931
+
19932
+ ```ts
19933
+ interface ReducerScenarioTrace {
19934
+ readonly scenarioId: string;
19935
+ readonly gameId: string;
19936
+ readonly viewer: ReducerScenarioViewer;
19937
+ readonly frames: readonly ReducerScenarioFrame[];
19938
+ readonly exchanges: readonly ReducerScenarioExchange[];
19939
+ }
19940
+ ```
19941
+
19942
+ _No JSDoc summary is available yet._
19943
+
19944
+ ### ReducerScenarioViewer
19945
+
19946
+ ```ts
19947
+ interface ReducerScenarioViewer {
19948
+ readonly seatId: string;
19949
+ readonly playerId: string;
19950
+ }
19951
+ ```
19952
+
19953
+ _No JSDoc summary is available yet._
19954
+
18983
19955
  ### RejectionExpectation
18984
19956
 
18985
19957
  ```ts
@@ -19066,67 +20038,74 @@ _No JSDoc summary is available yet._
19066
20038
  ### UI_SCENARIO_FIXTURE_BUNDLE_SCHEMA_VERSION
19067
20039
 
19068
20040
  ```ts
19069
- const UI_SCENARIO_FIXTURE_BUNDLE_SCHEMA_VERSION = 1;
20041
+ const UI_SCENARIO_FIXTURE_BUNDLE_SCHEMA_VERSION = 2;
19070
20042
  ```
19071
20043
 
19072
20044
  _No JSDoc summary is available yet._
19073
20045
 
19074
- ### UI_SCENARIO_FIXTURE_SCHEMA_VERSION
20046
+ ### UI_SCENARIO_FIXTURE_PLUGIN_RUNTIME_PROTOCOL
19075
20047
 
19076
20048
  ```ts
19077
- const UI_SCENARIO_FIXTURE_SCHEMA_VERSION = 1;
20049
+ const UI_SCENARIO_FIXTURE_PLUGIN_RUNTIME_PROTOCOL: 3;
19078
20050
  ```
19079
20051
 
19080
20052
  _No JSDoc summary is available yet._
19081
20053
 
19082
- ### UI_SCENARIO_FIXTURE_SUPPORTED_BROWSER_PROTOCOL_MAJOR
20054
+ ### UI_SCENARIO_FIXTURE_SCHEMA_VERSION
19083
20055
 
19084
20056
  ```ts
19085
- const UI_SCENARIO_FIXTURE_SUPPORTED_BROWSER_PROTOCOL_MAJOR = 2;
20057
+ const UI_SCENARIO_FIXTURE_SCHEMA_VERSION = 2;
19086
20058
  ```
19087
20059
 
19088
20060
  _No JSDoc summary is available yet._
19089
20061
 
19090
- ### UIFixtureFrame
20062
+ ### UI_SCENARIO_FIXTURE_SUPPORTED_BROWSER_PROTOCOL_MAJOR
19091
20063
 
19092
20064
  ```ts
19093
- type UIFixtureFrame = Omit<z.infer<typeof uiFixtureFrameSchema>, "snapshot"> & {
19094
- readonly snapshot: PluginStateSnapshot$1;
19095
- };
20065
+ const UI_SCENARIO_FIXTURE_SUPPORTED_BROWSER_PROTOCOL_MAJOR = 3;
19096
20066
  ```
19097
20067
 
19098
20068
  _No JSDoc summary is available yet._
19099
20069
 
19100
- ### uiFixtureFrameSchema
20070
+ ### UIFixtureFrame
19101
20071
 
19102
20072
  ```ts
19103
- declare const uiFixtureFrameSchema: ...;
20073
+ type UIFixtureFrame = s;
19104
20074
  ```
19105
20075
 
19106
20076
  _No JSDoc summary is available yet._
19107
20077
 
19108
- ### uiFixturePluginStateSnapshotSchema
20078
+ ### uiFixtureFrameSchema
19109
20079
 
19110
20080
  ```ts
19111
- declare const uiFixturePluginStateSnapshotSchema: ...;
20081
+ const uiFixtureFrameSchema: z.ZodObject<
20082
+ {
20083
+ id: z.ZodString;
20084
+ frame: z.ZodType<
20085
+ o<unknown, string, string, string>,
20086
+ unknown,
20087
+ z.core.$ZodTypeInternals<o<unknown, string, string, string>, unknown>
20088
+ >;
20089
+ projectionDigest: z.ZodString;
20090
+ },
20091
+ z.core.$strict
20092
+ >;
19112
20093
  ```
19113
20094
 
19114
20095
  _No JSDoc summary is available yet._
19115
20096
 
19116
- ### UIFixtureTransportExchange
20097
+ ### UIFixtureProtocolStep
19117
20098
 
19118
20099
  ```ts
19119
- type UIFixtureTransportExchange = z.infer<
19120
- typeof uiFixtureTransportExchangeSchema
19121
- >;
20100
+ type UIFixtureProtocolStep = t;
19122
20101
  ```
19123
20102
 
19124
20103
  _No JSDoc summary is available yet._
19125
20104
 
19126
- ### uiFixtureTransportExchangeSchema
20105
+ ### uiFixtureProtocolStepSchema
19127
20106
 
19128
20107
  ```ts
19129
- declare const uiFixtureTransportExchangeSchema: ...;
20108
+ declare const uiFixtureProtocolStepSchema: ...;
19130
20109
  ```
19131
20110
 
19132
20111
  _No JSDoc summary is available yet._
@@ -19206,9 +20185,9 @@ _No JSDoc summary is available yet._
19206
20185
  ```ts
19207
20186
  type UIScenarioFixture = Omit<
19208
20187
  z.infer<typeof uiScenarioFixtureSchema>,
19209
- "frames" | "replay"
20188
+ "protocol" | "replay"
19210
20189
  > & {
19211
- readonly frames: readonly UIFixtureFrame[];
20190
+ readonly protocol: PluginProtocolTape;
19212
20191
  readonly replay: readonly UIScenarioReplayStep[];
19213
20192
  };
19214
20193
  ```
@@ -19360,7 +20339,11 @@ _No JSDoc summary is available yet._
19360
20339
  ### BROWSER_INTERACTION_RECORD_ROLES
19361
20340
 
19362
20341
  ```ts
19363
- const BROWSER_INTERACTION_RECORD_ROLES: readonly ["interaction", "actuator"];
20342
+ const BROWSER_INTERACTION_RECORD_ROLES: readonly [
20343
+ "interaction",
20344
+ "actuator",
20345
+ "pointer-target",
20346
+ ];
19364
20347
  ```
19365
20348
 
19366
20349
  _No JSDoc summary is available yet._
@@ -19473,6 +20456,7 @@ declare const browserInteractionDiagnosticSchema: z.ZodObject<
19473
20456
  interactionKey: z.ZodOptional<z.ZodString>;
19474
20457
  intent: z.ZodOptional<z.ZodString>;
19475
20458
  actuatorId: z.ZodOptional<z.ZodString>;
20459
+ targetId: z.ZodOptional<z.ZodString>;
19476
20460
  },
19477
20461
  z.core.$strip
19478
20462
  >;
@@ -19586,31 +20570,97 @@ _No JSDoc summary is available yet._
19586
20570
  ### BrowserInteractionEntity
19587
20571
 
19588
20572
  ```ts
19589
- interface BrowserInteractionEntity {
20573
+ interface BrowserInteractionEntity { ... }
20574
+ ```
20575
+
20576
+ _No JSDoc summary is available yet._
20577
+
20578
+ ### BrowserInteractionIntent
20579
+
20580
+ ```ts
20581
+ type BrowserInteractionIntent = string;
20582
+ ```
20583
+
20584
+ _No JSDoc summary is available yet._
20585
+
20586
+ ### BrowserInteractionIntentRequest
20587
+
20588
+ ```ts
20589
+ interface BrowserInteractionIntentRequest { ... }
20590
+ ```
20591
+
20592
+ _No JSDoc summary is available yet._
20593
+
20594
+ ### BrowserInteractionPointerTarget
20595
+
20596
+ ```ts
20597
+ interface BrowserInteractionPointerTarget {
20598
+ readonly targetId: string;
20599
+ readonly enabled: boolean;
20600
+ readonly acceptedEffectPatterns: readonly BrowserInteractionEffectPattern[];
20601
+ readonly descriptorDigest?: string;
20602
+ readonly diagnostics: readonly BrowserInteractionDiagnostic[];
20603
+ }
20604
+ ```
20605
+
20606
+ _No JSDoc summary is available yet._
20607
+
20608
+ ### BrowserInteractionPointerTargetAttributesInput
20609
+
20610
+ ```ts
20611
+ interface BrowserInteractionPointerTargetAttributesInput {
20612
+ readonly surface: string;
20613
+ readonly scopeId: string;
19590
20614
  readonly interactionKey: string;
19591
20615
  readonly interactionId: string;
19592
20616
  readonly descriptorDigest?: string;
19593
- readonly draftDigest?: string;
19594
- readonly readiness: BrowserInteractionReadiness;
19595
- readonly actuators: readonly BrowserInteractionActuator[];
20617
+ readonly targetId: string;
20618
+ readonly enabled?: boolean;
20619
+ readonly acceptedEffectPatterns: readonly BrowserInteractionEffectPattern[];
20620
+ }
20621
+ ```
20622
+
20623
+ _No JSDoc summary is available yet._
20624
+
20625
+ ### BrowserInteractionPointerTargetResolution
20626
+
20627
+ ```ts
20628
+ type BrowserInteractionPointerTargetResolution =
20629
+ | BrowserInteractionPointerTargetResolutionSuccess
20630
+ | BrowserInteractionPointerTargetResolutionFailure;
20631
+ ```
20632
+
20633
+ _No JSDoc summary is available yet._
20634
+
20635
+ ### BrowserInteractionPointerTargetResolutionFailure
20636
+
20637
+ ```ts
20638
+ interface BrowserInteractionPointerTargetResolutionFailure {
20639
+ readonly ok: false;
20640
+ readonly code:
20641
+ | "ambiguous"
20642
+ | "invalid-effect"
20643
+ | "invalid-snapshot"
20644
+ | "not-found"
20645
+ | "unavailable";
19596
20646
  readonly diagnostics: readonly BrowserInteractionDiagnostic[];
19597
20647
  }
19598
20648
  ```
19599
20649
 
19600
20650
  _No JSDoc summary is available yet._
19601
20651
 
19602
- ### BrowserInteractionIntent
20652
+ ### BrowserInteractionPointerTargetResolutionSuccess
19603
20653
 
19604
20654
  ```ts
19605
- type BrowserInteractionIntent = string;
20655
+ interface BrowserInteractionPointerTargetResolutionSuccess { ... }
19606
20656
  ```
19607
20657
 
19608
20658
  _No JSDoc summary is available yet._
19609
20659
 
19610
- ### BrowserInteractionIntentRequest
20660
+ ### browserInteractionPointerTargetSchema
19611
20661
 
19612
20662
  ```ts
19613
- interface BrowserInteractionIntentRequest { ... }
20663
+ declare const browserInteractionPointerTargetSchema: ...;
19614
20664
  ```
19615
20665
 
19616
20666
  _No JSDoc summary is available yet._
@@ -19634,7 +20684,7 @@ _No JSDoc summary is available yet._
19634
20684
  ```ts
19635
20685
  interface BrowserInteractionProtocolIdentity {
19636
20686
  readonly name: "dreamboard-browser-interaction";
19637
- readonly version: "2.0.0";
20687
+ readonly version: "3.0.0";
19638
20688
  }
19639
20689
  ```
19640
20690
 
@@ -19906,6 +20956,16 @@ function createBrowserInteractionActuatorKey(input: {
19906
20956
 
19907
20957
  _No JSDoc summary is available yet._
19908
20958
 
20959
+ ### createBrowserInteractionPointerTargetAttributes
20960
+
20961
+ ```ts
20962
+ function createBrowserInteractionPointerTargetAttributes(
20963
+ input: BrowserInteractionPointerTargetAttributesInput,
20964
+ ): BrowserInteractionAttributeMap;
20965
+ ```
20966
+
20967
+ _No JSDoc summary is available yet._
20968
+
19909
20969
  ### createBrowserInteractionRegistry
19910
20970
 
19911
20971
  ```ts
@@ -19946,6 +21006,16 @@ function createGameplayInteractionRootAttributes(
19946
21006
 
19947
21007
  _No JSDoc summary is available yet._
19948
21008
 
21009
+ ### createGameplayPointerTargetAttributes
21010
+
21011
+ ```ts
21012
+ function createGameplayPointerTargetAttributes(
21013
+ input: GameplayPointerTargetAttributesInput,
21014
+ ): BrowserInteractionAttributeMap;
21015
+ ```
21016
+
21017
+ _No JSDoc summary is available yet._
21018
+
19949
21019
  ### decodeBrowserInteractionEffect
19950
21020
 
19951
21021
  ```ts
@@ -20008,7 +21078,7 @@ _No JSDoc summary is available yet._
20008
21078
  ### DREAMBOARD_BROWSER_INTERACTION_PROTOCOL_VERSION
20009
21079
 
20010
21080
  ```ts
20011
- const DREAMBOARD_BROWSER_INTERACTION_PROTOCOL_VERSION: "2.0.0";
21081
+ const DREAMBOARD_BROWSER_INTERACTION_PROTOCOL_VERSION: "3.0.0";
20012
21082
  ```
20013
21083
 
20014
21084
  _No JSDoc summary is available yet._
@@ -20184,6 +21254,19 @@ function gameplayInvokeEffect(): GameplaySemanticEffect;
20184
21254
 
20185
21255
  _No JSDoc summary is available yet._
20186
21256
 
21257
+ ### GameplayPointerTargetAttributesInput
21258
+
21259
+ ```ts
21260
+ type GameplayPointerTargetAttributesInput = Omit<
21261
+ BrowserInteractionPointerTargetAttributesInput,
21262
+ "surface" | "acceptedEffectPatterns"
21263
+ > & {
21264
+ readonly acceptedEffectPatterns: readonly GameplaySemanticEffectPattern[];
21265
+ };
21266
+ ```
21267
+
21268
+ _No JSDoc summary is available yet._
21269
+
20187
21270
  ### GameplaySemanticEffect
20188
21271
 
20189
21272
  ```ts
@@ -20264,6 +21347,29 @@ interface NormalizeBrowserInteractionRecordsOptions {
20264
21347
 
20265
21348
  _No JSDoc summary is available yet._
20266
21349
 
21350
+ ### pointerTargetIdentityKey
21351
+
21352
+ ```ts
21353
+ function pointerTargetIdentityKey(input: {
21354
+ readonly surface: string;
21355
+ readonly scopeId: string;
21356
+ readonly interactionKey: string;
21357
+ readonly pointerTarget: Pick<BrowserInteractionPointerTarget, "targetId">;
21358
+ }): string;
21359
+ ```
21360
+
21361
+ _No JSDoc summary is available yet._
21362
+
21363
+ ### readBrowserInteractionSnapshot
21364
+
21365
+ ```ts
21366
+ function readBrowserInteractionSnapshot(
21367
+ root: ParentNode,
21368
+ ): BrowserInteractionSnapshot;
21369
+ ```
21370
+
21371
+ _No JSDoc summary is available yet._
21372
+
20267
21373
  ### resolveBrowserInteractionEffect
20268
21374
 
20269
21375
  ```ts
@@ -20286,6 +21392,17 @@ function resolveBrowserInteractionIntent(
20286
21392
 
20287
21393
  _No JSDoc summary is available yet._
20288
21394
 
21395
+ ### resolveBrowserPointerTarget
21396
+
21397
+ ```ts
21398
+ function resolveBrowserPointerTarget(
21399
+ snapshot: BrowserInteractionSnapshot,
21400
+ request: BrowserInteractionEffectRequest,
21401
+ ): BrowserInteractionPointerTargetResolution;
21402
+ ```
21403
+
21404
+ _No JSDoc summary is available yet._
21405
+
20289
21406
  ### targetIdentityKey
20290
21407
 
20291
21408
  ```ts