{ "schema": 1, "contract_revision": "p10.2-siltwake-mid-contract-r1", "source": { "region_catalog_path": "docs/content/REGION_CATALOG.md", "region_catalog_blob": "2ca533feb82bdedf6f141c6381319c3a56759ba3", "enemy_catalog_path": "docs/content/ENEMY_CATALOG.md", "enemy_catalog_blob": "cdf05128cfd1832835712e37c3eb200595983613", "equipment_catalog_path": "docs/content/EQUIPMENT_CATALOG.md", "equipment_catalog_blob": "3fd34ef951056b02749137f7bff2e66fb94b8375", "economy_path": "docs/product/ECONOMY_AND_BALANCE.md", "economy_blob": "0cb57e7b44d983f61c27e8b60da43d4728950e33" }, "names_zh": { "RG-02": "淤潮沼泽", "CTR-R2-01": "淤潮初渡", "EQ-049": "借护坠饰", "EQ-050": "破阵盔", "EQ-051": "静默拦截盾", "EQ-052": "蓄热斗篷", "EQ-053": "空护笼", "EQ-054": "三击灯台", "EQ-055": "邻誓护板", "EQ-056": "反推架", "EN-R2-08": "沉籽荚", "EN-R2-09": "泥沼医师", "EN-R2-10": "雾颚兽", "RO-R2-M02-Q0": "潮玻边洲", "RO-R2-M02-Q1": "笛沼回湾", "RO-R2-M02-Q2": "沉籽堤渡", "RO-R2-M03-Q0": "静水浅台", "RO-R2-M03-Q1": "泥医泽道", "RO-R2-M03-Q2": "雾颚切口", "RO-R2-M04-Q0": "钩籽河汊", "RO-R2-M04-Q1": "镜雾滩", "RO-R2-M04-Q2": "沉育池" }, "region": { "id": "RG-02", "name": "Siltwake Fens", "preview": "Read the changing safe index, target access and recovery timing before committing each route.", "response_tags": ["stable_order", "deliberate_movement", "focus_timing"] }, "contract": { "id": "CTR-R2-01", "name": "First Siltwake Contract", "region_id": "RG-02", "slice_start_market": 2, "slice_end_market": 5, "boss_executable": false, "preview": "Clear Rounds 2 through 4, restore the Reed Ferry and preserve the Run at Market 5.", "response_tags": ["three_round_arc", "capacity_growth", "ferry_restoration"] }, "equipment": [ { "id": "EQ-049", "name": "Borrowed Cover", "fit": "charm; any", "class": "B", "effect": "When the wearer steps behind a Guarded ally, copy one Guard token.", "tradeoff": "The copied token expires on the wearer's next movement.", "preview": "Move behind protection to borrow it once, then decide whether another movement is worth losing it.", "response_tags": ["deliberate_movement", "guard_copy", "neighbor_protection"] }, { "id": "EQ-050", "name": "Strike-Open Helm", "fit": "guard; pressure", "class": "B", "effect": "Becoming Exposed advances the wearer's next basic action.", "tradeoff": "Exposed cannot be cleansed before that basic action.", "preview": "Accept one disclosed vulnerable window to reach the next target sooner.", "response_tags": ["exposed_timing", "action_advance", "focus_window"] }, { "id": "EQ-051", "name": "Quiet Interceptor", "fit": "guard; any", "class": "B", "effect": "The first intercepted hit generates no enemy on-hit resource.", "tradeoff": "The wearer's own on-hit resource also does not trigger.", "preview": "Silence the first enemy rider, but give up the wearer's matching resource trigger.", "response_tags": ["intercept", "resource_denial", "stable_order"] }, { "id": "EQ-052", "name": "Heatcatch Mantle", "fit": "garb; any", "class": "B", "effect": "Store the first area burst and release it after the wearer moves.", "tradeoff": "If the wearer cannot move within two cadences, the burst resolves on the wearer.", "preview": "Turn a planned movement into delayed area retaliation before the stored burst backfires.", "response_tags": ["deliberate_movement", "area_storage", "countdown"] }, { "id": "EQ-053", "name": "Empty Guard Cage", "fit": "guard; any", "class": "B", "effect": "With zero Guard, incoming Guard strip becomes one Guard instead.", "tradeoff": "The wearer cannot receive normal Guard during that cadence.", "preview": "Invert one protection strip only when the wearer enters it with no Guard.", "response_tags": ["guard_inversion", "timing", "resource_control"] }, { "id": "EQ-054", "name": "Three-Hit Sconce", "fit": "charm; front", "class": "B", "effect": "The third direct hit lights a screen against the next spell.", "tradeoff": "Moving resets the direct-hit count.", "preview": "Hold the front through three hits to gain a spell screen, or move and lose the count.", "response_tags": ["stable_order", "hit_count", "spell_screen"] }, { "id": "EQ-055", "name": "Adjacent Oathplate", "fit": "guard; any", "class": "B", "effect": "Choose ahead or behind in Prepare; protection flows only in that direction and lasts longer.", "tradeoff": "The wearer cannot protect the other neighbor.", "preview": "Commit protection toward the threatened side and leave the opposite neighbor exposed.", "response_tags": ["directional_guard", "neighbor_protection", "prepare_choice"] }, { "id": "EQ-056", "name": "Pushback Frame", "fit": "guard; front", "class": "B", "effect": "Reflect the first blocked push onto its source when that movement is legal.", "tradeoff": "The reflection consumes all Guard on the wearer.", "preview": "Reverse one push at the cost of all current front-line Guard.", "response_tags": ["push_reflect", "front_guard", "displacement"] } ], "enemies": [ { "id": "EN-R2-08", "name": "Drownseed Pod", "class": "ordinary", "rule": "On defeat, place a visible seed at the defeating ally's position; it bursts after two cadences unless that ally moves.", "responses": "Move after the defeat, or delay the final hit until movement is ready.", "preview": "The defeating ally has two cadences to leave the marked seed position.", "response_tags": ["deliberate_movement", "defeat_trigger", "countdown"] }, { "id": "EN-R2-09", "name": "Mire Medic", "class": "ordinary", "rule": "Restore the enemy with the oldest hindrance, shortening that hindrance with every heal.", "responses": "Focus the Medic, or use a short hindrance so its heal removes the enemy setup.", "preview": "Its heal targets the oldest hindered enemy and shortens that same hindrance.", "response_tags": ["focus_source", "hindrance_timing", "enemy_healing"] }, { "id": "EN-R2-10", "name": "Fogjaw", "class": "ordinary", "rule": "It cannot be targeted beyond reach one until it attacks; that attack reveals it for one cadence and targets the center band.", "responses": "Hold a short-reach counter, or bait the reveal with a guarded center target.", "preview": "A center attack opens one short reveal window for every legal attacker.", "response_tags": ["center_protection", "reveal_window", "short_reach"] } ], "routes": [ { "id": "RO-R2-M02-Q0", "name": "Tideglass Verge", "market_index": 2, "round_index": 2, "risk": 0, "enemy_ids": ["EN-R2-01", "EN-R2-03"], "wave_order": [{"tick": 0, "enemy_id": "EN-R2-01"}, {"tick": 16, "enemy_id": "EN-R2-03"}], "reward_coin": 24, "recovery_coin": 6, "pressure": "Rear pull changes the Mimic's legal mirrored target.", "failure_cause": "The pulled rear exposed an unguarded mirrored target.", "preview": "A durable stable rear makes the first copied target predictable.", "response_tags": ["stable_order", "rear_durability", "target_rule"] }, { "id": "RO-R2-M02-Q1", "name": "Piper's Backwater", "market_index": 2, "round_index": 2, "risk": 1, "enemy_ids": ["EN-R2-05", "EN-R2-07"], "wave_order": [{"tick": 0, "enemy_id": "EN-R2-05"}, {"tick": 12, "enemy_id": "EN-R2-07"}], "reward_coin": 31, "recovery_coin": 8, "pressure": "Enemy reorder preserves the first attacker's tether through the line.", "failure_cause": "Rigid targeting followed the Crab into an unsafe rear attack.", "preview": "Interrupt the Piper or keep a flexible attacker ready for the reordered Crab.", "response_tags": ["interrupt", "flexible_target", "enemy_reorder"] }, { "id": "RO-R2-M02-Q2", "name": "Seedbank Crossing", "market_index": 2, "round_index": 2, "risk": 2, "enemy_ids": ["EN-R2-04", "EN-R2-08"], "wave_order": [{"tick": 0, "enemy_id": "EN-R2-04"}, {"tick": 8, "enemy_id": "EN-R2-08"}], "reward_coin": 38, "recovery_coin": 10, "pressure": "Defeating the Pod forces movement across a marked index.", "failure_cause": "The seed burst pulled both neighbors into indexed mud.", "preview": "Delay the final hit or preserve a legal move away from the seed.", "response_tags": ["deliberate_movement", "indexed_hazard", "countdown"] }, { "id": "RO-R2-M03-Q0", "name": "Stillwater Shelf", "market_index": 3, "round_index": 3, "risk": 0, "enemy_ids": ["EN-R2-06", "EN-R2-09"], "wave_order": [{"tick": 0, "enemy_id": "EN-R2-06"}, {"tick": 18, "enemy_id": "EN-R2-09"}], "reward_coin": 26, "recovery_coin": 7, "pressure": "Cleanse timing changes which hindered enemy receives healing.", "failure_cause": "An early cleanse strengthened the hindrance before the Medic restored it.", "preview": "Wait for the midpoint, or focus the Medic before cleansing.", "response_tags": ["delay_cleanse", "focus_source", "hindrance_timing"] }, { "id": "RO-R2-M03-Q1", "name": "Medic's Mire", "market_index": 3, "round_index": 3, "risk": 1, "enemy_ids": ["EN-R2-02", "EN-R2-09"], "wave_order": [{"tick": 0, "enemy_id": "EN-R2-02"}, {"tick": 10, "enemy_id": "EN-R2-09"}], "reward_coin": 33, "recovery_coin": 9, "pressure": "Source focus decides whether healing is converted or restored.", "failure_cause": "Healing into the Leech fed Guard while the Medic erased damage.", "preview": "Remove the Leech or Medic before committing the next heal.", "response_tags": ["focus_source", "healing_denial", "healing_timing"] }, { "id": "RO-R2-M03-Q2", "name": "Fogjaw Cut", "market_index": 3, "round_index": 3, "risk": 2, "enemy_ids": ["EN-R2-10", "EN-R2-05", "EN-R2-07"], "wave_order": [{"tick": 0, "enemy_id": "EN-R2-10"}, {"tick": 9, "enemy_id": "EN-R2-05"}, {"tick": 20, "enemy_id": "EN-R2-07"}], "reward_coin": 40, "recovery_coin": 11, "pressure": "Center bait and enemy reorder create one short reveal window.", "failure_cause": "The line had no legal short-reach answer during Fogjaw's reveal.", "preview": "Guard the center and hold one close attacker for the reveal cadence.", "response_tags": ["center_protection", "short_reach", "enemy_reorder"] }, { "id": "RO-R2-M04-Q0", "name": "Hookseed Reach", "market_index": 4, "round_index": 4, "risk": 0, "enemy_ids": ["EN-R2-01", "EN-R2-08"], "wave_order": [{"tick": 0, "enemy_id": "EN-R2-01"}, {"tick": 15, "enemy_id": "EN-R2-08"}], "reward_coin": 28, "recovery_coin": 8, "pressure": "Pull competes with the movement needed to disarm the seed.", "failure_cause": "A reserved move was consumed by the Hook before the seed burst.", "preview": "Brace the Hook or delay the Pod defeat until movement is free.", "response_tags": ["pull_resist", "deliberate_movement", "countdown"] }, { "id": "RO-R2-M04-Q1", "name": "Mirrored Fog", "market_index": 4, "round_index": 4, "risk": 1, "enemy_ids": ["EN-R2-03", "EN-R2-10"], "wave_order": [{"tick": 0, "enemy_id": "EN-R2-03"}, {"tick": 14, "enemy_id": "EN-R2-10"}], "reward_coin": 35, "recovery_coin": 10, "pressure": "Target-rule feeding must preserve a guarded center reveal.", "failure_cause": "The Mimic copied a rule that left Fogjaw's center target unprotected.", "preview": "Feed the Mimic a safe target before Fogjaw opens the center.", "response_tags": ["target_rule", "center_protection", "guarded_candidate"] }, { "id": "RO-R2-M04-Q2", "name": "Sinking Nursery", "market_index": 4, "round_index": 4, "risk": 2, "enemy_ids": ["EN-R2-04", "EN-R2-08", "EN-R2-09"], "wave_order": [{"tick": 0, "enemy_id": "EN-R2-04"}, {"tick": 8, "enemy_id": "EN-R2-08"}, {"tick": 21, "enemy_id": "EN-R2-09"}], "reward_coin": 42, "recovery_coin": 12, "pressure": "Indexed mud, seed movement and enemy sustain overlap.", "failure_cause": "The seed forced a marked crossing while the Medic restored the Pod.", "preview": "Focus the Medic, then defeat the Pod with an unmarked move available.", "response_tags": ["focus_source", "indexed_hazard", "deliberate_movement"] } ], "markets": [ { "market_index": 2, "round_index": 2, "cleared_rounds_before": 1, "line_capacity": 4, "offer_level": 1, "route_ids": ["RO-R2-M02-Q0", "RO-R2-M02-Q1", "RO-R2-M02-Q2"], "required_equipment_ids": ["EQ-049", "EQ-055"], "first_order_changer_id": "EN-R2-01" }, { "market_index": 3, "round_index": 3, "cleared_rounds_before": 2, "line_capacity": 5, "offer_level": 1, "route_ids": ["RO-R2-M03-Q0", "RO-R2-M03-Q1", "RO-R2-M03-Q2"], "required_equipment_ids": ["EQ-050", "EQ-051"], "first_order_changer_id": "EN-R2-05" }, { "market_index": 4, "round_index": 4, "cleared_rounds_before": 3, "line_capacity": 5, "offer_level": 2, "route_ids": ["RO-R2-M04-Q0", "RO-R2-M04-Q1", "RO-R2-M04-Q2"], "required_equipment_ids": ["EQ-052", "EQ-056"], "first_order_changer_id": "EN-R2-01" } ] }