@my-swu/simulator-client 0.1.3 → 0.1.5
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/generated/index.d.ts +3 -0
- package/dist/generated/schemas.d.ts +1 -1
- package/dist/generated/schemas.js +626 -0
- package/dist/generated/types/admin-match-debug-bundle.d.ts +1 -1
- package/dist/generated/types/admin-match-replay-response.d.ts +1 -1
- package/dist/generated/types/client-message.d.ts +1 -1
- package/dist/generated/types/common.d.ts +193 -0
- package/dist/generated/types/create-playground-share-response.d.ts +1 -0
- package/dist/generated/types/create-playground-share-response.js +2 -0
- package/dist/generated/types/game-command.d.ts +1 -1
- package/dist/generated/types/match-history-replay-response.d.ts +1 -1
- package/dist/generated/types/playground-export-payload.d.ts +1 -0
- package/dist/generated/types/playground-export-payload.js +2 -0
- package/dist/generated/types/server-message.d.ts +1 -1
- package/dist/generated/types/set-ai-paused-response.d.ts +1 -1
- package/dist/generated/types/set-playground-ai-seat-request.d.ts +1 -0
- package/dist/generated/types/set-playground-ai-seat-request.js +2 -0
- package/dist/generated/types/shared-match-history-replay-response.d.ts +1 -1
- package/dist/generated/types/welcome-payload.d.ts +1 -1
- package/dist/generated/version.d.ts +1 -1
- package/dist/generated/version.js +1 -1
- package/dist/index.d.ts +1 -0
- package/dist/match-session/controller.d.ts +1 -0
- package/dist/match-session/controller.js +3 -0
- package/dist/match-session/types.d.ts +2 -0
- package/dist/resources/admin.d.ts +3 -1
- package/dist/resources/admin.js +1 -0
- package/dist/resources/match-types.d.ts +11 -1
- package/dist/resources/matches.js +49 -0
- package/dist/validators.d.ts +4 -1
- package/package.json +1 -1
- package/schema/common.schema.json +491 -0
- package/schema/create-match-request.schema.json +5 -0
- package/schema/create-playground-share-response.schema.json +22 -0
- package/schema/game-command.schema.json +20 -0
- package/schema/game-state.schema.json +15 -0
- package/schema/manifest.json +4 -1
- package/schema/match-save-payload.schema.json +8 -0
- package/schema/playground-export-payload.schema.json +26 -0
- package/schema/route-manifest.json +58 -0
- package/schema/set-playground-ai-seat-request.schema.json +36 -0
|
@@ -1 +1 @@
|
|
|
1
|
-
export type { AbilityTarget, AbilityWindow, ActionAbilitySource, ActionAbilityView, ActiveEffectDescriptionView, ActiveEffectView, AdminMatchDebugBundle, AdminMatchSummary, AiDifficulty, AiOpponentConfig, AiTrilogyFormatMode, AttachmentMode, AttackChoiceView, AttackTarget, AvailableAttackView, CaptureOptionsView, CaptureSelection, CapturedUnitView, CardArena, CardChoiceResourcePaymentOptionView, CardDrawSource, CardInstanceView, ConstructedFormat, CurrentAttackStateView, CurrentAttackView, DeckInput, DeckPlacement, DeckRegistrationView, DelayedEffectDescriptionView, DelayedEffectOrderChoiceView, DelayedEffectOrderOptionView, DelayedEffectTimingView, DelayedEffectView, DistributionAssignment, DistributionDamageKindView, DistributionItemView, DistributionTargetView, DistributionTokenKindView, DynamicPowerLimit, EffectCardScopeView, EffectDurationView, EffectResolutionDraftStepView, EffectResolutionDraftView, EffectRestrictionView, EffectSequenceOrder, EffectSequenceView, EffectSourceView, EffectTargetView, ExploitOptionsView, FormatSeatView, FormatSetupInput, GameEvent, GameState, GameTimerActiveClockView, GameTimerReserveView, GameTimerStateView, HiddenCardChoiceMode, HiddenZoneKind, HistorySection, HistoryStatus, InitiativeChoiceReason, InitiativeState, InstructedAttackView, LeaderActionView, LeaderDeployActionView, LeaderDeployCostView, LeaderDeployMode, LeaderDeployThresholdBonus, LeaderStateView, LimitedEventView, LimitedSideboardPoolView, MatchEndReason, MatchFormat, MatchHistoryDeckSummary, MatchHistoryPlayerSummary, MatchHistoryReplayArchive, MatchPhase, MatchResult, MatchSavePayload, MatchSaveSeat, MatchSeriesView, MatchStatus, MctsConfigOverride, ModeChoiceView, NamedCardEffectDescriptionView, NullableDistributionTokenKindView, NullableSeatView, PendingAbilityAspectChoiceView, PendingAbilityAttackChoiceView, PendingAbilityCardChoiceView, PendingAbilityFamily, PendingAbilityModeChoiceInputKind, PendingAbilityModeChoiceView, PendingAbilityNameChoiceView, PendingAbilityOrderAbilityView, PendingAbilityOrderChoiceView, PendingAbilityOrderGroupView, PendingAbilityView, PendingChoiceView, PendingDistributionView, PendingUndoRequest, PlayActionView, PlayCardSourceView, PlayCardZone, PlayerTargetPattern, PresenceFilter, PromptProvenanceView, PromptState, RejectedPlayView, RelationFilter, ResourceCardView, ResourcePaymentOptionView, Seat, SeatDirection, SeatOfferIntent, SeatState, SelectionScope, SeriesEndReason, SeriesGameRecord, SeriesResultView, SharedCounterState, SimulatorReportResponse, SmuggleActionView, SmuggleKind, TargetGroupPurpose, TargetSelectionGroup, TargetSelectionPlanView, TriggerWindowView, TurnPassSource, TwinSunsCounter, TwinSunsCountersView, UndoCancelReason, UndoRequestReason, UniquenessFilter, UnitAbilitySuppressionView, UnitCopiedCardEntry, UnitDefeatCause, UnitExtremum, UnitFilter, UnitStateView, UpgradeStateView, } from './common.js';
|
|
1
|
+
export type { AbilityTarget, AbilityWindow, ActionAbilitySource, ActionAbilityView, ActiveEffectDescriptionView, ActiveEffectView, AdminMatchDebugBundle, AdminMatchSummary, AiDecisionDiagnostic, AiDecisionSearchMode, AiDifficulty, AiOpponentConfig, AiTrilogyFormatMode, AttachmentMode, AttackChoiceView, AttackTarget, AvailableAttackView, CaptureOptionsView, CaptureSelection, CapturedUnitView, CardArena, CardChoiceResourcePaymentOptionView, CardDrawSource, CardInstanceView, ConstructedFormat, CurrentAttackStateView, CurrentAttackView, DeckInput, DeckPlacement, DeckRegistrationView, DelayedEffectDescriptionView, DelayedEffectOrderChoiceView, DelayedEffectOrderOptionView, DelayedEffectTimingView, DelayedEffectView, DistributionAssignment, DistributionDamageKindView, DistributionItemView, DistributionTargetView, DistributionTokenKindView, DynamicPowerLimit, EffectCardScopeView, EffectDurationView, EffectResolutionDraftStepView, EffectResolutionDraftView, EffectRestrictionView, EffectSequenceOrder, EffectSequenceView, EffectSourceView, EffectTargetView, ExploitOptionsView, FormatSeatView, FormatSetupInput, GameEvent, GameState, GameTimerActiveClockView, GameTimerReserveView, GameTimerStateView, HiddenCardChoiceMode, HiddenZoneKind, HistorySection, HistoryStatus, InitiativeChoiceReason, InitiativeState, InstructedAttackView, LeaderActionView, LeaderDeployActionView, LeaderDeployCostView, LeaderDeployMode, LeaderDeployThresholdBonus, LeaderStateView, LimitedEventView, LimitedSideboardPoolView, MatchEndReason, MatchFormat, MatchHistoryDeckSummary, MatchHistoryPlayerSummary, MatchHistoryReplayArchive, MatchPhase, MatchResult, MatchSavePayload, MatchSaveSeat, MatchSeriesView, MatchStatus, MctsConfigOverride, ModeChoiceView, NamedCardEffectDescriptionView, NullableDistributionTokenKindView, NullableSeatView, PendingAbilityAspectChoiceView, PendingAbilityAttackChoiceView, PendingAbilityCardChoiceView, PendingAbilityFamily, PendingAbilityModeChoiceInputKind, PendingAbilityModeChoiceView, PendingAbilityNameChoiceView, PendingAbilityOrderAbilityView, PendingAbilityOrderChoiceView, PendingAbilityOrderGroupView, PendingAbilityView, PendingChoiceView, PendingDistributionView, PendingUndoRequest, PlayActionView, PlayCardSourceView, PlayCardZone, PlayerTargetPattern, PresenceFilter, PromptProvenanceView, PromptState, RejectedPlayView, RelationFilter, ResourceCardView, ResourcePaymentOptionView, Seat, SeatDirection, SeatOfferIntent, SeatState, SelectionScope, SeriesEndReason, SeriesGameRecord, SeriesResultView, SharedCounterState, SimulatorReportResponse, SmuggleActionView, SmuggleKind, TargetGroupPurpose, TargetSelectionGroup, TargetSelectionPlanView, TriggerWindowView, TurnPassSource, TwinSunsCounter, TwinSunsCountersView, UndoCancelReason, UndoRequestReason, UniquenessFilter, UnitAbilitySuppressionView, UnitCopiedCardEntry, UnitDefeatCause, UnitExtremum, UnitFilter, UnitStateView, UpgradeStateView, } from './common.js';
|
|
@@ -1 +1 @@
|
|
|
1
|
-
export type { AbilityTarget, AbilityWindow, ActionAbilitySource, ActionAbilityView, ActiveEffectDescriptionView, ActiveEffectView, AdminMatchReplayResponse, AttachmentMode, AttackChoiceView, AttackTarget, AvailableAttackView, CaptureOptionsView, CaptureSelection, CapturedUnitView, CardArena, CardChoiceResourcePaymentOptionView, CardDrawSource, CardInstanceView, ConstructedFormat, CurrentAttackStateView, CurrentAttackView, DeckInput, DeckPlacement, DeckRegistrationView, DelayedEffectDescriptionView, DelayedEffectOrderChoiceView, DelayedEffectOrderOptionView, DelayedEffectTimingView, DelayedEffectView, DistributionAssignment, DistributionDamageKindView, DistributionItemView, DistributionTargetView, DistributionTokenKindView, DynamicPowerLimit, EffectCardScopeView, EffectDurationView, EffectResolutionDraftStepView, EffectResolutionDraftView, EffectRestrictionView, EffectSequenceOrder, EffectSequenceView, EffectSourceView, EffectTargetView, ExploitOptionsView, FormatSeatView, GameEvent, GameState, GameTimerActiveClockView, GameTimerReserveView, GameTimerStateView, HiddenCardChoiceMode, HiddenZoneKind, InitiativeChoiceReason, InitiativeState, InstructedAttackView, LeaderActionView, LeaderDeployActionView, LeaderDeployCostView, LeaderDeployMode, LeaderDeployThresholdBonus, LeaderStateView, LimitedEventView, LimitedSideboardPoolView, MatchEndReason, MatchFormat, MatchHistoryReplayArchive, MatchPhase, MatchResult, MatchSeriesView, MatchStatus, ModeChoiceView, NamedCardEffectDescriptionView, NullableDistributionTokenKindView, NullableSeatView, PendingAbilityAspectChoiceView, PendingAbilityAttackChoiceView, PendingAbilityCardChoiceView, PendingAbilityFamily, PendingAbilityModeChoiceInputKind, PendingAbilityModeChoiceView, PendingAbilityNameChoiceView, PendingAbilityOrderAbilityView, PendingAbilityOrderChoiceView, PendingAbilityOrderGroupView, PendingAbilityView, PendingChoiceView, PendingDistributionView, PendingUndoRequest, PlayActionView, PlayCardSourceView, PlayCardZone, PlayerTargetPattern, PresenceFilter, PromptProvenanceView, PromptState, RejectedPlayView, RelationFilter, ResourceCardView, ResourcePaymentOptionView, Seat, SeatDirection, SeatOfferIntent, SeatState, SelectionScope, SeriesEndReason, SeriesGameRecord, SeriesResultView, SharedCounterState, SmuggleActionView, SmuggleKind, TargetGroupPurpose, TargetSelectionGroup, TargetSelectionPlanView, TriggerWindowView, TurnPassSource, TwinSunsCounter, TwinSunsCountersView, UndoCancelReason, UndoRequestReason, UniquenessFilter, UnitAbilitySuppressionView, UnitDefeatCause, UnitExtremum, UnitFilter, UnitStateView, UpgradeStateView, } from './common.js';
|
|
1
|
+
export type { AbilityTarget, AbilityWindow, ActionAbilitySource, ActionAbilityView, ActiveEffectDescriptionView, ActiveEffectView, AdminMatchReplayResponse, AiDecisionDiagnostic, AiDecisionSearchMode, AiDifficulty, AttachmentMode, AttackChoiceView, AttackTarget, AvailableAttackView, CaptureOptionsView, CaptureSelection, CapturedUnitView, CardArena, CardChoiceResourcePaymentOptionView, CardDrawSource, CardInstanceView, ConstructedFormat, CurrentAttackStateView, CurrentAttackView, DeckInput, DeckPlacement, DeckRegistrationView, DelayedEffectDescriptionView, DelayedEffectOrderChoiceView, DelayedEffectOrderOptionView, DelayedEffectTimingView, DelayedEffectView, DistributionAssignment, DistributionDamageKindView, DistributionItemView, DistributionTargetView, DistributionTokenKindView, DynamicPowerLimit, EffectCardScopeView, EffectDurationView, EffectResolutionDraftStepView, EffectResolutionDraftView, EffectRestrictionView, EffectSequenceOrder, EffectSequenceView, EffectSourceView, EffectTargetView, ExploitOptionsView, FormatSeatView, GameEvent, GameState, GameTimerActiveClockView, GameTimerReserveView, GameTimerStateView, HiddenCardChoiceMode, HiddenZoneKind, InitiativeChoiceReason, InitiativeState, InstructedAttackView, LeaderActionView, LeaderDeployActionView, LeaderDeployCostView, LeaderDeployMode, LeaderDeployThresholdBonus, LeaderStateView, LimitedEventView, LimitedSideboardPoolView, MatchEndReason, MatchFormat, MatchHistoryReplayArchive, MatchPhase, MatchResult, MatchSeriesView, MatchStatus, ModeChoiceView, NamedCardEffectDescriptionView, NullableDistributionTokenKindView, NullableSeatView, PendingAbilityAspectChoiceView, PendingAbilityAttackChoiceView, PendingAbilityCardChoiceView, PendingAbilityFamily, PendingAbilityModeChoiceInputKind, PendingAbilityModeChoiceView, PendingAbilityNameChoiceView, PendingAbilityOrderAbilityView, PendingAbilityOrderChoiceView, PendingAbilityOrderGroupView, PendingAbilityView, PendingChoiceView, PendingDistributionView, PendingUndoRequest, PlayActionView, PlayCardSourceView, PlayCardZone, PlayerTargetPattern, PresenceFilter, PromptProvenanceView, PromptState, RejectedPlayView, RelationFilter, ResourceCardView, ResourcePaymentOptionView, Seat, SeatDirection, SeatOfferIntent, SeatState, SelectionScope, SeriesEndReason, SeriesGameRecord, SeriesResultView, SharedCounterState, SmuggleActionView, SmuggleKind, TargetGroupPurpose, TargetSelectionGroup, TargetSelectionPlanView, TriggerWindowView, TurnPassSource, TwinSunsCounter, TwinSunsCountersView, UndoCancelReason, UndoRequestReason, UniquenessFilter, UnitAbilitySuppressionView, UnitDefeatCause, UnitExtremum, UnitFilter, UnitStateView, UpgradeStateView, } from './common.js';
|
|
@@ -1 +1 @@
|
|
|
1
|
-
export type { AbilityTarget, ActionAbilitySource, AttackTarget, CaptureSelection, CardInteractionCueKind, CardInteractionCueRequest, CardInteractionCueState, CardInteractionDragOffset, ClientMessage, DeckInput, DistributionAssignment, FormatEventCommand, GameCommand, Seat, SmuggleKind, TwinSunsCounter, } from './common.js';
|
|
1
|
+
export type { AbilityTarget, ActionAbilitySource, AttackTarget, CaptureSelection, CardInteractionCueKind, CardInteractionCueRequest, CardInteractionCueState, CardInteractionDragOffset, ClientMessage, DeckInput, DistributionAssignment, FormatEventCommand, GameCommand, PlaygroundCommand, PlaygroundDamageTarget, PlaygroundDefeatTarget, Seat, SmuggleKind, TwinSunsCounter, } from './common.js';
|
|
@@ -278,6 +278,87 @@ export interface AdminMatchSummary {
|
|
|
278
278
|
status: HistoryStatus;
|
|
279
279
|
updatedAtMs: number;
|
|
280
280
|
}
|
|
281
|
+
/**
|
|
282
|
+
* One AI decision's search-budget diagnostics, safe for durable storage.
|
|
283
|
+
*/
|
|
284
|
+
export interface AiDecisionDiagnostic {
|
|
285
|
+
/**
|
|
286
|
+
* Pending ability the chosen command answered, when applicable.
|
|
287
|
+
*/
|
|
288
|
+
abilityId?: (number | null);
|
|
289
|
+
/**
|
|
290
|
+
* Privacy-safe chosen-command shape: snake_case command kind only.
|
|
291
|
+
*/
|
|
292
|
+
commandKind: string;
|
|
293
|
+
difficulty: AiDifficulty;
|
|
294
|
+
elapsedMs: number;
|
|
295
|
+
/**
|
|
296
|
+
* Engine event counter of the searched state; exact cross-check key.
|
|
297
|
+
*/
|
|
298
|
+
eventsApplied: number;
|
|
299
|
+
/**
|
|
300
|
+
* Index of the replay frame this decision was made on (the state BEFORE
|
|
301
|
+
* the chosen command applied). `None` when no frame was recorded yet.
|
|
302
|
+
*/
|
|
303
|
+
frameIndex?: (number | null);
|
|
304
|
+
/**
|
|
305
|
+
* Whether the minimum-iteration floor pushed past the wall-clock budget.
|
|
306
|
+
*/
|
|
307
|
+
hardFloorOverrun: boolean;
|
|
308
|
+
/**
|
|
309
|
+
* Idle-stretch ceiling granted for this decision, when one was.
|
|
310
|
+
*/
|
|
311
|
+
iterationCeiling?: (number | null);
|
|
312
|
+
iterationsBudget: number;
|
|
313
|
+
iterationsDone: number;
|
|
314
|
+
legalCount: number;
|
|
315
|
+
/**
|
|
316
|
+
* Minimum-iteration floor the search guarantees past the wall clock.
|
|
317
|
+
*/
|
|
318
|
+
minIterations: number;
|
|
319
|
+
/**
|
|
320
|
+
* Time spent waiting for scheduler admission before the search started.
|
|
321
|
+
*/
|
|
322
|
+
queueMs: number;
|
|
323
|
+
/**
|
|
324
|
+
* Whether the AI scheduler was idle when this decision was admitted.
|
|
325
|
+
*/
|
|
326
|
+
schedulerIdle: boolean;
|
|
327
|
+
searchMode: AiDecisionSearchMode;
|
|
328
|
+
seat: Seat;
|
|
329
|
+
/**
|
|
330
|
+
* Gameplay snapshot marker the searched state carried. An undo between
|
|
331
|
+
* search and record makes this disagree with the frame at `frame_index`.
|
|
332
|
+
*/
|
|
333
|
+
snapshotRevision: number;
|
|
334
|
+
/**
|
|
335
|
+
* Public source card of that pending ability, when applicable.
|
|
336
|
+
*/
|
|
337
|
+
sourceCardId?: (number | null);
|
|
338
|
+
/**
|
|
339
|
+
* The starved-search guard discarded the search result entirely and
|
|
340
|
+
* answered from a one-ply heuristic ranking instead.
|
|
341
|
+
*/
|
|
342
|
+
starvationFallback: boolean;
|
|
343
|
+
/**
|
|
344
|
+
* Starved search: the wall clock cut the decision at (or below) its
|
|
345
|
+
* minimum-iteration floor, so the move rests on noise-level visit
|
|
346
|
+
* counts. Any blunder on a starved decision is explained first by this
|
|
347
|
+
* flag, not by enumeration or evaluation defects.
|
|
348
|
+
*/
|
|
349
|
+
starved: boolean;
|
|
350
|
+
timeBudgetMs?: (number | null);
|
|
351
|
+
/**
|
|
352
|
+
* Whether the wall clock cut the search before its iteration budget.
|
|
353
|
+
*/
|
|
354
|
+
timeLimited: boolean;
|
|
355
|
+
workersCompleted: number;
|
|
356
|
+
workersRequested: number;
|
|
357
|
+
}
|
|
358
|
+
/**
|
|
359
|
+
* Decision algorithm that produced one recorded AI choice.
|
|
360
|
+
*/
|
|
361
|
+
export type AiDecisionSearchMode = ("mcts" | "setupEvaluator" | "fastPath");
|
|
281
362
|
/**
|
|
282
363
|
* Public difficulty presets. Internal tuning (iteration counts, time
|
|
283
364
|
* budgets) lives in `crate::r#match::registry::ai_factory` so it can be
|
|
@@ -320,6 +401,7 @@ export interface AiOpponentConfig {
|
|
|
320
401
|
trilogyFormatMode: AiTrilogyFormatMode;
|
|
321
402
|
}
|
|
322
403
|
export interface AiSeatStatusPayload {
|
|
404
|
+
difficulty: AiDifficulty;
|
|
323
405
|
paused: boolean;
|
|
324
406
|
seat: Seat;
|
|
325
407
|
trilogyFormatMode: AiTrilogyFormatMode;
|
|
@@ -699,6 +781,11 @@ export interface CreateMatchRequest {
|
|
|
699
781
|
* currently support exactly 2 players.
|
|
700
782
|
*/
|
|
701
783
|
playerCount: number;
|
|
784
|
+
/**
|
|
785
|
+
* Enables the server-owned scenario Playground runtime. Normal matches
|
|
786
|
+
* retain the default and never accept Playground mutations.
|
|
787
|
+
*/
|
|
788
|
+
playground?: boolean;
|
|
702
789
|
/**
|
|
703
790
|
* Optional authored scenario selector for direct Learn match creation.
|
|
704
791
|
*/
|
|
@@ -719,6 +806,13 @@ export interface CreateMetaWindowRequest {
|
|
|
719
806
|
startsAtMs?: (number | null);
|
|
720
807
|
title: string;
|
|
721
808
|
}
|
|
809
|
+
/**
|
|
810
|
+
* Opaque 30-day Playground share capability.
|
|
811
|
+
*/
|
|
812
|
+
export interface CreatePlaygroundShareResponse {
|
|
813
|
+
expiresAtMs: number;
|
|
814
|
+
shareToken: string;
|
|
815
|
+
}
|
|
722
816
|
/**
|
|
723
817
|
* Request body for creating one sealed/draft tournament room.
|
|
724
818
|
*/
|
|
@@ -1410,6 +1504,10 @@ export type FormatSetupInput = ({
|
|
|
1410
1504
|
type: "draft";
|
|
1411
1505
|
});
|
|
1412
1506
|
export type GameCommand = (("deployLeader" | "takeInitiative" | "pass" | "concede") | {
|
|
1507
|
+
playground: {
|
|
1508
|
+
command: PlaygroundCommand;
|
|
1509
|
+
};
|
|
1510
|
+
} | {
|
|
1413
1511
|
chooseInitiativePlayer: {
|
|
1414
1512
|
seat: Seat;
|
|
1415
1513
|
};
|
|
@@ -2004,6 +2102,14 @@ export interface GameState {
|
|
|
2004
2102
|
*/
|
|
2005
2103
|
playerCount: number;
|
|
2006
2104
|
players: SeatState[];
|
|
2105
|
+
/**
|
|
2106
|
+
* Whether this snapshot belongs to a server-authorized Playground match.
|
|
2107
|
+
*/
|
|
2108
|
+
playground?: boolean;
|
|
2109
|
+
/**
|
|
2110
|
+
* Printed cards supplied by every configured Playground deck.
|
|
2111
|
+
*/
|
|
2112
|
+
playgroundDeckCardIds?: number[];
|
|
2007
2113
|
prompt: PromptState;
|
|
2008
2114
|
rejectedPlayReasons: RejectedPlayView[];
|
|
2009
2115
|
result?: (MatchResult | null);
|
|
@@ -3258,6 +3364,11 @@ export interface MatchHistoryPlayerSummary {
|
|
|
3258
3364
|
* `revealed_frames` is returned only after both completion and ownership checks.
|
|
3259
3365
|
*/
|
|
3260
3366
|
export interface MatchHistoryReplayArchive {
|
|
3367
|
+
/**
|
|
3368
|
+
* Per-AI-decision search diagnostics (budget, workers, starvation), in
|
|
3369
|
+
* decision order. Additive: older archives decode with an empty list.
|
|
3370
|
+
*/
|
|
3371
|
+
aiDecisions?: AiDecisionDiagnostic[];
|
|
3261
3372
|
/**
|
|
3262
3373
|
* Events folded into each matching replay frame. Older archives decode
|
|
3263
3374
|
* without this additive field and remain playable without captions.
|
|
@@ -3368,6 +3479,11 @@ export interface MatchSavePayload {
|
|
|
3368
3479
|
* Whether AI was manually paused when this snapshot was captured.
|
|
3369
3480
|
*/
|
|
3370
3481
|
aiPaused: boolean;
|
|
3482
|
+
/**
|
|
3483
|
+
* Exact manually paused AI seats. Empty payloads from older clients use
|
|
3484
|
+
* `ai_paused` as the all-seat compatibility fallback.
|
|
3485
|
+
*/
|
|
3486
|
+
aiPausedSeats?: Seat[];
|
|
3371
3487
|
/**
|
|
3372
3488
|
* Wire mirror of the [`UnitState::copied_card`] Arcs that the inner
|
|
3373
3489
|
* state could not embed. Keyed by `unit.instance_id`. Empty when no
|
|
@@ -3944,6 +4060,65 @@ export type PlayerPresenceStatus = ("joined" | "disconnected" | "reconnected" |
|
|
|
3944
4060
|
export type PlayerTargetPattern = (("SelfPlayer" | "EachPlayer" | "OpponentPlayer" | "ChosenOpponent" | "ChosenPlayer" | "DefendingPlayer" | "RememberedPlayer" | "RememberedUnitController" | "OtherThanRememberedPlayer") | "EachOpponent" | "EachOpponentWhoseBaseDamagedBySourceThisPhase" | "RememberedTargetController" | {
|
|
3945
4061
|
RelativeToRememberedPlayer: SeatDirection;
|
|
3946
4062
|
} | "ControllerOfLowerCostRememberedUnit");
|
|
4063
|
+
/**
|
|
4064
|
+
* Host-authorized raw scenario mutation for a Playground match.
|
|
4065
|
+
*/
|
|
4066
|
+
export type PlaygroundCommand = ({
|
|
4067
|
+
card_ids: number[];
|
|
4068
|
+
seat: Seat;
|
|
4069
|
+
type: "setDrawQueue";
|
|
4070
|
+
} | {
|
|
4071
|
+
attachedToUnitId?: (number | null);
|
|
4072
|
+
cardId: number;
|
|
4073
|
+
seat: Seat;
|
|
4074
|
+
type: "putCardInPlay";
|
|
4075
|
+
} | {
|
|
4076
|
+
attachedToUnitId?: (number | null);
|
|
4077
|
+
cardId: number;
|
|
4078
|
+
seat: Seat;
|
|
4079
|
+
type: "playCardForFree";
|
|
4080
|
+
} | {
|
|
4081
|
+
amount: number;
|
|
4082
|
+
target: PlaygroundDamageTarget;
|
|
4083
|
+
type: "setDamage";
|
|
4084
|
+
} | {
|
|
4085
|
+
target: PlaygroundDefeatTarget;
|
|
4086
|
+
type: "defeatCard";
|
|
4087
|
+
} | {
|
|
4088
|
+
captorUnitId: number;
|
|
4089
|
+
cardId: number;
|
|
4090
|
+
ownerSeat: Seat;
|
|
4091
|
+
type: "captureCard";
|
|
4092
|
+
});
|
|
4093
|
+
/**
|
|
4094
|
+
* One board target whose damage counter Playground may set exactly.
|
|
4095
|
+
*/
|
|
4096
|
+
export type PlaygroundDamageTarget = ({
|
|
4097
|
+
seat: Seat;
|
|
4098
|
+
type: "base";
|
|
4099
|
+
} | {
|
|
4100
|
+
type: "unit";
|
|
4101
|
+
unit_id: number;
|
|
4102
|
+
});
|
|
4103
|
+
/**
|
|
4104
|
+
* One in-play card Playground may defeat through normal leave-play handling.
|
|
4105
|
+
*/
|
|
4106
|
+
export type PlaygroundDefeatTarget = ({
|
|
4107
|
+
type: "unit";
|
|
4108
|
+
unit_id: number;
|
|
4109
|
+
} | {
|
|
4110
|
+
type: "upgrade";
|
|
4111
|
+
upgrade_id: number;
|
|
4112
|
+
});
|
|
4113
|
+
/**
|
|
4114
|
+
* Portable Playground file. `restore_token` is a dedicated capability and
|
|
4115
|
+
* never contains a live match seat token.
|
|
4116
|
+
*/
|
|
4117
|
+
export interface PlaygroundExportPayload {
|
|
4118
|
+
restoreToken: string;
|
|
4119
|
+
save: MatchSavePayload;
|
|
4120
|
+
version: number;
|
|
4121
|
+
}
|
|
3947
4122
|
/**
|
|
3948
4123
|
* Asks the limited-event host to prebuild every server-AI deck after the
|
|
3949
4124
|
* shared pool is complete. Human players may continue constructing decks
|
|
@@ -4567,6 +4742,21 @@ export interface SetAiPausedRequest {
|
|
|
4567
4742
|
*/
|
|
4568
4743
|
seatToken: string;
|
|
4569
4744
|
}
|
|
4745
|
+
/**
|
|
4746
|
+
* Host-authored AI controller settings for one Playground seat.
|
|
4747
|
+
*/
|
|
4748
|
+
export interface SetPlaygroundAiSeatRequest {
|
|
4749
|
+
/**
|
|
4750
|
+
* `None` removes the AI controller from this seat.
|
|
4751
|
+
*/
|
|
4752
|
+
difficulty: (AiDifficulty | null);
|
|
4753
|
+
/**
|
|
4754
|
+
* Manual per-seat pause state. Ignored when `difficulty` is `None`.
|
|
4755
|
+
*/
|
|
4756
|
+
paused: boolean;
|
|
4757
|
+
seat: Seat;
|
|
4758
|
+
seatToken: string;
|
|
4759
|
+
}
|
|
4570
4760
|
/**
|
|
4571
4761
|
* Request body for allowing or pausing new ranked queue admissions.
|
|
4572
4762
|
*/
|
|
@@ -4871,6 +5061,9 @@ export type TargetGroupPurpose = ({
|
|
|
4871
5061
|
kind: "attachUpgrade";
|
|
4872
5062
|
} | {
|
|
4873
5063
|
kind: "exhaust";
|
|
5064
|
+
} | {
|
|
5065
|
+
amount: number;
|
|
5066
|
+
kind: "payToAvoidExhaust";
|
|
4874
5067
|
} | {
|
|
4875
5068
|
kind: "ready";
|
|
4876
5069
|
} | {
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export type { CreatePlaygroundShareResponse, } from './common.js';
|
|
@@ -1 +1 @@
|
|
|
1
|
-
export type { AbilityTarget, ActionAbilitySource, AttackTarget, CaptureSelection, DistributionAssignment, GameCommand, Seat, SmuggleKind, TwinSunsCounter, } from './common.js';
|
|
1
|
+
export type { AbilityTarget, ActionAbilitySource, AttackTarget, CaptureSelection, DistributionAssignment, GameCommand, PlaygroundCommand, PlaygroundDamageTarget, PlaygroundDefeatTarget, Seat, SmuggleKind, TwinSunsCounter, } from './common.js';
|
|
@@ -1 +1 @@
|
|
|
1
|
-
export type { AbilityTarget, AbilityWindow, ActionAbilitySource, ActionAbilityView, ActiveEffectDescriptionView, ActiveEffectView, AttachmentMode, AttackChoiceView, AttackTarget, AvailableAttackView, CaptureOptionsView, CaptureSelection, CapturedUnitView, CardArena, CardChoiceResourcePaymentOptionView, CardDrawSource, CardInstanceView, ConstructedFormat, CurrentAttackStateView, CurrentAttackView, DeckInput, DeckPlacement, DeckRegistrationView, DelayedEffectDescriptionView, DelayedEffectOrderChoiceView, DelayedEffectOrderOptionView, DelayedEffectTimingView, DelayedEffectView, DistributionAssignment, DistributionDamageKindView, DistributionItemView, DistributionTargetView, DistributionTokenKindView, DynamicPowerLimit, EffectCardScopeView, EffectDurationView, EffectResolutionDraftStepView, EffectResolutionDraftView, EffectRestrictionView, EffectSequenceOrder, EffectSequenceView, EffectSourceView, EffectTargetView, ExploitOptionsView, FormatSeatView, GameEvent, GameState, GameTimerActiveClockView, GameTimerReserveView, GameTimerStateView, HiddenCardChoiceMode, HiddenZoneKind, InitiativeChoiceReason, InitiativeState, InstructedAttackView, LeaderActionView, LeaderDeployActionView, LeaderDeployCostView, LeaderDeployMode, LeaderDeployThresholdBonus, LeaderStateView, LimitedEventView, LimitedSideboardPoolView, MatchEndReason, MatchFormat, MatchHistoryReplayArchive, MatchHistoryReplayResponse, MatchPhase, MatchResult, MatchSeriesView, MatchStatus, ModeChoiceView, NamedCardEffectDescriptionView, NullableDistributionTokenKindView, NullableSeatView, PendingAbilityAspectChoiceView, PendingAbilityAttackChoiceView, PendingAbilityCardChoiceView, PendingAbilityFamily, PendingAbilityModeChoiceInputKind, PendingAbilityModeChoiceView, PendingAbilityNameChoiceView, PendingAbilityOrderAbilityView, PendingAbilityOrderChoiceView, PendingAbilityOrderGroupView, PendingAbilityView, PendingChoiceView, PendingDistributionView, PendingUndoRequest, PlayActionView, PlayCardSourceView, PlayCardZone, PlayerTargetPattern, PresenceFilter, PromptProvenanceView, PromptState, RejectedPlayView, RelationFilter, ResourceCardView, ResourcePaymentOptionView, Seat, SeatDirection, SeatOfferIntent, SeatState, SelectionScope, SeriesEndReason, SeriesGameRecord, SeriesResultView, SharedCounterState, SmuggleActionView, SmuggleKind, TargetGroupPurpose, TargetSelectionGroup, TargetSelectionPlanView, TriggerWindowView, TurnPassSource, TwinSunsCounter, TwinSunsCountersView, UndoCancelReason, UndoRequestReason, UniquenessFilter, UnitAbilitySuppressionView, UnitDefeatCause, UnitExtremum, UnitFilter, UnitStateView, UpgradeStateView, } from './common.js';
|
|
1
|
+
export type { AbilityTarget, AbilityWindow, ActionAbilitySource, ActionAbilityView, ActiveEffectDescriptionView, ActiveEffectView, AiDecisionDiagnostic, AiDecisionSearchMode, AiDifficulty, AttachmentMode, AttackChoiceView, AttackTarget, AvailableAttackView, CaptureOptionsView, CaptureSelection, CapturedUnitView, CardArena, CardChoiceResourcePaymentOptionView, CardDrawSource, CardInstanceView, ConstructedFormat, CurrentAttackStateView, CurrentAttackView, DeckInput, DeckPlacement, DeckRegistrationView, DelayedEffectDescriptionView, DelayedEffectOrderChoiceView, DelayedEffectOrderOptionView, DelayedEffectTimingView, DelayedEffectView, DistributionAssignment, DistributionDamageKindView, DistributionItemView, DistributionTargetView, DistributionTokenKindView, DynamicPowerLimit, EffectCardScopeView, EffectDurationView, EffectResolutionDraftStepView, EffectResolutionDraftView, EffectRestrictionView, EffectSequenceOrder, EffectSequenceView, EffectSourceView, EffectTargetView, ExploitOptionsView, FormatSeatView, GameEvent, GameState, GameTimerActiveClockView, GameTimerReserveView, GameTimerStateView, HiddenCardChoiceMode, HiddenZoneKind, InitiativeChoiceReason, InitiativeState, InstructedAttackView, LeaderActionView, LeaderDeployActionView, LeaderDeployCostView, LeaderDeployMode, LeaderDeployThresholdBonus, LeaderStateView, LimitedEventView, LimitedSideboardPoolView, MatchEndReason, MatchFormat, MatchHistoryReplayArchive, MatchHistoryReplayResponse, MatchPhase, MatchResult, MatchSeriesView, MatchStatus, ModeChoiceView, NamedCardEffectDescriptionView, NullableDistributionTokenKindView, NullableSeatView, PendingAbilityAspectChoiceView, PendingAbilityAttackChoiceView, PendingAbilityCardChoiceView, PendingAbilityFamily, PendingAbilityModeChoiceInputKind, PendingAbilityModeChoiceView, PendingAbilityNameChoiceView, PendingAbilityOrderAbilityView, PendingAbilityOrderChoiceView, PendingAbilityOrderGroupView, PendingAbilityView, PendingChoiceView, PendingDistributionView, PendingUndoRequest, PlayActionView, PlayCardSourceView, PlayCardZone, PlayerTargetPattern, PresenceFilter, PromptProvenanceView, PromptState, RejectedPlayView, RelationFilter, ResourceCardView, ResourcePaymentOptionView, Seat, SeatDirection, SeatOfferIntent, SeatState, SelectionScope, SeriesEndReason, SeriesGameRecord, SeriesResultView, SharedCounterState, SmuggleActionView, SmuggleKind, TargetGroupPurpose, TargetSelectionGroup, TargetSelectionPlanView, TriggerWindowView, TurnPassSource, TwinSunsCounter, TwinSunsCountersView, UndoCancelReason, UndoRequestReason, UniquenessFilter, UnitAbilitySuppressionView, UnitDefeatCause, UnitExtremum, UnitFilter, UnitStateView, UpgradeStateView, } from './common.js';
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export type { AiDifficulty, AiOpponentConfig, AiTrilogyFormatMode, ConstructedFormat, DeckInput, FormatSetupInput, MatchSavePayload, MatchSaveSeat, MctsConfigOverride, PlaygroundExportPayload, Seat, UnitCopiedCardEntry, } from './common.js';
|
|
@@ -1 +1 @@
|
|
|
1
|
-
export type { AbilityTarget, AbilityWindow, ActionAbilitySource, ActionAbilityView, ActiveEffectDescriptionView, ActiveEffectView, AiSeatStatusPayload, AiStatusPayload, AiTrilogyFormatMode, AttachmentMode, AttackChoiceView, AttackTarget, AvailableAttackView, CaptureOptionsView, CaptureSelection, CapturedUnitView, CardArena, CardChoiceResourcePaymentOptionView, CardDrawSource, CardInstanceView, CardInteractionCue, CardInteractionCueKind, CardInteractionCueState, CardInteractionDragOffset, ConstructedFormat, CurrentAttackStateView, CurrentAttackView, DeckInput, DeckPlacement, DeckRegistrationView, DelayedEffectDescriptionView, DelayedEffectOrderChoiceView, DelayedEffectOrderOptionView, DelayedEffectTimingView, DelayedEffectView, DistributionAssignment, DistributionDamageKindView, DistributionItemView, DistributionTargetView, DistributionTokenKindView, DynamicPowerLimit, EffectCardScopeView, EffectDurationView, EffectResolutionDraftStepView, EffectResolutionDraftView, EffectRestrictionView, EffectSequenceOrder, EffectSequenceView, EffectSourceView, EffectTargetView, ErrorPayload, ExploitOptionsView, FormatSeatView, GameEvent, GameState, GameTimerActiveClockView, GameTimerReserveView, GameTimerStateView, HiddenCardChoiceMode, HiddenZoneKind, InitiativeChoiceReason, InitiativeState, InstructedAttackView, LeaderActionView, LeaderDeployActionView, LeaderDeployCostView, LeaderDeployMode, LeaderDeployThresholdBonus, LeaderStateView, LimitedEventView, LimitedSideboardPoolView, MatchChatMessage, MatchConnectionRole, MatchEndReason, MatchFormat, MatchHistoryFeedEntry, MatchHistoryFeedEntry1, MatchHistorySnapshot, MatchPhase, MatchQuickPhrase, MatchResult, MatchSeriesView, MatchStatus, ModeChoiceView, NamedCardEffectDescriptionView, NullableDistributionTokenKindView, NullableSeatView, PendingAbilityAspectChoiceView, PendingAbilityAttackChoiceView, PendingAbilityCardChoiceView, PendingAbilityFamily, PendingAbilityModeChoiceInputKind, PendingAbilityModeChoiceView, PendingAbilityNameChoiceView, PendingAbilityOrderAbilityView, PendingAbilityOrderChoiceView, PendingAbilityOrderGroupView, PendingAbilityView, PendingChoiceView, PendingDistributionView, PendingUndoRequest, PlayActionView, PlayCardSourceView, PlayCardZone, PlayerPresenceStatus, PlayerTargetPattern, PresenceFilter, PromptProvenanceView, PromptState, RejectedPlayView, RelationFilter, ResourceCardView, ResourcePaymentOptionView, Seat, SeatDirection, SeatOfferIntent, SeatState, SelectionScope, SeriesEndReason, SeriesGameRecord, SeriesResultView, ServerMessage, SharedCounterState, SmuggleActionView, SmuggleKind, TargetGroupPurpose, TargetSelectionGroup, TargetSelectionPlanView, TriggerWindowView, TurnPassSource, TwinSunsCounter, TwinSunsCountersView, UndoCancelReason, UndoRequestReason, UniquenessFilter, UnitAbilitySuppressionView, UnitDefeatCause, UnitExtremum, UnitFilter, UnitStateView, UpgradeStateView, WelcomePayload, } from './common.js';
|
|
1
|
+
export type { AbilityTarget, AbilityWindow, ActionAbilitySource, ActionAbilityView, ActiveEffectDescriptionView, ActiveEffectView, AiDifficulty, AiSeatStatusPayload, AiStatusPayload, AiTrilogyFormatMode, AttachmentMode, AttackChoiceView, AttackTarget, AvailableAttackView, CaptureOptionsView, CaptureSelection, CapturedUnitView, CardArena, CardChoiceResourcePaymentOptionView, CardDrawSource, CardInstanceView, CardInteractionCue, CardInteractionCueKind, CardInteractionCueState, CardInteractionDragOffset, ConstructedFormat, CurrentAttackStateView, CurrentAttackView, DeckInput, DeckPlacement, DeckRegistrationView, DelayedEffectDescriptionView, DelayedEffectOrderChoiceView, DelayedEffectOrderOptionView, DelayedEffectTimingView, DelayedEffectView, DistributionAssignment, DistributionDamageKindView, DistributionItemView, DistributionTargetView, DistributionTokenKindView, DynamicPowerLimit, EffectCardScopeView, EffectDurationView, EffectResolutionDraftStepView, EffectResolutionDraftView, EffectRestrictionView, EffectSequenceOrder, EffectSequenceView, EffectSourceView, EffectTargetView, ErrorPayload, ExploitOptionsView, FormatSeatView, GameEvent, GameState, GameTimerActiveClockView, GameTimerReserveView, GameTimerStateView, HiddenCardChoiceMode, HiddenZoneKind, InitiativeChoiceReason, InitiativeState, InstructedAttackView, LeaderActionView, LeaderDeployActionView, LeaderDeployCostView, LeaderDeployMode, LeaderDeployThresholdBonus, LeaderStateView, LimitedEventView, LimitedSideboardPoolView, MatchChatMessage, MatchConnectionRole, MatchEndReason, MatchFormat, MatchHistoryFeedEntry, MatchHistoryFeedEntry1, MatchHistorySnapshot, MatchPhase, MatchQuickPhrase, MatchResult, MatchSeriesView, MatchStatus, ModeChoiceView, NamedCardEffectDescriptionView, NullableDistributionTokenKindView, NullableSeatView, PendingAbilityAspectChoiceView, PendingAbilityAttackChoiceView, PendingAbilityCardChoiceView, PendingAbilityFamily, PendingAbilityModeChoiceInputKind, PendingAbilityModeChoiceView, PendingAbilityNameChoiceView, PendingAbilityOrderAbilityView, PendingAbilityOrderChoiceView, PendingAbilityOrderGroupView, PendingAbilityView, PendingChoiceView, PendingDistributionView, PendingUndoRequest, PlayActionView, PlayCardSourceView, PlayCardZone, PlayerPresenceStatus, PlayerTargetPattern, PresenceFilter, PromptProvenanceView, PromptState, RejectedPlayView, RelationFilter, ResourceCardView, ResourcePaymentOptionView, Seat, SeatDirection, SeatOfferIntent, SeatState, SelectionScope, SeriesEndReason, SeriesGameRecord, SeriesResultView, ServerMessage, SharedCounterState, SmuggleActionView, SmuggleKind, TargetGroupPurpose, TargetSelectionGroup, TargetSelectionPlanView, TriggerWindowView, TurnPassSource, TwinSunsCounter, TwinSunsCountersView, UndoCancelReason, UndoRequestReason, UniquenessFilter, UnitAbilitySuppressionView, UnitDefeatCause, UnitExtremum, UnitFilter, UnitStateView, UpgradeStateView, WelcomePayload, } from './common.js';
|
|
@@ -1 +1 @@
|
|
|
1
|
-
export type { AiSeatStatusPayload, AiStatusPayload, AiTrilogyFormatMode, Seat, } from './common.js';
|
|
1
|
+
export type { AiDifficulty, AiSeatStatusPayload, AiStatusPayload, AiTrilogyFormatMode, Seat, } from './common.js';
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export type { AiDifficulty, Seat, SetPlaygroundAiSeatRequest, } from './common.js';
|
|
@@ -1 +1 @@
|
|
|
1
|
-
export type { AbilityTarget, AbilityWindow, ActionAbilitySource, ActionAbilityView, ActiveEffectDescriptionView, ActiveEffectView, AttachmentMode, AttackChoiceView, AttackTarget, AvailableAttackView, CaptureOptionsView, CaptureSelection, CapturedUnitView, CardArena, CardChoiceResourcePaymentOptionView, CardDrawSource, CardInstanceView, ConstructedFormat, CurrentAttackStateView, CurrentAttackView, DeckInput, DeckPlacement, DeckRegistrationView, DelayedEffectDescriptionView, DelayedEffectOrderChoiceView, DelayedEffectOrderOptionView, DelayedEffectTimingView, DelayedEffectView, DistributionAssignment, DistributionDamageKindView, DistributionItemView, DistributionTargetView, DistributionTokenKindView, DynamicPowerLimit, EffectCardScopeView, EffectDurationView, EffectResolutionDraftStepView, EffectResolutionDraftView, EffectRestrictionView, EffectSequenceOrder, EffectSequenceView, EffectSourceView, EffectTargetView, ExploitOptionsView, FormatSeatView, GameEvent, GameState, GameTimerActiveClockView, GameTimerReserveView, GameTimerStateView, HiddenCardChoiceMode, HiddenZoneKind, InitiativeChoiceReason, InitiativeState, InstructedAttackView, LeaderActionView, LeaderDeployActionView, LeaderDeployCostView, LeaderDeployMode, LeaderDeployThresholdBonus, LeaderStateView, LimitedEventView, LimitedSideboardPoolView, MatchEndReason, MatchFormat, MatchHistoryReplayArchive, MatchPhase, MatchResult, MatchSeriesView, MatchStatus, ModeChoiceView, NamedCardEffectDescriptionView, NullableDistributionTokenKindView, NullableSeatView, PendingAbilityAspectChoiceView, PendingAbilityAttackChoiceView, PendingAbilityCardChoiceView, PendingAbilityFamily, PendingAbilityModeChoiceInputKind, PendingAbilityModeChoiceView, PendingAbilityNameChoiceView, PendingAbilityOrderAbilityView, PendingAbilityOrderChoiceView, PendingAbilityOrderGroupView, PendingAbilityView, PendingChoiceView, PendingDistributionView, PendingUndoRequest, PlayActionView, PlayCardSourceView, PlayCardZone, PlayerTargetPattern, PresenceFilter, PromptProvenanceView, PromptState, RejectedPlayView, RelationFilter, ResourceCardView, ResourcePaymentOptionView, Seat, SeatDirection, SeatOfferIntent, SeatState, SelectionScope, SeriesEndReason, SeriesGameRecord, SeriesResultView, SharedCounterState, SharedMatchHistoryReplayResponse, SmuggleActionView, SmuggleKind, TargetGroupPurpose, TargetSelectionGroup, TargetSelectionPlanView, TriggerWindowView, TurnPassSource, TwinSunsCounter, TwinSunsCountersView, UndoCancelReason, UndoRequestReason, UniquenessFilter, UnitAbilitySuppressionView, UnitDefeatCause, UnitExtremum, UnitFilter, UnitStateView, UpgradeStateView, } from './common.js';
|
|
1
|
+
export type { AbilityTarget, AbilityWindow, ActionAbilitySource, ActionAbilityView, ActiveEffectDescriptionView, ActiveEffectView, AiDecisionDiagnostic, AiDecisionSearchMode, AiDifficulty, AttachmentMode, AttackChoiceView, AttackTarget, AvailableAttackView, CaptureOptionsView, CaptureSelection, CapturedUnitView, CardArena, CardChoiceResourcePaymentOptionView, CardDrawSource, CardInstanceView, ConstructedFormat, CurrentAttackStateView, CurrentAttackView, DeckInput, DeckPlacement, DeckRegistrationView, DelayedEffectDescriptionView, DelayedEffectOrderChoiceView, DelayedEffectOrderOptionView, DelayedEffectTimingView, DelayedEffectView, DistributionAssignment, DistributionDamageKindView, DistributionItemView, DistributionTargetView, DistributionTokenKindView, DynamicPowerLimit, EffectCardScopeView, EffectDurationView, EffectResolutionDraftStepView, EffectResolutionDraftView, EffectRestrictionView, EffectSequenceOrder, EffectSequenceView, EffectSourceView, EffectTargetView, ExploitOptionsView, FormatSeatView, GameEvent, GameState, GameTimerActiveClockView, GameTimerReserveView, GameTimerStateView, HiddenCardChoiceMode, HiddenZoneKind, InitiativeChoiceReason, InitiativeState, InstructedAttackView, LeaderActionView, LeaderDeployActionView, LeaderDeployCostView, LeaderDeployMode, LeaderDeployThresholdBonus, LeaderStateView, LimitedEventView, LimitedSideboardPoolView, MatchEndReason, MatchFormat, MatchHistoryReplayArchive, MatchPhase, MatchResult, MatchSeriesView, MatchStatus, ModeChoiceView, NamedCardEffectDescriptionView, NullableDistributionTokenKindView, NullableSeatView, PendingAbilityAspectChoiceView, PendingAbilityAttackChoiceView, PendingAbilityCardChoiceView, PendingAbilityFamily, PendingAbilityModeChoiceInputKind, PendingAbilityModeChoiceView, PendingAbilityNameChoiceView, PendingAbilityOrderAbilityView, PendingAbilityOrderChoiceView, PendingAbilityOrderGroupView, PendingAbilityView, PendingChoiceView, PendingDistributionView, PendingUndoRequest, PlayActionView, PlayCardSourceView, PlayCardZone, PlayerTargetPattern, PresenceFilter, PromptProvenanceView, PromptState, RejectedPlayView, RelationFilter, ResourceCardView, ResourcePaymentOptionView, Seat, SeatDirection, SeatOfferIntent, SeatState, SelectionScope, SeriesEndReason, SeriesGameRecord, SeriesResultView, SharedCounterState, SharedMatchHistoryReplayResponse, SmuggleActionView, SmuggleKind, TargetGroupPurpose, TargetSelectionGroup, TargetSelectionPlanView, TriggerWindowView, TurnPassSource, TwinSunsCounter, TwinSunsCountersView, UndoCancelReason, UndoRequestReason, UniquenessFilter, UnitAbilitySuppressionView, UnitDefeatCause, UnitExtremum, UnitFilter, UnitStateView, UpgradeStateView, } from './common.js';
|
|
@@ -1 +1 @@
|
|
|
1
|
-
export type { AiSeatStatusPayload, AiStatusPayload, AiTrilogyFormatMode, MatchConnectionRole, Seat, WelcomePayload, } from './common.js';
|
|
1
|
+
export type { AiDifficulty, AiSeatStatusPayload, AiStatusPayload, AiTrilogyFormatMode, MatchConnectionRole, Seat, WelcomePayload, } from './common.js';
|
|
@@ -13,4 +13,4 @@
|
|
|
13
13
|
*
|
|
14
14
|
* @see https://simulator-sdk.my-swu.com/guide/versioning
|
|
15
15
|
*/
|
|
16
|
-
export declare const schemaVersion: "
|
|
16
|
+
export declare const schemaVersion: "0ae978dcaa4b3cbec5778eb3174a0126f642b3d441a76d97dc48044416d4ae06";
|
|
@@ -13,4 +13,4 @@
|
|
|
13
13
|
*
|
|
14
14
|
* @see https://simulator-sdk.my-swu.com/guide/versioning
|
|
15
15
|
*/
|
|
16
|
-
export const schemaVersion = "
|
|
16
|
+
export const schemaVersion = "0ae978dcaa4b3cbec5778eb3174a0126f642b3d441a76d97dc48044416d4ae06";
|
package/dist/index.d.ts
CHANGED
|
@@ -7,6 +7,7 @@ export { canDeployAnyLeader, flattenTargetGroups, getDeployableLeaderIndices, ge
|
|
|
7
7
|
export type { TargetingActionView } from './actionable.js';
|
|
8
8
|
export type { SimulatorClient, SimulatorClientOptions } from './client.js';
|
|
9
9
|
export type { AbandonMatchRequest, AbandonMatchResponse, ApiErrorResponse, AiStatusPayload, CardsResponse, CardCatalogRefreshResponse, ClientMessage, CreateLimitedEventRequest, CreateMetaWindowRequest, CreateMatchRequest, ErrorPayload, FormatEventResponse, FormatEventRequest, GameCommand, GameEvent, GameState, GetMatchResponse, HealthResponse, JoinLimitedEventRequest, JoinMatchRequest, LeaveMatchRequest, LeaveMatchResponse, LimitedEventAccessResponse, LimitedEventCommandRequest, LimitedEventPreflightResponse, LimitedEventResponse, ListActiveAiMatchesRequest, ListActiveAiMatchesResponse, MatchAccessResponse, MatchChatLookupResponse, MatchConnectionRole, MatchHistoryDeckStatsRequest, MatchHistoryDeckStatsResponse, MatchHistoryListRequest, MatchHistoryListResponse, MatchHistoryReplayRequest, MatchHistoryReplayResponse, MatchHistoryRestoreRequest, MatchRecoveryRequest, MatchRecoveryResponse, RestoreHistoryResponse, MatchSavePayload, MatchSpectatorAccessResponse, MetaWindow, MetaWindowsResponse, ResolveCardIdsRequest, ResolveCardIdsResponse, RankedAdminStatus, RankedLeaderboardEntry, RankedLeaderboardQuery, RankedLeaderboardResponse, RankedMatchmakingView, RankedProfileRequest, RankedProfileResponse, RankedQueue, RematchMatchRequest, RematchMatchResponse, RestoreMatchSaveRequest, RestoreMatchSaveResponse, SaveMatchRequest, ServerMessage, SetAiPausedRequest, SetRankedAdmissionRequest, SetSimulatorMaintenanceRequest, SimulatorAdminStatusResponse, SimulatorAvailabilityResponse, SpectateMatchRequest, SubmitMatchDeckRequest, SubmitMatchDeckResponse, UndoMatchRequest, UndoMatchResponse, UndoRespondMatchRequest, WelcomePayload, } from './generated/index.js';
|
|
10
|
+
export type { PlaygroundCommand, PlaygroundDamageTarget, PlaygroundDefeatTarget, } from './generated/types/game-command.js';
|
|
10
11
|
export type { UndoCancelReason } from './generated/types/game-event.js';
|
|
11
12
|
export type { LimitedSideboardPoolView } from './generated/types/game-state.js';
|
|
12
13
|
export type { HistoryIdentityInput, HistorySection, HistoryStatus, } from './generated/types/match-history-list-request.js';
|
|
@@ -37,6 +37,7 @@ export declare class MatchSessionController implements MatchSession {
|
|
|
37
37
|
get errorMessages(): readonly string[];
|
|
38
38
|
get matchId(): string | undefined;
|
|
39
39
|
get reconnectState(): MatchSessionReconnectState;
|
|
40
|
+
get snapshotRevision(): number;
|
|
40
41
|
get snapshot(): GameState | undefined;
|
|
41
42
|
get seat(): MatchSeat | undefined;
|
|
42
43
|
get state(): MatchSessionState;
|
|
@@ -45,6 +45,8 @@ export interface MatchSession extends MatchSessionMethods {
|
|
|
45
45
|
readonly matchId: string | undefined;
|
|
46
46
|
/** Automatic reconnect progress after an abnormal socket close. */
|
|
47
47
|
readonly reconnectState: MatchSessionReconnectState;
|
|
48
|
+
/** Monotonic revision of the latest authoritative match snapshot. */
|
|
49
|
+
readonly snapshotRevision: number;
|
|
48
50
|
/** Latest authoritative private snapshot for this seat. */
|
|
49
51
|
readonly snapshot: GameState | undefined;
|
|
50
52
|
/** Seat controlled by this session when known. */
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import type { AdminMatchDebugBundle, AdminMatchListResponse, AdminMatchReplayResponse, SimulatorReportListResponse, SimulatorReportResponse, CardCatalogRefreshResponse, CreateMetaWindowRequest, MatchChatLookupResponse, MetaWindowsResponse, RankedLeaderboardQuery, RankedLeaderboardResponse, RankedProfileRequest, RankedProfileResponse, SetRankedAdmissionRequest, SetSimulatorMaintenanceRequest, SimulatorAdminStatusResponse } from '../generated/index.js';
|
|
1
|
+
import type { AdminMatchDebugBundle, AdminMatchListResponse, AdminMatchReplayResponse, CreateMatchHistoryReplayShareResponse, SimulatorReportListResponse, SimulatorReportResponse, CardCatalogRefreshResponse, CreateMetaWindowRequest, MatchChatLookupResponse, MetaWindowsResponse, RankedLeaderboardQuery, RankedLeaderboardResponse, RankedProfileRequest, RankedProfileResponse, SetRankedAdmissionRequest, SetSimulatorMaintenanceRequest, SimulatorAdminStatusResponse } from '../generated/index.js';
|
|
2
2
|
import type { SimulatorRequestOptions } from '../http/options.js';
|
|
3
3
|
import type { EngineHttpRequester } from '../http/request.js';
|
|
4
4
|
/**
|
|
@@ -36,6 +36,8 @@ export interface AdminResource {
|
|
|
36
36
|
getGameDebugBundle(auth: SimulatorAdminAuth, historyId: string, options?: SimulatorRequestOptions): Promise<AdminMatchDebugBundle>;
|
|
37
37
|
/** Returns a completed replay archive for one match. */
|
|
38
38
|
getGameReplay(auth: SimulatorAdminAuth, historyId: string, options?: SimulatorRequestOptions): Promise<AdminMatchReplayResponse>;
|
|
39
|
+
/** Creates or returns the hidden-information replay capability for one completed game. */
|
|
40
|
+
createGameReplayShare(auth: SimulatorAdminAuth, historyId: string, options?: SimulatorRequestOptions): Promise<CreateMatchHistoryReplayShareResponse>;
|
|
39
41
|
/** Lists safe metadata for retained simulator diagnostic reports. */
|
|
40
42
|
listSimulatorReports(auth: SimulatorAdminAuth, query?: SimulatorReportListOptions, options?: SimulatorRequestOptions): Promise<SimulatorReportListResponse>;
|
|
41
43
|
/** Returns one full sanitized simulator support bundle. */
|
package/dist/resources/admin.js
CHANGED
|
@@ -7,6 +7,7 @@ export function createAdminResource(requester) {
|
|
|
7
7
|
listGames: (auth, query, options) => requester.request('admin-match-list-response', adminGamesPath(query ?? {}), { headers: authHeaders(auth) }, options),
|
|
8
8
|
getGameDebugBundle: (auth, historyId, options) => requester.request('admin-match-debug-bundle', `/api/admin/games/${encodeURIComponent(historyId)}/debug`, { headers: authHeaders(auth) }, options),
|
|
9
9
|
getGameReplay: (auth, historyId, options) => requester.request('admin-match-replay-response', `/api/admin/games/${encodeURIComponent(historyId)}/replay`, { headers: authHeaders(auth) }, options),
|
|
10
|
+
createGameReplayShare: (auth, historyId, options) => requester.request('create-match-history-replay-share-response', `/api/admin/games/${encodeURIComponent(historyId)}/replay-shares`, { headers: authHeaders(auth), method: 'POST' }, options),
|
|
10
11
|
listSimulatorReports: (auth, query, options) => requester.request('simulator-report-list-response', simulatorReportsPath(query ?? {}), { headers: authHeaders(auth) }, options),
|
|
11
12
|
getSimulatorReport: (auth, reportId, options) => requester.request('simulator-report-response', `/api/admin/reports/${encodeURIComponent(reportId)}`, { headers: authHeaders(auth) }, options),
|
|
12
13
|
refreshCardCatalog: (auth, options) => requester.request('card-catalog-refresh-response', '/api/admin/card-catalog/refresh', { headers: authHeaders(auth), method: 'POST' }, options),
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import type { AiStatusPayload, CreateMatchRequest, GameState, JoinMatchRequest, ListActiveAiMatchesRequest, ListActiveAiMatchesResponse, MatchAccessRecoveryRequest, MatchAccessRecoveryResponse, MatchAccessResponse, MatchSpectatorAccessResponse, MatchSavePayload, RematchMatchResponse, RestoreMatchSaveResponse, SpectateMatchRequest, SubmitMatchDeckRequest } from '../generated/index.js';
|
|
1
|
+
import type { AiStatusPayload, CreatePlaygroundShareResponse, CreateMatchRequest, GameState, JoinMatchRequest, ListActiveAiMatchesRequest, ListActiveAiMatchesResponse, MatchAccessRecoveryRequest, MatchAccessRecoveryResponse, MatchAccessResponse, MatchSpectatorAccessResponse, MatchSavePayload, PlaygroundExportPayload, RematchMatchResponse, RestoreMatchSaveResponse, SetPlaygroundAiSeatRequest, SpectateMatchRequest, SubmitMatchDeckRequest } from '../generated/index.js';
|
|
2
2
|
import type { FormatEventCommand } from '../generated/types/format-event-request.js';
|
|
3
3
|
import type { SimulatorRequestOptions } from '../http/options.js';
|
|
4
4
|
/**
|
|
@@ -402,6 +402,16 @@ export interface MatchesResource {
|
|
|
402
402
|
* @see https://simulator-sdk.my-swu.com/guide/driving-gameplay
|
|
403
403
|
*/
|
|
404
404
|
setAiPaused(access: MatchAccessInput, paused: boolean, options?: SimulatorRequestOptions): Promise<AiStatusPayload>;
|
|
405
|
+
/** Attaches, updates, pauses, or removes one AI controller in a Playground. */
|
|
406
|
+
setPlaygroundAiSeat(access: MatchAccessInput, request: Omit<SetPlaygroundAiSeatRequest, 'seatToken'>, options?: SimulatorRequestOptions): Promise<AiStatusPayload>;
|
|
407
|
+
/** Creates a portable Playground file with a dedicated restore capability. */
|
|
408
|
+
exportPlayground(access: MatchAccessInput, options?: SimulatorRequestOptions): Promise<PlaygroundExportPayload>;
|
|
409
|
+
/** Restores a portable Playground file without source-match credentials. */
|
|
410
|
+
restorePlaygroundExport(payload: PlaygroundExportPayload, options?: SimulatorRequestOptions): Promise<RestoreMatchSaveResponse>;
|
|
411
|
+
/** Creates one 30-day URL share capability for a Playground. */
|
|
412
|
+
createPlaygroundShare(access: MatchAccessInput, options?: SimulatorRequestOptions): Promise<CreatePlaygroundShareResponse>;
|
|
413
|
+
/** Restores one unexpired Playground URL share into a fresh match. */
|
|
414
|
+
restorePlaygroundShare(shareToken: string, options?: SimulatorRequestOptions): Promise<RestoreMatchSaveResponse>;
|
|
405
415
|
/**
|
|
406
416
|
* Captures a full state snapshot of an authorized, finished match.
|
|
407
417
|
*
|
|
@@ -96,6 +96,38 @@ export function createMatchesResource(options) {
|
|
|
96
96
|
headers: jsonHeaders(),
|
|
97
97
|
method: 'POST',
|
|
98
98
|
}, options),
|
|
99
|
+
setPlaygroundAiSeat: (access, request, options) => requester.request('set-ai-paused-response', `/api/matches/${matchIdFrom(access)}/playground/ai`, {
|
|
100
|
+
body: jsonBody(requester.validate('set-playground-ai-seat-request', {
|
|
101
|
+
...request,
|
|
102
|
+
seatToken: access.seatToken,
|
|
103
|
+
})),
|
|
104
|
+
headers: jsonHeaders(),
|
|
105
|
+
method: 'POST',
|
|
106
|
+
}, options),
|
|
107
|
+
exportPlayground: (access, options) => requester.request('playground-export-payload', `/api/matches/${matchIdFrom(access)}/playground/export`, {
|
|
108
|
+
body: jsonBody(requester.validate('save-match-request', { seatToken: access.seatToken })),
|
|
109
|
+
headers: jsonHeaders(),
|
|
110
|
+
method: 'POST',
|
|
111
|
+
}, options),
|
|
112
|
+
restorePlaygroundExport: (payload, options) => {
|
|
113
|
+
const validated = validatePlaygroundExport(requester.validate('playground-export-payload', payload));
|
|
114
|
+
return requester.request('restore-match-save-response', '/api/matches/restore', {
|
|
115
|
+
body: jsonBody(requester.validate('restore-match-save-request', {
|
|
116
|
+
save: validated.save,
|
|
117
|
+
seatToken: validated.restoreToken,
|
|
118
|
+
})),
|
|
119
|
+
headers: jsonHeaders(),
|
|
120
|
+
method: 'POST',
|
|
121
|
+
}, options);
|
|
122
|
+
},
|
|
123
|
+
createPlaygroundShare: (access, options) => requester.request('create-playground-share-response', `/api/matches/${matchIdFrom(access)}/playground-shares`, {
|
|
124
|
+
body: jsonBody(requester.validate('save-match-request', { seatToken: access.seatToken })),
|
|
125
|
+
headers: jsonHeaders(),
|
|
126
|
+
method: 'POST',
|
|
127
|
+
}, options),
|
|
128
|
+
restorePlaygroundShare: (shareToken, options) => requester.request('restore-match-save-response', `/api/playground-shares/${encodeURIComponent(shareToken)}/restore`, {
|
|
129
|
+
method: 'POST',
|
|
130
|
+
}, options),
|
|
99
131
|
save: (access, options) => requester.request('match-save-payload', `/api/matches/${matchIdFrom(access)}/save`, {
|
|
100
132
|
body: jsonBody(requester.validate('save-match-request', { seatToken: access.seatToken })),
|
|
101
133
|
headers: jsonHeaders(),
|
|
@@ -111,6 +143,23 @@ export function createMatchesResource(options) {
|
|
|
111
143
|
}, options),
|
|
112
144
|
};
|
|
113
145
|
}
|
|
146
|
+
/** Enforces portable Playground markers even when optional SDK validation is disabled. */
|
|
147
|
+
function validatePlaygroundExport(payload) {
|
|
148
|
+
if (!payload || typeof payload !== 'object')
|
|
149
|
+
throw new TypeError('Playground export must be an object');
|
|
150
|
+
const candidate = payload;
|
|
151
|
+
if (candidate.version !== 1)
|
|
152
|
+
throw new TypeError('Playground export version is not supported');
|
|
153
|
+
if (typeof candidate.restoreToken !== 'string' || !candidate.restoreToken)
|
|
154
|
+
throw new TypeError('Playground export restore capability is missing');
|
|
155
|
+
const save = candidate.save;
|
|
156
|
+
if (!save || typeof save !== 'object')
|
|
157
|
+
throw new TypeError('Playground export save is missing');
|
|
158
|
+
const state = save.state;
|
|
159
|
+
if (!state || typeof state !== 'object' || state.playground !== true)
|
|
160
|
+
throw new TypeError('Playground export does not contain a Playground match');
|
|
161
|
+
return payload;
|
|
162
|
+
}
|
|
114
163
|
/**
|
|
115
164
|
* Reads a match id from either a public id string or match reference object.
|
|
116
165
|
*/
|
package/dist/validators.d.ts
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import type { AdminMatchDebugBundle, AdminMatchListResponse, AdminMatchReplayResponse, SimulatorReportListResponse, SimulatorReportResponse, CloseTournamentRoomRequest, AbandonMatchRequest, AbandonMatchResponse, AddLobbyAiPlayerRequest, ApiErrorResponse, CardCatalogRefreshResponse, CardsResponse, ClientMessage, CreateMatchHistoryReplayShareRequest, CreateMatchHistoryReplayShareResponse, CreateLimitedEventRequest, CreateLobbyRequest, CreateMetaWindowRequest, CreateMatchRequest, CreateTournamentRoomRequest, CreateTournamentTableRequest, ErrorPayload, FormatEventRequest, FormatEventResponse, GameCommand, GameEvent, GameState, GetMatchResponse, HealthResponse, JoinLimitedEventRequest, JoinLobbyRequest, JoinMatchRequest, JoinTournamentRoomRequest, JoinTournamentTableRequest, KickLobbyPlayerRequest, KickLobbySpectatorRequest, LeaveLobbyRequest, LeaveMatchRequest, LeaveMatchResponse, LeaveTournamentRoomRequest, LimitedEventAccessResponse, LimitedEventCommandRequest, LimitedEventPreflightResponse, LimitedEventResponse, LobbyAccessResponse, LobbyChatRequest, LobbyChatResponse, LobbyListResponse, LobbyListServerMessage, LobbyMatchmakingDecisionRequest, PrepareLobbyLimitedAiDecksRequest, LobbyResponse, LobbyServerMessage, LobbySyncRequest, ListActiveAiMatchesRequest, ListActiveAiMatchesResponse, MatchAccessRecoveryRequest, MatchAccessRecoveryResponse, MatchAccessResponse, MatchChatLookupResponse, MatchConnectionRole, MatchHistoryDeckStatsRequest, MatchHistoryDeckStatsResponse, MatchHistoryEntry, MatchHistoryListRequest, MatchHistoryListResponse, MatchHistoryReplayRequest, MatchHistoryReplayResponse, MatchHistoryRestoreRequest, MatchRecoveryRequest, MatchRecoveryResponse, RestoreHistoryResponse, MatchSavePayload, MatchSpectatorAccessResponse, MetaWindow, MetaWindowsResponse, LobbyMatchmakingRequest, ResolveCardIdsRequest, ResolveCardIdsResponse, RankedAdminStatus, RankedLeaderboardEntry, RankedLeaderboardQuery, RankedLeaderboardResponse, RankedMatchmakingView, RankedProfileRequest, RankedProfileResponse, RankedQueue, RematchMatchRequest, RematchMatchResponse, SaveMatchRequest, ReturnLobbyMatchRequest, ReturnTournamentMatchRequest, RestoreMatchSaveRequest, RestoreMatchSaveResponse, ServerMessage, AiStatusPayload, SetRankedAdmissionRequest, SetSimulatorMaintenanceRequest, SetAiPausedRequest, SharedMatchHistoryReplayResponse, SimulatorAdminStatusResponse, SimulatorAvailabilityResponse, SpectateLobbyRequest, SpectateMatchRequest, StartLobbyLimitedMatchRequest, StartLobbyRequest, StartTournamentEventRequest, SubmitLobbyLimitedDeckRequest, SubmitMatchDeckRequest, SubmitMatchDeckResponse, SubmitTournamentDeckRequest, TournamentEventCommandRequest, TournamentRoomAccessResponse, TournamentRoomChatRequest, TournamentRoomChatResponse, TournamentRoomListResponse, TournamentRoomResponse, TournamentRoomServerMessage, TournamentRoomSyncRequest, UndoMatchRequest, UndoMatchResponse, UndoRespondMatchRequest, UpdateLobbyAiPlayerRequest, UpdateLobbyPlayerRequest, UpdateLobbySettingsRequest, UpdateTournamentRoomPlayerRequest, UpdateTournamentRoomSettingsRequest, WelcomePayload } from './generated/index.js';
|
|
1
|
+
import type { AdminMatchDebugBundle, AdminMatchListResponse, AdminMatchReplayResponse, SimulatorReportListResponse, SimulatorReportResponse, CloseTournamentRoomRequest, AbandonMatchRequest, AbandonMatchResponse, AddLobbyAiPlayerRequest, ApiErrorResponse, CardCatalogRefreshResponse, CardsResponse, ClientMessage, CreateMatchHistoryReplayShareRequest, CreateMatchHistoryReplayShareResponse, CreateLimitedEventRequest, CreateLobbyRequest, CreateMetaWindowRequest, CreateMatchRequest, CreatePlaygroundShareResponse, CreateTournamentRoomRequest, CreateTournamentTableRequest, ErrorPayload, FormatEventRequest, FormatEventResponse, GameCommand, GameEvent, GameState, GetMatchResponse, HealthResponse, JoinLimitedEventRequest, JoinLobbyRequest, JoinMatchRequest, JoinTournamentRoomRequest, JoinTournamentTableRequest, KickLobbyPlayerRequest, KickLobbySpectatorRequest, LeaveLobbyRequest, LeaveMatchRequest, LeaveMatchResponse, LeaveTournamentRoomRequest, LimitedEventAccessResponse, LimitedEventCommandRequest, LimitedEventPreflightResponse, LimitedEventResponse, LobbyAccessResponse, LobbyChatRequest, LobbyChatResponse, LobbyListResponse, LobbyListServerMessage, LobbyMatchmakingDecisionRequest, PrepareLobbyLimitedAiDecksRequest, LobbyResponse, LobbyServerMessage, LobbySyncRequest, ListActiveAiMatchesRequest, ListActiveAiMatchesResponse, MatchAccessRecoveryRequest, MatchAccessRecoveryResponse, MatchAccessResponse, MatchChatLookupResponse, MatchConnectionRole, MatchHistoryDeckStatsRequest, MatchHistoryDeckStatsResponse, MatchHistoryEntry, MatchHistoryListRequest, MatchHistoryListResponse, MatchHistoryReplayRequest, MatchHistoryReplayResponse, MatchHistoryRestoreRequest, MatchRecoveryRequest, MatchRecoveryResponse, RestoreHistoryResponse, MatchSavePayload, PlaygroundExportPayload, MatchSpectatorAccessResponse, MetaWindow, MetaWindowsResponse, LobbyMatchmakingRequest, ResolveCardIdsRequest, ResolveCardIdsResponse, RankedAdminStatus, RankedLeaderboardEntry, RankedLeaderboardQuery, RankedLeaderboardResponse, RankedMatchmakingView, RankedProfileRequest, RankedProfileResponse, RankedQueue, RematchMatchRequest, RematchMatchResponse, SaveMatchRequest, ReturnLobbyMatchRequest, ReturnTournamentMatchRequest, RestoreMatchSaveRequest, RestoreMatchSaveResponse, ServerMessage, AiStatusPayload, SetRankedAdmissionRequest, SetSimulatorMaintenanceRequest, SetAiPausedRequest, SetPlaygroundAiSeatRequest, SharedMatchHistoryReplayResponse, SimulatorAdminStatusResponse, SimulatorAvailabilityResponse, SpectateLobbyRequest, SpectateMatchRequest, StartLobbyLimitedMatchRequest, StartLobbyRequest, StartTournamentEventRequest, SubmitLobbyLimitedDeckRequest, SubmitMatchDeckRequest, SubmitMatchDeckResponse, SubmitTournamentDeckRequest, TournamentEventCommandRequest, TournamentRoomAccessResponse, TournamentRoomChatRequest, TournamentRoomChatResponse, TournamentRoomListResponse, TournamentRoomResponse, TournamentRoomServerMessage, TournamentRoomSyncRequest, UndoMatchRequest, UndoMatchResponse, UndoRespondMatchRequest, UpdateLobbyAiPlayerRequest, UpdateLobbyPlayerRequest, UpdateLobbySettingsRequest, UpdateTournamentRoomPlayerRequest, UpdateTournamentRoomSettingsRequest, WelcomePayload } from './generated/index.js';
|
|
2
2
|
import type { SchemaValidator } from './validators/validator.js';
|
|
3
3
|
/**
|
|
4
4
|
* Exact schema-to-type map generated from Rust public wire contracts.
|
|
@@ -106,6 +106,9 @@ export interface SchemaTypeMap {
|
|
|
106
106
|
'server-message': ServerMessage;
|
|
107
107
|
'set-ai-paused-request': SetAiPausedRequest;
|
|
108
108
|
'set-ai-paused-response': AiStatusPayload;
|
|
109
|
+
'set-playground-ai-seat-request': SetPlaygroundAiSeatRequest;
|
|
110
|
+
'playground-export-payload': PlaygroundExportPayload;
|
|
111
|
+
'create-playground-share-response': CreatePlaygroundShareResponse;
|
|
109
112
|
'set-ranked-admission-request': SetRankedAdmissionRequest;
|
|
110
113
|
'set-simulator-maintenance-request': SetSimulatorMaintenanceRequest;
|
|
111
114
|
'simulator-admin-status-response': SimulatorAdminStatusResponse;
|