{
  "schema_version": 1,
  "identity": {
    "id": "cinder-vault-v1",
    "title": "The Living Dungeon: The Cinder Vault",
    "revision": 2,
    "status": "first-playtest",
    "language": "en",
    "compatible_pod": "d20-adventurers-v1",
    "compatible_decks": [
      "mathise-surge-channeler",
      "delina-wild-mage",
      "vrondiss-rage-of-ancients",
      "wyll-blade-of-frontiers"
    ],
    "design_language": "An original expedition ledger of soot-dark ink, brass instruments, ember-lit stone, clipped room diagrams, and hand-annotated d20 observations. It does not copy official Dungeons & Dragons trade dress or layouts.",
    "printing_status": "Renderer-independent metadata only; dimensions, artwork, bleed, fonts, and imposition remain intentionally unspecified."
  },
  "mode": {
    "adventurer_count": 4,
    "dungeon_operator": "fifth-player-or-deterministic-automa",
    "party_life": 60,
    "party_poison_limit": 15,
    "commander_damage": false,
    "dungeon_vitality": 115,
    "vitality_floors": [95, 70, 40, 20, 0],
    "doom_limit": 10,
    "shared_blocking": true,
    "encounter_deck_size": 30,
    "encounter_composition": {"monster": 12, "hazard": 6, "tactic": 12},
    "scheme_equivalent": "Encounter Tactics are this mode's castable Scheme equivalents.",
    "opening_reserve": 2,
    "reserve_limit": 4,
    "reserve_limit_kind": "cleanup-only",
    "opening_depths": 4,
    "depths_per_round": 1,
    "encounters_cast_per_dungeon_turn": 1,
    "dungeon_turns_per_round": 2,
    "dungeon_combats_per_round": 1,
    "raid_count": 1,
    "expected_duration_minutes": "90-150",
    "expected_end_round": "7-10",
    "win": "Reduce Dungeon Vitality to 0 before the vault collapses.",
    "loss": "Party Life reaches 0, shared poison reaches 15, an adventurer loses by drawing from an empty library, or a new round would begin with Doom 10."
  },
  "zones": [
    {
      "id": "encounter-library",
      "name": "Encounter deck",
      "magic_equivalent": "Dungeon library",
      "visibility": "hidden except the top card while instructed"
    },
    {
      "id": "chapter-zone",
      "name": "Unopened chapters",
      "magic_equivalent": "none; scenario objects outside the Encounter library",
      "visibility": "face-down stage 2, 3, and 4 packets until their stages open"
    },
    {
      "id": "reserve",
      "name": "Reserve",
      "magic_equivalent": "Dungeon hand",
      "visibility": "face up, oldest on the left; discard to four only during Dungeon cleanup"
    },
    {
      "id": "dungeon-battlefield",
      "name": "Dungeon battlefield",
      "magic_equivalent": "battlefield",
      "visibility": "public"
    },
    {
      "id": "dungeon-graveyard",
      "name": "Dungeon graveyard",
      "magic_equivalent": "graveyard",
      "visibility": "public"
    },
    {
      "id": "dungeon-exile",
      "name": "Dungeon exile",
      "magic_equivalent": "exile",
      "visibility": "public"
    },
    {
      "id": "room-zone",
      "name": "Room",
      "magic_equivalent": "none; scenario object",
      "visibility": "one active Room or boss phase"
    },
    {
      "id": "expedition-ledger",
      "name": "Expedition ledger",
      "magic_equivalent": "none; scenario trackers",
      "visibility": "public"
    }
  ],
  "keywords": [
    {
      "id": "focus",
      "name": "Focus",
      "reminder": "The adventurer selected by the latest Dungeon d20 for attacks and first target attempts. Set to Lead during setup and retain until the next Focus roll."
    },
    {
      "id": "sealed",
      "name": "Sealed",
      "reminder": "The current vitality floor was reached. Dungeon Vitality cannot change until the next Dungeon turn opens the next stage."
    },
    {
      "id": "roombound",
      "name": "Roombound",
      "reminder": "Put this Dungeon permanent into its owner's graveyard when the current Room is completed."
    },
    {
      "id": "heartbound",
      "name": "Heartbound",
      "reminder": "This boss cannot change controllers or be copied. If it would leave the battlefield, instead tap it and remove all damage marked on it. The first time this happens each expedition round, the Dungeon also loses 8 gated Vitality; further attempts that round cause no Vitality loss. Reset when Lead rotates."
    },
    {
      "id": "dungeon-roll",
      "name": "Dungeon roll",
      "reminder": "A scenario d20 roll made by the Dungeon. Adventurer replacement and reward effects neither modify nor trigger from it."
    },
    {
      "id": "collective-block",
      "name": "Collective block",
      "reminder": "Any untapped creature controlled by an adventurer may block a Dungeon creature attacking Focus. Control does not change."
    }
  ],
  "turn_structure": {
    "round": [
      "Initiative position one takes a normal adventurer turn.",
      "Initiative position two takes a normal adventurer turn.",
      "The Dungeon takes a turn.",
      "Initiative position three takes a normal adventurer turn.",
      "Initiative position four takes a normal adventurer turn.",
      "The Dungeon takes a turn.",
      "Advance Doom by one, rotate Lead clockwise, and renumber initiative from Lead."
    ],
    "dungeon_turn": [
      "Ready Dungeon permanents and resolve upkeep abilities. On the first Dungeon turn each round, create one tapped Depth land token; it enters without being played.",
      "If Sealed, reveal and set up the next stage, shuffle that stage's chapter onto the top of the Encounter library, update the vitality ceiling, and remove Sealed.",
      "Roll the Dungeon d20, select Focus from initiative, and resolve the active Room's lair band.",
      "Draw the top Encounter face up to the right side of Reserve.",
      "Cast the oldest castable Reserve card without paying its mana cost and pass priority normally.",
      "Skip combat on the first Dungeon turn. On the second, attack Focus with every able Dungeon creature and let the party block collectively.",
      "Resolve end-step instructions and discard Reserve to four, oldest first."
    ]
  },
  "automa_protocol": {
    "focus_roll": [
      {"min": 1, "max": 5, "initiative": 1},
      {"min": 6, "max": 10, "initiative": 2},
      {"min": 11, "max": 15, "initiative": 3},
      {"min": 16, "max": 20, "initiative": 4}
    ],
    "target_protocols": [
      {"id": "none", "label": "None", "instruction": "The object needs no target. Follow its printed choices and casting note."},
      {"id": "focus", "label": "Focus", "instruction": "Try Focus, then the remaining adventurers clockwise in initiative order if the specific spell or ability cannot legally target Focus."},
      {"id": "active-or-focus", "label": "Active or Focus", "instruction": "During an adventurer turn use the active adventurer; during a Dungeon turn use Focus; then move clockwise if illegal."},
      {"id": "commander", "label": "Commander", "instruction": "Choose a legal designated commander controlled by Focus; otherwise use Anchor."},
      {"id": "anchor", "label": "Anchor", "instruction": "Choose Focus's legal nonland permanent with greatest mana value."},
      {"id": "vanguard", "label": "Vanguard", "instruction": "Choose the party's legal creature with greatest power."},
      {"id": "engine", "label": "Engine", "instruction": "Choose the party's legal permanent with a repeatable activated or triggered ability, then greatest mana value."},
      {"id": "supply", "label": "Supply", "instruction": "Choose the party's legal artifact or enchantment with greatest mana value."},
      {"id": "weak-point", "label": "Weak point", "instruction": "Choose Focus's legal permanent with lowest mana value."},
      {"id": "focus-two-vanguards", "label": "Focus's two Vanguards", "instruction": "Choose Focus and its two legal creatures with greatest power, choosing two creatures whenever able."},
      {"id": "focus-vanguard-noncommander", "label": "Focus Vanguard, noncommander", "instruction": "Choose Focus's legal noncommander creature with greatest power."},
      {"id": "party-nonlegendary-vanguard-choice", "label": "Party nonlegendary Vanguard choice", "instruction": "Choose the party's nonlegendary creature with greatest power. This is not a target when the Encounter says choose."}
    ],
    "tie_breaks": [
      "Nontoken before token.",
      "Higher printed mana value.",
      "English card name alphabetically.",
      "Earlier initiative position."
    ],
    "blocking_order": [
      "Process ready Dungeon blockers by descending power, toughness, mana value, nontoken before token, then English name.",
      "Block the greatest-power attacker the blocker can destroy; otherwise the greatest-power legal attacker.",
      "Prefer a commander on tied attacker power and spread one blocker per attacker before double-blocking."
    ]
  },
  "tokens": [
    {
      "id": "token-depth",
      "name": "Depth",
      "colors": [],
      "type_line": "Token Land — Depth",
      "rules_text": "{T}: Add {C}. The Dungeon never activates this ability and has no mana pool.",
      "roombound": false,
      "art_direction": "A descending stair cut into a small floating shard of black stone, marked with a single brass tally."
    },
    {
      "id": "token-cinderling",
      "name": "Cinderling",
      "colors": ["R"],
      "type_line": "Token Creature — Elemental",
      "power": "2",
      "toughness": "1",
      "rules_text": "Haste. When this creature dies, it deals 1 damage to target opponent.",
      "automa": {
        "target": "active-or-focus",
        "fallback": "Use the next legal adventurer in initiative order.",
        "resolution": "During an adventurer turn target the active adventurer; during a Dungeon turn target Focus."
      },
      "roombound": false,
      "art_direction": "A coal-bright imp scrambling from a crack in black stone."
    },
    {
      "id": "token-gatekeeper",
      "name": "Brass Gatekeeper",
      "colors": [],
      "type_line": "Token Artifact Creature — Golem",
      "power": "4",
      "toughness": "5",
      "rules_text": "Reach. This creature can block an additional creature each combat.",
      "roombound": false,
      "art_direction": "A many-armed brass sentinel locking its heels into a portcullis rail."
    },
    {
      "id": "token-reflection",
      "name": "Reflection",
      "colors": [],
      "type_line": "Token Creature — Reflection",
      "power": "2",
      "toughness": "2",
      "rules_text": "This token is a colorless Reflection in addition to its other characteristics.",
      "roombound": false,
      "art_direction": "A fractured silhouette stepping out of an imperfect mirror."
    },
    {
      "id": "token-mirror-spark",
      "name": "Mirror Spark",
      "colors": [],
      "type_line": "Token Creature — Reflection",
      "power": "1",
      "toughness": "1",
      "rules_text": "This token has no abilities.",
      "roombound": false,
      "art_direction": "A thumb-sized humanoid reflection climbing from a silver droplet."
    },
    {
      "id": "token-borrowed-reflection",
      "name": "Borrowed Reflection",
      "colors": [],
      "type_line": "Token Creature — Reflection",
      "power": "3",
      "toughness": "3",
      "rules_text": "Flying. This token has the name and creature types of the Vanguard chosen when it was created, but no other rules text.",
      "roombound": false,
      "art_direction": "A winged mirror-shard arranged in the outline of an adventurer."
    },
    {
      "id": "token-mirrored-vanguard",
      "name": "Mirrored Vanguard",
      "colors": [],
      "type_line": "Token Creature — Reflection",
      "power": "5",
      "toughness": "5",
      "rules_text": "Flying, haste. This token has the name and creature types chosen as it was created, but no other abilities.",
      "roombound": false,
      "art_direction": "A full-height martial reflection made from floating mirror plates, with its model's silhouette but no face."
    },
    {
      "id": "token-furnace-brute",
      "name": "Furnace Brute",
      "colors": ["R"],
      "type_line": "Token Creature — Elemental Giant",
      "power": "6",
      "toughness": "5",
      "rules_text": "Trample. Whenever this creature attacks, it deals 1 damage to the defending player.",
      "roombound": false,
      "art_direction": "A slag-armored giant carrying a length of glowing chain."
    }
  ],
  "rooms": [
    {
      "id": "room-sundered-gate",
      "name": "The Sundered Gate",
      "sequence": 1,
      "vitality_ceiling": 115,
      "vitality_floor": 95,
      "setup": [
      "Create two tapped roombound Cinderling tokens under Dungeon control.",
        "Put the Heat tracker at 0. Setup deals no damage."
      ],
      "static_rules": [
        "This is the teaching Room: no additional static rule.",
        "Cinderlings created by setup are roombound."
      ],
      "lair_roll": [
        {
          "min": 1,
          "max": 1,
          "label": "The stones miscount",
          "effect": "Tap the Dungeon creature with greatest power. It does not untap during the next Dungeon ready step. If there is no Dungeon creature, the Dungeon loses 2 Vitality."
        },
        {
          "min": 2,
          "max": 9,
          "label": "A held breath",
          "effect": "No additional lair effect."
        },
        {
          "min": 10,
          "max": 19,
          "label": "Coal through the cracks",
          "effect": "If the Dungeon controls fewer than three creatures, create one tapped roombound Cinderling token under Dungeon control. Otherwise, no additional effect."
        },
        {
          "min": 20,
          "max": 20,
          "label": "The gate stands up",
          "effect": "If the Dungeon controls no Gatekeeper, create one roombound Brass Gatekeeper token under Dungeon control. Otherwise, tap Focus's creature with greatest power."
        }
      ],
      "completion": "Set Sealed at 95 Vitality. Put roombound permanents into their owners' graveyards. The Hall of Borrowed Faces opens at the beginning of the next Dungeon turn.",
      "flavor_text": "Every hinge bears twenty scratches. Only nineteen were made by tools.",
      "simulation": {
        "ambient_damage": 0,
        "setup_monster_power": 4,
        "block_tax": 2
      }
    },
    {
      "id": "room-borrowed-faces",
      "name": "The Hall of Borrowed Faces",
      "sequence": 2,
      "vitality_ceiling": 95,
      "vitality_floor": 70,
      "setup": [
      "Create one tapped roombound Reflection token under Dungeon control.",
        "Reset the Mirror Triggered tracker to 0. Setup deals no damage."
      ],
      "static_rules": [
      "If Mirror Triggered is 0, the first time an adventurer casts their second spell in one turn this round, create one tapped roombound Reflection token under Dungeon control, then set Mirror Triggered to 1.",
        "Reset Mirror Triggered to 0 when Lead rotates."
      ],
      "lair_roll": [
        {
          "min": 1,
          "max": 1,
          "label": "A true reflection",
          "effect": "The Dungeon loses 2 Vitality. Focus may scry 1."
        },
        {
          "min": 2,
          "max": 9,
          "label": "The mirror catches a sleeve",
          "effect": "Tap Focus's creature with greatest power."
        },
        {
          "min": 10,
          "max": 19,
          "label": "A second figure steps out",
          "effect": "If the Dungeon controls fewer than four creatures, create one tapped roombound Reflection token under Dungeon control. Otherwise, no additional effect."
        },
        {
          "min": 20,
          "max": 20,
          "label": "The hall remembers the vanguard",
          "effect": "If the Dungeon controls fewer than four creatures and the party controls a creature, create one tapped roombound Borrowed Reflection token using the current Vanguard. If the party controls no creature, create one tapped roombound 2/2 Reflection token instead. Otherwise, tap Focus's creature with greatest power if able."
        }
      ],
      "completion": "Set Sealed at 70 Vitality. Put roombound permanents into their owners' graveyards. The Furnace Span opens at the beginning of the next Dungeon turn.",
      "flavor_text": "The mirrors do not show what is. They rehearse what might attack next.",
      "simulation": {
        "ambient_damage": 0,
        "setup_monster_power": 2,
        "block_tax": 3
      }
    },
    {
      "id": "room-furnace-span",
      "name": "The Furnace Span",
      "sequence": 3,
      "vitality_ceiling": 70,
      "vitality_floor": 40,
      "setup": [
      "Create one tapped roombound Furnace Brute token under Dungeon control.",
        "Set Heat to 1. Setup deals no damage."
      ],
      "static_rules": [
        "At the beginning of each Dungeon turn after opening the way, increase Heat by one to a maximum of 4.",
        "After Dungeon combat, the Dungeon deals damage equal to Heat to Focus.",
        "The first time each round an adventurer keeps a natural 20 for a printed Magic d20 instruction, reduce Heat by one to a minimum of 0. Dungeon rolls do not qualify."
      ],
      "lair_roll": [
        {
          "min": 1,
          "max": 1,
          "label": "A cool seam",
          "effect": "Reduce Heat by one to a minimum of 0."
        },
        {
          "min": 2,
          "max": 9,
          "label": "The chain holds",
          "effect": "No additional lair effect."
        },
        {
          "min": 10,
          "max": 19,
          "label": "Vent flare",
          "effect": "The Dungeon deals 2 damage to Focus."
        },
        {
          "min": 20,
          "max": 20,
          "label": "The span buckles",
          "effect": "Advance Doom by one and create one tapped roombound Cinderling token under Dungeon control."
        }
      ],
      "completion": "Set Sealed at 40 Vitality. Put roombound permanents into their owners' graveyards and reset Heat to 0. Vhal-Kez, Bound Warden enters at the beginning of the next Dungeon turn.",
      "flavor_text": "Below the bridge, discarded futures burn without smoke.",
      "simulation": {
        "ambient_damage": 3,
        "setup_monster_power": 6,
        "block_tax": 5
      }
    },
    {
      "id": "room-heart-of-the-vault",
      "name": "The Heart of the Vault",
      "sequence": 4,
      "vitality_ceiling": 40,
      "vitality_floor": 0,
      "setup": [
        "Put Vhal-Kez, Bound Warden onto the Dungeon battlefield.",
      "Create one tapped roombound Cinderling token under Dungeon control. Setup deals no damage."
      ],
      "static_rules": [
        "Use the boss phase whose vitality range contains current Dungeon Vitality.",
      "At 20 Vitality, set Sealed. When the next Dungeon turn opens the way, set Bound Warden aside as a scenario action and put Crown Unbound onto the battlefield untapped as a new object. Clear damage and counters, detach attachments, and prevent it from attacking that turn unless it gains haste."
      ],
      "lair_roll": [
        {
          "min": 1,
          "max": 1,
          "label": "A flaw in the crown",
          "effect": "Tap Vhal-Kez. It does not untap during this Dungeon turn, and it cannot attack this turn."
        },
        {
          "min": 2,
          "max": 9,
          "label": "The heart listens",
          "effect": "No additional lair effect."
        },
        {
          "min": 10,
          "max": 19,
          "label": "An ember takes shape",
          "effect": "If the Dungeon controls fewer than four creatures, create one tapped roombound Cinderling token under Dungeon control. Otherwise, Vhal-Kez gets +2/+0 until end of turn."
        },
        {
          "min": 20,
          "max": 20,
          "label": "The crown speaks twice",
          "effect": "After the normal Scheme step, draw and cast one additional castable Encounter this Dungeon turn."
        }
      ],
      "completion": "At 0 Vitality, the party wins immediately after the resolving event and state-based actions finish.",
      "flavor_text": "The crown was never treasure. It was a lock waiting for a head.",
      "simulation": {
        "ambient_damage": 2,
        "setup_monster_power": 8,
        "block_tax": 7
      }
    }
  ],
  "boss": {
    "id": "boss-vhal-kez",
    "name": "Vhal-Kez, the Emberbound",
    "owner": "dungeon",
    "keywords": ["heartbound"],
    "phase_transition": {
      "timing": "Open the way after the 20-Vitality gate",
      "old_object": "Set Bound Warden aside as a scenario action; this is not a zone change and Heartbound does not apply.",
      "new_object": "Put Crown Unbound onto the battlefield untapped as a new object with no marked damage or counters.",
      "attachments": "Detach all objects. Auras go to their owners' graveyards as normal state-based actions; Equipment remains on the battlefield.",
      "combat": "Crown Unbound entered this Dungeon turn and cannot attack that turn unless it gains haste."
    },
    "phases": [
      {
        "id": "boss-vhal-kez-bound",
        "name": "Vhal-Kez, Bound Warden",
        "vitality_ceiling": 40,
        "vitality_floor": 20,
        "mana_value": 8,
        "mana_cost": "{8}",
        "colors": [],
        "type_line": "Legendary Creature — Dragon Construct Boss",
        "power": "8",
        "toughness": "8",
        "rules_text": "Flying, heartbound. Whenever this creature attacks, create a tapped and attacking Cinderling token attacking the defending player. Exile that token at end of combat.",
        "automa": "Attack Focus if able. The Cinderling is already attacking and does not create a second attack target.",
        "simulation": {
          "combat_power": 10,
          "block_tax": 8
        }
      },
      {
        "id": "boss-vhal-kez-unbound",
        "name": "Vhal-Kez, Crown Unbound",
        "vitality_ceiling": 20,
        "vitality_floor": 0,
        "mana_value": 10,
        "mana_cost": "{10}",
        "colors": [],
        "type_line": "Legendary Creature — Dragon Construct Boss",
        "power": "11",
        "toughness": "10",
        "rules_text": "Flying, trample, heartbound. Whenever this creature attacks, it deals 2 damage to the defending player.",
        "automa": "Attack Focus if able. Resolve the 2-damage trigger as one packet before blocks.",
        "simulation": {
          "combat_power": 13,
          "block_tax": 10
        }
      }
    ],
    "art_direction": "A dragon-shaped brass warden whose ribs surround an ember-red d20; in the second phase the crown unfolds into burning wings."
  },
  "encounter_cards": [
    {
      "id": "encounter-cinderling-skirmisher",
      "name": "Cinderling Skirmisher",
      "quantity": 3,
      "minimum_stage": 1,
      "kind": "monster",
      "mana_value": 2,
      "mana_cost": "{2}",
      "colors": [],
      "type_line": "Creature — Elemental Minion",
      "power": "2",
      "toughness": "1",
      "rules_text": "Haste. When this creature dies, it deals 1 damage to target opponent.",
      "flavor_text": "It has never won a duel. It has ended several expeditions.",
      "automa": {
        "target": "active-or-focus",
        "fallback": "Use the next legal adventurer in initiative order.",
        "casting": "Cast as the oldest legal Reserve card. Its death trigger uses the active-or-Focus protocol."
      },
      "simulation": {"direct_damage": 1, "monster_power": 2, "block_tax": 1, "persistent_damage": 0}
    },
    {
      "id": "encounter-brass-gatekeeper",
      "name": "Brass Gatekeeper",
      "quantity": 2,
      "minimum_stage": 1,
      "kind": "monster",
      "mana_value": 4,
      "mana_cost": "{4}",
      "colors": [],
      "type_line": "Artifact Creature — Golem Minion",
      "power": "4",
      "toughness": "5",
      "rules_text": "Reach. This creature can block an additional creature each combat.",
      "flavor_text": "Its keyhole is on the inside.",
      "automa": {
        "target": "none",
        "fallback": "Cast without a target.",
        "casting": "On blocks, apply the blocking protocol twice."
      },
      "simulation": {"direct_damage": 0, "monster_power": 4, "block_tax": 6, "persistent_damage": 0}
    },
    {
      "id": "encounter-mirror-shade",
      "name": "Mirror Shade",
      "quantity": 2,
      "minimum_stage": 2,
      "kind": "monster",
      "mana_value": 3,
      "mana_cost": "{3}",
      "colors": [],
      "type_line": "Creature — Reflection Minion",
      "power": "3",
      "toughness": "3",
      "rules_text": "Flying. Whenever an opponent casts their second spell each turn, put a +1/+1 counter on this creature.",
      "flavor_text": "It learns a gesture sooner than its owner does.",
      "automa": {
        "target": "none",
        "fallback": "Cast without a target.",
        "casting": "Count spells separately for each opponent."
      },
      "simulation": {"direct_damage": 0, "monster_power": 4, "block_tax": 3, "persistent_damage": 0}
    },
    {
      "id": "encounter-furnace-brute",
      "name": "Furnace Brute",
      "quantity": 2,
      "minimum_stage": 3,
      "kind": "monster",
      "mana_value": 6,
      "mana_cost": "{6}",
      "colors": [],
      "type_line": "Creature — Elemental Giant Minion",
      "power": "6",
      "toughness": "5",
      "rules_text": "Trample. Whenever this creature attacks, it deals 1 damage to the defending player.",
      "flavor_text": "Every link in its chain was once a door hinge.",
      "automa": {
        "target": "focus",
        "fallback": "Use the next legal adventurer in initiative order.",
        "casting": "Resolve the attack trigger as one damage packet."
      },
      "simulation": {"direct_damage": 1, "monster_power": 6, "block_tax": 5, "persistent_damage": 0}
    },
    {
      "id": "encounter-vault-drake",
      "name": "Vault Drake",
      "quantity": 2,
      "minimum_stage": 3,
      "kind": "monster",
      "mana_value": 5,
      "mana_cost": "{5}",
      "colors": [],
      "type_line": "Creature — Drake Minion",
      "power": "5",
      "toughness": "4",
      "rules_text": "Flying, ward {2}. Whenever this creature deals combat damage to a player, its controller draws a card.",
      "flavor_text": "It hoards unopened possibilities.",
      "automa": {
        "target": "none",
        "fallback": "Cast without a target.",
        "casting": "A Dungeon draw enters Reserve face up."
      },
      "simulation": {"direct_damage": 0, "monster_power": 6, "block_tax": 4, "persistent_damage": 1}
    },
    {
      "id": "encounter-ashen-hexer",
      "name": "Ashen Hexer",
      "quantity": 1,
      "minimum_stage": 2,
      "kind": "monster",
      "mana_value": 4,
      "mana_cost": "{4}",
      "colors": [],
      "type_line": "Creature — Warlock Minion",
      "power": "2",
      "toughness": "4",
      "rules_text": "Menace. When this creature enters, choose target opponent. Until your next turn, the first noncreature spell that player casts costs {2} more to cast.",
      "flavor_text": "It burns the word just before you speak it.",
      "automa": {
        "target": "focus",
        "fallback": "Use the next legal adventurer in initiative order.",
        "casting": "Announce Focus before this spell resolves."
      },
      "simulation": {"direct_damage": 0, "monster_power": 3, "block_tax": 3, "persistent_damage": 1}
    },
    {
      "id": "encounter-grasping-chains",
      "name": "Grasping Chains",
      "quantity": 2,
      "minimum_stage": 1,
      "kind": "hazard",
      "mana_value": 3,
      "mana_cost": "{3}",
      "colors": [],
      "type_line": "Artifact — Hazard",
      "rules_text": "At the beginning of combat on your turn, tap target creature an opponent controls with greatest power among creatures they control.",
      "flavor_text": "They pull hardest on whoever looks most ready.",
      "automa": {
        "target": "vanguard",
        "fallback": "If there is no legal creature, this ability does nothing.",
        "casting": "Use the public Vanguard tie-break protocol."
      },
      "simulation": {"direct_damage": 0, "monster_power": 0, "block_tax": 2, "persistent_damage": 1}
    },
    {
      "id": "encounter-furnace-vent",
      "name": "Furnace Vent",
      "quantity": 1,
      "minimum_stage": 3,
      "kind": "hazard",
      "mana_value": 3,
      "mana_cost": "{3}",
      "colors": [],
      "type_line": "Artifact — Hazard",
      "rules_text": "At the beginning of combat on your turn, this artifact deals 2 damage to target opponent.",
      "flavor_text": "The warning rune is on the side facing the flame.",
      "automa": {
        "target": "focus",
        "fallback": "Use the next legal adventurer in initiative order.",
        "casting": "Resolve the damage as one packet."
      },
      "simulation": {"direct_damage": 0, "monster_power": 0, "block_tax": 0, "persistent_damage": 2}
    },
    {
      "id": "encounter-mirror-engine",
      "name": "Mirror Engine",
      "quantity": 1,
      "minimum_stage": 2,
      "kind": "hazard",
      "mana_value": 4,
      "mana_cost": "{4}",
      "colors": [],
      "type_line": "Artifact — Hazard",
      "rules_text": "Whenever one or more nontoken creatures enter under an opponent's control, if this ability has not triggered this round and this artifact's controller controls fewer than four creatures, create a Mirror Spark token. This ability triggers only once each round.",
      "flavor_text": "It records arrivals, then sends a correction.",
      "automa": {
        "target": "none",
        "fallback": "Cast without a target.",
        "casting": "Track one trigger per expedition round. A token it creates is a normal token, not roombound."
      },
      "simulation": {"direct_damage": 0, "monster_power": 1, "block_tax": 1, "persistent_damage": 1}
    },
    {
      "id": "encounter-choking-smoke",
      "name": "Choking Smoke",
      "quantity": 1,
      "minimum_stage": 2,
      "kind": "hazard",
      "mana_value": 4,
      "mana_cost": "{4}",
      "colors": [],
      "type_line": "Enchantment — Hazard",
      "rules_text": "Creatures your opponents control enter the battlefield tapped.",
      "flavor_text": "Nothing enters the vault at a run twice.",
      "automa": {
        "target": "none",
        "fallback": "Cast without a target.",
        "casting": "Apply to every opposing adventurer separately."
      },
      "simulation": {"direct_damage": 0, "monster_power": 0, "block_tax": 2, "persistent_damage": 1}
    },
    {
      "id": "encounter-portcullis-of-teeth",
      "name": "Portcullis of Teeth",
      "quantity": 1,
      "minimum_stage": 3,
      "kind": "hazard",
      "mana_value": 5,
      "mana_cost": "{5}",
      "colors": [],
      "type_line": "Artifact — Hazard",
      "rules_text": "Creatures your opponents control get -1/-0 and lose trample.",
      "flavor_text": "The bars are spaced for hope, not bodies.",
      "automa": {
        "target": "none",
        "fallback": "Cast without a target.",
        "casting": "Continuous effect; do not alter printed power."
      },
      "simulation": {"direct_damage": 0, "monster_power": 0, "block_tax": 5, "persistent_damage": 0}
    },
    {
      "id": "encounter-rouse-the-rabble",
      "name": "Rouse the Rabble",
      "quantity": 1,
      "minimum_stage": 1,
      "kind": "tactic",
      "mana_value": 3,
      "mana_cost": "{3}",
      "colors": [],
      "type_line": "Sorcery — Dungeon Tactic",
      "rules_text": "Create two Cinderling tokens.",
      "flavor_text": "The smallest doors open first.",
      "automa": {
        "target": "none",
        "fallback": "Create the tokens without a target.",
        "casting": "Tokens are not roombound unless the active Room says otherwise."
      },
      "simulation": {"direct_damage": 0, "monster_power": 4, "block_tax": 2, "persistent_damage": 0}
    },
    {
      "id": "encounter-raise-the-gate",
      "name": "Raise the Gate",
      "quantity": 1,
      "minimum_stage": 1,
      "kind": "tactic",
      "mana_value": 4,
      "mana_cost": "{4}",
      "colors": [],
      "type_line": "Sorcery — Dungeon Tactic",
      "rules_text": "Create a 4/5 colorless Gatekeeper artifact creature token with reach and ‘This creature can block an additional creature each combat.’",
      "flavor_text": "The door has decided to defend itself.",
      "automa": {
        "target": "none",
        "fallback": "Create the token without a target.",
        "casting": "Apply the blocking protocol twice for the token."
      },
      "simulation": {"direct_damage": 0, "monster_power": 4, "block_tax": 6, "persistent_damage": 0}
    },
    {
      "id": "encounter-stonefall",
      "name": "Stonefall",
      "quantity": 1,
      "minimum_stage": 1,
      "kind": "tactic",
      "mana_value": 3,
      "mana_cost": "{3}",
      "colors": [],
      "type_line": "Sorcery — Dungeon Tactic",
      "rules_text": "This spell deals 5 damage to target opponent. That player may tap two untapped creatures they control. If they do, prevent 3 of that damage.",
      "flavor_text": "The ceiling asks for two hands or five bones.",
      "automa": {
        "target": "focus",
        "fallback": "Use the next legal adventurer in initiative order.",
        "casting": "An adventurer decides whether to tap their creatures. If the Dungeon is targeted, it taps its two lowest-power untapped creatures when able."
      },
      "simulation": {"direct_damage": 4, "monster_power": 0, "block_tax": 0, "persistent_damage": 0}
    },
    {
      "id": "encounter-break-the-formation",
      "name": "Break the Formation",
      "quantity": 1,
      "minimum_stage": 2,
      "kind": "tactic",
      "mana_value": 4,
      "mana_cost": "{4}",
      "colors": [],
      "type_line": "Sorcery — Dungeon Tactic",
      "rules_text": "Choose target opponent. Tap up to two target creatures that player controls and put a stun counter on each of them. If no creature was tapped this way, that player loses 4 life.",
      "flavor_text": "The vault does not need to defeat a line it can interrupt.",
      "automa": {
        "target": "focus-two-vanguards",
        "fallback": "Focus loses 4 life if no legal creature is available.",
        "casting": "Choose Focus, then its two greatest-power legal creatures."
      },
      "simulation": {"direct_damage": 1, "monster_power": 0, "block_tax": 5, "persistent_damage": 0}
    },
    {
      "id": "encounter-mirror-the-vanguard",
      "name": "Mirror the Vanguard",
      "quantity": 1,
      "minimum_stage": 2,
      "kind": "tactic",
      "casting_window": "second-dungeon-turn",
      "mana_value": 5,
      "mana_cost": "{5}",
      "colors": [],
      "type_line": "Sorcery — Dungeon Tactic",
      "rules_text": "Choose one — Choose a nonlegendary creature an opponent controls. Create a Mirrored Vanguard token using that creature's name and creature types. Exile it at the beginning of the next end step; or create two Cinderling tokens.",
      "flavor_text": "The hall signs its copies in someone else's hand.",
      "automa": {
        "target": "party-nonlegendary-vanguard-choice",
        "fallback": "Choose the two-Cinderling mode if the party controls no nonlegendary creature.",
        "casting": "Use the first mode and choose the greatest-power nonlegendary creature across the party; otherwise use the second mode."
      },
      "simulation": {"direct_damage": 0, "monster_power": 6, "block_tax": 0, "persistent_damage": 0}
    },
    {
      "id": "encounter-scorch-the-ranks",
      "name": "Scorch the Ranks",
      "quantity": 1,
      "minimum_stage": 3,
      "kind": "tactic",
      "mana_value": 5,
      "mana_cost": "{5}",
      "colors": [],
      "type_line": "Sorcery — Dungeon Tactic",
      "rules_text": "This spell deals 2 damage to each creature your opponents control and 3 damage to target opponent.",
      "flavor_text": "The flame measures formations, not courage.",
      "automa": {
        "target": "focus",
        "fallback": "Use the next legal adventurer in initiative order.",
        "casting": "The creature damage affects all four opposing battlefields; the player damage affects Focus once."
      },
      "simulation": {"direct_damage": 3, "monster_power": 0, "block_tax": 4, "persistent_damage": 0}
    },
    {
      "id": "encounter-claim-the-vanguard",
      "name": "Claim the Vanguard",
      "quantity": 1,
      "minimum_stage": 2,
      "kind": "tactic",
      "casting_window": "second-dungeon-turn",
      "mana_value": 5,
      "mana_cost": "{5}",
      "colors": [],
      "type_line": "Sorcery — Dungeon Tactic",
      "rules_text": "Choose one — Gain control of target noncommander creature an opponent controls until end of turn. Untap it. It gains haste until end of turn and attacks that opponent this turn if able; or target opponent loses 4 life.",
      "flavor_text": "For one heartbeat, the bravest shadow points home.",
      "automa": {
        "target": "focus-vanguard-noncommander",
        "fallback": "Choose the life-loss mode targeting Focus if Focus controls no legal noncommander creature.",
        "casting": "Use the first mode on the greatest-power legal noncommander creature Focus controls; otherwise use the second mode. The stolen creature attacks Focus during Dungeon combat."
      },
      "simulation": {"direct_damage": 3, "monster_power": 4, "block_tax": 0, "persistent_damage": 0}
    },
    {
      "id": "encounter-smother-the-spark",
      "name": "Smother the Spark",
      "quantity": 1,
      "minimum_stage": 2,
      "kind": "tactic",
      "mana_value": 4,
      "mana_cost": "{4}",
      "colors": [],
      "type_line": "Sorcery — Dungeon Tactic",
      "rules_text": "Until your next turn, the next spell each opponent casts costs {1} more to cast. After this cost applies to a player's spell, it no longer applies to that player.",
      "flavor_text": "The air remembers every syllable and charges rent.",
      "automa": {
        "target": "none",
        "fallback": "Resolve without a target.",
        "casting": "Track the effect separately for each opponent. If an adventurer controls it, at most the next Dungeon spell is taxed."
      },
      "simulation": {"direct_damage": 0, "monster_power": 0, "block_tax": 3, "persistent_damage": 0}
    },
    {
      "id": "encounter-demand-tribute",
      "name": "Demand Tribute",
      "quantity": 1,
      "minimum_stage": 4,
      "kind": "tactic",
      "mana_value": 4,
      "mana_cost": "{4}",
      "colors": [],
      "type_line": "Sorcery — Dungeon Tactic",
      "rules_text": "Target opponent sacrifices a nonland permanent. If that player can't, they lose 6 life.",
      "flavor_text": "The vault accepts anything you planned to need later.",
      "automa": {
        "target": "focus",
        "fallback": "Use the next legal adventurer in initiative order.",
        "casting": "The targeted adventurer chooses the permanent they sacrifice. If the Dungeon is targeted, use the automa sacrifice protocol."
      },
      "simulation": {"direct_damage": 1, "monster_power": 0, "block_tax": 4, "persistent_damage": 0}
    },
    {
      "id": "encounter-hall-hunts-back",
      "name": "The Hall Hunts Back",
      "quantity": 1,
      "minimum_stage": 2,
      "kind": "tactic",
      "mana_value": 4,
      "mana_cost": "{4}",
      "colors": [],
      "type_line": "Instant — Dungeon Tactic",
      "rules_text": "Choose one — Return target nonland permanent an opponent controls to its owner's hand. Its controller creates a Reflection token; or create two Cinderling tokens.",
      "flavor_text": "The missing shape is filled before anyone can object.",
      "automa": {
        "target": "anchor",
        "fallback": "Choose the Cinderling mode if no opponent controls a legal nonland permanent.",
        "casting": "Use the first mode on Focus's highest-mana-value legal nonland permanent; otherwise use the second mode."
      },
      "simulation": {"direct_damage": 0, "monster_power": 2, "block_tax": 5, "persistent_damage": 0}
    },
    {
      "id": "encounter-feed-the-heart",
      "name": "Feed the Heart",
      "quantity": 1,
      "minimum_stage": 4,
      "kind": "tactic",
      "mana_value": 6,
      "mana_cost": "{6}",
      "colors": [],
      "type_line": "Sorcery — Dungeon Tactic",
      "rules_text": "Target opponent loses 6 life and you gain 6 life.",
      "flavor_text": "The ember knows only exchange, never mercy.",
      "automa": {
        "target": "focus",
        "fallback": "Use the next legal adventurer in initiative order.",
        "casting": "Dungeon life gain cannot exceed the current stage ceiling."
      },
      "simulation": {"direct_damage": 6, "monster_power": 0, "block_tax": 0, "persistent_damage": 0}
    },
    {
      "id": "encounter-no-safe-ground",
      "name": "No Safe Ground",
      "quantity": 1,
      "minimum_stage": 4,
      "kind": "tactic",
      "casting_window": "second-dungeon-turn",
      "mana_value": 5,
      "mana_cost": "{5}",
      "colors": [],
      "type_line": "Sorcery — Dungeon Tactic",
      "rules_text": "Creatures you control get +2/+0 and gain menace until end of turn.",
      "flavor_text": "Every route becomes a charge lane when the floor tilts.",
      "automa": {
        "target": "none",
        "fallback": "Resolve without a target.",
        "casting": "Cast before Dungeon combat; apply to creatures that enter later this turn."
      },
      "simulation": {"direct_damage": 0, "monster_power": 5, "block_tax": 0, "persistent_damage": 0}
    }
  ],
  "trackers": [
    {
      "id": "tracker-party-life",
      "name": "Party Life",
      "minimum": 0,
      "maximum": 999,
      "initial": 60,
      "step": 1,
      "reminder": "Shared by all four adventurers with no life-gain cap. Apply prevention and damage identity before changing it."
    },
    {
      "id": "tracker-dungeon-vitality",
      "name": "Dungeon Vitality",
      "minimum": 0,
      "maximum": 115,
      "initial": 115,
      "step": 1,
      "reminder": "Floors at 95, 70, 40, 20, and 0. Excess does not cross a gate."
    },
    {
      "id": "tracker-doom",
      "name": "Doom",
      "minimum": 0,
      "maximum": 10,
      "initial": 0,
      "step": 1,
      "reminder": "Advance after the second Dungeon turn each round and when instructed. Doom 10 allows the current round to finish, then collapses the vault."
    },
    {
      "id": "tracker-heat",
      "name": "Heat",
      "minimum": 0,
      "maximum": 4,
      "initial": 0,
      "step": 1,
      "reminder": "Used only on the Furnace Span. Reset to 0 when that Room ends."
    },
    {
      "id": "tracker-depths",
      "name": "Depth lands",
      "minimum": 0,
      "maximum": 14,
      "initial": 4,
      "step": 1,
      "reminder": "Create one tapped Depth land token during the first Dungeon turn each round. The Dungeon never taps Depths for mana."
    },
    {
      "id": "tracker-sealed",
      "name": "Sealed",
      "minimum": 0,
      "maximum": 1,
      "initial": 0,
      "step": 1,
      "reminder": "While 1, Dungeon Vitality cannot change. The next Dungeon turn opens the new stage."
    },
    {
      "id": "tracker-heartbound",
      "name": "Heartbound used",
      "minimum": 0,
      "maximum": 1,
      "initial": 0,
      "step": 1,
      "reminder": "Reset when Lead rotates. Only the first Heartbound replacement each expedition round removes Vitality."
    },
    {
      "id": "tracker-mirror-triggered",
      "name": "Mirror Triggered",
      "minimum": 0,
      "maximum": 1,
      "initial": 0,
      "step": 1,
      "reminder": "Used only in the Hall. Reset when Lead rotates."
    },
    {
      "id": "tracker-lead",
      "name": "Lead",
      "values": [
        "mathise-surge-channeler",
        "delina-wild-mage",
        "vrondiss-rage-of-ancients",
        "wyll-blade-of-frontiers"
      ],
      "initial": "random",
      "reminder": "Rotate clockwise after the second Dungeon turn and renumber initiative from this seat."
    },
    {
      "id": "tracker-focus",
      "name": "Focus",
      "values": ["initiative-1", "initiative-2", "initiative-3", "initiative-4"],
      "initial": "initiative-1",
      "reminder": "Begin at Lead. Dungeon d20: 1-5, 6-10, 11-15, and 16-20 replace it with positions one through four until the next roll."
    },
    {
      "id": "tracker-reserve",
      "name": "Reserve slots",
      "minimum": 0,
      "maximum": 30,
      "initial": 2,
      "step": 1,
      "reminder": "Face-up ordered Dungeon hand, oldest left. It may overflow; discard from the left to four only during Dungeon cleanup."
    }
  ],
  "references": [
    {
      "id": "reference-rule-sheet",
      "name": "Living Dungeon rules sheet",
      "audience": "all players",
      "source": "rules.md",
      "contains": ["setup", "shared life", "round sequence", "Dungeon turn", "vitality gates", "win and loss"]
    },
    {
      "id": "reference-dungeon-turn",
      "name": "Dungeon turn card",
      "audience": "operator",
      "source": "dungeon-master.md",
      "contains": ["seven-step narration", "Focus map", "Reserve order"]
    },
    {
      "id": "reference-automa",
      "name": "Target and block protocol",
      "audience": "operator",
      "source": "dungeon-master.md",
      "contains": ["target labels", "tie breaks", "Dungeon blocking", "modes and sacrifices"]
    },
    {
      "id": "reference-director",
      "name": "Dungeon Director variant",
      "audience": "fifth player",
      "source": "dungeon-master.md",
      "contains": ["Reserve choice", "three Omen markers", "hidden-information boundary"]
    },
    {
      "id": "reference-playtest-log",
      "name": "Expedition log",
      "audience": "all players",
      "source": "playtest-log.md",
      "contains": ["gate rounds", "contributions", "ambiguities", "ratings", "tuning watches"]
    }
  ],
  "simulation": {
    "disclaimer": "A transparent pacing abstraction, not a Magic rules engine or a claimed empirical win rate.",
    "target": {
      "win_rate_minimum": 0.55,
      "win_rate_maximum": 0.75,
      "median_end_round_minimum": 7,
      "median_end_round_maximum": 9,
      "early_win_before_round": 6,
      "early_win_rate_maximum": 0.05,
      "median_ending_party_life_minimum": 8,
      "boss_reach_rate_minimum": 0.8
    },
    "party_profiles": [
      {
        "slug": "mathise-surge-channeler",
        "source_file": "decks/mathise-surge-channeler/planned.txt",
        "source_sha256": "9a2a68b973817243758caa700be1ad27613fdb4f995a4f5983e7dbf2b5fd8d92",
        "attack_by_round": [0, 0, 1, 2, 4, 7, 10, 14, 18, 22],
        "block_by_round": [0, 0, 1, 2, 3, 5, 7, 9, 10, 11],
        "answer_probability": 0.34,
        "answer_budget": 5,
        "variance": 0.28
      },
      {
        "slug": "delina-wild-mage",
        "source_file": "decks/delina-wild-mage/planned.txt",
        "source_sha256": "4ee308bc11f96bccca1d280f678d77568db37db122b0d20839e8a4749cbf8803",
        "attack_by_round": [0, 1, 1, 4, 8, 12, 18, 23, 28, 32],
        "block_by_round": [0, 0, 1, 1, 2, 3, 4, 5, 6, 6],
        "answer_probability": 0.27,
        "answer_budget": 4,
        "variance": 0.45
      },
      {
        "slug": "vrondiss-rage-of-ancients",
        "source_file": "decks/vrondiss-rage-of-ancients/planned.txt",
        "source_sha256": "7ff3b88858af3ca1c7723269a5e5d29843697e4ec7bad55414e93d31a9c3ba1c",
        "attack_by_round": [0, 0, 1, 3, 6, 11, 16, 21, 26, 30],
        "block_by_round": [0, 0, 1, 2, 5, 8, 11, 13, 15, 16],
        "answer_probability": 0.25,
        "answer_budget": 4,
        "variance": 0.34
      },
      {
        "slug": "wyll-blade-of-frontiers",
        "source_file": "decks/wyll-blade-of-frontiers/planned.txt",
        "source_sha256": "e31289a14b5836b6c9fe3a4358b80133d30ca0e4cf0bd33fbb3069a0ac56e0cb",
        "attack_by_round": [0, 1, 2, 4, 7, 11, 16, 22, 28, 34],
        "block_by_round": [0, 1, 2, 3, 5, 8, 11, 14, 17, 19],
        "answer_probability": 0.28,
        "answer_budget": 4,
        "variance": 0.38
      }
    ]
  }
}
