chooseAction
Sent whenever the player has priority and may take a legal action or pass — cast a spell, play a land, activate an ability, or do nothing. Unlike the modal prompts, the reference client doesn’t show a dialog for this: it highlights the available actions directly on the board.
Arguments
Section titled “Arguments”input.type is "chooseAction". The remaining fields:
interface ChooseActionInput { actions: Array<AvailableAction>;}#[serde(rename_all = "camelCase")]pub struct ChooseActionInput { pub actions: Vec<AvailableAction>,}
References: AvailableAction
Rendering
Section titled “Rendering”There’s no dialog — while you hold priority, each entry in actions is
highlighted in place.

Available actions glow on the board: castable cards in hand, activatable
permanents, and the steps on the phase strip. Clicking a highlight sends
{ type: "act", actionId } for the matching action.

When one card offers several abilities, selecting it opens a small picker to choose which
activateAbility to use — here, Sunken Hollow’s two mana abilities.
Response
Section titled “Response”type ChooseActionOutput = | { type: "pass"; untilPhase?: string } | { type: "concede" } | { type: "restoreSnapshot"; checkpointId: number } | { type: "act"; actionId: string };Send { type: "act", actionId } to perform an action by its id — including
tapping a mana source or untapping one (undoMana), which appear in actions
like any other entry. Send pass to pass priority, optionally untilPhase to
keep passing until a named phase. concede and restoreSnapshot are control
actions.
Example
Section titled “Example”{ "promptId": 7, "decidingPlayerId": "player-0", "input": { "type": "chooseAction", "actions": [ { "id": "act-0", "type": "cast", "cardId": "hand-2", "mode": "cast", "modeLabel": "Cast Lightning Bolt" }, { "id": "tap:perm-5:0", "type": "activateAbility", "cardId": "perm-5", "abilityIndex": 0, "description": "{T}: Add {G}.", "isManaAbility": true, "producedMana": [{ "color": "G", "amount": 1 }] } ] }}{ "promptId": 7, "output": { "type": "pass" }}