AdvanceTime
Referee: advance the clock directly.
Full documentation: AdvanceTime. Wire type: advance_time.
Legal session modes: battle, encounter, exploring, game_over, town, victory
JSON Schema
{
"$defs": {
"TimeUnit": {
"description": "The unit an amount of game time is counted in.\n\nPass one to `advance` to say what your number\nmeans, and read one off a `BoundaryCrossing` to\nsee which kind of boundary you crossed. The rounds each unit is worth are\n`ROUNDS_PER_TURN` and\n`ROUNDS_PER_DAY`.",
"enum": [
"round",
"turn",
"day"
],
"title": "TimeUnit",
"type": "string"
}
},
"description": "Referee: advance the clock directly.\n\nReferee commands are legal in every mode, terminal modes included, so the clock\na revival window is measured in keeps running after the party falls. Time\npasses with full bookkeeping (effect expiries, provisions on day boundaries)\nbut no wandering cadence, because the referee controls encounters.\n\nModes:\n `town`, `exploring`, `encounter`, `battle`, `game_over`, `victory`\n\nRejections:\n None.\n\nEvents:\n The span's bookkeeping events (effect expiries and their player-facing\n light translations, provisions), then\n `TimeAdvancedEvent` with the\n total.",
"properties": {
"command_type": {
"const": "advance_time",
"default": "advance_time",
"title": "Command Type",
"type": "string",
"description": "The wire discriminator. Each subclass fixes it to its own snake_case literal, like\n`\"move_party\"` or `\"open_door\"`, so you never set it yourself: constructing the subclass\ndoes. It's what `parse_command` and the\n`AnyCommand` union read to rebuild the right class\nfrom a serialized mapping, and it stays the same across releases."
},
"source": {
"anyOf": [
{
"minLength": 1,
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"title": "Source",
"description": "An annotation naming the authored object (a trigger or quest id) or the game\nsystem on whose behalf the command was issued. Execution never reads it: a stamped\ncommand does exactly what the same command unstamped does. It is logged and replayed\nwith the command, so the log alone answers \"why did this happen\". Absent is `None`,\nand the empty string is not a value."
},
"n": {
"minimum": 0,
"title": "N",
"type": "integer",
"description": "How many units to advance. `0` is legal and advances nothing."
},
"unit": {
"$ref": "#/$defs/TimeUnit",
"description": "Which unit `n` counts: rounds, turns, or days. A B/X turn is 10 minutes and a day is 144\nturns, so the three differ by orders of magnitude. Effect expiries run across the whole\nspan whichever unit you pick, and provisions are charged at each day boundary it\ncrosses."
}
},
"required": [
"n",
"unit"
],
"title": "AdvanceTime",
"type": "object"
}