mulligan
Sent at the start of the game (and after each mulligan) to ask whether the player keeps their opening hand. Unlike the modal prompts, the reference client renders this in the bottom action slot as Keep / Mulligan buttons.
Arguments
Section titled “Arguments”input.type is "mulligan". The remaining fields:
interface MulliganInput { handCardIds: Array<string>; mulliganCount: number;}#[serde(rename_all = "camelCase")]pub struct MulliganInput { pub hand_card_ids: Vec<String>, pub mulligan_count: u32,}Response
Section titled “Response”type MulliganOutput = { type: "mulliganDecision"; keep: boolean };keep: true to keep the hand, false to mulligan and draw a new one.
Example
Section titled “Example”{ "promptId": 1, "decidingPlayerId": "player-0", "input": { "type": "mulligan", "handCardIds": ["hand-0", "hand-1", "hand-2", "hand-3", "hand-4", "hand-5", "hand-6"], "mulliganCount": 1 }}{ "promptId": 1, "output": { "type": "mulliganDecision", "keep": true } }