[
  {
    "name": "submit_action",
    "description": "Commit YOUR game action for this turn. Only valid when it is your turn. Pass one action from your legal menu as `action` (a JSON object, not a string); the referee rejects illegal moves.",
    "inputSchema": {
      "$schema": "http://json-schema.org/draft-07/schema#",
      "type": "object",
      "properties": {
        "action": {
          "oneOf": [
            {
              "type": "object",
              "properties": {
                "tag": {
                  "type": "string",
                  "const": "driveFerry"
                },
                "to": {
                  "type": "string",
                  "minLength": 1
                }
              },
              "required": [
                "tag"
              ],
              "additionalProperties": false
            },
            {
              "type": "object",
              "properties": {
                "tag": {
                  "type": "string",
                  "const": "directFlight"
                },
                "to": {
                  "type": "string",
                  "minLength": 1
                }
              },
              "required": [
                "tag"
              ],
              "additionalProperties": false
            },
            {
              "type": "object",
              "properties": {
                "tag": {
                  "type": "string",
                  "const": "charterFlight"
                },
                "to": {
                  "type": "string",
                  "minLength": 1
                }
              },
              "required": [
                "tag"
              ],
              "additionalProperties": false
            },
            {
              "type": "object",
              "properties": {
                "tag": {
                  "type": "string",
                  "const": "shuttleFlight"
                },
                "to": {
                  "type": "string",
                  "minLength": 1
                }
              },
              "required": [
                "tag"
              ],
              "additionalProperties": false
            },
            {
              "type": "object",
              "properties": {
                "tag": {
                  "type": "string",
                  "const": "buildStation"
                },
                "relocateFrom": {
                  "type": "string",
                  "minLength": 1
                }
              },
              "required": [
                "tag"
              ],
              "additionalProperties": false
            },
            {
              "type": "object",
              "properties": {
                "tag": {
                  "type": "string",
                  "const": "treatDisease"
                },
                "color": {
                  "type": "string",
                  "enum": [
                    "blue",
                    "yellow",
                    "black",
                    "red"
                  ]
                }
              },
              "required": [
                "tag",
                "color"
              ],
              "additionalProperties": false
            },
            {
              "type": "object",
              "properties": {
                "tag": {
                  "type": "string",
                  "const": "discoverCure"
                },
                "color": {
                  "type": "string",
                  "enum": [
                    "blue",
                    "yellow",
                    "black",
                    "red"
                  ]
                },
                "cards": {
                  "type": "array",
                  "items": {
                    "type": "string",
                    "minLength": 1
                  }
                }
              },
              "required": [
                "tag",
                "color",
                "cards"
              ],
              "additionalProperties": false
            },
            {
              "type": "object",
              "properties": {
                "tag": {
                  "type": "string",
                  "const": "shareGive"
                },
                "to": {
                  "type": "string",
                  "minLength": 1
                },
                "card": {
                  "type": "string",
                  "minLength": 1
                }
              },
              "required": [
                "tag",
                "to"
              ],
              "additionalProperties": false
            },
            {
              "type": "object",
              "properties": {
                "tag": {
                  "type": "string",
                  "const": "shareTake"
                },
                "from": {
                  "type": "string",
                  "minLength": 1
                },
                "card": {
                  "type": "string",
                  "minLength": 1
                }
              },
              "required": [
                "tag",
                "from"
              ],
              "additionalProperties": false
            },
            {
              "type": "object",
              "properties": {
                "tag": {
                  "type": "string",
                  "const": "dispatcherJump"
                },
                "pawn": {
                  "type": "string",
                  "minLength": 1
                },
                "toPawn": {
                  "type": "string",
                  "minLength": 1
                }
              },
              "required": [
                "tag",
                "pawn",
                "toPawn"
              ],
              "additionalProperties": false
            },
            {
              "type": "object",
              "properties": {
                "tag": {
                  "type": "string",
                  "const": "dispatcherMove"
                },
                "pawn": {
                  "type": "string",
                  "minLength": 1
                },
                "via": {
                  "type": "string",
                  "enum": [
                    "driveFerry",
                    "directFlight",
                    "charterFlight",
                    "shuttleFlight"
                  ]
                },
                "to": {
                  "type": "string",
                  "minLength": 1
                }
              },
              "required": [
                "tag",
                "pawn",
                "via"
              ],
              "additionalProperties": false
            },
            {
              "type": "object",
              "properties": {
                "tag": {
                  "type": "string",
                  "const": "operationsExpertMove"
                },
                "to": {
                  "type": "string",
                  "minLength": 1
                },
                "discard": {
                  "type": "string",
                  "minLength": 1
                }
              },
              "required": [
                "tag"
              ],
              "additionalProperties": false
            },
            {
              "type": "object",
              "properties": {
                "tag": {
                  "type": "string",
                  "const": "playEvent"
                },
                "play": {
                  "oneOf": [
                    {
                      "type": "object",
                      "properties": {
                        "event": {
                          "type": "string",
                          "const": "airlift"
                        },
                        "pawn": {
                          "type": "string",
                          "minLength": 1
                        },
                        "to": {
                          "type": "string",
                          "minLength": 1
                        }
                      },
                      "required": [
                        "event",
                        "pawn"
                      ],
                      "additionalProperties": false
                    },
                    {
                      "type": "object",
                      "properties": {
                        "event": {
                          "type": "string",
                          "const": "governmentGrant"
                        },
                        "city": {
                          "type": "string",
                          "minLength": 1
                        },
                        "relocateFrom": {
                          "type": "string",
                          "minLength": 1
                        }
                      },
                      "required": [
                        "event"
                      ],
                      "additionalProperties": false
                    },
                    {
                      "type": "object",
                      "properties": {
                        "event": {
                          "type": "string",
                          "const": "oneQuietNight"
                        }
                      },
                      "required": [
                        "event"
                      ],
                      "additionalProperties": false
                    },
                    {
                      "type": "object",
                      "properties": {
                        "event": {
                          "type": "string",
                          "const": "forecast"
                        },
                        "order": {
                          "type": "array",
                          "items": {
                            "type": "string",
                            "minLength": 1
                          }
                        }
                      },
                      "required": [
                        "event",
                        "order"
                      ],
                      "additionalProperties": false
                    },
                    {
                      "type": "object",
                      "properties": {
                        "event": {
                          "type": "string",
                          "const": "resilientPopulation"
                        },
                        "city": {
                          "type": "string",
                          "minLength": 1
                        }
                      },
                      "required": [
                        "event"
                      ],
                      "additionalProperties": false
                    }
                  ]
                }
              },
              "required": [
                "tag",
                "play"
              ],
              "additionalProperties": false
            },
            {
              "type": "object",
              "properties": {
                "tag": {
                  "type": "string",
                  "const": "contingencyTake"
                },
                "event": {
                  "type": "string",
                  "enum": [
                    "airlift",
                    "governmentGrant",
                    "oneQuietNight",
                    "forecast",
                    "resilientPopulation"
                  ]
                }
              },
              "required": [
                "tag",
                "event"
              ],
              "additionalProperties": false
            },
            {
              "type": "object",
              "properties": {
                "tag": {
                  "type": "string",
                  "const": "pass"
                }
              },
              "required": [
                "tag"
              ],
              "additionalProperties": false
            },
            {
              "type": "object",
              "properties": {
                "tag": {
                  "type": "string",
                  "const": "endActions"
                }
              },
              "required": [
                "tag"
              ],
              "additionalProperties": false
            },
            {
              "type": "object",
              "properties": {
                "tag": {
                  "type": "string",
                  "const": "discard"
                },
                "card": {
                  "oneOf": [
                    {
                      "type": "object",
                      "properties": {
                        "kind": {
                          "type": "string",
                          "const": "city"
                        },
                        "city": {
                          "type": "string",
                          "minLength": 1
                        }
                      },
                      "required": [
                        "kind"
                      ],
                      "additionalProperties": false
                    },
                    {
                      "type": "object",
                      "properties": {
                        "kind": {
                          "type": "string",
                          "const": "event"
                        },
                        "event": {
                          "type": "string",
                          "enum": [
                            "airlift",
                            "governmentGrant",
                            "oneQuietNight",
                            "forecast",
                            "resilientPopulation"
                          ]
                        }
                      },
                      "required": [
                        "kind",
                        "event"
                      ],
                      "additionalProperties": false
                    },
                    {
                      "type": "object",
                      "properties": {
                        "kind": {
                          "type": "string",
                          "const": "epidemic"
                        }
                      },
                      "required": [
                        "kind"
                      ],
                      "additionalProperties": false
                    }
                  ]
                }
              },
              "required": [
                "tag",
                "card"
              ],
              "additionalProperties": false
            }
          ]
        }
      },
      "additionalProperties": false
    }
  },
  {
    "name": "send_message",
    "description": "Say something to the team pool to coordinate or advise. Default to a short update whenever the situation has changed since you last spoke (outbreak count moved, a new 3-cube city appeared, a cure landed, your plan changed) \u2014 stay silent only when truly nothing is new.",
    "inputSchema": {
      "$schema": "http://json-schema.org/draft-07/schema#",
      "type": "object",
      "properties": {
        "text": {
          "type": "string",
          "minLength": 1
        }
      },
      "required": [
        "text"
      ],
      "additionalProperties": false
    }
  },
  {
    "name": "pin_plan",
    "description": "Declare what the TEAM intends beyond this turn \u2014 who collects which color, where you meet next, AND who takes which 3-cube city or cluster. A plan that only tracks cure cards is half a plan: pinned deferrals ('deal with X after the cure') persist and steer both players past growing fires, so give containment its own named owner per fire, per turn. The pinned plan REPLACES the previous one and is re-shown to both players every turn until superseded, unlike send_message (seen once, then gone) and preview_plan (a private simulation, nothing remembered). Do NOT pin this-turn action lists \u2014 they expire when your turn ends; pin the intent that should survive it. Re-pin when the plan completes or the board invalidates it. Costs one message from your talk allowance.",
    "inputSchema": {
      "$schema": "http://json-schema.org/draft-07/schema#",
      "type": "object",
      "properties": {
        "text": {
          "type": "string",
          "minLength": 1
        }
      },
      "required": [
        "text"
      ],
      "additionalProperties": false
    }
  },
  {
    "name": "get_state",
    "description": "Read the latest board you have cached. When it is your turn, the result also carries yourLegalActions \u2014 the exact menu submit_action accepts. No cost; safe to call anytime.",
    "inputSchema": {
      "$schema": "http://json-schema.org/draft-07/schema#",
      "type": "object",
      "properties": {},
      "additionalProperties": false
    }
  },
  {
    "name": "preview_plan",
    "description": "Mechanically verified consequences of a candidate plan \u2014 facts only, no recommendation. Pass `plan`: an ordered array of actions (same shape as submit_action.action). The sandbox replays them on a hypothetical copy of the board and returns the resulting delta (cube/pawn/hand/station/cure changes, actions consumed), the legal menu after each step (so options with no strategy signal \u2014 charter/shuttle/build \u2014 surface here; a step's `legalAfter` is either an array of actions or, when a combinatorial family makes that long, the SAME complete set written in the grouped form your own legal menu uses \u2014 a `<tag> \u2014 N options; build {...}` template plus the values allowed in it), and the draw-phase risk: epidemic and infection odds with their outbreak/chain consequences (quarantine coverage accounted for), hand-limit overflow, deck-exhaustion loss, and per-color cure feasibility (a color whose cards died in the discard can be arithmetically uncurable). Plans may span your WHOLE turn: a turn-completing plan parks just before your draw (boundary `turnComplete`) and its risk describes the exact board your draw will face. It never draws a card and never commits anything \u2014 the referee remains the authority. Each result also lists `unexplored`: the action KINDS legal right now that your plan never uses, with a count and one submittable example each \u2014 read it before settling; a kind you never previewed is a kind you chose blind. It also lists `irreversible`: the cards this plan burns (each priced by the same model the discard hint reads) and the actions it leaves unspent \u2014 the two costs the board cannot refund, since cubes come back and a pawn can walk back while a card and an action do not. Preview a plan that pays either. Available only while it is your own action phase.",
    "inputSchema": {
      "$schema": "http://json-schema.org/draft-07/schema#",
      "type": "object",
      "properties": {
        "plan": {
          "type": "array",
          "items": {
            "oneOf": [
              {
                "type": "object",
                "properties": {
                  "tag": {
                    "type": "string",
                    "const": "driveFerry"
                  },
                  "to": {
                    "type": "string",
                    "minLength": 1
                  }
                },
                "required": [
                  "tag"
                ],
                "additionalProperties": false
              },
              {
                "type": "object",
                "properties": {
                  "tag": {
                    "type": "string",
                    "const": "directFlight"
                  },
                  "to": {
                    "type": "string",
                    "minLength": 1
                  }
                },
                "required": [
                  "tag"
                ],
                "additionalProperties": false
              },
              {
                "type": "object",
                "properties": {
                  "tag": {
                    "type": "string",
                    "const": "charterFlight"
                  },
                  "to": {
                    "type": "string",
                    "minLength": 1
                  }
                },
                "required": [
                  "tag"
                ],
                "additionalProperties": false
              },
              {
                "type": "object",
                "properties": {
                  "tag": {
                    "type": "string",
                    "const": "shuttleFlight"
                  },
                  "to": {
                    "type": "string",
                    "minLength": 1
                  }
                },
                "required": [
                  "tag"
                ],
                "additionalProperties": false
              },
              {
                "type": "object",
                "properties": {
                  "tag": {
                    "type": "string",
                    "const": "buildStation"
                  },
                  "relocateFrom": {
                    "type": "string",
                    "minLength": 1
                  }
                },
                "required": [
                  "tag"
                ],
                "additionalProperties": false
              },
              {
                "type": "object",
                "properties": {
                  "tag": {
                    "type": "string",
                    "const": "treatDisease"
                  },
                  "color": {
                    "type": "string",
                    "enum": [
                      "blue",
                      "yellow",
                      "black",
                      "red"
                    ]
                  }
                },
                "required": [
                  "tag",
                  "color"
                ],
                "additionalProperties": false
              },
              {
                "type": "object",
                "properties": {
                  "tag": {
                    "type": "string",
                    "const": "discoverCure"
                  },
                  "color": {
                    "type": "string",
                    "enum": [
                      "blue",
                      "yellow",
                      "black",
                      "red"
                    ]
                  },
                  "cards": {
                    "type": "array",
                    "items": {
                      "type": "string",
                      "minLength": 1
                    }
                  }
                },
                "required": [
                  "tag",
                  "color",
                  "cards"
                ],
                "additionalProperties": false
              },
              {
                "type": "object",
                "properties": {
                  "tag": {
                    "type": "string",
                    "const": "shareGive"
                  },
                  "to": {
                    "type": "string",
                    "minLength": 1
                  },
                  "card": {
                    "type": "string",
                    "minLength": 1
                  }
                },
                "required": [
                  "tag",
                  "to"
                ],
                "additionalProperties": false
              },
              {
                "type": "object",
                "properties": {
                  "tag": {
                    "type": "string",
                    "const": "shareTake"
                  },
                  "from": {
                    "type": "string",
                    "minLength": 1
                  },
                  "card": {
                    "type": "string",
                    "minLength": 1
                  }
                },
                "required": [
                  "tag",
                  "from"
                ],
                "additionalProperties": false
              },
              {
                "type": "object",
                "properties": {
                  "tag": {
                    "type": "string",
                    "const": "dispatcherJump"
                  },
                  "pawn": {
                    "type": "string",
                    "minLength": 1
                  },
                  "toPawn": {
                    "type": "string",
                    "minLength": 1
                  }
                },
                "required": [
                  "tag",
                  "pawn",
                  "toPawn"
                ],
                "additionalProperties": false
              },
              {
                "type": "object",
                "properties": {
                  "tag": {
                    "type": "string",
                    "const": "dispatcherMove"
                  },
                  "pawn": {
                    "type": "string",
                    "minLength": 1
                  },
                  "via": {
                    "type": "string",
                    "enum": [
                      "driveFerry",
                      "directFlight",
                      "charterFlight",
                      "shuttleFlight"
                    ]
                  },
                  "to": {
                    "type": "string",
                    "minLength": 1
                  }
                },
                "required": [
                  "tag",
                  "pawn",
                  "via"
                ],
                "additionalProperties": false
              },
              {
                "type": "object",
                "properties": {
                  "tag": {
                    "type": "string",
                    "const": "operationsExpertMove"
                  },
                  "to": {
                    "type": "string",
                    "minLength": 1
                  },
                  "discard": {
                    "type": "string",
                    "minLength": 1
                  }
                },
                "required": [
                  "tag"
                ],
                "additionalProperties": false
              },
              {
                "type": "object",
                "properties": {
                  "tag": {
                    "type": "string",
                    "const": "playEvent"
                  },
                  "play": {
                    "oneOf": [
                      {
                        "type": "object",
                        "properties": {
                          "event": {
                            "type": "string",
                            "const": "airlift"
                          },
                          "pawn": {
                            "type": "string",
                            "minLength": 1
                          },
                          "to": {
                            "type": "string",
                            "minLength": 1
                          }
                        },
                        "required": [
                          "event",
                          "pawn"
                        ],
                        "additionalProperties": false
                      },
                      {
                        "type": "object",
                        "properties": {
                          "event": {
                            "type": "string",
                            "const": "governmentGrant"
                          },
                          "city": {
                            "type": "string",
                            "minLength": 1
                          },
                          "relocateFrom": {
                            "type": "string",
                            "minLength": 1
                          }
                        },
                        "required": [
                          "event"
                        ],
                        "additionalProperties": false
                      },
                      {
                        "type": "object",
                        "properties": {
                          "event": {
                            "type": "string",
                            "const": "oneQuietNight"
                          }
                        },
                        "required": [
                          "event"
                        ],
                        "additionalProperties": false
                      },
                      {
                        "type": "object",
                        "properties": {
                          "event": {
                            "type": "string",
                            "const": "forecast"
                          },
                          "order": {
                            "type": "array",
                            "items": {
                              "type": "string",
                              "minLength": 1
                            }
                          }
                        },
                        "required": [
                          "event",
                          "order"
                        ],
                        "additionalProperties": false
                      },
                      {
                        "type": "object",
                        "properties": {
                          "event": {
                            "type": "string",
                            "const": "resilientPopulation"
                          },
                          "city": {
                            "type": "string",
                            "minLength": 1
                          }
                        },
                        "required": [
                          "event"
                        ],
                        "additionalProperties": false
                      }
                    ]
                  }
                },
                "required": [
                  "tag",
                  "play"
                ],
                "additionalProperties": false
              },
              {
                "type": "object",
                "properties": {
                  "tag": {
                    "type": "string",
                    "const": "contingencyTake"
                  },
                  "event": {
                    "type": "string",
                    "enum": [
                      "airlift",
                      "governmentGrant",
                      "oneQuietNight",
                      "forecast",
                      "resilientPopulation"
                    ]
                  }
                },
                "required": [
                  "tag",
                  "event"
                ],
                "additionalProperties": false
              },
              {
                "type": "object",
                "properties": {
                  "tag": {
                    "type": "string",
                    "const": "pass"
                  }
                },
                "required": [
                  "tag"
                ],
                "additionalProperties": false
              },
              {
                "type": "object",
                "properties": {
                  "tag": {
                    "type": "string",
                    "const": "endActions"
                  }
                },
                "required": [
                  "tag"
                ],
                "additionalProperties": false
              },
              {
                "type": "object",
                "properties": {
                  "tag": {
                    "type": "string",
                    "const": "discard"
                  },
                  "card": {
                    "oneOf": [
                      {
                        "type": "object",
                        "properties": {
                          "kind": {
                            "type": "string",
                            "const": "city"
                          },
                          "city": {
                            "type": "string",
                            "minLength": 1
                          }
                        },
                        "required": [
                          "kind"
                        ],
                        "additionalProperties": false
                      },
                      {
                        "type": "object",
                        "properties": {
                          "kind": {
                            "type": "string",
                            "const": "event"
                          },
                          "event": {
                            "type": "string",
                            "enum": [
                              "airlift",
                              "governmentGrant",
                              "oneQuietNight",
                              "forecast",
                              "resilientPopulation"
                            ]
                          }
                        },
                        "required": [
                          "kind",
                          "event"
                        ],
                        "additionalProperties": false
                      },
                      {
                        "type": "object",
                        "properties": {
                          "kind": {
                            "type": "string",
                            "const": "epidemic"
                          }
                        },
                        "required": [
                          "kind"
                        ],
                        "additionalProperties": false
                      }
                    ]
                  }
                },
                "required": [
                  "tag",
                  "card"
                ],
                "additionalProperties": false
              }
            ]
          }
        }
      },
      "additionalProperties": false
    }
  }
]