Files
aetherbound-guild/runtime/p10_0/catalog.json
T

1506 lines
74 KiB
JSON

{
"schema": 1,
"source": {
"path": "prototype/site/data/catalog.json",
"sha256": "fb99bcd75ca6308091fa56b45f8da551276a496a1f96acbb44225efe491fdfef",
"authority_revision": "phase8-p8-3r2-contact-rear-actions-replacement"
},
"names_zh": {
"PF-B01": "护心卫士",
"PF-B02": "锋刃手",
"PF-B03": "长枪使",
"PF-B04": "逐风行者",
"PF-B05": "远弦射手",
"PF-B06": "裂隙法师",
"PF-B07": "仁心医者",
"PF-B08": "结契师",
"PF-B09": "机关匠",
"PF-B10": "暮兆术士",
"PF-B11": "律钟师",
"PF-B12": "辎重官",
"PF-A01": "门垒卫",
"PF-A02": "冲城卫",
"PF-A03": "终光刃",
"PF-A04": "回锋剑士",
"PF-A05": "钩阵统领",
"PF-A06": "日耀枪骑",
"PF-A07": "传步刺客",
"PF-A08": "逆风刃",
"PF-A09": "定穴射手",
"PF-A10": "箭雨使",
"PF-A11": "风暴算师",
"PF-A12": "空星术士",
"PF-A13": "战地医师",
"PF-A14": "延疗师",
"PF-A15": "三联契师",
"PF-A16": "担契者",
"PF-A17": "哨械师",
"PF-A18": "陷阵工匠",
"PF-A19": "苍白先知",
"PF-A20": "苦兆术士",
"PF-A21": "行军钟师",
"PF-A22": "寂音师",
"PF-A23": "觅迹补给官",
"PF-A24": "阵线搬运师",
"TR-001": "先行一步",
"TR-002": "耐心起手",
"TR-003": "窄阵护卫",
"TR-004": "长久记忆",
"TR-005": "空闲之手",
"TR-006": "开放步法",
"TR-007": "深口袋",
"TR-008": "静默双手",
"TR-009": "配重步",
"TR-010": "共饮药杯",
"TR-011": "醒目目标",
"TR-012": "迟步补位",
"TR-013": "节俭节拍",
"TR-014": "厚重袖口",
"TR-015": "远听者",
"TR-016": "灰烬胃口",
"TR-017": "一丝不苟",
"TR-018": "薄血",
"TR-019": "后阵守望",
"TR-020": "器具誓约",
"TR-021": "松散阵形",
"TR-022": "石刻计数",
"TR-023": "借来节奏",
"TR-024": "净断",
"TR-025": "风险账本",
"TR-026": "空隙射程",
"TR-027": "定声",
"TR-028": "二次草拟",
"TR-029": "摊开手掌",
"TR-030": "反转带扣",
"TR-031": "风暴胆识",
"TR-032": "温和收尾",
"TR-033": "分心并顾",
"TR-034": "久经风霜",
"TR-035": "空剑鞘",
"TR-036": "最后见证",
"EQ-001": "退步靴",
"EQ-002": "钉前护胫",
"EQ-003": "传步腰带",
"EQ-004": "寻隙凉鞋",
"EQ-005": "铅坠束带",
"EQ-006": "后钩披风",
"EQ-007": "转轴脚环",
"EQ-008": "静路绑带",
"EQ-009": "救援环扣",
"EQ-010": "前位主张",
"EQ-011": "邻位带扣",
"EQ-012": "开阵系带",
"EQ-013": "交步徽记",
"EQ-014": "静默后甲",
"EQ-015": "接力马刺",
"EQ-016": "空位铃",
"EQ-017": "撑钩护腕",
"EQ-018": "远行缎带",
"EQ-019": "定步石",
"EQ-020": "守线标签",
"EQ-021": "威胁镜片",
"EQ-022": "前标粉笔",
"EQ-023": "后阵呼哨",
"EQ-024": "仁慈刻度盘",
"EQ-025": "分选硬币",
"EQ-026": "召唤刺针",
"EQ-027": "伤势测带",
"EQ-028": "破盾缝锥",
"EQ-029": "疾影墨水",
"EQ-030": "末目标绳结",
"EQ-031": "护卫标签",
"EQ-032": "显形粉末",
"EQ-033": "对面镜盾",
"EQ-034": "低潮量规",
"EQ-035": "开侧弦线",
"EQ-036": "双重准星",
"EQ-037": "打断账册",
"EQ-038": "旧伤罗盘",
"EQ-039": "崩解瞄具",
"EQ-040": "破选别针",
"AR-001": "开放账册",
"AR-002": "巧匠橱窗",
"AR-003": "共同目标",
"AR-004": "窄域搜寻",
"AR-005": "二次面谈",
"AR-006": "新生资质",
"AR-007": "满员长凳",
"AR-008": "精简队伍",
"EN-R1-01": "晶板啮兽",
"EN-R1-02": "疾风雀",
"EN-R1-03": "台地冲羊",
"EN-R1-04": "钟茎食草兽",
"EN-R1-05": "晶背兽",
"EN-R1-06": "原野潜猎者",
"EN-R1-07": "鸣哨飞蠓",
"EN-R1-08": "玻根幼芽",
"EN-R1-09": "横风书记",
"EN-R1-10": "崖沿跃客",
"EN-R1-11": "狂风执令官",
"EN-R1-12": "棱晶角兽",
"BO-R1-01": "千镜角鹿",
"BO-R1-02": "风织机",
"RG-01": "风镜原野",
"CTR-R1-01": "风镜初渡",
"CTR-R1-02": "风织机通路"
},
"execution_tags": {
"PF-B01": ["front_hold", "guard", "intercept", "push_resist"],
"PF-B02": ["single_pressure", "edge", "execute", "overflow_convert"],
"PF-B03": ["reach_control", "poise", "pierce", "move_cost"],
"PF-B04": ["reorder", "momentum", "swap", "push_protect"],
"PF-B05": ["projectile", "aim", "rear_target", "line_stability"],
"PF-B06": ["area", "charge", "echo", "interrupt_cost"],
"PF-B07": ["restore", "remedy", "cleanse", "no_overheal_gain"],
"PF-B08": ["enable", "bond", "neighbor_link", "tag_variety"],
"PF-B09": ["construct", "parts", "device", "salvage_on_move"],
"PF-B10": ["impair", "omen", "hinder", "expiry_extend"],
"PF-B11": ["tempo", "verse", "ally_advance", "enemy_delay"],
"PF-B12": ["supply", "item_refresh", "retreat_step", "target_rotation"],
"PF-A01": ["front_hold", "directional_intercept", "guard_refund"],
"PF-A02": ["front_hold", "guard_spend", "push", "follow_step"],
"PF-A03": ["single_pressure", "edge_wager", "execute", "exposed_cost"],
"PF-A04": ["single_pressure", "edge_reserve", "block", "return_cut"],
"PF-A05": ["reach_control", "poise_spend", "pull", "enemy_reorder"],
"PF-A06": ["reach_control", "poise_spend", "line_pierce", "declining_damage"],
"PF-A07": ["reorder", "momentum_spend", "swap", "ally_advance"],
"PF-A08": ["reorder", "sprint", "multi_target", "exposed_cost"],
"PF-A09": ["projectile", "aim_spend", "movement_delay", "interrupt"],
"PF-A10": ["projectile", "aim_spend", "three_targets", "no_repeat"],
"PF-A11": ["area", "charge", "cadence_chain", "declining_damage"],
"PF-A12": ["area", "charge_preserve", "self_hinder", "focused_release"],
"PF-A13": ["restore", "remedy", "heal", "rear_swap"],
"PF-A14": ["restore", "remedy_spend", "delayed_heal", "damage_bonus"],
"PF-A15": ["enable", "bond", "three_link", "same_tag_fray"],
"PF-A16": ["enable", "bond_gain", "cost_transfer", "self_burden"],
"PF-A17": ["construct", "parts_spend", "rear_device", "repeat_target"],
"PF-A18": ["construct", "parts_spend", "position_trap", "forced_move_trigger"],
"PF-A19": ["impair", "omen", "linked_expiry", "cleanse_risk"],
"PF-A20": ["impair", "consume_hindrance", "burst", "expose"],
"PF-A21": ["tempo", "verse_spend", "neighbor_sync", "slowest_timing"],
"PF-A22": ["tempo", "verse_spend", "sound_interrupt", "self_silence"],
"PF-A23": ["supply", "enemy_sample", "shop_counter", "future_value"],
"PF-A24": ["supply", "item_trigger_transfer", "neighbor_only", "item_stays"],
"TR-001": ["position_trigger", "reach_bonus", "foremost_filter_cost"],
"TR-002": ["action_count", "resource_gain", "opening_delay"],
"TR-003": ["neighbor_count", "free_intercept", "guard_transfer_lock"],
"TR-004": ["repeat_target", "duration_bonus", "retarget_delay"],
"TR-005": ["swap", "carry_footprint", "object_action_loss"],
"TR-006": ["forced_move", "counterattack", "self_exposed"],
"TR-007": ["consumable", "duplicate_target", "cooldown_cost"],
"TR-008": ["rear_cover", "sound_immunity", "resource_lock"],
"TR-009": ["pull_resist", "movement_transfer", "failure_hinder"],
"TR-010": ["healing_received", "neighbor_splash", "self_heal_cost"],
"TR-011": ["target_priority", "survive_hit", "focus_gain"],
"TR-012": ["ally_fallen", "delayed_collapse", "action_lock"],
"TR-013": ["basic_count", "item_cooldown", "resource_reset"],
"TR-014": ["interrupt_convert", "delay", "slower_resolve"],
"TR-015": ["enable_range", "distant_receive", "adjacent_lock"],
"TR-016": ["hindered_kill", "resource_restore", "plain_kill_cost"],
"TR-017": ["reserved_target", "reach_validate", "forced_fizzle"],
"TR-018": ["area_damage", "action_advance", "single_heal_cost"],
"TR-019": ["rear_intruder", "auto_mark", "forward_reach_cost"],
"TR-020": ["item_priority", "first_trigger", "technique_wait"],
"TR-021": ["swap_role", "resource_gain", "repeat_partner_hinder"],
"TR-022": ["same_attacker_count", "guard_gain", "mark_clear"],
"TR-023": ["action_advance", "cadence_copy", "repeat_advance_lock"],
"TR-024": ["cleanse", "positive_tag_cost", "resource_gain"],
"TR-025": ["survive_exposed", "shop_discount", "clear_on_safe_end"],
"TR-026": ["summon_pass", "basic_reach", "summon_no_damage"],
"TR-027": ["stationary", "sound_uninterruptible", "move_silence"],
"TR-028": ["self_hindrance", "short_replace", "second_extend"],
"TR-029": ["resource_share", "extended_range", "adjacent_exclusion"],
"TR-030": ["overpush", "center_step", "positive_tag_drop"],
"TR-031": ["enemy_windup", "focus_gain", "interrupt_reset"],
"TR-032": ["overkill", "remedy_convert", "execute_lock"],
"TR-033": ["equipment_mark", "two_marks", "profession_mark_cost"],
"TR-034": ["region_hazard", "first_immunity", "second_extend"],
"TR-035": ["empty_armament", "alternate_target", "equip_cost"],
"TR-036": ["lone_band", "forecast", "reach_bonus", "concealment_lock"],
"EQ-001": ["first_direct_hit", "rear_step", "next_basic_delay"],
"EQ-002": ["first_push", "push_resist", "post_basic_hinder"],
"EQ-003": ["ally_swap", "ally_advance", "wearer_delay"],
"EQ-004": ["vacated_position", "forward_step", "guard_loss"],
"EQ-005": ["forced_move", "movement_reduce", "pace_cost"],
"EQ-006": ["rear_target", "front_pull", "next_action_delay"],
"EQ-007": ["position_change", "trigger_reset", "cooldown_cost"],
"EQ-008": ["stationary", "poise_gain", "move_reset"],
"EQ-009": ["ally_low_hp", "rescue_step", "self_delay"],
"EQ-010": ["front_entry", "target_priority", "guard_cost"],
"EQ-011": ["neighbor_hit", "guard_share", "pace_cost"],
"EQ-012": ["open_line", "reach_bonus", "guard_lock"],
"EQ-013": ["cross_swap", "action_advance", "self_hinder"],
"EQ-014": ["rear_position", "projectile_resist", "move_disable"],
"EQ-015": ["wearer_swap", "position_trigger_refresh", "partner_lock"],
"EQ-016": ["empty_position", "cadence_advance", "position_fill_reset"],
"EQ-017": ["guarded", "pull_resist", "guard_break_cost"],
"EQ-018": ["three_positions", "item_refresh", "repeat_reset"],
"EQ-019": ["stationary_count", "guard_gain", "forced_move_reset"],
"EQ-020": ["neighbor_move", "safe_step", "item_pause"],
"EQ-021": ["threat_preview", "target_reveal", "damage_cost"],
"EQ-022": ["foremost_mark", "ally_focus", "rear_exposed"],
"EQ-023": ["rear_threat", "target_redirect", "front_delay"],
"EQ-024": ["lowest_hp", "heal_target", "overheal_lock"],
"EQ-025": ["equal_targets", "alternate_family", "critical_lock"],
"EQ-026": ["summon", "target_mark", "owner_delay"],
"EQ-027": ["wounded_target", "damage_bonus", "healthy_cost"],
"EQ-028": ["guarded_enemy", "guard_strip", "raw_damage_cost"],
"EQ-029": ["fastest_enemy", "hinder", "slow_target_lock"],
"EQ-030": ["last_target", "repeat_bonus", "retarget_cost"],
"EQ-031": ["ally_targeted", "intercept", "self_exposed"],
"EQ-032": ["screened_enemy", "screen_remove", "damage_lock"],
"EQ-033": ["front_attack", "reflect", "rear_bypass"],
"EQ-034": ["low_resource", "resource_gain", "full_resource_delay"],
"EQ-035": ["open_flank", "rear_target", "foremost_damage_cost"],
"EQ-036": ["area_action", "second_target", "primary_damage_cost"],
"EQ-037": ["interrupt", "cooldown_refresh", "failed_interrupt_cost"],
"EQ-038": ["oldest_hindrance", "cleanse", "urgent_newer_cost"],
"EQ-039": ["enemy_collapse", "reserved_target", "double_collapse_fizzle"],
"EQ-040": ["equal_target_families", "alternate_default", "critical_lock"],
"AR-001": ["market_slots", "recruit_plus", "equipment_minus", "conflict_ar002"],
"AR-002": ["market_slots", "equipment_plus", "recruit_minus", "conflict_ar001"],
"AR-003": ["recruit_price", "common_discount", "rare_surcharge", "conflict_ar004"],
"AR-004": ["recruit_weights", "narrow_profession", "other_surcharge", "conflict_ar003"],
"AR-005": ["recruit_offer", "extra_candidate", "discard_one", "conflict_ar006"],
"AR-006": ["trait_reroll", "preserve_combat_fields", "once_per_market", "conflict_ar005"],
"AR-007": ["reserve_capacity", "capacity_plus", "upkeep_cost", "conflict_ar008"],
"AR-008": ["reserve_capacity", "capacity_minus", "death_guarantee", "conflict_ar007"],
"EN-R1-01": ["foremost_bite", "repeat_count", "neighbor_guard_chip"],
"EN-R1-02": ["rear_projectile", "rearmost_target", "forward_step"],
"EN-R1-03": ["headwind_charge", "foremost_target", "push"],
"EN-R1-04": ["positive_tag", "consume_oldest", "no_damage"],
"EN-R1-05": ["projectile_screen", "first_reflect", "no_chain"],
"EN-R1-06": ["reach_filter", "long_reach_target", "foremost_fallback"],
"EN-R1-07": ["band_count", "majority_delay", "order_pressure"],
"EN-R1-08": ["rear_growth", "forward_step", "rear_shield"],
"EN-R1-09": ["front_rear_line", "swap_crossing", "hinder"],
"EN-R1-10": ["enemy_reorder", "leap_front", "changed_target_strike"],
"EN-R1-11": ["elite", "indexed_position", "push_or_projectile"],
"EN-R1-12": ["elite", "two_footprint", "screen_rotation", "damage_family"],
"BO-R1-01": ["boss", "two_footprint", "three_panes", "sweep_push"],
"BO-R1-02": ["boss", "stationary", "gust_footprint", "spindle_reverse"],
"RG-01": ["region", "windglass", "push", "projectile_screen"],
"CTR-R1-01": ["contract", "twelve_rounds", "boss_bo_r1_01", "clear_rg01_c01"],
"CTR-R1-02": ["contract", "twelve_rounds", "boss_bo_r1_02", "clear_rg01_c02"]
},
"professions": [
{
"id": "PF-B01",
"name": "Hearthguard",
"family": "base",
"role": "front-hold; front",
"rules": "Shield Knock hits foremost reachable and Guard 1 neighbor. Guard gained when struck, spent to intercept one neighbor hit. Set Feet: cannot be pushed while Guarded, but steps slower.",
"cadence": "reach 1; steady: intercept lethal neighbor hit, refresh own Guard, then Knock nearest.",
"strategy": "Countered by rear pressure and Guard stripping; enables slow casters and adjacency items.",
"production": "P/O/A/V/S: broad shield overlay, brace/knock family, square amber guard cue, wood-metal block event."
},
{
"id": "PF-B02",
"name": "Edgehand",
"family": "base",
"role": "single-pressure; front/center",
"rules": "Testing Cut hits nearest exposed enemy. Edge gained on alternating targets, spent to finish a marked target. No Waste: overflow damage becomes one Edge, not splash.",
"cadence": "reach 1; fast: finish legal low target, alternate target for Edge, then nearest exposed.",
"strategy": "Countered by decoys and heavy protection; likes marks and enemy reorder.",
"production": "P/O/A/V/S: paired short-blade overlay, alternating slash poses, chevron Edge cue, dry cut/finish pair."
},
{
"id": "PF-B03",
"name": "Longspoke",
"family": "base",
"role": "reach-control; center",
"rules": "Measured Thrust strikes through one unit. Poise gained by attacking without moving, spent to extend reach or resist pull. Keep Distance: loses Poise after a step.",
"cadence": "reach 2; steady: interrupt approaching short-reach threat, pierce aligned front pair, then foremost.",
"strategy": "Countered by forced movement and rear divers; protects center damage through controlled reach.",
"production": "P/O/A/V/S: modular polearm, plant/thrust/pivot family, straight-line white cue, haft plant and air-cut events."
},
{
"id": "PF-B04",
"name": "Wayrunner",
"family": "base",
"role": "reorder; any",
"rules": "Passing Strike swaps with the neighbor ahead after hitting. Momentum gained per distinct position visited, spent on a long step. Open Route: allies moved through are briefly unpushable.",
"cadence": "reach 1; fast: escape marked danger, fill exposed front gap, then cycle toward least-visited position.",
"strategy": "Countered by roots and narrow safe bands; enables position triggers and rescues fragile units.",
"production": "P/O/A/V/S: light hooked blade, run/brake/swap family, footprint cue, cloth rush and heel-stop events."
},
{
"id": "PF-B05",
"name": "Farstring",
"family": "base",
"role": "projectile-pressure; rear",
"rules": "Draw Shot targets foremost legal enemy; each uninterrupted shot gains Aim, spent to select rearmost. Clear Arc: loses Aim when an ally is pulled behind the Farstring.",
"cadence": "line reach projectile; steady: spend Aim on dangerous rear caster, hit marked target, then foremost.",
"strategy": "Countered by projectile screens and rear intrusion; likes stable protection and target marks.",
"production": "P/O/A/V/S: bow family, draw/loose/reacquire, arc-and-notch cue, bow snap and distinct blocked shot."
},
{
"id": "PF-B06",
"name": "Riftcaller",
"family": "base",
"role": "area-pressure; rear",
"rules": "Rift Spark hits foremost and echoes lightly to its neighbor. Charge gained while wind-up completes, spent to widen an area. Unstable Weave: interruption clears Charge.",
"cadence": "line spell reach; slow: widen against clustered pair, punish summoned unit, then Spark highest cluster value.",
"strategy": "Countered by interrupts and forced retarget; likes time protection and grouping effects.",
"production": "P/O/A/V/S: focus rod, two-stage channel/cast, forked diamond cue, rising tone with captioned discharge."
},
{
"id": "PF-B07",
"name": "Kindhand",
"family": "base",
"role": "restore; center/rear",
"rules": "Tending Pulse heals lowest-vitality reachable ally. Remedy gained when healing actual loss, spent to cleanse one hindrance. Honest Care: overheal grants no Remedy.",
"cadence": "reach 2 allied; steady: prevent lethal forecast, cleanse action-blocking status, then heal lowest ratio.",
"strategy": "Countered by split pressure and heal denial; likes Guard, shared damage, and predictable cadence.",
"production": "P/O/A/V/S: satchel and hand-lamp, assess/tend/cleanse, open-circle cue, soft chime plus captioned cleanse."
},
{
"id": "PF-B08",
"name": "Bondwright",
"family": "base",
"role": "enable; center",
"rules": "Joining Thread lightly damages an enemy and links the caster to one neighbor. Bond gained when linked units use different action tags, spent to share Guard or Remedy. Tension: same-tag repeats fray the link.",
"cadence": "reach 2; steady: repair broken useful link, share resource before threshold, then hit linked enemy.",
"strategy": "Countered by isolation and repetitive parties; amplifies mixed roles and alternating cadences.",
"production": "P/O/A/V/S: knot-frame focus, cast/tie/release, braided line cue with shape dashes, two-tone pluck event."
},
{
"id": "PF-B09",
"name": "Coilsmith",
"family": "base",
"role": "construct; center/rear",
"rules": "Tool Tap attacks nearest threat. Parts gained every second basic, spent to deploy a one-footprint device behind self. Pack Up: stepping salvages half unspent Parts but removes device.",
"cadence": "reach 1 basic; steady: replace destroyed device, trigger safe utility, then Tap nearest device threat.",
"strategy": "Countered by rear compression and device hunters; likes stable order and Parts equipment.",
"production": "P/O/A/V/S: tool rig and compact device kit, place/tune/pack, cog-square cue, ratchet and device-state events."
},
{
"id": "PF-B10",
"name": "Gloamreader",
"family": "base",
"role": "impair; rear",
"rules": "Dimming Word damages the enemy with highest current cadence and applies Hindered. Omen gained when a debuff expires, spent to extend a different debuff. No Echo: cannot extend own same tag twice.",
"cadence": "line spell reach; slow: stop imminent major action, extend ally-applied status, then dim fastest enemy.",
"strategy": "Countered by cleanse and staggered immunity; likes varied statuses and long fights.",
"production": "P/O/A/V/S: tablet veil, inscribe/close/release, broken-ring cue, whispered consonant texture with captions."
},
{
"id": "PF-B11",
"name": "Bellkeeper",
"family": "base",
"role": "tempo; center",
"rules": "Time Bell strikes nearest and advances the slower neighbor's next basic. Verse gained when allies act in three different cadence bands, spent to delay an enemy wind-up. Offbeat: repeated band gives no Verse.",
"cadence": "reach 1/line delay; steady: delay major action, advance restorative neighbor, then strike nearest.",
"strategy": "Countered by silence and uniform-speed builds; enables slow wind-ups and cadence alternation.",
"production": "P/O/A/V/S: handbell frame, strike/listen/cutoff, three-bar cue, pitch-coded but fully captioned bell events."
},
{
"id": "PF-B12",
"name": "Packwarden",
"family": "base",
"role": "supply; center/rear",
"rules": "Rationed Blow hits nearest; every third basic creates one Supply, spent to refresh a neighbor's item cooldown or grant a safe retreat step. Inventory Rule: cannot target self twice in succession.",
"cadence": "reach 1; steady: enable urgent item, move endangered rearward neighbor, then build Supply.",
"strategy": "Countered by item lock and isolation; supports proc gear and replaceable front lines.",
"production": "P/O/A/V/S: pack-frame and tally tags, handoff/strike/guide, stacked-tab cue, buckle and counted click events."
},
{
"id": "PF-A01",
"name": "Gatebearer",
"family": "advanced",
"role": "PF-B01; interception becomes directional",
"rules": "front-hold/front; Gate Arc intercepts only attacks crossing the bearer, refunding Guard when prediction is correct.",
"cadence": "reach 1; reserve Guard for crossing attacks, then protect neighbor behind.",
"strategy": "Rear-origin attacks bypass it; superb with fragile unit directly behind. Opposes PF-A02 aggression.",
"production": "O/A/V/S: tall gate shield, swing-open brace, doorway cue, resonant latch block."
},
{
"id": "PF-A02",
"name": "Ramward",
"family": "advanced",
"role": "PF-B01; Guard becomes forward displacement",
"rules": "control/front; Driving Wall spends Guard to push foremost enemy and follow into the new front.",
"cadence": "reach 1; push channeling or short-reach threat, otherwise maintain Guard.",
"strategy": "Immovable enemies waste its conversion; groups enemies for area roles. Opposes PF-A01 protection.",
"production": "O/A/V/S: convex shield, two-step drive, wedge cue, shove impact layers."
},
{
"id": "PF-A03",
"name": "Lastlight",
"family": "advanced",
"role": "PF-B02; Edge wagers on execution",
"rules": "finish/front/center; Final Measure reserves all Edge; kill refunds half, survival leaves user Exposed.",
"cadence": "reach 1; wager only when visible forecast crosses defeat threshold.",
"strategy": "Barriers and death prevention punish wager; marks improve forecast. Opposes PF-A04 patience.",
"production": "O/A/V/S: narrow dueling blade, held finish pose, closing-line cue, silence-then-hit event."
},
{
"id": "PF-A04",
"name": "Turnblade",
"family": "advanced",
"role": "PF-B02; Edge becomes a deterministic counter",
"rules": "pressure/front; Turn Aside reserves one Edge as an explicit Block charge against the next eligible direct component targeting self. Trigger TURNBLADE_RETURN declares observed_role=actual_recipient, outcome_ids=AO_BLOCKED, component_tags=direct+block_eligible, once_scope=action, and allow_derived=false; it queues Return Cut against the source next tick.",
"cadence": "reach 2 counter; reserve Edge only for a telegraphed Block-eligible component due before the next basic; fire Return Cut only while its source remains legal and reachable, otherwise log the suppressed source reason.",
"strategy": "Unblockable/area components and sources beyond reach deny the return; readable single-target telegraphs and reach control enable it. Opposes PF-A03 execution.",
"production": "O/A/V/S: guard-ring blade, brace/return family, AO_BLOCKED square-to-arrow cue, parry scrape and return cut."
},
{
"id": "PF-A05",
"name": "Hookmarshal",
"family": "advanced",
"role": "PF-B03; Poise controls enemy order",
"rules": "reach-control/center; Crook Pull spends Poise to pull a reach-legal enemy one position forward.",
"cadence": "reach 2; pull protected caster when counterline can absorb it, then thrust.",
"strategy": "Pull immunity and front traps punish it; empowers Edgehand and short reach. Opposes PF-A06 static damage.",
"production": "O/A/V/S: hooked polearm, catch/haul, hooked-line cue, chainless wood-and-cloth pull."
},
{
"id": "PF-A06",
"name": "Sunlance",
"family": "advanced",
"role": "PF-B03; Poise becomes piercing setup",
"rules": "pressure/center; Noon Line spends all Poise to pierce every intervening enemy with declining effect.",
"cadence": "line reach; fire only through two or more legal targets, else build Poise.",
"strategy": "Spacing and forced movement collapse value; grouping and stable front enable it. Opposes PF-A05 reorder.",
"production": "O/A/V/S: long bright spear, extended plant/cast, straight sunbar cue, layered pass-through hits."
},
{
"id": "PF-A07",
"name": "Relayknife",
"family": "advanced",
"role": "PF-B04; movement hands timing to allies",
"rules": "enable/any; Pass The Turn spends Momentum on swap, advancing the swapped ally's basic while delaying own.",
"cadence": "adjacent ally; rescue endangered unit or advance a ready counter before cycling.",
"strategy": "Roots or selfish carry builds reduce value; slow high-impact basics benefit. Opposes PF-A08 self-routing.",
"production": "O/A/V/S: baton knife, tap-and-pass motion, paired footprints, handoff click."
},
{
"id": "PF-A08",
"name": "Backdraft",
"family": "advanced",
"role": "PF-B04; full-line route becomes attack",
"rules": "reorder-pressure/any; Wake Cut damages each unique enemy passed while sprinting rear to front, then becomes Exposed.",
"cadence": "line traversal only when path is open; retreat after wake if threatened.",
"strategy": "Occupied path and focus fire punish it; Guard and pull setup open routes. Opposes PF-A07 ally timing.",
"production": "O/A/V/S: scarf blade, full-line sprint, tapered wake cue, sequential rush hits."
},
{
"id": "PF-A09",
"name": "Pinseeker",
"family": "advanced",
"role": "PF-B05; Aim selects action parts",
"rules": "precision/rear; Joint Pin spends Aim to delay a telegraphed movement or interruptible wind-up instead of dealing full damage.",
"cadence": "line projectile; pin highest-impact legal telegraph, otherwise preserve Aim.",
"strategy": "Screens and uninterruptible actions counter it; Bellkeeper extends pin windows. Opposes PF-A10 coverage.",
"production": "O/A/V/S: pin bow, low draw, joint-cross cue, taut snap with delayed thunk."
},
{
"id": "PF-A10",
"name": "Rainbow",
"family": "advanced",
"role": "PF-B05; Aim becomes distributed volley",
"rules": "area/rear; Falling String spends Aim to strike three distinct legal targets; cannot repeat one target.",
"cadence": "line projectile; volley at three targets, otherwise basic to build Aim.",
"strategy": "Single durable enemy wastes breadth; debuff-on-hit gear multiplies it. Opposes PF-A09 precision.",
"production": "O/A/V/S: split-limb bow, upward release, three-notch cue, staggered arrow rain."
},
{
"id": "PF-A11",
"name": "Stormledger",
"family": "advanced",
"role": "PF-B06; Charge chains by cadence",
"rules": "area/rear; Rolling Sum jumps to the next enemy whose action is later, losing power each jump.",
"cadence": "line spell; start on fastest enemy when at least two later targets exist.",
"strategy": "Uniform timing and isolation limit chain; tempo delays reshape the sequence. Opposes PF-A12 focused channel.",
"production": "O/A/V/S: page-rod, sequential cast, numbered bolt cue, pitch-descending chain."
},
{
"id": "PF-A12",
"name": "Hollowstar",
"family": "advanced",
"role": "PF-B06; Charge is stored through interruption at a cost",
"rules": "pressure/rear; Held Rift preserves Charge when interrupted but applies self Hindered; release focuses one target.",
"cadence": "line spell; retain through one interruption, release at marked high-threat enemy.",
"strategy": "Repeated interrupts compound delay; Guard and cleanse protect payoff. Opposes PF-A11 distributed chain.",
"production": "O/A/V/S: dark aperture focus, brace/release, hollow diamond cue, muted charge then bass impact."
},
{
"id": "PF-A13",
"name": "Fieldmender",
"family": "advanced",
"role": "PF-B07; Remedy follows moving patients",
"rules": "restore/center; Walking Triage heals a target then swaps it one step rearward if the space relation is legal.",
"cadence": "allied reach 2; extract lowest-vitality exposed ally, otherwise cleanse.",
"strategy": "Reorder locks and rear pressure counter extraction; front replacements benefit. Opposes PF-A14 delayed care.",
"production": "O/A/V/S: sling lamp, support-and-step, rear arrow in circle, bandage rustle and step."
},
{
"id": "PF-A14",
"name": "Aftercare",
"family": "advanced",
"role": "PF-B07; Remedy schedules future healing",
"rules": "restore/rear; Promise Dose spends Remedy now to heal after target's next action, stronger if it takes damage first.",
"cadence": "allied reach line; schedule on forecast target, never duplicate an active promise.",
"strategy": "Burst before trigger defeats it; predictable tanks and action acceleration enable it. Opposes PF-A13 immediate extraction.",
"production": "O/A/V/S: sealed vial lamp, tag-and-release, hourglass-cross cue, delayed glass chime."
},
{
"id": "PF-A15",
"name": "Chainhost",
"family": "advanced",
"role": "PF-B08; one Bond links three different roles",
"rules": "enable/center; Third Knot extends a link through both neighbors; any same-tag repeat frays both sides.",
"cadence": "adjacent network; build only with three distinct action tags, share to weakest side.",
"strategy": "Displacement and role duplication break it; mixed cadence lines gain coverage. Opposes PF-A16 pair focus.",
"production": "O/A/V/S: triple knot frame, three-hand sweep, tri-braid cue, three-note pluck."
},
{
"id": "PF-A16",
"name": "Burdenmate",
"family": "advanced",
"role": "PF-B08; Bond transfers a chosen cost",
"rules": "protect/center; Take The Clause moves one visible hindrance or item cooldown from neighbor to self, gaining Bond.",
"cadence": "neighbor only; take action-blocking cost if self can still act, then share resource.",
"strategy": "Isolation and nontransferable boss tags stop it; cleanse and self-cost equipment enable it. Opposes PF-A15 network breadth.",
"production": "O/A/V/S: split knot frame, pull-to-chest, divided-circle cue, tension snap."
},
{
"id": "PF-A17",
"name": "Sentrymaker",
"family": "advanced",
"role": "PF-B09; Parts create rear projectile device",
"rules": "construct/rear; Needle Post occupies one footprint behind user and shoots user's last basic target.",
"cadence": "mirrored line reach; deploy only with rear room, retune when target invalid.",
"strategy": "Rear compression/device hunters remove it; marks stabilize target. Opposes PF-A18 frontline trap.",
"production": "O/A/V/S: fold-out post, plant/aim/fold, tripod cue, clockwork shot events."
},
{
"id": "PF-A18",
"name": "Snarewright",
"family": "advanced",
"role": "PF-B09; Parts arm a vacated position",
"rules": "control/center; Latch Tile triggers when an enemy is pushed or pulled across its indexed line position.",
"cadence": "position target; arm ahead of predicted reorder, otherwise conserve Parts.",
"strategy": "No displacement means dormant value; Hookmarshal and Ramward trigger it. Opposes PF-A17 repeated shots.",
"production": "O/A/V/S: flat latch kit, place/arm/spring, toothed-square cue, clamp event."
},
{
"id": "PF-A19",
"name": "Paleoracle",
"family": "advanced",
"role": "PF-B10; Omen copies expiry timing",
"rules": "impair/rear; Borrowed End makes a different hindrance expire when the copied source expires, sharing cleanse risk.",
"cadence": "line spell; pair long ally status with urgent enemy status.",
"strategy": "Cleanse removes both schedule value; varied debuff durations enable planning. Opposes PF-A20 consumption.",
"production": "O/A/V/S: twin tablet, cross-inscribe, linked broken rings, paired whisper cutoff."
},
{
"id": "PF-A20",
"name": "Dreadtaster",
"family": "advanced",
"role": "PF-B10; consumes hindrance for burst",
"rules": "pressure/rear; Bitter Proof removes one enemy hindrance to damage and expose it based on remaining duration.",
"cadence": "line spell; consume just before cleanse or kill window, never erase needed control early.",
"strategy": "Premature use wastes setup; many short debuffs and finishers enable it. Opposes PF-A19 duration control.",
"production": "O/A/V/S: tasting needle and veil, draw/strike, collapsing ring cue, inhale-to-crack event."
},
{
"id": "PF-A21",
"name": "Marchbell",
"family": "advanced",
"role": "PF-B11; Verse synchronizes basics",
"rules": "tempo/center; Common Step spends Verse so both neighbors' next basics resolve together after the slower one.",
"cadence": "neighbors; synchronize complementary basics, avoid simultaneous overkill.",
"strategy": "Area interrupts and redundant targets punish sync; combo tags and shared target rules benefit. Opposes PF-A22 enemy denial.",
"production": "O/A/V/S: broad bell, two-side conducting, paired bars cue, merged beat event."
},
{
"id": "PF-A22",
"name": "Quietus",
"family": "advanced",
"role": "PF-B11; Verse cancels sound-tagged wind-ups",
"rules": "control/center/rear; Held Clapper spends all Verse to interrupt one sound or command telegraph, then self-silences.",
"cadence": "line control; reserve for preview-tagged major action, otherwise advance ally.",
"strategy": "Non-sound threats bypass it; forecast and cleanse support the self-cost. Opposes PF-A21 ally acceleration.",
"production": "O/A/V/S: wrapped bell, catch-clapper pose, crossed-wave cue, sudden mix duck with caption."
},
{
"id": "PF-A23",
"name": "Trailfactor",
"family": "advanced",
"role": "PF-B12; Supply alters post-battle offers",
"rules": "supply/rear; Field Sample marks first defeated enemy family; post-battle shop guarantees one matching counter tag, spending stored Supply.",
"cadence": "battle reach 1; sample novel threat, use Supply on urgent item refresh.",
"strategy": "Repeated familiar enemies lower value; diverse routes and missing counter gear reward it. Opposes PF-A24 immediate line logistics.",
"production": "O/A/V/S: sample pack, tag/scoop/ledger, specimen-tab cue, cork and pencil events."
},
{
"id": "PF-A24",
"name": "Lineporter",
"family": "advanced",
"role": "PF-B12; Supply moves equipment triggers",
"rules": "enable/center; Hand Carry transfers one unused once-per-battle item trigger to a legal neighbor; item itself stays equipped.",
"cadence": "neighbor only; move a trigger to the unit with legal target, else retreat-step endangered ally.",
"strategy": "Bound/self-only items cannot transfer; proc gear and mixed eligibility benefit. Opposes PF-A23 future offers.",
"production": "O/A/V/S: open-frame pack, pass token, hand-arrow cue, clasp-release event."
}
],
"traits": [
{
"id": "TR-001",
"name": "First Through",
"benefit": "First action after becoming foremost gains reach +1.",
"cost": "That action cannot target the current foremost enemy.",
"evidence": "Front-arrow badge pulses; result names chosen farther target.",
"prohibited": "PF-B01, PF-A01, PF-H01; self-only target actions."
},
{
"id": "TR-002",
"name": "Patient Start",
"benefit": "After two allied actions resolve, first basic gains one local resource.",
"cost": "Starts battle with its first basic delayed one cadence band.",
"evidence": "Two-notch timer under portrait; report shows delayed and paid tick.",
"prohibited": "PF-A21; opening-action equipment."
},
{
"id": "TR-003",
"name": "Narrow Guard",
"benefit": "When only one neighbor exists, intercepts one non-area hit without spending resource.",
"cost": "While two neighbors exist, cannot receive transferred Guard.",
"evidence": "One/two-neighbor shield icon; intercept has trait source label.",
"prohibited": "PF-A15; forced-intercept equipment."
},
{
"id": "TR-004",
"name": "Long Memory",
"benefit": "Repeating the last legal target increases status duration by one tick.",
"cost": "Changing target delays the next action by one tick.",
"evidence": "Prior-target ring and tick preview; report groups repeats/switches.",
"prohibited": "Target-randomizing equipment; PF-A10."
},
{
"id": "TR-005",
"name": "Spare Hand",
"benefit": "May carry one construct or summon footprint through a swap.",
"cost": "Carried object loses its next automatic action.",
"evidence": "Object attaches visibly during swap; result logs skipped action.",
"prohibited": "PF-H04; immovable-device items."
},
{
"id": "TR-006",
"name": "Open Stance",
"benefit": "After a push or pull, immediately basic-attacks the mover if reachable.",
"cost": "Becomes Exposed until that basic resolves.",
"evidence": "Bent-arrow badge and exposed outline; counter target logged.",
"prohibited": "Displacement immunity equipment; PF-A04."
},
{
"id": "TR-007",
"name": "Deep Pocket",
"benefit": "First consumable equipment trigger each battle is preserved for a second legal target.",
"cost": "Both uses have one longer cooldown band.",
"evidence": "Two-charge item pip and extended clock; results split both uses.",
"prohibited": "PF-A24; single-use wager items."
},
{
"id": "TR-008",
"name": "Quiet Hands",
"benefit": "Cannot be targeted by sound-tagged enemy actions while behind two allies.",
"cost": "Own sound-tagged actions generate no local resource.",
"evidence": "Muted-wave badge; rejected targets explain depth condition.",
"prohibited": "PF-A22; PF-B11."
},
{
"id": "TR-009",
"name": "Counterweight",
"benefit": "Resists first pull and transfers its movement to the neighbor ahead.",
"cost": "If that neighbor cannot move, both become Hindered.",
"evidence": "Linked weight icon; preview shows legal recipient; failure logs blockage.",
"prohibited": "PF-B01; movement-lock equipment."
},
{
"id": "TR-010",
"name": "Shared Cup",
"benefit": "Effective healing received also restores a smaller amount to lowest-vitality neighbor.",
"cost": "Direct self-healing is reduced.",
"evidence": "Cup arc identifies neighbor before resolution; result separates shared heal.",
"prohibited": "PF-H01; no-neighbor formation starts."
},
{
"id": "TR-011",
"name": "Bright Target",
"benefit": "Enemies prefer this recruit over equal-reach candidates.",
"cost": "Each attack survived grants one Focus, capped until the recruit moves.",
"evidence": "Visible threat flare and Focus pips; report cites target-score source.",
"prohibited": "Untargetable-opening items; PF-A08."
},
{
"id": "TR-012",
"name": "Late Step",
"benefit": "When neighbor ahead dies, steps into the gap only after completing current wind-up.",
"cost": "Cannot act during the subsequent collapse tick.",
"evidence": "Pending-step ghost silhouette; result shows preserved cast and lost tick.",
"prohibited": "Instant-collapse equipment; no-wind-up actions."
},
{
"id": "TR-013",
"name": "Frugal Rhythm",
"benefit": "Every third basic that spends no resource shortens one equipment cooldown.",
"cost": "Resource-spending actions reset the three-basic count.",
"evidence": "Three-bead counter; reset and refresh named in results.",
"prohibited": "PF-B12; equipment without cooldowns."
},
{
"id": "TR-014",
"name": "Heavy Sleeve",
"benefit": "First interrupt becomes a delay instead of cancellation.",
"cost": "Wind-up after the delay resolves one cadence band slower.",
"evidence": "Sleeve bar catches interrupt cue; report contrasts old/new completion tick.",
"prohibited": "Uninterruptible-cast equipment; PF-A12."
},
{
"id": "TR-015",
"name": "Far Listener",
"benefit": "May receive enable actions from one additional position away.",
"cost": "Cannot receive them from an immediate neighbor while at full vitality.",
"evidence": "Distant-ear arc and rejected-neighbor reason.",
"prohibited": "PF-A15; adjacency-only bond equipment."
},
{
"id": "TR-016",
"name": "Ash Appetite",
"benefit": "Defeating a Hindered enemy restores one local resource.",
"cost": "Defeating an unhindered enemy removes one local resource if available.",
"evidence": "Status-check flame icon; both gain/loss events captioned.",
"prohibited": "Professions with no local resource; status-immunity items."
},
{
"id": "TR-017",
"name": "Exacting",
"benefit": "The first action each battle gains +1 reach only for completion validation against its reserved target; movement that remains inside that reach follows the same unit ID and records TARGET_MOVED_STILL_LEGAL on its terminal outcome.",
"cost": "If that reservation instead emits AO_INVALID_REACH, AO_INVALID_UNTARGETABLE, AO_INVALID_FALLEN, or AO_INVALID_FILTER, its policy is forced to fizzle, then emits AO_FIZZLED with zero resource or cooldown refund; it cannot retarget or ground-resolve.",
"evidence": "Reservation frame shows the one-use extended reach; results show the invalid record, AO_FIZZLED, or the followed-target detail and accepted wager.",
"prohibited": "Ground-resolve equipment; PF-A10."
},
{
"id": "TR-018",
"name": "Thin Blood",
"benefit": "Taking area damage advances next action by one tick.",
"cost": "Direct single-target healing is less effective.",
"evidence": "Area-hit speed notch and cracked-drop badge; report quantifies lost care.",
"prohibited": "Area immunity equipment; PF-B07."
},
{
"id": "TR-019",
"name": "Backwatch",
"benefit": "First enemy entering the allied rear is immediately Marked.",
"cost": "While no rear intruder exists, recruit's forward reach is reduced by one.",
"evidence": "Rear eye badge; reach preview updates; intrusion mark logged.",
"prohibited": "PF-B05; reach-1 professions."
},
{
"id": "TR-020",
"name": "Oathbound Tool",
"benefit": "The Recruit's equipped item's first trigger gains priority over its profession action.",
"cost": "Until that trigger resolves or expires, the Recruit's first technique waits.",
"evidence": "One-slot oath ribbon and queue state; delayed technique has a reason.",
"prohibited": "Triggerless equipment; PF-A24."
},
{
"id": "TR-021",
"name": "Loose Formation",
"benefit": "Gains one local resource after swapping with a different profession role.",
"cost": "Repeating a swap partner applies Hindered to self.",
"evidence": "Partner-role bead track; repeat warning in formation preview.",
"prohibited": "PF-H04; swap-lock equipment."
},
{
"id": "TR-022",
"name": "Stone Count",
"benefit": "Third hit from the same enemy grants Guard and clears its Mark.",
"cost": "Changing attackers resets count.",
"evidence": "Attacker portrait with three stones; reset shown on target change.",
"prohibited": "Forced-target equipment; PF-A01."
},
{
"id": "TR-023",
"name": "Borrowed Pace",
"benefit": "After receiving an action advance, copies the giver's cadence for one basic.",
"cost": "If copied cadence is slower, cannot be advanced again until that basic.",
"evidence": "Donor-color-independent bar shape; report records copied band.",
"prohibited": "PF-A21; cadence-fixed equipment."
},
{
"id": "TR-024",
"name": "Clean Break",
"benefit": "First cleanse also removes the recruit's oldest positive tag and grants local resource.",
"cost": "If no positive tag exists, cleanse takes one extra tick.",
"evidence": "Paired plus/minus token; tooltip previews removed tag.",
"prohibited": "PF-A16; positive-tag-lock items."
},
{
"id": "TR-025",
"name": "Risk Ledger",
"benefit": "Surviving while Exposed adds one discount step to this recruit's next shop equipment purchase.",
"cost": "Ending battle never Exposed clears all accumulated steps.",
"evidence": "Persistent personal tally visible in roster/shop; result states kept/cleared.",
"prohibited": "Exposed-immunity equipment; retreat-only encounters."
},
{
"id": "TR-026",
"name": "Hollow Reach",
"benefit": "Basics may pass through a summoned footprint.",
"cost": "Basics deal no effect to summoned units.",
"evidence": "Hollow projectile/line cue; illegal summon target reason.",
"prohibited": "Summon-hunter equipment; PF-A17."
},
{
"id": "TR-027",
"name": "Rooted Voice",
"benefit": "Sound and command actions cannot be interrupted while recruit has not moved.",
"cost": "Moving self-silences until next basic resolves.",
"evidence": "Rooted waveform icon; movement preview shows silence interval.",
"prohibited": "PF-B04, PF-A08, PF-H04."
},
{
"id": "TR-028",
"name": "Second Draft",
"benefit": "First self-applied hindrance is replaced by Hindered of shorter duration.",
"cost": "Second self-applied hindrance lasts one tick longer.",
"evidence": "Two-page counter; replacement/extension source is explicit.",
"prohibited": "Self-cost-free equipment; PF-A16."
},
{
"id": "TR-029",
"name": "Open Palm",
"benefit": "Resource-sharing actions can target through one intervening ally.",
"cost": "Sharing with a distant ally gives nothing to immediate neighbors that cadence.",
"evidence": "Straight handoff line; opportunity cost shown on neighbor pips.",
"prohibited": "PF-H06; no-resource professions."
},
{
"id": "TR-030",
"name": "Turncoat Buckle",
"benefit": "When pushed behind the current rearmost position, immediately steps to center.",
"cost": "Drops one active positive equipment tag during the step.",
"evidence": "Buckle opens and center ghost appears; dropped tag named in log.",
"prohibited": "Position-lock equipment; PF-A08."
},
{
"id": "TR-031",
"name": "Storm Nerve",
"benefit": "Each completed enemy major wind-up grants Focus.",
"cost": "An interrupted enemy major action removes all stored Focus.",
"evidence": "Major-action rings feed Focus pips; interruption loss bursts visibly.",
"prohibited": "Focusless professions; PF-A09."
},
{
"id": "TR-032",
"name": "Gentle Finish",
"benefit": "Overkill is converted into Remedy for the lowest-vitality ally.",
"cost": "Cannot benefit from execution-threshold effects.",
"evidence": "Overkill trail bends to ally; threshold rejection is explicit.",
"prohibited": "PF-A03; execution-tag equipment."
},
{
"id": "TR-033",
"name": "Split Attention",
"benefit": "Can maintain two Marks placed by equipment.",
"cost": "Profession-applied Marks last one tick less.",
"evidence": "Two half-eye pips; source-specific duration in inspect.",
"prohibited": "Equipment set without Marks; markless professions."
},
{
"id": "TR-034",
"name": "Weathered",
"benefit": "First region hazard each battle has no effect.",
"cost": "Second hazard of a different tag has extended duration.",
"evidence": "Region hazard shield with empty/filled halves; result cites both tags.",
"prohibited": "Hazard-immunity equipment; single-hazard challenge rules."
},
{
"id": "TR-035",
"name": "Empty Scabbard",
"benefit": "With no armament-tag item, basic gains a profession-specific alternate target rule.",
"cost": "Equipping an armament disables the trait and adds one cost tier to that shop action.",
"evidence": "Empty-slot target preview and explicit disabled state.",
"prohibited": "Required-armament professions; bound armament items."
},
{
"id": "TR-036",
"name": "Last Witness",
"benefit": "When the only living member in a line band, reveals next enemy target and gains reach +1.",
"cost": "Cannot receive invisibility or untargetable tags.",
"evidence": "Lone-band eye and forecast line; rejected concealment has trait reason.",
"prohibited": "Concealment equipment; PF-B01."
}
],
"equipment": [
{
"id": "EQ-001",
"name": "Stepback Soles",
"fit": "garb; any",
"class": "B",
"effect": "After first direct hit, step one position rearward if legal.",
"tradeoff": "Next basic waits one tick; full rear makes trigger dormant.",
"production": "I/O/V/S: split-heel boots, rear arrow, heel scrape."
},
{
"id": "EQ-002",
"name": "Frontpin Greaves",
"fit": "garb; front",
"class": "B",
"effect": "Resist the first enemy push until wearer completes a basic.",
"tradeoff": "The completed basic Hinders wearer for one tick.",
"production": "I/O/V/S: pegged greaves, brace notch, stone pin."
},
{
"id": "EQ-003",
"name": "Passing Sash",
"fit": "garb; any",
"class": "B",
"effect": "First allied swap through wearer advances the passing ally's basic.",
"tradeoff": "Wearer's next basic is delayed equally.",
"production": "I/O/V/S: two-tail sash, handoff arrows, cloth snap."
},
{
"id": "EQ-004",
"name": "Gapfinder Sandals",
"fit": "garb; any",
"class": "B",
"effect": "On a neighbor's defeat, choose collapse toward wearer instead of default once.",
"tradeoff": "Wearer becomes Exposed during the collapse tick.",
"production": "I/O/V/S: open-toe route marks, gap ghost, quick step."
},
{
"id": "EQ-005",
"name": "Leadweight Belt",
"fit": "garb; front/center",
"class": "B",
"effect": "First pull on wearer pulls the neighbor ahead instead when legal.",
"tradeoff": "Illegal transfer Hinders both units.",
"production": "I/O/V/S: hanging weight, forked pull cue, buckle strain."
},
{
"id": "EQ-006",
"name": "Rearhook Cloak",
"fit": "garb; rear",
"class": "B",
"effect": "First enemy entering allied rear is pulled one position forward after acting.",
"tradeoff": "Wearer must remain rearmost; movement disables hook until next basic.",
"production": "I/O/V/S: hooked hem, return arrow, cloth catch."
},
{
"id": "EQ-007",
"name": "Pivot Anklet",
"fit": "charm; any",
"class": "B",
"effect": "After wearer swaps, next basic targets the unit opposite the swap direction.",
"tradeoff": "No legal opposite target causes a fizzle without resource gain.",
"production": "I/V/S: compass anklet, pivot reticle, metal tick."
},
{
"id": "EQ-008",
"name": "Stillroad Wrap",
"fit": "garb; any",
"class": "B",
"effect": "Two cadences without movement grant immunity to next forced step.",
"tradeoff": "Moving voluntarily clears the stored immunity.",
"production": "I/O/V/S: wrapped calves, two-bead root cue, cloth tighten."
},
{
"id": "EQ-009",
"name": "Rescue Loop",
"fit": "kit; support",
"class": "B",
"effect": "First heal on a foremost ally also pulls that ally one position rearward.",
"tradeoff": "Heal resolves weaker if pull is illegal.",
"production": "I/O/V/S: rope loop, heal-arrow cue, soft rope slide."
},
{
"id": "EQ-010",
"name": "Forward Claim",
"fit": "charm; any",
"class": "B",
"effect": "First time wearer becomes foremost, mark current foremost enemy.",
"tradeoff": "Mark ends if wearer moves rearward.",
"production": "I/V/S: pennant clasp, paired front markers, flag flick."
},
{
"id": "EQ-011",
"name": "Neighbor's Buckle",
"fit": "garb; any",
"class": "B",
"effect": "When wearer receives Guard, give one Guard token to neighbor behind.",
"tradeoff": "Wearer cannot receive Guard from that neighbor that cadence.",
"production": "I/O/V/S: twin buckle, rear handoff cue, clasp click."
},
{
"id": "EQ-012",
"name": "Open-Line Cord",
"fit": "charm; any",
"class": "B",
"effect": "With no neighbor ahead, basics gain reach +1.",
"tradeoff": "Gaining a front neighbor immediately ends any reserved long target.",
"production": "I/V/S: loose cord, reach ruler, cord pluck."
},
{
"id": "EQ-013",
"name": "Crossstep Token",
"fit": "charm; any",
"class": "B",
"effect": "First targeted enemy movement grants wearer one legal step after its action.",
"tradeoff": "Skipping the step delays wearer's next action.",
"production": "I/V/S: crossed feet token, follow cue, two-step tap."
},
{
"id": "EQ-014",
"name": "Quiet Rearplate",
"fit": "guard; rear",
"class": "B",
"effect": "While rearmost, first area hit is converted to a direct hit.",
"tradeoff": "Direct hit may now trigger single-target enemy riders.",
"production": "I/O/V/S: narrow backplate, area-to-point cue, muted clang."
},
{
"id": "EQ-015",
"name": "Relay Spur",
"fit": "garb; reorder",
"class": "B",
"effect": "A swap initiated by wearer refreshes the swapped ally's position trigger.",
"tradeoff": "Same ally cannot be chosen twice consecutively.",
"production": "I/O/V/S: forked spur, reset loop, bright heel click."
},
{
"id": "EQ-016",
"name": "Empty-Space Bell",
"fit": "charm; any",
"class": "B",
"effect": "A vacant neighbor position makes wearer's next item trigger occur before basic.",
"tradeoff": "If vacancy collapses first, item goes on short cooldown unused.",
"production": "I/V/S: hollow bell, vacancy square, small cutoff chime."
},
{
"id": "EQ-017",
"name": "Bracehook Cuff",
"fit": "guard; front/center",
"class": "B",
"effect": "When neighbor is pulled, wearer may share the pull as a swap.",
"tradeoff": "Both become Hindered after shared movement.",
"production": "I/O/V/S: hooked cuff, split arrow, leather strain."
},
{
"id": "EQ-018",
"name": "Longway Ribbon",
"fit": "garb; any",
"class": "B",
"effect": "Traversing three unique positions refreshes one movement item.",
"tradeoff": "Returning to a repeated position resets progress.",
"production": "I/O/V/S: three-knot ribbon, footprint track, flutter count."
},
{
"id": "EQ-019",
"name": "Settle Stone",
"fit": "charm; any",
"class": "B",
"effect": "After involuntary movement, wearer keeps reserved target if still reachable.",
"tradeoff": "Retarget is forbidden; illegal target fizzles normally.",
"production": "I/V/S: flat stone, solid target tether, dull knock."
},
{
"id": "EQ-020",
"name": "Linekeeper Tab",
"fit": "kit; support",
"class": "B",
"effect": "Once per battle, prevent an allied swap that would expose lowest-vitality unit.",
"tradeoff": "Prevention spends wearer's next item opportunity.",
"production": "I/O/V/S: red tally tab, blocked swap cue, stamp click."
},
{
"id": "EQ-021",
"name": "Threatglass Lens",
"fit": "charm; any",
"class": "B",
"effect": "First basic targets enemy with longest shown wind-up instead of default.",
"tradeoff": "If no wind-up exists, wearer waits one tick before defaulting.",
"production": "I/O/V/S: clear lens, clock reticle, glass focus."
},
{
"id": "EQ-022",
"name": "Frontmark Chalk",
"fit": "kit; any",
"class": "B",
"effect": "Basic on foremost enemy Marks it for wearer's neighbor behind.",
"tradeoff": "Wearer cannot benefit from that Mark.",
"production": "I/V/S: chalk wedge, neighbor eye cue, chalk stroke."
},
{
"id": "EQ-023",
"name": "Rearcall Whistle",
"fit": "kit; reach 2+",
"class": "B",
"effect": "First legal attack selects rearmost enemy and reveals intervening screens.",
"tradeoff": "Attack deals no status on that use.",
"production": "I/O/V/S: flat whistle, rear line cue, captioned chirp."
},
{
"id": "EQ-024",
"name": "Mercy Dial",
"fit": "charm; restore",
"class": "B",
"effect": "Healing prefers ally whose next incoming hit is earliest, not lowest vitality.",
"tradeoff": "Unforecast damage is ignored by the dial.",
"production": "I/V/S: rotating cross dial, timeline reticle, soft click."
},
{
"id": "EQ-025",
"name": "Split-Choice Coin",
"fit": "charm; any",
"class": "B",
"effect": "On exact target-score tie, choose rearmost rather than random tie rule.",
"tradeoff": "After tie resolves, wearer becomes Exposed one tick.",
"production": "I/V/S: split coin, rear tie arrow, coin flip."
},
{
"id": "EQ-026",
"name": "Summon Pricker",
"fit": "armament; any",
"class": "B",
"effect": "Basics prefer enemy footprints with independent actions.",
"tradeoff": "Against no footprint, basic recovery is one tick longer.",
"production": "I/O/V/S: short pricker, footprint reticle, dry prick."
},
{
"id": "EQ-027",
"name": "Woundreader Tape",
"fit": "kit; pressure",
"class": "B",
"effect": "First basic targets enemy most recently effectively healed.",
"tradeoff": "Target outside reach causes default with no item benefit.",
"production": "I/O/V/S: marked tape, heal-history cue, tape pull."
},
{
"id": "EQ-028",
"name": "Guard-Seam Pick",
"fit": "armament; any",
"class": "B",
"effect": "Basic prefers target currently protecting a neighbor.",
"tradeoff": "Damage cannot defeat the protector on that item-triggered hit.",
"production": "I/O/V/S: seam pick, guard-link reticle, metal pry."
},
{
"id": "EQ-029",
"name": "Fastest-Shadow Ink",
"fit": "charm; impair",
"class": "B",
"effect": "Debuffs prefer enemy with shortest next-action time.",
"tradeoff": "Applied duration is one tick shorter.",
"production": "I/V/S: ink drop, short clock cue, quick brush."
},
{
"id": "EQ-030",
"name": "Last-Target Knot",
"fit": "charm; any",
"class": "B",
"effect": "If prior target dies, next action follows its nearest living neighbor.",
"tradeoff": "If both neighbors equidistant, action fizzles.",
"production": "I/V/S: linked knot, neighbor branch cue, string snap."
},
{
"id": "EQ-031",
"name": "Bodyguard Tag",
"fit": "kit; support",
"class": "B",
"effect": "Choose one neighbor in Prepare; enable actions prefer that unit while below half vitality.",
"tradeoff": "Other allies receive weaker enable duration.",
"production": "I/O/V/S: name-free tag, chosen outline, buckle tap."
},
{
"id": "EQ-032",
"name": "Unmasking Powder",
"fit": "kit; line reach",
"class": "B",
"effect": "First hit on untargetable-window enemy becomes a reveal instead of damage.",
"tradeoff": "Powder is spent for battle even if reveal ends same tick.",
"production": "I/V/S: powder cone, open-eye cloud, soft burst."
},
{
"id": "EQ-033",
"name": "Counterface Mirror",
"fit": "guard; front",
"class": "B",
"effect": "First forced-target effect aimed at wearer is reflected as Mark on source.",
"tradeoff": "Wearer remains the legal target for that action.",
"production": "I/O/V/S: small mirror guard, return-eye cue, glass ping."
},
{
"id": "EQ-034",
"name": "Lowwater Gauge",
"fit": "charm; any",
"class": "B",
"effect": "At action ready, target lowest current local-resource enemy if legal.",
"tradeoff": "Enemy resource type is revealed to wearer only after first gain.",
"production": "I/V/S: shallow gauge, meter reticle, liquid tick."
},
{
"id": "EQ-035",
"name": "Open-Flank String",
"fit": "armament; reach 2+",
"class": "B",
"effect": "Attacks prefer enemy with no living neighbor ahead.",
"tradeoff": "A new front neighbor invalidates reserve; action retargets foremost.",
"production": "I/O/V/S: fork string, empty-front cue, twang."
},
{
"id": "EQ-036",
"name": "Twin Reticle",
"fit": "charm; area",
"class": "B",
"effect": "Area action centers between two adjacent legal targets rather than foremost.",
"tradeoff": "Single-target state prevents item trigger.",
"production": "I/V/S: paired circles, midpoint cue, double click."
},
{
"id": "EQ-037",
"name": "Interrupt Ledger",
"fit": "kit; control",
"class": "B",
"effect": "After any ally interrupts, wearer targets that interrupted enemy next.",
"tradeoff": "If unreachable, wearer skips one basic rather than defaulting.",
"production": "I/O/V/S: slim ledger, interrupt tether, page tick."
},
{
"id": "EQ-038",
"name": "Oldest-Harm Compass",
"fit": "charm; restore",
"class": "B",
"effect": "Cleanse targets ally with oldest active hindrance.",
"tradeoff": "Newer action-blocking hindrance is not prioritized.",
"production": "I/V/S: aged compass, duration rings, slow click."
},
{
"id": "EQ-039",
"name": "Collapse Sight",
"fit": "armament; any",
"class": "B",
"effect": "Reserved target follows one deterministic enemy collapse.",
"tradeoff": "Second collapse before resolution causes fizzle.",
"production": "I/O/V/S: sliding sight, one-step tether, rail slide."
},
{
"id": "EQ-040",
"name": "Choicebreaker Pin",
"fit": "charm; any",
"class": "B",
"effect": "First action with two equally legal target families alternates from previewed default.",
"tradeoff": "Target receives no critical effect.",
"production": "I/V/S: half-turn pin, alternate reticle, pin turn."
}
],
"artifacts": [
{
"id": "AR-001",
"name": "Open Ledger",
"rule": "Every shop shows one extra recruit, but equipment offer count is one lower.",
"tradeoff": "Conflicts AR-002; shop header displays exchanged slots before entry.",
"production": "I/V/S: open roster pages, slot exchange cue, page fan."
},
{
"id": "AR-002",
"name": "Toolwright's Window",
"rule": "Every shop shows one extra equipment item, but recruit offer count is one lower.",
"tradeoff": "Conflicts AR-001; shop header previews composition.",
"production": "I/V/S: tool window icon, reverse slot cue, latch slide."
},
{
"id": "AR-003",
"name": "Common Cause",
"rule": "First Common recruit of each shop costs one product-defined tier less; Uncommon/Rare costs one tier more.",
"tradeoff": "Conflicts AR-004; every price shows artifact delta.",
"production": "I/V/S: one-notch banner, price arrows, soft stamp."
},
{
"id": "AR-004",
"name": "Narrow Search",
"rule": "Shops guarantee one Uncommon-or-Rare recruit but suppress one base-profession role weight.",
"tradeoff": "Conflicts AR-003; suppressed role is chosen and visible for the run.",
"production": "I/V/S: narrow lens, rarity/role exchange cue, glass close."
},
{
"id": "AR-005",
"name": "Second Interview",
"rule": "Once per shop, reject one recruit to generate a new presentation with the same combat record.",
"tradeoff": "Conflicts AR-006; no power reroll, replacement signature is previewed.",
"production": "I/V/S: two portrait frames, locked-rule cue, card slide."
},
{
"id": "AR-006",
"name": "Fresh Aptitude",
"rule": "Once per shop, reroll one recruit's trait while keeping profession, grades, level, gear, and cost tier.",
"tradeoff": "Conflicts AR-005; old/new benefit and cost compare before acceptance.",
"production": "I/V/S: rotating trait badge, before/after cue, token turn."
},
{
"id": "AR-007",
"name": "Full Bench",
"rule": "Owned reserve capacity is higher, but every undeployed recruit adds a small shop upkeep tier.",
"tradeoff": "Conflicts AR-008; upkeep total is shown before buying.",
"production": "I/V/S: long bench, reserve-to-cost cue, bench creak."
},
{
"id": "AR-008",
"name": "Lean Company",
"rule": "Reserve capacity is lower; after a death, next legal recruit is guaranteed within recovery cost tier.",
"tradeoff": "Conflicts AR-007; capacity and guarantee state remain on roster/shop.",
"production": "I/V/S: short bench, vacancy guarantee cue, firm knock."
}
],
"enemies": [
{
"id": "EN-R1-01",
"name": "Pane Nibbler",
"class": "ordinary",
"rule": "Bites the foremost unit; after two uninterrupted bites, chips Guard from that unit's neighbor.",
"responses": "Reorder the neighbor; interrupt the second bite. Teaches adjacency protection.",
"production": "Third bite becomes a two-target arc. P/A/V/S: low glass-jaw, double-bite ticks, chipped-square cue, brittle clicks."
},
{
"id": "EN-R1-02",
"name": "Gust Finch",
"class": "ordinary",
"rule": "From rear, telegraphs a projectile at the rearmost allied unit and steps forward after firing.",
"responses": "Use projectile screen; pull the shooter into short reach. Tests rear safety.",
"production": "Each blocked shot shortens its next step. P/A/V/S: fork-wing silhouette, perch/loose, feather-arrow cue, wind snap."
},
{
"id": "EN-R1-03",
"name": "Terrace Ram",
"class": "ordinary",
"rule": "Headwind charge pushes the foremost allied unit one position rearward, targeting foremost only.",
"responses": "Brace against push; leave a durable replacement directly behind. Combines with collapse.",
"production": "Failed push grants it Guard. P/A/V/S: wedge-horn body, paw/charge, chevron lane cue, hoof rumble."
},
{
"id": "EN-R1-04",
"name": "Bellstem Grazer",
"class": "ordinary",
"rule": "Eats the oldest positive tag on the foremost reachable ally instead of dealing damage.",
"responses": "Delay positive tag until after bite; expose an untagged front. Introduces dispel timing.",
"production": "Consumed tag makes next bite reach 2. P/A/V/S: tall stem-antler, sniff/pluck, hollow-plus cue, plucked chime."
},
{
"id": "EN-R1-05",
"name": "Shardback",
"class": "ordinary",
"rule": "Reflects the first projectile each cadence to its source; reflection is previewed and cannot chain.",
"responses": "Use melee/spell first; spend a low-value projectile to open the screen.",
"production": "At half vitality, screen resets once. P/A/V/S: faceted shell, flare/turn, mirrored arrow cue, glass ping."
},
{
"id": "EN-R1-06",
"name": "Verge Stalker",
"class": "ordinary",
"rule": "Targets the first ally with reach greater than 1; otherwise attacks foremost.",
"responses": "Equip short reach; Guard the identified long-reach unit. Teaches target-filter preview.",
"production": "Marked target becomes Exposed after two hits. P/A/V/S: long forelegs, scan/pounce, reach-ruler cue, scrape/hiss."
},
{
"id": "EN-R1-07",
"name": "Whistle Midge",
"class": "ordinary",
"rule": "A swarm delays the next action of whichever allied band contains the most units.",
"responses": "Balance band occupancy; cleanse the visible delay. Interacts with order bands.",
"production": "Repeats on a band only after another band is hit. P/A/V/S: triangular swarm, orbit/dive, band-bracket cue, filtered whistle."
},
{
"id": "EN-R1-08",
"name": "Glassroot Sprout",
"class": "ordinary",
"rule": "Starts as a rear footprint and grows one position forward each cadence; on reaching front, shields all enemies behind it.",
"responses": "Defeat it early at range; push it backward before growth.",
"production": "Growth cannot be interrupted twice consecutively. P/A/V/S: staged crystal plant, three growth poses, numbered sprout cue, rising cracks."
},
{
"id": "EN-R1-09",
"name": "Crosswind Scribe",
"class": "ordinary",
"rule": "Draws a line between allied foremost and rearmost; next swap crossing the line becomes Hindered.",
"responses": "Avoid swapping that cadence; cleanse then use movement anyway.",
"production": "Uncrossed line converts to a weak area hit. P/A/V/S: kite-robed caster, draw/release, dotted span cue, chalk-wind stroke."
},
{
"id": "EN-R1-10",
"name": "Ledge Hopper",
"class": "ordinary",
"rule": "Leaps over its own foremost neighbor to become front, then strikes the first ally whose target changed.",
"responses": "Hold targets stable; intercept the announced leap strike.",
"production": "If no target changed, Hopper becomes Exposed. P/A/V/S: spring-legged silhouette, vault/stab, target-turn cue, stone tap."
},
{
"id": "EN-R1-11",
"name": "Gale Bailiff",
"class": "elite",
"rule": "Declares Stand Order on one indexed allied position; leaving it causes a line-wide push, remaining causes focused projectiles.",
"responses": "Choose a braced occupant; deliberately leave before ranged wind-up and absorb push.",
"production": "Alternates ordered index front/rear. P/A/V/S: tall banner coat, point/stamp, numbered pennant cue, gavel-gust event."
},
{
"id": "EN-R1-12",
"name": "Prism Ox",
"class": "elite",
"rule": "Occupies two enemy footprints; frontal damage rotates its prism, changing whether it screens projectiles, spells, or pushes.",
"responses": "Rotate with a cheap legal hit; attack through the currently unscreened family.",
"production": "At low vitality rotation occurs every hit. P/A/V/S: two-footprint ox, heavy pivot, three-shape prism cue, bass glass rotation."
}
],
"bosses": [
{
"id": "BO-R1-01",
"name": "The Many-Paned Stag",
"class": "RG-01",
"rule": "Rotates three panes that screen projectile, spell, or forced movement; antler sweep pushes the current foremost after each rotation.",
"responses": "Rotate with cheap unscreened hit, then use open family; brace sweep and punish recovery. Failure: wrong family fed pane timing.",
"production": "Half vitality rotates two steps. P/A/V/S/M: two-footprint stag, pane-antler kit, tri-screen cue, glass-horn boss motif."
},
{
"id": "BO-R1-02",
"name": "Gale Loom",
"class": "RG-01",
"rule": "Stationary wind engine inserts a gust footprint front-to-rear; attacks on its weak spindle reverse gust direction.",
"responses": "Break spindle to redirect gust through enemies; hold stable order and race core. Failure: uncontrolled gust exposed rear.",
"production": "At half vitality two gusts move from opposite ends. P/A/V/S/M: loom-engine, spindle/gust phases, numbered wind paths, mechanical gale stem."
}
],
"region": {
"id": "RG-01",
"name": "Windglass Verge",
"framing": "open grass terraces where suspended mineral panes redirect aether gusts. The guild charts a safe trade crossing.",
"pressure": "Introduces front-to-rear reach, basic protection, visible projectile screens, and simple pushes. Pressures the player to field a front holder without making one profession mandatory.",
"progression": "Two-threat tutorials become three-unit compositions; glass-wind hazard telegraphs a push one cadence ahead. Shops emphasize EQ-001..EQ-040; first clear opens all base profession shop weights.",
"assignment": "EN-R1-01..EN-R1-12; BO-R1-01..BO-R1-02; artifacts AR-001..AR-008.",
"production": "E/P/A/V/S/M: bright terrace layers, wind direction shapes, 12 silhouette kits, two boss scale kits, calm-to-gale music stem."
},
"contracts": [
{
"id": "CTR-R1-01",
"name": "First Windglass Crossing",
"region_id": "RG-01",
"ordinal": 1,
"round_count": 12,
"boss_id": "BO-R1-01",
"clear_fact": "CLEAR-RG01-C01",
"first_clear_renown": 14
},
{
"id": "CTR-R1-02",
"name": "Gale Loom Passage",
"region_id": "RG-01",
"ordinal": 2,
"round_count": 12,
"boss_id": "BO-R1-02",
"clear_fact": "CLEAR-RG01-C02",
"first_clear_renown": 18
}
]
}