@my-swu/simulator-client / SchemaTypeMap
Interface: SchemaTypeMap
Defined in: packages/ts-sdk/src/validators.ts:41
Exact schema-to-type map generated from Rust public wire contracts.
Keys match generated schema names. Values are the TypeScript types returned after runtime validation succeeds.
Example:
import { parseSchema } from '@my-swu/simulator-client'
// Runtime validation narrows payloads to generated TypeScript types.
const health = parseSchema('health-response', { status: 'ok' })
console.log(health.status)See
https://simulator-sdk.my-swu.com/guide/versioning
Properties
api-error-response
Example:
import { parseSchema } from '@my-swu/simulator-client'
const apiErrorResponsePayload = { error: { code: 'match_not_found', message: 'Match not found' } }
const parsedPayload = parseSchema('api-error-response', apiErrorResponsePayload)
console.log(parsedPayload)api-error-response:
ApiErrorResponse
Defined in: packages/ts-sdk/src/validators.ts:42
cards-response
Example:
import { parseSchema } from '@my-swu/simulator-client'
const cardsResponsePayload = { cards: [] }
const parsedPayload = parseSchema('cards-response', cardsResponsePayload)
console.log(parsedPayload)cards-response:
CardsResponse
Defined in: packages/ts-sdk/src/validators.ts:43
client-message
Example:
import { parseSchema } from '@my-swu/simulator-client'
const clientMessagePayload = { type: 'ready' }
const parsedPayload = parseSchema('client-message', clientMessagePayload)
console.log(parsedPayload)client-message:
ClientMessage
Defined in: packages/ts-sdk/src/validators.ts:44
covered-cards-response
Example:
import { parseSchema } from '@my-swu/simulator-client'
const coveredCardsResponsePayload = { cards: [] }
const parsedPayload = parseSchema('covered-cards-response', coveredCardsResponsePayload)
console.log(parsedPayload)covered-cards-response:
CoveredCardsResponse
Defined in: packages/ts-sdk/src/validators.ts:45
create-limited-event-request
Example:
import { parseSchema } from '@my-swu/simulator-client'
const createLimitedEventRequestPayload = { kind: 'draft', setCode: 'SOR', playerCount: 4 }
const parsedPayload = parseSchema('create-limited-event-request', createLimitedEventRequestPayload)
console.log(parsedPayload)create-limited-event-request:
CreateLimitedEventRequest
Defined in: packages/ts-sdk/src/validators.ts:46
create-match-request
Example:
import { parseSchema } from '@my-swu/simulator-client'
// Use card ids; the server validates deck legality.
const premierHostDeck = {
leader: 46102, // Leia Organa - Someone Who Loves You
base: 308, // Echo Base
cards: Array.from({ length: 50 }, () => 45), // Alliance X-Wing
}
const createMatchRequest = { hostDeck: premierHostDeck }
const parsedPayload = parseSchema('create-match-request', createMatchRequest)
console.log(parsedPayload)create-match-request:
CreateMatchRequest
Defined in: packages/ts-sdk/src/validators.ts:47
error-payload
Example:
import { parseSchema } from '@my-swu/simulator-client'
const errorPayloadPayload = { code: 'invalid_selection', message: 'Deck must include a leader' }
const parsedPayload = parseSchema('error-payload', errorPayloadPayload)
console.log(parsedPayload)error-payload:
ErrorPayload
Defined in: packages/ts-sdk/src/validators.ts:48
format-event-request
Example:
import { parseSchema } from '@my-swu/simulator-client'
const formatEventRequestPayload = { seatToken: 'seat_token_123', command: { type: 'readyNextGame' } }
const parsedPayload = parseSchema('format-event-request', formatEventRequestPayload)
console.log(parsedPayload)format-event-request:
FormatEventRequest
Defined in: packages/ts-sdk/src/validators.ts:49
format-event-response
Example:
import { createSimulatorClient, parseSchema } from '@my-swu/simulator-client'
const simulatorClient = createSimulatorClient({
baseUrl: 'http://127.0.0.1:4000',
})
const matchSnapshot = await simulatorClient.matches.get('match_123')
const formatEventResponse = { snapshot: matchSnapshot }
const parsedPayload = parseSchema('format-event-response', formatEventResponse)
console.log(parsedPayload)format-event-response:
FormatEventResponse
Defined in: packages/ts-sdk/src/validators.ts:50
game-command
Example:
import { parseSchema } from '@my-swu/simulator-client'
const gameCommandPayload = 'pass'
const parsedPayload = parseSchema('game-command', gameCommandPayload)
console.log(parsedPayload)game-command:
GameCommand
Defined in: packages/ts-sdk/src/validators.ts:51
game-event
Example:
import { parseSchema } from '@my-swu/simulator-client'
const gameEventPayload = { playerReady: { seat: 'one' } }
const parsedPayload = parseSchema('game-event', gameEventPayload)
console.log(parsedPayload)game-event:
GameEvent
Defined in: packages/ts-sdk/src/validators.ts:52
game-state
Example:
import { createSimulatorClient, parseSchema } from '@my-swu/simulator-client'
const simulatorClient = createSimulatorClient({
baseUrl: 'http://127.0.0.1:4000',
})
const matchSnapshot = await simulatorClient.matches.get('match_123')
const parsedPayload = parseSchema('game-state', matchSnapshot)
console.log(parsedPayload)game-state:
GameState
Defined in: packages/ts-sdk/src/validators.ts:53
get-match-response
Example:
import { createSimulatorClient, parseSchema } from '@my-swu/simulator-client'
const simulatorClient = createSimulatorClient({
baseUrl: 'http://127.0.0.1:4000',
})
const matchSnapshot = await simulatorClient.matches.get('match_123')
const getMatchResponse = { snapshot: matchSnapshot }
const parsedPayload = parseSchema('get-match-response', getMatchResponse)
console.log(parsedPayload)get-match-response:
GetMatchResponse
Defined in: packages/ts-sdk/src/validators.ts:54
health-response
Example:
import { parseSchema } from '@my-swu/simulator-client'
const healthResponsePayload = { status: 'ok' }
const parsedPayload = parseSchema('health-response', healthResponsePayload)
console.log(parsedPayload)health-response:
HealthResponse
Defined in: packages/ts-sdk/src/validators.ts:55
join-limited-event-request
Example:
import { parseSchema } from '@my-swu/simulator-client'
const joinLimitedEventRequest = {}
const parsedPayload = parseSchema('join-limited-event-request', joinLimitedEventRequest)
console.log(parsedPayload)join-limited-event-request:
JoinLimitedEventRequest
Defined in: packages/ts-sdk/src/validators.ts:56
join-match-request
Example:
import { parseSchema } from '@my-swu/simulator-client'
// Seat two submits a separate legal deck when joining the match.
const premierGuestDeck = {
leader: 46107, // Darth Vader - Unstoppable
base: 309, // Tarkintown
cards: Array.from({ length: 50 }, () => 35), // TIE/ln Fighter
}
const joinMatchRequest = { deck: premierGuestDeck }
const parsedPayload = parseSchema('join-match-request', joinMatchRequest)
console.log(parsedPayload)join-match-request:
JoinMatchRequest
Defined in: packages/ts-sdk/src/validators.ts:57
limited-event-access-response
Example:
import { createSimulatorClient, parseSchema } from '@my-swu/simulator-client'
const simulatorClient = createSimulatorClient({
baseUrl: 'http://127.0.0.1:4000',
})
const draftEventAccess = await simulatorClient.limitedEvents.create({
kind: 'draft',
setCode: 'SOR',
playerCount: 4,
})
const parsedPayload = parseSchema('limited-event-access-response', draftEventAccess)
console.log(parsedPayload)limited-event-access-response:
LimitedEventAccessResponse
Defined in: packages/ts-sdk/src/validators.ts:58
limited-event-command-request
Example:
import { parseSchema } from '@my-swu/simulator-client'
const limitedEventCommandRequestPayload = { seatToken: 'limited_token_123', command: { type: 'readyForNextDraft' } }
const parsedPayload = parseSchema('limited-event-command-request', limitedEventCommandRequestPayload)
console.log(parsedPayload)limited-event-command-request:
LimitedEventCommandRequest
Defined in: packages/ts-sdk/src/validators.ts:59
limited-event-response
Example:
import { createSimulatorClient, parseSchema } from '@my-swu/simulator-client'
const simulatorClient = createSimulatorClient({
baseUrl: 'http://127.0.0.1:4000',
})
const limitedEventSnapshot = await simulatorClient.limitedEvents.get({
eventId: 'event_123',
seatToken: 'limited_token_123',
})
const limitedEventResponse = { snapshot: limitedEventSnapshot }
const parsedPayload = parseSchema('limited-event-response', limitedEventResponse)
console.log(parsedPayload)limited-event-response:
LimitedEventResponse
Defined in: packages/ts-sdk/src/validators.ts:60
match-access-response
Example:
import { createSimulatorClient, parseSchema } from '@my-swu/simulator-client'
const simulatorClient = createSimulatorClient({
baseUrl: 'http://127.0.0.1:4000',
})
// Use card ids; the server validates deck legality.
const premierHostDeck = {
leader: 46102, // Leia Organa - Someone Who Loves You
base: 308, // Echo Base
cards: Array.from({ length: 50 }, () => 45), // Alliance X-Wing
}
const matchAccess = await simulatorClient.matches.create({ hostDeck: premierHostDeck })
const parsedPayload = parseSchema('match-access-response', matchAccess)
console.log(parsedPayload)match-access-response:
MatchAccessResponse
Defined in: packages/ts-sdk/src/validators.ts:61
resolve-card-ids-request
Example:
import { parseSchema } from '@my-swu/simulator-client'
const resolveCardIdsRequestPayload = {
references: [{
setCode: 'SOR',
cardNumber: 1,
cardTypes: [
'leader',
],
}],
}
const parsedPayload = parseSchema('resolve-card-ids-request', resolveCardIdsRequestPayload)
console.log(parsedPayload)resolve-card-ids-request:
ResolveCardIdsRequest
Defined in: packages/ts-sdk/src/validators.ts:62
resolve-card-ids-response
Example:
import { parseSchema } from '@my-swu/simulator-client'
const resolveCardIdsResponsePayload = {
resolutions: [{
reference: {
setCode: 'SOR',
cardNumber: 1,
cardTypes: [
'leader',
],
},
cardId: 60,
matches: [{ cardId: 60, cardType: 'leader', title: 'Director Krennic' }],
}],
}
const parsedPayload = parseSchema('resolve-card-ids-response', resolveCardIdsResponsePayload)
console.log(parsedPayload)resolve-card-ids-response:
ResolveCardIdsResponse
Defined in: packages/ts-sdk/src/validators.ts:63
server-message
Example:
import { parseSchema } from '@my-swu/simulator-client'
const serverMessagePayload = { type: 'pong', payload: { nonce: 'host-latency-1' } }
const parsedPayload = parseSchema('server-message', serverMessagePayload)
console.log(parsedPayload)server-message:
ServerMessage
Defined in: packages/ts-sdk/src/validators.ts:64
stats-response
Example:
import { parseSchema } from '@my-swu/simulator-client'
const statsResponsePayload = { total: 3000, covered: 1800, tested: 1600 }
const parsedPayload = parseSchema('stats-response', statsResponsePayload)
console.log(parsedPayload)stats-response:
StatsResponse
Defined in: packages/ts-sdk/src/validators.ts:65
welcome-payload
Example:
import { parseSchema } from '@my-swu/simulator-client'
const welcomePayloadPayload = { matchId: 'match_123', seat: 'one' }
const parsedPayload = parseSchema('welcome-payload', welcomePayloadPayload)
console.log(parsedPayload)welcome-payload:
WelcomePayload
Defined in: packages/ts-sdk/src/validators.ts:66
