@dreamboard-games/sdk 0.2.1-alpha.0 → 0.3.0-alpha.1
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.
- package/dist/{HandView-ncJIVLhN.d.ts → HandView-PYDmehVD.d.ts} +1 -1
- package/dist/{ResourceCounter-CTREyF73.d.ts → ResourceCounter-BTXklCEZ.d.ts} +1 -1
- package/dist/{ThemeProvider-fy0_QzgO.d.ts → ThemeProvider-DvMl17Ny.d.ts} +1 -1
- package/dist/attributes-BeRyboMS.d.ts +279 -0
- package/dist/browser-interaction.d.ts +708 -0
- package/dist/browser-interaction.js +106 -0
- package/dist/{chunk-KAELH4KC.js → chunk-3RQEICD3.js} +2 -2
- package/dist/{chunk-TDSWKVZ4.js → chunk-ADYH6PVT.js} +2457 -1265
- package/dist/chunk-ADYH6PVT.js.map +1 -0
- package/dist/{chunk-YFY3RL52.js → chunk-P7VMTJ5D.js} +2 -2
- package/dist/{chunk-YFY3RL52.js.map → chunk-P7VMTJ5D.js.map} +1 -1
- package/dist/chunk-QLG6VEMW.js +1691 -0
- package/dist/chunk-QLG6VEMW.js.map +1 -0
- package/dist/{chunk-WYPQ3GG5.js → chunk-QZ6X4B5P.js} +1177 -1106
- package/dist/chunk-QZ6X4B5P.js.map +1 -0
- package/dist/{chunk-GKKBPPSW.js → chunk-TXXLS3OI.js} +405 -309
- package/dist/chunk-TXXLS3OI.js.map +1 -0
- package/dist/{chunk-FDNZTDD6.js → chunk-W6SGFWXH.js} +48 -44
- package/dist/chunk-W6SGFWXH.js.map +1 -0
- package/dist/{chunk-MKXPVOUT.js → chunk-Y2AFYBMB.js} +48 -4
- package/dist/chunk-Y2AFYBMB.js.map +1 -0
- package/dist/{index-BwqPQtBu.d.ts → codegen.d.ts} +57 -565
- package/dist/{infrastructure/workspace-codegen.js → codegen.js} +3 -3
- package/dist/{components-D5ZRE2Hl.d.ts → components-DaIqi9QM.d.ts} +48 -37
- package/dist/{hex-board-view-D_07hO6O.d.ts → hex-board-view-UCUjMALd.d.ts} +3 -2
- package/dist/{infrastructure/reducer-bundle-abi.d.ts → index.d-BGqVifr_.d.ts} +289 -10
- package/dist/index.js +1 -1
- package/dist/package-set.d.ts +2 -2
- package/dist/package-set.js +1 -1
- package/dist/primitive-props-BNHDkgd7.d.ts +16 -0
- package/dist/reducer-contract.d.ts +3 -0
- package/dist/{infrastructure/reducer-bundle-abi.js → reducer-contract.js} +4 -4
- package/dist/reducer.d.ts +185 -179
- package/dist/reducer.js +1637 -1353
- package/dist/reducer.js.map +1 -1
- package/dist/runtime/primitives.d.ts +10 -9
- package/dist/runtime/primitives.js +8 -7
- package/dist/runtime/runtime-api.d.ts +2 -0
- package/dist/runtime/runtime-api.js +1 -0
- package/dist/runtime/workspace-contract.d.ts +63 -17
- package/dist/runtime/workspace-contract.js +5 -5
- package/dist/{runtime-api-DWxvTr-O.d.ts → runtime-api-tGL3ArsB.d.ts} +109 -4
- package/dist/runtime.d.ts +12 -57
- package/dist/runtime.js +487 -7
- package/dist/runtime.js.map +1 -1
- package/dist/testing.d.ts +4 -4
- package/dist/testing.js.map +1 -1
- package/dist/types.d.ts +1531 -85
- package/dist/types.js +1 -3
- package/dist/types.js.map +1 -1
- package/dist/ui/components.d.ts +7 -8
- package/dist/ui/components.js +1 -1
- package/dist/ui/defaults.d.ts +1 -1
- package/dist/ui/{types/player-state.d.ts → player-state.d.ts} +2 -2
- package/dist/{ui-contract-iQfTtUSL.d.ts → ui-contract-SctM4ibF.d.ts} +157 -150
- package/dist/ui.d.ts +10 -11
- package/dist/ui.js +2 -2
- package/package.json +35 -74
- package/dist/bundle-CDd5FKeD.d.ts +0 -283
- package/dist/cards-Sl3b40Mv.d.ts +0 -13
- package/dist/chunk-7YAHLYBR.js +0 -481
- package/dist/chunk-7YAHLYBR.js.map +0 -1
- package/dist/chunk-FDNZTDD6.js.map +0 -1
- package/dist/chunk-GKKBPPSW.js.map +0 -1
- package/dist/chunk-I46YJSOD.js +0 -1
- package/dist/chunk-MKXPVOUT.js.map +0 -1
- package/dist/chunk-T52J5RMF.js +0 -1
- package/dist/chunk-TDSWKVZ4.js.map +0 -1
- package/dist/chunk-U5C6BONG.js +0 -34
- package/dist/chunk-U5C6BONG.js.map +0 -1
- package/dist/chunk-WYPQ3GG5.js.map +0 -1
- package/dist/generated/runtime/primitives.d.ts +0 -12
- package/dist/generated/runtime/primitives.js +0 -180
- package/dist/generated/runtime/primitives.js.map +0 -1
- package/dist/generated/runtime-api.d.ts +0 -3
- package/dist/generated/runtime-api.js +0 -2
- package/dist/generated/runtime.d.ts +0 -14
- package/dist/generated/runtime.js +0 -18
- package/dist/generated/runtime.js.map +0 -1
- package/dist/generated/workspace-contract.d.ts +0 -14
- package/dist/generated/workspace-contract.js +0 -14
- package/dist/generated/workspace-contract.js.map +0 -1
- package/dist/infrastructure/reducer-bundle-abi.js.map +0 -1
- package/dist/infrastructure/workspace-codegen.d.ts +0 -53
- package/dist/infrastructure/workspace-codegen.js.map +0 -1
- package/dist/manifest-contract-BNHVGFtU.d.ts +0 -9
- package/dist/primitive-props-DpKs-GCr.d.ts +0 -11
- package/dist/runtime/types/runtime-api.d.ts +0 -1
- package/dist/runtime/types/runtime-api.js +0 -2
- package/dist/runtime-api-3dshj6kK.d.ts +0 -101
- package/dist/slots-1GPGihk8.d.ts +0 -8
- package/src/generated/reducer-contract/builders.ts +0 -90
- package/src/generated/reducer-contract/version.ts +0 -9
- package/src/generated/reducer-contract/wire.ts +0 -100
- package/src/generated/reducer-contract/zod.ts +0 -103
- package/src/generated/runtime/primitives.ts +0 -2
- package/src/generated/runtime-api.ts +0 -5
- package/src/generated/runtime.ts +0 -35
- package/src/generated/workspace-contract.ts +0 -2
- package/src/index.ts +0 -7
- package/src/infrastructure/reducer-bundle-abi.ts +0 -8
- package/src/infrastructure/reducer-contract/bundle.ts +0 -37
- package/src/infrastructure/workspace-codegen/hex-geometry.ts +0 -69
- package/src/infrastructure/workspace-codegen/index.ts +0 -64
- package/src/infrastructure/workspace-codegen/manifest-contract.ts +0 -6632
- package/src/infrastructure/workspace-codegen/manifest-validation.ts +0 -795
- package/src/infrastructure/workspace-codegen/ownership.ts +0 -131
- package/src/infrastructure/workspace-codegen/preset-card-sets.ts +0 -169
- package/src/infrastructure/workspace-codegen/seeds.ts +0 -1705
- package/src/infrastructure/workspace-codegen.ts +0 -1
- package/src/package-set.ts +0 -19
- package/src/reducer/authoring/contract.ts +0 -157
- package/src/reducer/authoring/effect.ts +0 -224
- package/src/reducer/authoring/game.ts +0 -23
- package/src/reducer/authoring/interaction.ts +0 -98
- package/src/reducer/authoring/phase.ts +0 -300
- package/src/reducer/authoring/types.ts +0 -70
- package/src/reducer/authoring/validation.ts +0 -382
- package/src/reducer/authoring/view-stage.ts +0 -68
- package/src/reducer/authoring.ts +0 -29
- package/src/reducer/bundle/ingress-bundle.ts +0 -491
- package/src/reducer/bundle/trusted/engine-instruction-resolver.ts +0 -254
- package/src/reducer/bundle/trusted/flow-instruction-resolver.ts +0 -73
- package/src/reducer/bundle/trusted/instruction-runner.ts +0 -414
- package/src/reducer/bundle/trusted/interaction-authorization.ts +0 -137
- package/src/reducer/bundle/trusted/interaction-collectors.ts +0 -859
- package/src/reducer/bundle/trusted/interaction-decision.ts +0 -747
- package/src/reducer/bundle/trusted/interaction-resolver.ts +0 -95
- package/src/reducer/bundle/trusted/interaction-types.ts +0 -171
- package/src/reducer/bundle/trusted/lifecycle-runner.ts +0 -427
- package/src/reducer/bundle/trusted/projection-builder.ts +0 -356
- package/src/reducer/bundle/trusted/projection-context.ts +0 -39
- package/src/reducer/bundle/trusted/rng-sampler.ts +0 -150
- package/src/reducer/bundle/trusted/runtime-registry.ts +0 -120
- package/src/reducer/bundle/trusted/runtime-scope.ts +0 -336
- package/src/reducer/bundle/trusted/simultaneous-player.ts +0 -97
- package/src/reducer/bundle/trusted/stage-resolver.ts +0 -87
- package/src/reducer/bundle/trusted/static-projection.ts +0 -116
- package/src/reducer/bundle/trusted/trusted-runtime-args.ts +0 -97
- package/src/reducer/bundle/trusted/trusted-runtime-result.ts +0 -39
- package/src/reducer/bundle/trusted/trusted-setup-profiles.ts +0 -43
- package/src/reducer/bundle/trusted/trusted-state-codec.ts +0 -48
- package/src/reducer/bundle/trusted-bundle.ts +0 -97
- package/src/reducer/bundle/types.ts +0 -171
- package/src/reducer/bundle.ts +0 -2
- package/src/reducer/client-param-schemas.ts +0 -57
- package/src/reducer/compose.ts +0 -34
- package/src/reducer/core/runtime-input.ts +0 -30
- package/src/reducer/core/runtime-instruction.ts +0 -59
- package/src/reducer/core/types.ts +0 -62
- package/src/reducer/definition-index.ts +0 -277
- package/src/reducer/derived.ts +0 -106
- package/src/reducer/effects.ts +0 -92
- package/src/reducer/engine/runtime-instruction-engine.ts +0 -155
- package/src/reducer/ingress/decode-runtime-input.ts +0 -7
- package/src/reducer/ingress/decode-session-state.ts +0 -9
- package/src/reducer/ingress/encode-session-state.ts +0 -6
- package/src/reducer/ingress/input-codec.ts +0 -18
- package/src/reducer/ingress/phase-schemas.ts +0 -62
- package/src/reducer/ingress/raw-types.ts +0 -107
- package/src/reducer/ingress/runtime-codec.ts +0 -14
- package/src/reducer/ingress/runtime-payload.ts +0 -13
- package/src/reducer/ingress/session-codec.ts +0 -392
- package/src/reducer/ingress/types.ts +0 -6
- package/src/reducer/inputs/boardInput.ts +0 -217
- package/src/reducer/inputs/boardTarget.ts +0 -190
- package/src/reducer/inputs/cardInput.ts +0 -86
- package/src/reducer/inputs/cardTarget.ts +0 -101
- package/src/reducer/inputs/choiceTarget.ts +0 -104
- package/src/reducer/inputs/defineInputs.ts +0 -71
- package/src/reducer/inputs/formInput.ts +0 -809
- package/src/reducer/inputs/many.ts +0 -120
- package/src/reducer/inputs/promptInput.ts +0 -87
- package/src/reducer/inputs/rngInput.ts +0 -58
- package/src/reducer/inputs/targetRule.ts +0 -123
- package/src/reducer/inputs.ts +0 -41
- package/src/reducer/model/definition.ts +0 -1072
- package/src/reducer/model/extract.ts +0 -745
- package/src/reducer/model/manifest.ts +0 -570
- package/src/reducer/model/queries.ts +0 -641
- package/src/reducer/model/runtime.ts +0 -264
- package/src/reducer/model/spec.ts +0 -1386
- package/src/reducer/model/table.ts +0 -260
- package/src/reducer/model.ts +0 -7
- package/src/reducer/ops.ts +0 -1034
- package/src/reducer/parse-utils.ts +0 -28
- package/src/reducer/per-player.ts +0 -422
- package/src/reducer/rng.ts +0 -69
- package/src/reducer/schema-helpers.ts +0 -185
- package/src/reducer/setup-bootstrap-helpers.ts +0 -171
- package/src/reducer/setup-bootstrap.ts +0 -481
- package/src/reducer/table-ops.ts +0 -2671
- package/src/reducer/table-queries.ts +0 -372
- package/src/reducer/transaction.ts +0 -120
- package/src/reducer.ts +0 -314
- package/src/runtime/primitives.ts +0 -1
- package/src/runtime/types/runtime-api.ts +0 -1
- package/src/runtime/workspace-contract.ts +0 -32
- package/src/runtime-internal/components/InteractionForm.tsx +0 -1309
- package/src/runtime-internal/components/PluginRuntime.tsx +0 -103
- package/src/runtime-internal/components/board/target-layer.ts +0 -70
- package/src/runtime-internal/context/ClientParamSchemaContext.tsx +0 -44
- package/src/runtime-internal/context/InteractionDraftContext.tsx +0 -279
- package/src/runtime-internal/context/PluginSessionContext.tsx +0 -47
- package/src/runtime-internal/context/PluginStateContext.tsx +0 -262
- package/src/runtime-internal/context/RuntimeContext.tsx +0 -96
- package/src/runtime-internal/defaults/components.tsx +0 -409
- package/src/runtime-internal/defaults/index.ts +0 -11
- package/src/runtime-internal/errors/ValidationError.ts +0 -29
- package/src/runtime-internal/hooks/useActivePlayers.ts +0 -33
- package/src/runtime-internal/hooks/useBoardInteractions.ts +0 -665
- package/src/runtime-internal/hooks/useGameSelector.ts +0 -105
- package/src/runtime-internal/hooks/useGameView.ts +0 -9
- package/src/runtime-internal/hooks/useInteractionByKey.ts +0 -354
- package/src/runtime-internal/hooks/useInteractionHandle.ts +0 -438
- package/src/runtime-internal/hooks/useIsMyTurn.ts +0 -20
- package/src/runtime-internal/hooks/useLobby.ts +0 -76
- package/src/runtime-internal/hooks/useMe.ts +0 -48
- package/src/runtime-internal/hooks/usePlayerInfo.ts +0 -28
- package/src/runtime-internal/hooks/usePlayerTurnOrder.ts +0 -23
- package/src/runtime-internal/hooks/usePluginRuntime.ts +0 -147
- package/src/runtime-internal/hooks/useSeatInbox.ts +0 -61
- package/src/runtime-internal/hooks/useSimultaneousPhase.ts +0 -10
- package/src/runtime-internal/index.ts +0 -42
- package/src/runtime-internal/internal.ts +0 -43
- package/src/runtime-internal/plugin-styles.css +0 -250
- package/src/runtime-internal/primitives/board.tsx +0 -459
- package/src/runtime-internal/primitives/dialog-lifecycle.ts +0 -58
- package/src/runtime-internal/primitives/dice.tsx +0 -79
- package/src/runtime-internal/primitives/game-ui-provider.tsx +0 -35
- package/src/runtime-internal/primitives/game.tsx +0 -387
- package/src/runtime-internal/primitives/hand-intent-adapter.ts +0 -147
- package/src/runtime-internal/primitives/hand-surface.tsx +0 -594
- package/src/runtime-internal/primitives/index.ts +0 -196
- package/src/runtime-internal/primitives/interaction-form-binding.tsx +0 -56
- package/src/runtime-internal/primitives/interaction-submit.ts +0 -90
- package/src/runtime-internal/primitives/interaction.tsx +0 -987
- package/src/runtime-internal/primitives/phase.tsx +0 -43
- package/src/runtime-internal/primitives/player-roster.tsx +0 -302
- package/src/runtime-internal/primitives/primitive-props.tsx +0 -101
- package/src/runtime-internal/primitives/prompt.tsx +0 -255
- package/src/runtime-internal/primitives/ui.tsx +0 -60
- package/src/runtime-internal/primitives/zone.tsx +0 -791
- package/src/runtime-internal/reducer.ts +0 -30
- package/src/runtime-internal/runtime/createPluginRuntimeAPI.ts +0 -605
- package/src/runtime-internal/types/plugin-state.ts +0 -508
- package/src/runtime-internal/types/reducer-state.ts +0 -24
- package/src/runtime-internal/types/runtime-api.ts +0 -114
- package/src/runtime-internal/ui-contract.ts +0 -519
- package/src/runtime-internal/utils/card-intent-adapter.ts +0 -546
- package/src/runtime-internal/utils/interaction-inputs.ts +0 -492
- package/src/runtime-internal/utils/interaction-labels.ts +0 -23
- package/src/runtime-internal/utils/interaction-router.ts +0 -273
- package/src/runtime-internal/utils/interaction-status.ts +0 -74
- package/src/runtime-internal/workspace-contract.ts +0 -1170
- package/src/runtime.ts +0 -34
- package/src/testing/create-expect-api.ts +0 -352
- package/src/testing/create-test-runtime.ts +0 -381
- package/src/testing/definitions.ts +0 -127
- package/src/testing/index.ts +0 -3
- package/src/testing.ts +0 -1
- package/src/type-stubs/manifest-contract.d.ts +0 -42
- package/src/type-stubs/manifest-contract.js +0 -72
- package/src/type-stubs/ui-contract.d.ts +0 -5
- package/src/type-stubs/ui-contract.js +0 -1
- package/src/types/authoring-card-properties.type-test.ts +0 -266
- package/src/types/authoring.ts +0 -1282
- package/src/types/cards.ts +0 -19
- package/src/types/contracts.ts +0 -1550
- package/src/types/generated-helpers.ts +0 -35
- package/src/types/index.ts +0 -147
- package/src/types/slots.ts +0 -11
- package/src/types.ts +0 -1
- package/src/ui/components/ActionButton.tsx +0 -97
- package/src/ui/components/ActionPanel.tsx +0 -315
- package/src/ui/components/Card.tsx +0 -378
- package/src/ui/components/CardDragSurface.tsx +0 -1076
- package/src/ui/components/ChromeSuppressionContext.tsx +0 -70
- package/src/ui/components/CostDisplay.tsx +0 -145
- package/src/ui/components/DiceRoller.tsx +0 -581
- package/src/ui/components/Drawer.tsx +0 -180
- package/src/ui/components/ErrorBoundary.tsx +0 -275
- package/src/ui/components/GameEndDisplay.tsx +0 -398
- package/src/ui/components/GameSkeleton.tsx +0 -260
- package/src/ui/components/Hand.tsx +0 -468
- package/src/ui/components/HandDock.tsx +0 -299
- package/src/ui/components/HandView.tsx +0 -441
- package/src/ui/components/MobileHandTray.tsx +0 -381
- package/src/ui/components/MoreActions.tsx +0 -143
- package/src/ui/components/PhaseIndicator.tsx +0 -341
- package/src/ui/components/PlayArea.tsx +0 -146
- package/src/ui/components/PrimaryActionButton.tsx +0 -336
- package/src/ui/components/PrimaryButton.tsx +0 -45
- package/src/ui/components/ResourceCounter.tsx +0 -270
- package/src/ui/components/StagingZone.tsx +0 -134
- package/src/ui/components/ThemedButton.tsx +0 -113
- package/src/ui/components/Toast.tsx +0 -264
- package/src/ui/components/board/HexGrid.tsx +0 -1294
- package/src/ui/components/board/NetworkGraph.tsx +0 -476
- package/src/ui/components/board/SlotSystem.tsx +0 -388
- package/src/ui/components/board/SquareGrid.tsx +0 -1165
- package/src/ui/components/board/TrackBoard.tsx +0 -496
- package/src/ui/components/board/ZoneMap.tsx +0 -448
- package/src/ui/components/board/hex-board-view.ts +0 -123
- package/src/ui/components/board/index.ts +0 -142
- package/src/ui/components/board/interaction-accessibility.ts +0 -21
- package/src/ui/components/board/target-layer.ts +0 -66
- package/src/ui/components/card-render-content.type-test.ts +0 -27
- package/src/ui/components/hand-layout-math.ts +0 -163
- package/src/ui/components/hand-pointer-engine.ts +0 -413
- package/src/ui/components/index.ts +0 -245
- package/src/ui/components.ts +0 -1
- package/src/ui/defaults/components.tsx +0 -106
- package/src/ui/defaults/index.ts +0 -8
- package/src/ui/defaults.ts +0 -1
- package/src/ui/errors/ValidationError.ts +0 -29
- package/src/ui/helpers/cards.ts +0 -19
- package/src/ui/helpers/track-board.ts +0 -211
- package/src/ui/hooks/useBoardTopology.ts +0 -316
- package/src/ui/hooks/useCards.ts +0 -10
- package/src/ui/hooks/useHandCardPointer.ts +0 -381
- package/src/ui/hooks/useHandLayout.ts +0 -378
- package/src/ui/hooks/useHandPresentation.ts +0 -121
- package/src/ui/hooks/useHexBoard.ts +0 -74
- package/src/ui/hooks/useHexGrid.ts +0 -185
- package/src/ui/hooks/useIsMobile.ts +0 -35
- package/src/ui/hooks/usePanZoom.ts +0 -278
- package/src/ui/hooks/useSquareBoard.ts +0 -124
- package/src/ui/hooks/useSquareGrid.ts +0 -328
- package/src/ui/index.ts +0 -98
- package/src/ui/internal/ui/alert.tsx +0 -51
- package/src/ui/internal/ui/button.tsx +0 -58
- package/src/ui/internal/ui/dialog.tsx +0 -134
- package/src/ui/internal/ui/input.tsx +0 -21
- package/src/ui/internal/ui/label.tsx +0 -21
- package/src/ui/internal/ui/select.tsx +0 -129
- package/src/ui/internal/ui/tooltip.tsx +0 -54
- package/src/ui/internal/ui/utils.ts +0 -5
- package/src/ui/plugin-styles.css +0 -250
- package/src/ui/primitives/dialog-lifecycle.ts +0 -58
- package/src/ui/primitives/dice.tsx +0 -79
- package/src/ui/primitives/primitive-props.tsx +0 -101
- package/src/ui/theme/ThemeProvider.tsx +0 -252
- package/src/ui/theme/board.ts +0 -61
- package/src/ui/theme/css-vars.ts +0 -105
- package/src/ui/theme/derive.ts +0 -240
- package/src/ui/theme/index.ts +0 -61
- package/src/ui/theme/presets/arcade.ts +0 -261
- package/src/ui/theme/presets/studio.ts +0 -261
- package/src/ui/theme/presets/tabletop.ts +0 -266
- package/src/ui/theme/tokens.ts +0 -392
- package/src/ui/types/hex-color.ts +0 -20
- package/src/ui/types/player-state.ts +0 -463
- package/src/ui/types/tiled-board.ts +0 -785
- package/src/ui/types/visual-state.ts +0 -137
- package/src/ui.ts +0 -1
- /package/dist/{chunk-I46YJSOD.js.map → browser-interaction.js.map} +0 -0
- /package/dist/{chunk-KAELH4KC.js.map → chunk-3RQEICD3.js.map} +0 -0
- /package/dist/{chunk-T52J5RMF.js.map → codegen.js.map} +0 -0
- /package/dist/{generated/runtime-api.js.map → reducer-contract.js.map} +0 -0
- /package/dist/runtime/{types/runtime-api.js.map → runtime-api.js.map} +0 -0
- /package/dist/ui/{types/player-state.js → player-state.js} +0 -0
- /package/dist/ui/{types/player-state.js.map → player-state.js.map} +0 -0
package/dist/reducer.d.ts
CHANGED
|
@@ -1,7 +1,6 @@
|
|
|
1
1
|
import { z } from 'zod';
|
|
2
|
-
import {
|
|
3
|
-
import {
|
|
4
|
-
import { R as ReducerBundleContract } from './bundle-CDd5FKeD.js';
|
|
2
|
+
import { CardCollection, ViewCard, ViewSlotOccupant } from './types.js';
|
|
3
|
+
import { a as ReducerBundleContract } from './index.d-BGqVifr_.js';
|
|
5
4
|
|
|
6
5
|
/**
|
|
7
6
|
* Opaque brand applied to a runtime player identifier.
|
|
@@ -2311,6 +2310,7 @@ type EffectContinuationCallable<DataSchema extends AnySchema, State extends {
|
|
|
2311
2310
|
currentPhase: string;
|
|
2312
2311
|
};
|
|
2313
2312
|
}, Manifest extends ManifestContract<TableOfState<State>>, ContinuationId extends string = string, Kind extends ResumableEffectKind = ResumableEffectKind> = ContinuationCallable<DataSchema, State, Manifest, ContinuationId, Kind>;
|
|
2313
|
+
|
|
2314
2314
|
/**
|
|
2315
2315
|
* `rollDie` effect. Resolves a `rollDie` wire effect. `reduce` / `context`
|
|
2316
2316
|
* are both optional so authors can fire-and-forget a die roll without
|
|
@@ -2373,181 +2373,7 @@ type EffectMap<State extends {
|
|
|
2373
2373
|
currentPhase: string;
|
|
2374
2374
|
};
|
|
2375
2375
|
}, Manifest extends ManifestContract<TableOfState<State>>> = Record<string, EffectDefinition<State, Manifest>>;
|
|
2376
|
-
|
|
2377
|
-
table: RuntimeTableRecord;
|
|
2378
|
-
flow: {
|
|
2379
|
-
currentPhase: string;
|
|
2380
|
-
};
|
|
2381
|
-
}> = {
|
|
2382
|
-
playerId: PlayerIdOfState<State>;
|
|
2383
|
-
params: ParamsOf<Collectors>;
|
|
2384
|
-
};
|
|
2385
|
-
type SimultaneousResolveArgs<Collectors extends Record<string, InputCollector>, State extends {
|
|
2386
|
-
table: RuntimeTableRecord;
|
|
2387
|
-
flow: {
|
|
2388
|
-
currentPhase: string;
|
|
2389
|
-
};
|
|
2390
|
-
}, Manifest extends ManifestContract<TableOfState<State>>> = ActionContext<State, Manifest> & RuntimeHelpers<State> & MutationRuntimeHelpers & {
|
|
2391
|
-
state: State;
|
|
2392
|
-
submissions: Record<PlayerIdOfState<State>, SimultaneousSubmission<Collectors, State>>;
|
|
2393
|
-
submittedPlayerIds: PlayerIdOfState<State>[];
|
|
2394
|
-
waitingPlayerIds: PlayerIdOfState<State>[];
|
|
2395
|
-
};
|
|
2396
|
-
type SimultaneousSubmitSpec<Collectors extends Record<string, InputCollector> = Record<string, InputCollector>, State extends {
|
|
2397
|
-
table: RuntimeTableRecord;
|
|
2398
|
-
flow: {
|
|
2399
|
-
currentPhase: string;
|
|
2400
|
-
};
|
|
2401
|
-
} = {
|
|
2402
|
-
table: RuntimeTableRecord;
|
|
2403
|
-
flow: {
|
|
2404
|
-
currentPhase: string;
|
|
2405
|
-
};
|
|
2406
|
-
}, Manifest extends ManifestContract<TableOfState<State>> = ManifestContract<TableOfState<State>>> = Omit<InteractionSpec<Collectors, State, Manifest>, "reduce"> & {
|
|
2407
|
-
/**
|
|
2408
|
-
* Optional compatibility slot for callers that reuse `defineInteraction`.
|
|
2409
|
-
* The simultaneous phase barrier stores submissions and invokes the
|
|
2410
|
-
* phase-level `resolve`; this per-submission reducer is intentionally
|
|
2411
|
-
* ignored when present.
|
|
2412
|
-
*/
|
|
2413
|
-
reduce?: InteractionSpec<Collectors, State, Manifest>["reduce"];
|
|
2414
|
-
};
|
|
2415
|
-
type PhaseDefinitionCommon<PhaseStateSchema extends SchemaLike<object>, State extends {
|
|
2416
|
-
table: RuntimeTableRecord;
|
|
2417
|
-
flow: {
|
|
2418
|
-
currentPhase: string;
|
|
2419
|
-
};
|
|
2420
|
-
phase: object;
|
|
2421
|
-
}, Manifest extends ManifestContract<TableOfState<State>>> = {
|
|
2422
|
-
name?: string;
|
|
2423
|
-
state: PhaseStateSchema;
|
|
2424
|
-
initialState?: (ctx: {
|
|
2425
|
-
manifest: Manifest;
|
|
2426
|
-
state: State;
|
|
2427
|
-
playerIds: PlayerIdOfState<State>[];
|
|
2428
|
-
setup: SetupSelectionOfManifest<Manifest> | null;
|
|
2429
|
-
}) => z.infer<PhaseStateSchema>;
|
|
2430
|
-
enter?: BivariantCallback<PhaseEnterArgs<ScopedPhaseState<State, z.infer<PhaseStateSchema>>, Manifest>, ReducerResult<ScopedPhaseState<State, z.infer<PhaseStateSchema>>> | void>;
|
|
2431
|
-
};
|
|
2432
|
-
type AutoPhaseDefinition<PhaseStateSchema extends SchemaLike<object>, State extends {
|
|
2433
|
-
table: RuntimeTableRecord;
|
|
2434
|
-
flow: {
|
|
2435
|
-
currentPhase: string;
|
|
2436
|
-
};
|
|
2437
|
-
phase: object;
|
|
2438
|
-
}, Manifest extends ManifestContract<TableOfState<State>>> = PhaseDefinitionCommon<PhaseStateSchema, State, Manifest> & {
|
|
2439
|
-
kind: "auto";
|
|
2440
|
-
actor?: never;
|
|
2441
|
-
actors?: never;
|
|
2442
|
-
submit?: never;
|
|
2443
|
-
canResubmit?: never;
|
|
2444
|
-
resolve?: never;
|
|
2445
|
-
effects?: never;
|
|
2446
|
-
interactions?: never;
|
|
2447
|
-
stages?: never;
|
|
2448
|
-
zones?: never;
|
|
2449
|
-
cardActions?: never;
|
|
2450
|
-
};
|
|
2451
|
-
type PlayerPhaseDefinition<PhaseStateSchema extends SchemaLike<object>, State extends {
|
|
2452
|
-
table: RuntimeTableRecord;
|
|
2453
|
-
flow: {
|
|
2454
|
-
currentPhase: string;
|
|
2455
|
-
};
|
|
2456
|
-
phase: object;
|
|
2457
|
-
}, Manifest extends ManifestContract<TableOfState<State>>, Effects extends EffectMap<State, Manifest> = Record<string, never>, Interactions extends InteractionMap<ScopedPhaseState<State, z.infer<PhaseStateSchema>>, Manifest> = Record<string, never>, Stages extends StageMap<ScopedPhaseState<State, z.infer<PhaseStateSchema>>, Manifest> = Record<string, never>, Zones extends PhaseZoneList<Manifest> = readonly [], CardActions extends CardActionMap<ScopedPhaseState<State, z.infer<PhaseStateSchema>>, Manifest> = Record<string, never>> = PhaseDefinitionCommon<PhaseStateSchema, State, Manifest> & {
|
|
2458
|
-
kind: "player";
|
|
2459
|
-
/**
|
|
2460
|
-
* Default actor selector for interactions in this phase. When omitted the
|
|
2461
|
-
* runtime falls back to `flow.activePlayers`, preserving the existing turn
|
|
2462
|
-
* ownership model. Returning multiple players models simultaneous actors.
|
|
2463
|
-
*/
|
|
2464
|
-
actor?: ActorSelector<ScopedPhaseState<State, z.infer<PhaseStateSchema>>, Manifest>;
|
|
2465
|
-
actors?: never;
|
|
2466
|
-
submit?: never;
|
|
2467
|
-
canResubmit?: never;
|
|
2468
|
-
resolve?: never;
|
|
2469
|
-
effects?: Effects;
|
|
2470
|
-
interactions?: Interactions;
|
|
2471
|
-
stages?: Stages;
|
|
2472
|
-
zones?: Zones;
|
|
2473
|
-
cardActions?: CardActions;
|
|
2474
|
-
};
|
|
2475
|
-
type SimultaneousPlayerPhaseDefinition<PhaseStateSchema extends SchemaLike<object>, State extends {
|
|
2476
|
-
table: RuntimeTableRecord;
|
|
2477
|
-
flow: {
|
|
2478
|
-
currentPhase: string;
|
|
2479
|
-
};
|
|
2480
|
-
phase: object;
|
|
2481
|
-
}, Manifest extends ManifestContract<TableOfState<State>>, SubmitCollectors extends Record<string, InputCollector> = Record<string, InputCollector>, Effects extends EffectMap<State, Manifest> = Record<string, never>, Interactions extends InteractionMap<ScopedPhaseState<State, z.infer<PhaseStateSchema>>, Manifest> = Record<string, never>, Stages extends StageMap<ScopedPhaseState<State, z.infer<PhaseStateSchema>>, Manifest> = Record<string, never>, Zones extends PhaseZoneList<Manifest> = readonly [], CardActions extends CardActionMap<ScopedPhaseState<State, z.infer<PhaseStateSchema>>, Manifest> = Record<string, never>> = PhaseDefinitionCommon<PhaseStateSchema, State, Manifest> & {
|
|
2482
|
-
kind: "simultaneousPlayer";
|
|
2483
|
-
actor?: never;
|
|
2484
|
-
/**
|
|
2485
|
-
* Actor selector for `kind: "simultaneousPlayer"` phases. This is an alias
|
|
2486
|
-
* of `actor` with wording that matches simultaneous submission semantics.
|
|
2487
|
-
*/
|
|
2488
|
-
actors: ActorSelector<ScopedPhaseState<State, z.infer<PhaseStateSchema>>, Manifest>;
|
|
2489
|
-
/**
|
|
2490
|
-
* Canonical sealed submission interaction for simultaneous phases. It is
|
|
2491
|
-
* projected like a normal interaction, but the trusted runtime stores the
|
|
2492
|
-
* parsed params until every actor has submitted, then calls `resolve`.
|
|
2493
|
-
*/
|
|
2494
|
-
submit: SimultaneousSubmitSpec<SubmitCollectors, ScopedPhaseState<State, z.infer<PhaseStateSchema>>, Manifest>;
|
|
2495
|
-
/**
|
|
2496
|
-
* When false or omitted, each actor can submit once per simultaneous
|
|
2497
|
-
* barrier. Set true to allow replacing the sealed submission before every
|
|
2498
|
-
* required actor has submitted.
|
|
2499
|
-
*/
|
|
2500
|
-
canResubmit?: boolean;
|
|
2501
|
-
/**
|
|
2502
|
-
* Batch resolver invoked once all simultaneous actors have submitted. The
|
|
2503
|
-
* submitted params are passed together so game state mutates from one
|
|
2504
|
-
* deterministic base state instead of one player at a time.
|
|
2505
|
-
*/
|
|
2506
|
-
resolve: BivariantCallback<SimultaneousResolveArgs<SubmitCollectors, ScopedPhaseState<State, z.infer<PhaseStateSchema>>, Manifest>, ReducerResult<ScopedPhaseState<State, z.infer<PhaseStateSchema>>>>;
|
|
2507
|
-
effects?: Effects;
|
|
2508
|
-
interactions?: Interactions;
|
|
2509
|
-
stages?: Stages;
|
|
2510
|
-
zones?: Zones;
|
|
2511
|
-
cardActions?: CardActions;
|
|
2512
|
-
};
|
|
2513
|
-
type PhaseDefinition<PhaseStateSchema extends SchemaLike<object>, State extends {
|
|
2514
|
-
table: RuntimeTableRecord;
|
|
2515
|
-
flow: {
|
|
2516
|
-
currentPhase: string;
|
|
2517
|
-
};
|
|
2518
|
-
phase: object;
|
|
2519
|
-
}, Manifest extends ManifestContract<TableOfState<State>>, SubmitCollectors extends Record<string, InputCollector> = Record<string, InputCollector>, Effects extends EffectMap<State, Manifest> = Record<string, never>, Interactions extends InteractionMap<ScopedPhaseState<State, z.infer<PhaseStateSchema>>, Manifest> = Record<string, never>, Stages extends StageMap<ScopedPhaseState<State, z.infer<PhaseStateSchema>>, Manifest> = Record<string, never>, Zones extends PhaseZoneList<Manifest> = readonly [], CardActions extends CardActionMap<ScopedPhaseState<State, z.infer<PhaseStateSchema>>, Manifest> = Record<string, never>> = AutoPhaseDefinition<PhaseStateSchema, State, Manifest> | PlayerPhaseDefinition<PhaseStateSchema, State, Manifest, Effects, Interactions, Stages, Zones, CardActions> | SimultaneousPlayerPhaseDefinition<PhaseStateSchema, State, Manifest, SubmitCollectors, Effects, Interactions, Stages, Zones, CardActions>;
|
|
2520
|
-
type ViewDefinition<State extends {
|
|
2521
|
-
table: RuntimeTableRecord;
|
|
2522
|
-
flow: {
|
|
2523
|
-
currentPhase: string;
|
|
2524
|
-
};
|
|
2525
|
-
}, Manifest extends ManifestContract<TableOfState<State>>, Projection = unknown> = {
|
|
2526
|
-
project: (args: ActionContext<State, Manifest> & RuntimeHelpers<State> & {
|
|
2527
|
-
state: State;
|
|
2528
|
-
playerId: PlayerIdOfState<State>;
|
|
2529
|
-
runtime: State extends {
|
|
2530
|
-
runtime: infer RuntimeStateValue;
|
|
2531
|
-
} ? RuntimeStateValue : never;
|
|
2532
|
-
}) => Projection;
|
|
2533
|
-
};
|
|
2534
|
-
/**
|
|
2535
|
-
* Session-scoped, once-per-init view. The `project` callback receives only
|
|
2536
|
-
* the authored manifest — the mutable-state helpers (`state`, `playerId`,
|
|
2537
|
-
* `runtime`, `fx`, `ops`, `accept`, `reject`, `q`) that `ViewDefinition.project`
|
|
2538
|
-
* exposes are structurally absent, so an author cannot accidentally project
|
|
2539
|
-
* per-tick state into the payload. The host calls this once per reducer
|
|
2540
|
-
* session, caches the result, and merges it back into every seat view on
|
|
2541
|
-
* the client. Moving static board topology here is what lets the adapter
|
|
2542
|
-
* skip the ~87% of `projectSeatsDynamic` wall time that used to re-serialize
|
|
2543
|
-
* manifest-sourced fields on every input.
|
|
2544
|
-
*/
|
|
2545
|
-
type StaticViewDefinition<Manifest extends ManifestContract<RuntimeTableRecord>, Projection = unknown> = {
|
|
2546
|
-
project: (args: {
|
|
2547
|
-
manifest: Manifest;
|
|
2548
|
-
q: StaticViewQueries<Manifest>;
|
|
2549
|
-
}) => Projection;
|
|
2550
|
-
};
|
|
2376
|
+
|
|
2551
2377
|
type InputCollectorKind = "form" | "board-vertex" | "board-edge" | "board-tile" | "board-space" | "card" | "prompt" | "rng";
|
|
2552
2378
|
type TargetKind = "edge" | "vertex" | "space" | "tile" | "card";
|
|
2553
2379
|
type BoardInputCollectorKind = Exclude<InputCollectorKind, "form" | "card" | "prompt" | "rng">;
|
|
@@ -2766,6 +2592,7 @@ type EngineSampledCollectorKeys<Collectors extends Record<string, InputCollector
|
|
|
2766
2592
|
type ClientParamsOf<Collectors extends Record<string, InputCollector>> = {
|
|
2767
2593
|
[K in keyof Collectors as K extends EngineSampledCollectorKeys<Collectors> ? never : K]: Collectors[K] extends InputCollector<infer S> ? S extends SchemaLike<infer V> ? V : never : never;
|
|
2768
2594
|
};
|
|
2595
|
+
|
|
2769
2596
|
type InteractionReduceInput<Collectors extends Record<string, InputCollector>, State extends {
|
|
2770
2597
|
table: RuntimeTableRecord;
|
|
2771
2598
|
flow: {
|
|
@@ -3012,6 +2839,184 @@ type StageMap<State extends {
|
|
|
3012
2839
|
}, Manifest extends ManifestContract<TableOfState<State>>> = Record<string, StageSpec<State, Manifest>>;
|
|
3013
2840
|
type PhaseZoneList<Manifest extends ManifestContract<RuntimeTableRecord>> = readonly PlayerZoneIdOfManifest<Manifest>[];
|
|
3014
2841
|
|
|
2842
|
+
type SimultaneousSubmission<Collectors extends Record<string, InputCollector>, State extends {
|
|
2843
|
+
table: RuntimeTableRecord;
|
|
2844
|
+
flow: {
|
|
2845
|
+
currentPhase: string;
|
|
2846
|
+
};
|
|
2847
|
+
}> = {
|
|
2848
|
+
playerId: PlayerIdOfState<State>;
|
|
2849
|
+
params: ParamsOf<Collectors>;
|
|
2850
|
+
};
|
|
2851
|
+
type SimultaneousResolveArgs<Collectors extends Record<string, InputCollector>, State extends {
|
|
2852
|
+
table: RuntimeTableRecord;
|
|
2853
|
+
flow: {
|
|
2854
|
+
currentPhase: string;
|
|
2855
|
+
};
|
|
2856
|
+
}, Manifest extends ManifestContract<TableOfState<State>>> = ActionContext<State, Manifest> & RuntimeHelpers<State> & MutationRuntimeHelpers & {
|
|
2857
|
+
state: State;
|
|
2858
|
+
submissions: Record<PlayerIdOfState<State>, SimultaneousSubmission<Collectors, State>>;
|
|
2859
|
+
submittedPlayerIds: PlayerIdOfState<State>[];
|
|
2860
|
+
waitingPlayerIds: PlayerIdOfState<State>[];
|
|
2861
|
+
};
|
|
2862
|
+
type SimultaneousSubmitSpec<Collectors extends Record<string, InputCollector> = Record<string, InputCollector>, State extends {
|
|
2863
|
+
table: RuntimeTableRecord;
|
|
2864
|
+
flow: {
|
|
2865
|
+
currentPhase: string;
|
|
2866
|
+
};
|
|
2867
|
+
} = {
|
|
2868
|
+
table: RuntimeTableRecord;
|
|
2869
|
+
flow: {
|
|
2870
|
+
currentPhase: string;
|
|
2871
|
+
};
|
|
2872
|
+
}, Manifest extends ManifestContract<TableOfState<State>> = ManifestContract<TableOfState<State>>> = Omit<InteractionSpec<Collectors, State, Manifest>, "reduce"> & {
|
|
2873
|
+
/**
|
|
2874
|
+
* Optional compatibility slot for callers that reuse `defineInteraction`.
|
|
2875
|
+
* The simultaneous phase barrier stores submissions and invokes the
|
|
2876
|
+
* phase-level `resolve`; this per-submission reducer is intentionally
|
|
2877
|
+
* ignored when present.
|
|
2878
|
+
*/
|
|
2879
|
+
reduce?: InteractionSpec<Collectors, State, Manifest>["reduce"];
|
|
2880
|
+
};
|
|
2881
|
+
|
|
2882
|
+
type PhaseDefinitionCommon<PhaseStateSchema extends SchemaLike<object>, State extends {
|
|
2883
|
+
table: RuntimeTableRecord;
|
|
2884
|
+
flow: {
|
|
2885
|
+
currentPhase: string;
|
|
2886
|
+
};
|
|
2887
|
+
phase: object;
|
|
2888
|
+
}, Manifest extends ManifestContract<TableOfState<State>>> = {
|
|
2889
|
+
name?: string;
|
|
2890
|
+
state: PhaseStateSchema;
|
|
2891
|
+
initialState?: (ctx: {
|
|
2892
|
+
manifest: Manifest;
|
|
2893
|
+
state: State;
|
|
2894
|
+
playerIds: PlayerIdOfState<State>[];
|
|
2895
|
+
setup: SetupSelectionOfManifest<Manifest> | null;
|
|
2896
|
+
}) => z.infer<PhaseStateSchema>;
|
|
2897
|
+
enter?: BivariantCallback<PhaseEnterArgs<ScopedPhaseState<State, z.infer<PhaseStateSchema>>, Manifest>, ReducerResult<ScopedPhaseState<State, z.infer<PhaseStateSchema>>> | void>;
|
|
2898
|
+
};
|
|
2899
|
+
type AutoPhaseDefinition<PhaseStateSchema extends SchemaLike<object>, State extends {
|
|
2900
|
+
table: RuntimeTableRecord;
|
|
2901
|
+
flow: {
|
|
2902
|
+
currentPhase: string;
|
|
2903
|
+
};
|
|
2904
|
+
phase: object;
|
|
2905
|
+
}, Manifest extends ManifestContract<TableOfState<State>>> = PhaseDefinitionCommon<PhaseStateSchema, State, Manifest> & {
|
|
2906
|
+
kind: "auto";
|
|
2907
|
+
actor?: never;
|
|
2908
|
+
actors?: never;
|
|
2909
|
+
submit?: never;
|
|
2910
|
+
canResubmit?: never;
|
|
2911
|
+
resolve?: never;
|
|
2912
|
+
effects?: never;
|
|
2913
|
+
interactions?: never;
|
|
2914
|
+
stages?: never;
|
|
2915
|
+
zones?: never;
|
|
2916
|
+
cardActions?: never;
|
|
2917
|
+
};
|
|
2918
|
+
type PlayerPhaseDefinition<PhaseStateSchema extends SchemaLike<object>, State extends {
|
|
2919
|
+
table: RuntimeTableRecord;
|
|
2920
|
+
flow: {
|
|
2921
|
+
currentPhase: string;
|
|
2922
|
+
};
|
|
2923
|
+
phase: object;
|
|
2924
|
+
}, Manifest extends ManifestContract<TableOfState<State>>, Effects extends EffectMap<State, Manifest> = Record<string, never>, Interactions extends InteractionMap<ScopedPhaseState<State, z.infer<PhaseStateSchema>>, Manifest> = Record<string, never>, Stages extends StageMap<ScopedPhaseState<State, z.infer<PhaseStateSchema>>, Manifest> = Record<string, never>, Zones extends PhaseZoneList<Manifest> = readonly [], CardActions extends CardActionMap<ScopedPhaseState<State, z.infer<PhaseStateSchema>>, Manifest> = Record<string, never>> = PhaseDefinitionCommon<PhaseStateSchema, State, Manifest> & {
|
|
2925
|
+
kind: "player";
|
|
2926
|
+
/**
|
|
2927
|
+
* Default actor selector for interactions in this phase. When omitted the
|
|
2928
|
+
* runtime falls back to `flow.activePlayers`, preserving the existing turn
|
|
2929
|
+
* ownership model. Returning multiple players models simultaneous actors.
|
|
2930
|
+
*/
|
|
2931
|
+
actor?: ActorSelector<ScopedPhaseState<State, z.infer<PhaseStateSchema>>, Manifest>;
|
|
2932
|
+
actors?: never;
|
|
2933
|
+
submit?: never;
|
|
2934
|
+
canResubmit?: never;
|
|
2935
|
+
resolve?: never;
|
|
2936
|
+
effects?: Effects;
|
|
2937
|
+
interactions?: Interactions;
|
|
2938
|
+
stages?: Stages;
|
|
2939
|
+
zones?: Zones;
|
|
2940
|
+
cardActions?: CardActions;
|
|
2941
|
+
};
|
|
2942
|
+
type SimultaneousPlayerPhaseDefinition<PhaseStateSchema extends SchemaLike<object>, State extends {
|
|
2943
|
+
table: RuntimeTableRecord;
|
|
2944
|
+
flow: {
|
|
2945
|
+
currentPhase: string;
|
|
2946
|
+
};
|
|
2947
|
+
phase: object;
|
|
2948
|
+
}, Manifest extends ManifestContract<TableOfState<State>>, SubmitCollectors extends Record<string, InputCollector> = Record<string, InputCollector>, Effects extends EffectMap<State, Manifest> = Record<string, never>, Interactions extends InteractionMap<ScopedPhaseState<State, z.infer<PhaseStateSchema>>, Manifest> = Record<string, never>, Stages extends StageMap<ScopedPhaseState<State, z.infer<PhaseStateSchema>>, Manifest> = Record<string, never>, Zones extends PhaseZoneList<Manifest> = readonly [], CardActions extends CardActionMap<ScopedPhaseState<State, z.infer<PhaseStateSchema>>, Manifest> = Record<string, never>> = PhaseDefinitionCommon<PhaseStateSchema, State, Manifest> & {
|
|
2949
|
+
kind: "simultaneousPlayer";
|
|
2950
|
+
actor?: never;
|
|
2951
|
+
/**
|
|
2952
|
+
* Actor selector for `kind: "simultaneousPlayer"` phases. This is an alias
|
|
2953
|
+
* of `actor` with wording that matches simultaneous submission semantics.
|
|
2954
|
+
*/
|
|
2955
|
+
actors: ActorSelector<ScopedPhaseState<State, z.infer<PhaseStateSchema>>, Manifest>;
|
|
2956
|
+
/**
|
|
2957
|
+
* Canonical sealed submission interaction for simultaneous phases. It is
|
|
2958
|
+
* projected like a normal interaction, but the trusted runtime stores the
|
|
2959
|
+
* parsed params until every actor has submitted, then calls `resolve`.
|
|
2960
|
+
*/
|
|
2961
|
+
submit: SimultaneousSubmitSpec<SubmitCollectors, ScopedPhaseState<State, z.infer<PhaseStateSchema>>, Manifest>;
|
|
2962
|
+
/**
|
|
2963
|
+
* When false or omitted, each actor can submit once per simultaneous
|
|
2964
|
+
* barrier. Set true to allow replacing the sealed submission before every
|
|
2965
|
+
* required actor has submitted.
|
|
2966
|
+
*/
|
|
2967
|
+
canResubmit?: boolean;
|
|
2968
|
+
/**
|
|
2969
|
+
* Batch resolver invoked once all simultaneous actors have submitted. The
|
|
2970
|
+
* submitted params are passed together so game state mutates from one
|
|
2971
|
+
* deterministic base state instead of one player at a time.
|
|
2972
|
+
*/
|
|
2973
|
+
resolve: BivariantCallback<SimultaneousResolveArgs<SubmitCollectors, ScopedPhaseState<State, z.infer<PhaseStateSchema>>, Manifest>, ReducerResult<ScopedPhaseState<State, z.infer<PhaseStateSchema>>>>;
|
|
2974
|
+
effects?: Effects;
|
|
2975
|
+
interactions?: Interactions;
|
|
2976
|
+
stages?: Stages;
|
|
2977
|
+
zones?: Zones;
|
|
2978
|
+
cardActions?: CardActions;
|
|
2979
|
+
};
|
|
2980
|
+
type PhaseDefinition<PhaseStateSchema extends SchemaLike<object>, State extends {
|
|
2981
|
+
table: RuntimeTableRecord;
|
|
2982
|
+
flow: {
|
|
2983
|
+
currentPhase: string;
|
|
2984
|
+
};
|
|
2985
|
+
phase: object;
|
|
2986
|
+
}, Manifest extends ManifestContract<TableOfState<State>>, SubmitCollectors extends Record<string, InputCollector> = Record<string, InputCollector>, Effects extends EffectMap<State, Manifest> = Record<string, never>, Interactions extends InteractionMap<ScopedPhaseState<State, z.infer<PhaseStateSchema>>, Manifest> = Record<string, never>, Stages extends StageMap<ScopedPhaseState<State, z.infer<PhaseStateSchema>>, Manifest> = Record<string, never>, Zones extends PhaseZoneList<Manifest> = readonly [], CardActions extends CardActionMap<ScopedPhaseState<State, z.infer<PhaseStateSchema>>, Manifest> = Record<string, never>> = AutoPhaseDefinition<PhaseStateSchema, State, Manifest> | PlayerPhaseDefinition<PhaseStateSchema, State, Manifest, Effects, Interactions, Stages, Zones, CardActions> | SimultaneousPlayerPhaseDefinition<PhaseStateSchema, State, Manifest, SubmitCollectors, Effects, Interactions, Stages, Zones, CardActions>;
|
|
2987
|
+
|
|
2988
|
+
type ViewDefinition<State extends {
|
|
2989
|
+
table: RuntimeTableRecord;
|
|
2990
|
+
flow: {
|
|
2991
|
+
currentPhase: string;
|
|
2992
|
+
};
|
|
2993
|
+
}, Manifest extends ManifestContract<TableOfState<State>>, Projection = unknown> = {
|
|
2994
|
+
project: (args: ActionContext<State, Manifest> & RuntimeHelpers<State> & {
|
|
2995
|
+
state: State;
|
|
2996
|
+
playerId: PlayerIdOfState<State>;
|
|
2997
|
+
runtime: State extends {
|
|
2998
|
+
runtime: infer RuntimeStateValue;
|
|
2999
|
+
} ? RuntimeStateValue : never;
|
|
3000
|
+
}) => Projection;
|
|
3001
|
+
};
|
|
3002
|
+
/**
|
|
3003
|
+
* Session-scoped, once-per-init view. The `project` callback receives only
|
|
3004
|
+
* the authored manifest — the mutable-state helpers (`state`, `playerId`,
|
|
3005
|
+
* `runtime`, `fx`, `ops`, `accept`, `reject`, `q`) that `ViewDefinition.project`
|
|
3006
|
+
* exposes are structurally absent, so an author cannot accidentally project
|
|
3007
|
+
* per-tick state into the payload. The host calls this once per reducer
|
|
3008
|
+
* session, caches the result, and merges it back into every seat view on
|
|
3009
|
+
* the client. Moving static board topology here is what lets the adapter
|
|
3010
|
+
* skip the ~87% of `projectSeatsDynamic` wall time that used to re-serialize
|
|
3011
|
+
* manifest-sourced fields on every input.
|
|
3012
|
+
*/
|
|
3013
|
+
type StaticViewDefinition<Manifest extends ManifestContract<RuntimeTableRecord>, Projection = unknown> = {
|
|
3014
|
+
project: (args: {
|
|
3015
|
+
manifest: Manifest;
|
|
3016
|
+
q: StaticViewQueries<Manifest>;
|
|
3017
|
+
}) => Projection;
|
|
3018
|
+
};
|
|
3019
|
+
|
|
3015
3020
|
/**
|
|
3016
3021
|
* Structural upper bound for reducer game contracts accepted by the
|
|
3017
3022
|
* authoring-level `define*` factories. The `manifest` slot admits any
|
|
@@ -3771,12 +3776,13 @@ declare function seedSharedBoardSpace<Manifest extends GeneratedManifestContract
|
|
|
3771
3776
|
componentIds?: readonly (CardIdOfManifest<Manifest> | PieceIdOfManifest<Manifest> | DieIdOfManifest<Manifest>)[];
|
|
3772
3777
|
}): SetupBootstrapStep<Manifest>;
|
|
3773
3778
|
|
|
3779
|
+
declare function assertCardAllowedInContainer<Table extends RuntimeTableRecord, BoardId extends BoardIdOfTable<NoInfer<Table>>, ContainerId extends BoardContainerIdOfTable<NoInfer<Table>, BoardId>>(table: Table, boardId: BoardId, containerId: ContainerId, componentId: string): void;
|
|
3780
|
+
|
|
3774
3781
|
declare function setActivePlayers<State extends {
|
|
3775
3782
|
flow: {
|
|
3776
3783
|
activePlayers: PlayerIdOfState<State>[];
|
|
3777
3784
|
};
|
|
3778
3785
|
}>(state: State, activePlayers: PlayerIdOfState<State>[]): State;
|
|
3779
|
-
declare function assertCardAllowedInContainer<Table extends RuntimeTableRecord, BoardId extends BoardIdOfTable<NoInfer<Table>>, ContainerId extends BoardContainerIdOfTable<NoInfer<Table>, BoardId>>(table: Table, boardId: BoardId, containerId: ContainerId, componentId: string): void;
|
|
3780
3786
|
|
|
3781
3787
|
declare function createTableQueries<Table extends RuntimeTableRecord>(table: Table): TableQueries<Table>;
|
|
3782
3788
|
declare function createStateQueries<State extends {
|