{
  "edition": "ART-REVIEW-1",
  "scope": "Visual contact-sheet review of all 171 card IDs and all 90 Companion forms, plus file, decode, mapping and exact-duplicate checks. Notes are polish suggestions, not missing-art errors.",
  "cardIds": 171,
  "companionFamilies": 18,
  "extraFormIllustrations": 72,
  "reviewEntries": 243,
  "uniqueImageFiles": 241,
  "baseArtworkFiles": 169,
  "polishCandidates": 13,
  "reusedBaseArtwork": [
    [
      "WB-006",
      "OFF-002"
    ],
    [
      "WB-012",
      "OFF-003"
    ]
  ],
  "factionNotes": {
    "Hearthbound": "Warm woodland identity is consistent. Several older cards repeat a similar stone-perch composition and detailed ruin backdrop; background variety is a future polish opportunity.",
    "Skyrunners": "The blue/white sky identity is coherent. Some flying figures are small against bright, detailed landscapes; check their silhouettes at hand-card size.",
    "Veilborn": "The violet/black identity is coherent. The darkest figures benefit most from stronger edge separation at small size.",
    "Ironmaw": "The red, tusked and spiked silhouettes read clearly. Rauk's first muscle path remains a closer visual match to base than the armor path.",
    "Hourglass Covenant": "Clockwork gold and indigo create a consistent faction identity, with readable differences between most unit silhouettes.",
    "Revelwild": "Masks, ribbons and lanterns create a strong shared identity. Bright detail is dense; preserve a clear focal character when refining future cards.",
    "Prismforge": "Crystal architecture is consistent, but some pale figures blend with equally detailed teal/pink backgrounds. This is the highest-priority faction for a small-card contrast pass.",
    "Vigilant Array": "The steel/cyan machines and ruined Atlas are distinct from the other factions. Base Companion scenes contain more vegetation than most Ally scenes; a quieter mechanical setting could unify them further.",
    "Elderwake": "Coastal scale and stone/moss bodies read well. Nhalora's five-form silhouette differences are the main growth-review opportunity.",
    "Shared": "All three Route cards have clear, distinct location artwork."
  },
  "entries": [
    {
      "key": "WB-001",
      "id": "WB-001",
      "title": "Brindle",
      "faction": "Hearthbound",
      "type": "Companion",
      "stage": "Base",
      "src": "assets/revised/brindle-v2.webp",
      "note": "",
      "text": "At three journey marks: choose Hearthkeeper (1,7,2; when you Explore, remove 1 damage from another friendly unit here) or Trailblazer (3,5,1; your first move each turn costs 0).",
      "reused": null
    },
    {
      "key": "WB-001:Hearthkeeper:first",
      "id": "WB-001",
      "title": "Hearthkeeper",
      "faction": "Hearthbound",
      "type": "Companion",
      "stage": "First evolution",
      "src": "assets/revised/hearthkeeper-v2.webp",
      "note": "",
      "text": "First evolution of Brindle · Hearthkeeper",
      "stats": [
        1,
        7,
        2
      ],
      "reused": null
    },
    {
      "key": "WB-001:Hearthkeeper:ascension",
      "id": "WB-001",
      "title": "Sanctuary Sovereign",
      "faction": "Hearthbound",
      "type": "Companion",
      "stage": "Ascension",
      "src": "assets/ascension-growth/wb-001-a-v3.webp",
      "note": "",
      "text": "Ascension of Brindle · Hearthkeeper",
      "stats": [
        3,
        9,
        2
      ],
      "reused": null
    },
    {
      "key": "WB-001:Trailblazer:first",
      "id": "WB-001",
      "title": "Trailblazer",
      "faction": "Hearthbound",
      "type": "Companion",
      "stage": "First evolution",
      "src": "assets/revised/trailblazer-v2.webp",
      "note": "",
      "text": "First evolution of Brindle · Trailblazer",
      "stats": [
        3,
        5,
        1
      ],
      "reused": null
    },
    {
      "key": "WB-001:Trailblazer:ascension",
      "id": "WB-001",
      "title": "Dawnbound Pathfinder",
      "faction": "Hearthbound",
      "type": "Companion",
      "stage": "Ascension",
      "src": "assets/ascension-growth/wb-001-b-v3.webp",
      "note": "",
      "text": "Ascension of Brindle · Trailblazer",
      "stats": [
        5,
        7,
        1
      ],
      "reused": null
    },
    {
      "key": "WB-002",
      "id": "WB-002",
      "title": "Vey",
      "faction": "Skyrunners",
      "type": "Companion",
      "stage": "Base",
      "src": "assets/revised/vey-v2.webp",
      "note": "",
      "text": "At three journey marks: choose Windguide (2,5,2; your first move each turn costs 0) or Stormwing (4,5,1; when you defeat an Ally, gain 1 Renown).",
      "reused": null
    },
    {
      "key": "WB-002:Windguide:first",
      "id": "WB-002",
      "title": "Windguide",
      "faction": "Skyrunners",
      "type": "Companion",
      "stage": "First evolution",
      "src": "assets/revised/windguide-v2.webp",
      "note": "Vey is small in the frame compared with the base card. A closer view and stronger body/wing silhouette would communicate the first growth step more clearly.",
      "text": "First evolution of Vey · Windguide",
      "stats": [
        2,
        5,
        2
      ],
      "reused": null
    },
    {
      "key": "WB-002:Windguide:ascension",
      "id": "WB-002",
      "title": "Crown of the Open Sky",
      "faction": "Skyrunners",
      "type": "Companion",
      "stage": "Ascension",
      "src": "assets/ascension-growth/wb-002-a-v3.webp",
      "note": "",
      "text": "Ascension of Vey · Windguide",
      "stats": [
        4,
        7,
        2
      ],
      "reused": null
    },
    {
      "key": "WB-002:Stormwing:first",
      "id": "WB-002",
      "title": "Stormwing",
      "faction": "Skyrunners",
      "type": "Companion",
      "stage": "First evolution",
      "src": "assets/revised/stormwing-v2.webp",
      "note": "The distant framing hides the first upgrade's growth. Bring Vey closer and emphasize the stronger talons, shoulders or wing structure.",
      "text": "First evolution of Vey · Stormwing",
      "stats": [
        4,
        5,
        1
      ],
      "reused": null
    },
    {
      "key": "WB-002:Stormwing:ascension",
      "id": "WB-002",
      "title": "Tempest Talon",
      "faction": "Skyrunners",
      "type": "Companion",
      "stage": "Ascension",
      "src": "assets/ascension-growth/wb-002-b-v3.webp",
      "note": "",
      "text": "Ascension of Vey · Stormwing",
      "stats": [
        6,
        7,
        1
      ],
      "reused": null
    },
    {
      "key": "WB-003",
      "id": "WB-003",
      "title": "Lampkin",
      "faction": "Hearthbound",
      "type": "Ally",
      "stage": "Card",
      "src": "assets/refined/WB-003-v3.webp",
      "note": "",
      "text": "No ability.",
      "reused": null
    },
    {
      "key": "WB-004",
      "id": "WB-004",
      "title": "Kitelet",
      "faction": "Skyrunners",
      "type": "Ally",
      "stage": "Card",
      "src": "assets/refined/WB-004-v4.webp",
      "note": "",
      "text": "No ability.",
      "reused": null
    },
    {
      "key": "WB-005",
      "id": "WB-005",
      "title": "Burrowguard",
      "faction": "Hearthbound",
      "type": "Ally",
      "stage": "Card",
      "src": "assets/refined/WB-005-v3.webp",
      "note": "",
      "text": "No ability.",
      "reused": null
    },
    {
      "key": "WB-006",
      "id": "WB-006",
      "title": "Cloudfencer",
      "faction": "Skyrunners",
      "type": "Ally",
      "stage": "Card",
      "src": "assets/refined/WB-006-v3.webp",
      "note": "",
      "text": "No ability.",
      "reused": [
        "WB-006",
        "OFF-002"
      ]
    },
    {
      "key": "WB-007",
      "id": "WB-007",
      "title": "Lantern Scout",
      "faction": "Hearthbound",
      "type": "Ally",
      "stage": "Card",
      "src": "assets/refined/WB-007-v4.webp",
      "note": "",
      "text": "No ability.",
      "reused": null
    },
    {
      "key": "WB-008",
      "id": "WB-008",
      "title": "Ribbon Scout",
      "faction": "Skyrunners",
      "type": "Ally",
      "stage": "Card",
      "src": "assets/refined/WB-008-v4.webp",
      "note": "",
      "text": "No ability.",
      "reused": null
    },
    {
      "key": "WB-009",
      "id": "WB-009",
      "title": "Hearth Singer",
      "faction": "Hearthbound",
      "type": "Ally",
      "stage": "Card",
      "src": "assets/refined/WB-009-v4.webp",
      "note": "",
      "text": "On entry: remove 2 damage from a friendly unit.",
      "reused": null
    },
    {
      "key": "WB-010",
      "id": "WB-010",
      "title": "Gale Courier",
      "faction": "Skyrunners",
      "type": "Ally",
      "stage": "Card",
      "src": "assets/refined/WB-010-v4.webp",
      "note": "",
      "text": "On entry: move another friendly unit one adjacent Route for free; ignore its movement limit.",
      "reused": null
    },
    {
      "key": "WB-011",
      "id": "WB-011",
      "title": "Emberback",
      "faction": "Hearthbound",
      "type": "Ally",
      "stage": "Card",
      "src": "assets/refined/WB-011-v4.webp",
      "note": "",
      "text": "No ability.",
      "reused": null
    },
    {
      "key": "WB-012",
      "id": "WB-012",
      "title": "Thundercrest",
      "faction": "Skyrunners",
      "type": "Ally",
      "stage": "Card",
      "src": "assets/refined/WB-012-v3.webp",
      "note": "",
      "text": "No ability.",
      "reused": [
        "WB-012",
        "OFF-003"
      ]
    },
    {
      "key": "WB-013",
      "id": "WB-013",
      "title": "Mend",
      "faction": "Hearthbound",
      "type": "Tactic",
      "stage": "Card",
      "src": "assets/refined/WB-013-v4.webp",
      "note": "",
      "text": "Heal a friendly character by 3.",
      "reused": null
    },
    {
      "key": "WB-014",
      "id": "WB-014",
      "title": "Guststep",
      "faction": "Skyrunners",
      "type": "Tactic",
      "stage": "Card",
      "src": "assets/refined/WB-014-v4.webp",
      "note": "",
      "text": "Move a friendly character to an adjacent Route without exhausting it. Does not ready it or consume its normal move, and ignores its normal movement limit.",
      "reused": null
    },
    {
      "key": "WB-015",
      "id": "WB-015",
      "title": "Trail Snack",
      "faction": "Hearthbound",
      "type": "Tactic",
      "stage": "Card",
      "src": "assets/refined/WB-015-v4.webp",
      "note": "",
      "text": "Draw 2 cards.",
      "reused": null
    },
    {
      "key": "WB-016",
      "id": "WB-016",
      "title": "Clear Skies",
      "faction": "Skyrunners",
      "type": "Tactic",
      "stage": "Card",
      "src": "assets/refined/WB-016-v4.webp",
      "note": "",
      "text": "Draw 2 cards.",
      "reused": null
    },
    {
      "key": "WB-017",
      "id": "WB-017",
      "title": "Stand Together",
      "faction": "Hearthbound",
      "type": "Tactic",
      "stage": "Card",
      "src": "assets/refined/WB-017-v4.webp",
      "note": "",
      "text": "Ready an exhausted friendly Ally; it cannot Explore this turn.",
      "reused": null
    },
    {
      "key": "WB-018",
      "id": "WB-018",
      "title": "Sudden Squall",
      "faction": "Skyrunners",
      "type": "Tactic",
      "stage": "Card",
      "src": "assets/refined/WB-018-v4.webp",
      "note": "",
      "text": "Deal 3 damage to an opposing Ally at your Companion’s Route.",
      "reused": null
    },
    {
      "key": "WB-019",
      "id": "WB-019",
      "title": "Guiding Glow",
      "faction": "Hearthbound",
      "type": "Tactic",
      "stage": "Card",
      "src": "assets/refined/WB-019-v4.webp",
      "note": "",
      "text": "A friendly character gains +2 Insight until the end of your turn.",
      "reused": null
    },
    {
      "key": "WB-020",
      "id": "WB-020",
      "title": "Tailwind",
      "faction": "Skyrunners",
      "type": "Tactic",
      "stage": "Card",
      "src": "assets/refined/WB-020-v4.webp",
      "note": "",
      "text": "A friendly character gains +2 Insight until the end of your turn.",
      "reused": null
    },
    {
      "key": "WB-021",
      "id": "WB-021",
      "title": "Long Way Home",
      "faction": "Hearthbound",
      "type": "Tactic",
      "stage": "Card",
      "src": "assets/refined/WB-021-v4.webp",
      "note": "",
      "text": "Move your Companion to any Route without exhausting it; heal it by 3. Does not ready it.",
      "reused": null
    },
    {
      "key": "WB-022",
      "id": "WB-022",
      "title": "Open Horizon",
      "faction": "Skyrunners",
      "type": "Tactic",
      "stage": "Card",
      "src": "assets/refined/WB-022-v4.webp",
      "note": "",
      "text": "Move your Companion to any Route without exhausting it; heal it by 3. Does not ready it.",
      "reused": null
    },
    {
      "key": "WB-023",
      "id": "WB-023",
      "title": "Lantern Crossing — Route",
      "faction": "Shared",
      "type": "Route",
      "stage": "Card",
      "src": "assets/finished/WB-023.webp",
      "note": "",
      "text": "No additional effect.",
      "reused": null
    },
    {
      "key": "WB-024",
      "id": "WB-024",
      "title": "Windbridge — Route",
      "faction": "Shared",
      "type": "Route",
      "stage": "Card",
      "src": "assets/finished/WB-024.webp",
      "note": "",
      "text": "Moving into this Route costs 0 charge; movement limits still apply.",
      "reused": null
    },
    {
      "key": "WB-025",
      "id": "WB-025",
      "title": "Glass Orchard — Route",
      "faction": "Shared",
      "type": "Route",
      "stage": "Card",
      "src": "assets/finished/WB-025.webp",
      "note": "",
      "text": "All characters at this Route gain +1 Force. This Route no longer heals.",
      "reused": null
    },
    {
      "key": "RR-001",
      "id": "RR-001",
      "title": "Korr",
      "faction": "Hearthbound",
      "type": "Companion",
      "stage": "Base",
      "src": "assets/revised/korr-v2.webp",
      "note": "",
      "text": "At 3 journey marks, pay 2 charge: choose Shellwarden or Bridgewright. Keep damage, readiness, location and marks.",
      "reused": null
    },
    {
      "key": "RR-001:Shellwarden:first",
      "id": "RR-001",
      "title": "Shellwarden",
      "faction": "Hearthbound",
      "type": "Companion",
      "stage": "First evolution",
      "src": "assets/revised/shellwarden-v2.webp",
      "note": "",
      "text": "First evolution of Korr · Shellwarden",
      "stats": [
        2,
        7,
        1
      ],
      "reused": null
    },
    {
      "key": "RR-001:Shellwarden:ascension",
      "id": "RR-001",
      "title": "Verdant Bulwark",
      "faction": "Hearthbound",
      "type": "Companion",
      "stage": "Ascension",
      "src": "assets/ascension-growth/rr-001-a-v3.webp",
      "note": "",
      "text": "Ascension of Korr · Shellwarden",
      "stats": [
        4,
        9,
        1
      ],
      "reused": null
    },
    {
      "key": "RR-001:Bridgewright:first",
      "id": "RR-001",
      "title": "Bridgewright",
      "faction": "Hearthbound",
      "type": "Companion",
      "stage": "First evolution",
      "src": "assets/revised/bridgewright-v2.webp",
      "note": "",
      "text": "First evolution of Korr · Bridgewright",
      "stats": [
        2,
        5,
        2
      ],
      "reused": null
    },
    {
      "key": "RR-001:Bridgewright:ascension",
      "id": "RR-001",
      "title": "Rootspan Colossus",
      "faction": "Hearthbound",
      "type": "Companion",
      "stage": "Ascension",
      "src": "assets/ascension-growth/rr-001-b-v3.webp",
      "note": "",
      "text": "Ascension of Korr · Bridgewright",
      "stats": [
        4,
        7,
        2
      ],
      "reused": null
    },
    {
      "key": "RR-004",
      "id": "RR-004",
      "title": "Nima",
      "faction": "Skyrunners",
      "type": "Companion",
      "stage": "Base",
      "src": "assets/revised/nima-v2.webp",
      "note": "",
      "text": "At 3 journey marks, pay 2 charge: choose Chartweaver or Stormdancer. Keep damage, readiness, location and marks.",
      "reused": null
    },
    {
      "key": "RR-004:Chartweaver:first",
      "id": "RR-004",
      "title": "Chartweaver",
      "faction": "Skyrunners",
      "type": "Companion",
      "stage": "First evolution",
      "src": "assets/revised/chartweaver-v2.webp",
      "note": "",
      "text": "First evolution of Nima · Chartweaver",
      "stats": [
        1,
        5,
        2
      ],
      "reused": null
    },
    {
      "key": "RR-004:Chartweaver:ascension",
      "id": "RR-004",
      "title": "Sage of the Endless Atlas",
      "faction": "Skyrunners",
      "type": "Companion",
      "stage": "Ascension",
      "src": "assets/ascension-growth/rr-004-a-v3.webp",
      "note": "",
      "text": "Ascension of Nima · Chartweaver",
      "stats": [
        3,
        7,
        2
      ],
      "reused": null
    },
    {
      "key": "RR-004:Stormdancer:first",
      "id": "RR-004",
      "title": "Stormdancer",
      "faction": "Skyrunners",
      "type": "Companion",
      "stage": "First evolution",
      "src": "assets/revised/stormdancer-v2.webp",
      "note": "",
      "text": "First evolution of Nima · Stormdancer",
      "stats": [
        3,
        4,
        2
      ],
      "reused": null
    },
    {
      "key": "RR-004:Stormdancer:ascension",
      "id": "RR-004",
      "title": "Galecrest Ascendant",
      "faction": "Skyrunners",
      "type": "Companion",
      "stage": "Ascension",
      "src": "assets/ascension-growth/rr-004-b-v3.webp",
      "note": "",
      "text": "Ascension of Nima · Stormdancer",
      "stats": [
        5,
        6,
        2
      ],
      "reused": null
    },
    {
      "key": "RR-007",
      "id": "RR-007",
      "title": "Bellburrow",
      "faction": "Hearthbound",
      "type": "Ally",
      "stage": "Card",
      "src": "assets/refined/RR-007-v4.webp",
      "note": "",
      "text": "On entry, heal 2 damage from one friendly unit.",
      "reused": null
    },
    {
      "key": "RR-008",
      "id": "RR-008",
      "title": "Mossmason",
      "faction": "Hearthbound",
      "type": "Ally",
      "stage": "Card",
      "src": "assets/refined/RR-008-v4.webp",
      "note": "",
      "text": "Rooted: this Ally cannot move while in play, including through card effects.",
      "reused": null
    },
    {
      "key": "RR-009",
      "id": "RR-009",
      "title": "Cloudskipper",
      "faction": "Skyrunners",
      "type": "Ally",
      "stage": "Card",
      "src": "assets/refined/RR-009-v4.webp",
      "note": "",
      "text": "Swift: your first normal move each turn costs 0 charge. Normal movement restrictions still apply.",
      "reused": null
    },
    {
      "key": "RR-010",
      "id": "RR-010",
      "title": "Stormling",
      "faction": "Skyrunners",
      "type": "Ally",
      "stage": "Card",
      "src": "assets/refined/RR-010-v4.webp",
      "note": "",
      "text": "No ability.",
      "reused": null
    },
    {
      "key": "RR-011",
      "id": "RR-011",
      "title": "Shared Shelter",
      "faction": "Hearthbound",
      "type": "Tactic",
      "stage": "Card",
      "src": "assets/refined/RR-011-v4.webp",
      "note": "",
      "text": "Choose a Route; heal each friendly character there by 2.",
      "reused": null
    },
    {
      "key": "RR-012",
      "id": "RR-012",
      "title": "Span Repair",
      "faction": "Hearthbound",
      "type": "Tactic",
      "stage": "Card",
      "src": "assets/refined/RR-012-v4.webp",
      "note": "",
      "text": "Heal a friendly character by 3; optionally move it to an adjacent Route without exhausting.",
      "reused": null
    },
    {
      "key": "RR-013",
      "id": "RR-013",
      "title": "Lantern Signals",
      "faction": "Skyrunners",
      "type": "Tactic",
      "stage": "Card",
      "src": "assets/refined/RR-013-v4.webp",
      "note": "",
      "text": "Draw 2 cards. You may move a friendly character to an adjacent Route without exhausting it. Does not ready it.",
      "reused": null
    },
    {
      "key": "RR-014",
      "id": "RR-014",
      "title": "Measured Gust",
      "faction": "Skyrunners",
      "type": "Tactic",
      "stage": "Card",
      "src": "assets/refined/RR-014-v4.webp",
      "note": "",
      "text": "A friendly character gains +3 Force until the end of your turn. Does not ready it or prevent Explore.",
      "reused": null
    },
    {
      "key": "OFF-001",
      "id": "OFF-001",
      "title": "Ember Prowler",
      "faction": "Hearthbound",
      "type": "Ally",
      "stage": "Card",
      "src": "assets/refined/OFF-001-v4.webp",
      "note": "",
      "text": "No ability.",
      "reused": null
    },
    {
      "key": "OFF-002",
      "id": "OFF-002",
      "title": "Cloudfencer",
      "faction": "Skyrunners",
      "type": "Ally",
      "stage": "Card",
      "src": "assets/refined/WB-006-v3.webp",
      "note": "",
      "text": "No ability.",
      "reused": [
        "WB-006",
        "OFF-002"
      ]
    },
    {
      "key": "OFF-003",
      "id": "OFF-003",
      "title": "Thundercrest",
      "faction": "Skyrunners",
      "type": "Ally",
      "stage": "Card",
      "src": "assets/refined/WB-012-v3.webp",
      "note": "",
      "text": "No ability.",
      "reused": [
        "WB-012",
        "OFF-003"
      ]
    },
    {
      "key": "SP-001",
      "id": "SP-001",
      "title": "Bramblehorn",
      "faction": "Hearthbound",
      "type": "Ally",
      "stage": "Card",
      "src": "assets/refined/SP-001-v4.webp",
      "note": "",
      "text": "No ability.",
      "reused": null
    },
    {
      "key": "SP-002",
      "id": "SP-002",
      "title": "Stonehush",
      "faction": "Hearthbound",
      "type": "Ally",
      "stage": "Card",
      "src": "assets/refined/SP-002-v4.webp",
      "note": "",
      "text": "No ability.",
      "reused": null
    },
    {
      "key": "SP-003",
      "id": "SP-003",
      "title": "Dawnquill",
      "faction": "Skyrunners",
      "type": "Ally",
      "stage": "Card",
      "src": "assets/refined/SP-003-v4.webp",
      "note": "",
      "text": "No ability.",
      "reused": null
    },
    {
      "key": "SP-004",
      "id": "SP-004",
      "title": "Prismarten",
      "faction": "Skyrunners",
      "type": "Ally",
      "stage": "Card",
      "src": "assets/refined/SP-004-v4.webp",
      "note": "",
      "text": "Shift — Once per turn, pay 1 charge: switch between Guide (0/2/2) and Striker (4/2/0). Keep damage, readiness and Route.",
      "reused": null
    },
    {
      "key": "FA-001",
      "id": "FA-001",
      "title": "Wickmender",
      "faction": "Hearthbound",
      "type": "Ally",
      "stage": "Card",
      "src": "assets/refined/FA-001-v4.webp",
      "note": "",
      "text": "Lantern Care — When played, heal another friendly character at this Route by 2.",
      "reused": null
    },
    {
      "key": "FA-002",
      "id": "FA-002",
      "title": "Cindertusk",
      "faction": "Hearthbound",
      "type": "Ally",
      "stage": "Card",
      "src": "assets/refined/FA-002-v4.webp",
      "note": "",
      "text": "Kindled Fury — While this character has damage, it has +2 Force.",
      "reused": null
    },
    {
      "key": "FA-003",
      "id": "FA-003",
      "title": "Reedrunner",
      "faction": "Skyrunners",
      "type": "Ally",
      "stage": "Card",
      "src": "assets/refined/FA-003-v4.webp",
      "note": "",
      "text": "Lightfoot — Once during your turn, pay 1 additional Charge when making a normal move to avoid exhausting. Adjacency and normal movement limits still apply.",
      "reused": null
    },
    {
      "key": "FA-004",
      "id": "FA-004",
      "title": "Glass Lynx",
      "faction": "Skyrunners",
      "type": "Ally",
      "stage": "Card",
      "src": "assets/refined/FA-004-v4.webp",
      "note": "",
      "text": "Precision — When Challenging, you choose which ready opposing character defends. If none are ready, choose any opposing character at this Route.",
      "reused": null
    },
    {
      "key": "FA-005",
      "id": "FA-005",
      "title": "Hearthshell",
      "faction": "Hearthbound",
      "type": "Ally",
      "stage": "Card",
      "src": "assets/refined/FA-005-v4.webp",
      "note": "",
      "text": "Sheltering Glow — Other friendly characters at this Route take 1 less Challenge damage, minimum 1 for positive damage. Does not stack. Works while exhausted. Does not protect itself.",
      "reused": null
    },
    {
      "key": "FA-006",
      "id": "FA-006",
      "title": "Thornrush",
      "faction": "Hearthbound",
      "type": "Ally",
      "stage": "Card",
      "src": "assets/refined/FA-006-v4.webp",
      "note": "",
      "text": "Breach — When this character defeats a ready opposing character through a Challenge, gain 1 Renown. Includes Companions. No bonus against exhausted targets.",
      "reused": null
    },
    {
      "key": "FA-007",
      "id": "FA-007",
      "title": "Veilwing",
      "faction": "Skyrunners",
      "type": "Ally",
      "stage": "Card",
      "src": "assets/refined/FA-007-v4.webp",
      "note": "",
      "text": "Slipstream — When Challenging, choose any opposing character at this Route, bypassing ready defenders. Does not bypass Explore blocking.",
      "reused": null
    },
    {
      "key": "FA-008",
      "id": "FA-008",
      "title": "Duskquill",
      "faction": "Skyrunners",
      "type": "Ally",
      "stage": "Card",
      "src": "assets/refined/FA-008-v4.webp",
      "note": "",
      "text": "Star Chart — When played, privately look at up to the top 3 cards of your deck. Put one into your hand and the others on the bottom in either order. No discard recycling for this effect.",
      "reused": null
    },
    {
      "key": "TC-001",
      "id": "TC-001",
      "title": "Cinderbolt",
      "faction": "Hearthbound",
      "type": "Tactic",
      "stage": "Card",
      "src": "assets/refined/TC-001-v4.webp",
      "note": "",
      "text": "Deal 3 damage to an opposing character at any Route. Can defeat a Companion under its normal return rule.",
      "reused": null
    },
    {
      "key": "TC-002",
      "id": "TC-002",
      "title": "Starfall",
      "faction": "Skyrunners",
      "type": "Tactic",
      "stage": "Card",
      "src": "assets/refined/TC-002-v4.webp",
      "note": "",
      "text": "Deal 3 damage to an opposing character at any Route. Can defeat a Companion under its normal return rule.",
      "reused": null
    },
    {
      "key": "TC-003",
      "id": "TC-003",
      "title": "Briar Verdict",
      "faction": "Hearthbound",
      "type": "Tactic",
      "stage": "Card",
      "src": "assets/refined/TC-003-v4.webp",
      "note": "",
      "text": "Defeat an opposing Ally at any Route, regardless of remaining Guard. Cannot target Companions.",
      "reused": null
    },
    {
      "key": "TC-004",
      "id": "TC-004",
      "title": "Sever the Thread",
      "faction": "Skyrunners",
      "type": "Tactic",
      "stage": "Card",
      "src": "assets/refined/TC-004-v4.webp",
      "note": "",
      "text": "Defeat an opposing Ally at any Route, regardless of remaining Guard. Cannot target Companions.",
      "reused": null
    },
    {
      "key": "TC-005",
      "id": "TC-005",
      "title": "Turn Back",
      "faction": "Hearthbound",
      "type": "Tactic",
      "stage": "Card",
      "src": "assets/refined/TC-005-v4.webp",
      "note": "",
      "text": "Return an opposing Ally at any Route to its owner’s hand. Its damage and temporary effects clear. Replaying costs its normal Charge. Cannot target Companions.",
      "reused": null
    },
    {
      "key": "TC-006",
      "id": "TC-006",
      "title": "Back to the Clouds",
      "faction": "Skyrunners",
      "type": "Tactic",
      "stage": "Card",
      "src": "assets/refined/TC-006-v4.webp",
      "note": "",
      "text": "Return an opposing Ally at any Route to its owner’s hand. Its damage and temporary effects clear. Replaying costs its normal Charge. Cannot target Companions.",
      "reused": null
    },
    {
      "key": "TC-007",
      "id": "TC-007",
      "title": "Wildfire Passage",
      "faction": "Hearthbound",
      "type": "Tactic",
      "stage": "Card",
      "src": "assets/refined/TC-007-v4.webp",
      "note": "",
      "text": "Defeat every opposing Ally at one Route. Friendly characters and all Companions remain. Ready opposing Companions still block Explore.",
      "reused": null
    },
    {
      "key": "TC-008",
      "id": "TC-008",
      "title": "Empty the Horizon",
      "faction": "Skyrunners",
      "type": "Tactic",
      "stage": "Card",
      "src": "assets/refined/TC-008-v4.webp",
      "note": "",
      "text": "Defeat every opposing Ally at one Route. Friendly characters and all Companions remain. Ready opposing Companions still block Explore.",
      "reused": null
    },
    {
      "key": "TC-009",
      "id": "TC-009",
      "title": "Briar Surge",
      "faction": "Hearthbound",
      "type": "Tactic",
      "stage": "Card",
      "src": "assets/refined/TC-009-v4.webp",
      "note": "",
      "text": "A friendly character gains +3 Force until the end of your turn. Does not ready it or prevent Explore.",
      "reused": null
    },
    {
      "key": "VB-001",
      "id": "VB-001",
      "title": "Nyxara",
      "faction": "Veilborn",
      "type": "Companion",
      "stage": "Base",
      "src": "assets/refined/VB-001-v2.webp",
      "note": "",
      "text": "Unseal — Once during your turn, pay 1 Charge to open the Netherway. Does not exhaust Nyxara.",
      "reused": null
    },
    {
      "key": "VB-001:Gate Sovereign:first",
      "id": "VB-001",
      "title": "Gate Sovereign",
      "faction": "Veilborn",
      "type": "Companion",
      "stage": "First evolution",
      "src": "assets/finished/VP-001.webp",
      "note": "",
      "text": "First evolution of Nyxara · Gate Sovereign",
      "stats": [
        1,
        6,
        2
      ],
      "reused": null
    },
    {
      "key": "VB-001:Gate Sovereign:ascension",
      "id": "VB-001",
      "title": "Empress of the Last Threshold",
      "faction": "Veilborn",
      "type": "Companion",
      "stage": "Ascension",
      "src": "assets/ascension-growth/vb-001-a-v3.webp",
      "note": "",
      "text": "Ascension of Nyxara · Gate Sovereign",
      "stats": [
        3,
        8,
        2
      ],
      "reused": null
    },
    {
      "key": "VB-001:Curse Oracle:first",
      "id": "VB-001",
      "title": "Curse Oracle",
      "faction": "Veilborn",
      "type": "Companion",
      "stage": "First evolution",
      "src": "assets/finished/VP-002.webp",
      "note": "",
      "text": "First evolution of Nyxara · Curse Oracle",
      "stats": [
        3,
        5,
        1
      ],
      "reused": null
    },
    {
      "key": "VB-001:Curse Oracle:ascension",
      "id": "VB-001",
      "title": "Crown of the Unspoken Hex",
      "faction": "Veilborn",
      "type": "Companion",
      "stage": "Ascension",
      "src": "assets/ascension-growth/vb-001-b-v3.webp",
      "note": "",
      "text": "Ascension of Nyxara · Curse Oracle",
      "stats": [
        5,
        7,
        1
      ],
      "reused": null
    },
    {
      "key": "VB-002",
      "id": "VB-002",
      "title": "Morrow",
      "faction": "Veilborn",
      "type": "Companion",
      "stage": "Base",
      "src": "assets/refined/VB-002-v2.webp",
      "note": "",
      "text": "Between Worlds - Once during your turn, pay 1 Charge to move from Lantern Crossing into the open Netherway without exhausting. Counts as its normal move; must be ready and not have moved normally.",
      "reused": null
    },
    {
      "key": "VB-002:Riftstalker:first",
      "id": "VB-002",
      "title": "Riftstalker",
      "faction": "Veilborn",
      "type": "Companion",
      "stage": "First evolution",
      "src": "assets/finished/VP-003.webp",
      "note": "",
      "text": "First evolution of Morrow · Riftstalker",
      "stats": [
        4,
        4,
        1
      ],
      "reused": null
    },
    {
      "key": "VB-002:Riftstalker:ascension",
      "id": "VB-002",
      "title": "Dreadclaw of the Veil",
      "faction": "Veilborn",
      "type": "Companion",
      "stage": "Ascension",
      "src": "assets/ascension-growth/vb-002-a-v3.webp",
      "note": "",
      "text": "Ascension of Morrow · Riftstalker",
      "stats": [
        6,
        6,
        1
      ],
      "reused": null
    },
    {
      "key": "VB-002:Echo Pilgrim:first",
      "id": "VB-002",
      "title": "Echo Pilgrim",
      "faction": "Veilborn",
      "type": "Companion",
      "stage": "First evolution",
      "src": "assets/finished/VP-004.webp",
      "note": "",
      "text": "First evolution of Morrow · Echo Pilgrim",
      "stats": [
        2,
        5,
        2
      ],
      "reused": null
    },
    {
      "key": "VB-002:Echo Pilgrim:ascension",
      "id": "VB-002",
      "title": "Sovereign of Lost Echoes",
      "faction": "Veilborn",
      "type": "Companion",
      "stage": "Ascension",
      "src": "assets/ascension-growth/vb-002-b-v3.webp",
      "note": "",
      "text": "Ascension of Morrow · Echo Pilgrim",
      "stats": [
        4,
        7,
        2
      ],
      "reused": null
    },
    {
      "key": "VB-003",
      "id": "VB-003",
      "title": "Riftcrown",
      "faction": "Veilborn",
      "type": "Ally",
      "stage": "Card",
      "src": "assets/refined/VB-003-v2.webp",
      "note": "",
      "text": "Realmstrider - Its normal move into the Netherway does not exhaust it. Normal movement cost, readiness and once-per-turn movement limit still apply.",
      "reused": null
    },
    {
      "key": "VB-004",
      "id": "VB-004",
      "title": "Vesperant",
      "faction": "Veilborn",
      "type": "Ally",
      "stage": "Card",
      "src": "assets/refined/VB-004-v2.webp",
      "note": "",
      "text": "Foretold Return - After another friendly character explores the Netherway, it may emerge at Vesperant's normal Route and heal 1. It stays exhausted. No effect while Vesperant is in the Netherway.",
      "reused": null
    },
    {
      "key": "VB-005",
      "id": "VB-005",
      "title": "Wispweaver",
      "faction": "Veilborn",
      "type": "Ally",
      "stage": "Card",
      "src": "assets/refined/VB-005-v2.webp",
      "note": "",
      "text": "Stitch the Veil - When played, open the Netherway if it is closed.",
      "reused": null
    },
    {
      "key": "VB-006",
      "id": "VB-006",
      "title": "Grinshade",
      "faction": "Veilborn",
      "type": "Ally",
      "stage": "Card",
      "src": "assets/refined/VB-006-v2.webp",
      "note": "",
      "text": "Uncertain Form - When chosen to defend a Challenge, you may pay 1 Charge and roll a six-sided die. On 5-6, prevent that Challenge's damage. Once per round per Grinshade. The attacker still exhausts.",
      "reused": null
    },
    {
      "key": "VB-007",
      "id": "VB-007",
      "title": "Seamling",
      "faction": "Veilborn",
      "type": "Ally",
      "stage": "Card",
      "src": "assets/refined/VB-007-v2.webp",
      "note": "",
      "text": "",
      "reused": null
    },
    {
      "key": "VB-008",
      "id": "VB-008",
      "title": "Null Harrier",
      "faction": "Veilborn",
      "type": "Ally",
      "stage": "Card",
      "src": "assets/refined/VB-008-v2.webp",
      "note": "Null Harrier's dark limbs blend into the violet ruins. A little more edge contrast would help at small size.",
      "text": "Beyond the Mask - While in the Netherway, this character has +1 Force.",
      "reused": null
    },
    {
      "key": "VB-009",
      "id": "VB-009",
      "title": "Hexmantle",
      "faction": "Veilborn",
      "type": "Ally",
      "stage": "Card",
      "src": "assets/refined/VB-009-v2.webp",
      "note": "",
      "text": "Fading Hex - When played, give an opposing character at this Route -1 Force until the start of your next turn. Hex penalties do not stack; use the strongest.",
      "reused": null
    },
    {
      "key": "VB-010",
      "id": "VB-010",
      "title": "Rift Cantor",
      "faction": "Veilborn",
      "type": "Ally",
      "stage": "Card",
      "src": "assets/refined/VB-010-v2.webp",
      "note": "",
      "text": "Voices Between - After this character explores the Netherway, draw 1 card. Once per turn.",
      "reused": null
    },
    {
      "key": "VB-011",
      "id": "VB-011",
      "title": "Unseal the Netherway",
      "faction": "Veilborn",
      "type": "Tactic",
      "stage": "Card",
      "src": "assets/refined/VB-011-v4.webp",
      "note": "",
      "text": "Open the Netherway. Play only while it is closed.",
      "reused": null
    },
    {
      "key": "VB-012",
      "id": "VB-012",
      "title": "Passage Unseen",
      "faction": "Veilborn",
      "type": "Tactic",
      "stage": "Card",
      "src": "assets/refined/VB-012-v4.webp",
      "note": "",
      "text": "Move a friendly character from Lantern Crossing into the open Netherway without exhausting or readying it. Does not consume its normal move. Rooted cannot move.",
      "reused": null
    },
    {
      "key": "VB-013",
      "id": "VB-013",
      "title": "Whispers Beyond",
      "faction": "Veilborn",
      "type": "Tactic",
      "stage": "Card",
      "src": "assets/refined/VB-013-v4.webp",
      "note": "",
      "text": "Draw 2 cards.",
      "reused": null
    },
    {
      "key": "VB-014",
      "id": "VB-014",
      "title": "Unravel",
      "faction": "Veilborn",
      "type": "Tactic",
      "stage": "Card",
      "src": "assets/refined/VB-014-v4.webp",
      "note": "",
      "text": "Return an opposing Ally at any Route to its owner's hand. It loses damage and temporary effects. Replaying costs normal Charge and resolves entry abilities. Cannot target Companions.",
      "reused": null
    },
    {
      "key": "VB-015",
      "id": "VB-015",
      "title": "Void Lance",
      "faction": "Veilborn",
      "type": "Tactic",
      "stage": "Card",
      "src": "assets/refined/VB-015-v4.webp",
      "note": "",
      "text": "Deal 3 damage to an opposing character at any Route, including the Netherway. Companions follow their normal defeat-and-return rule.",
      "reused": null
    },
    {
      "key": "VB-016",
      "id": "VB-016",
      "title": "Stolen Horizon",
      "faction": "Veilborn",
      "type": "Tactic",
      "stage": "Card",
      "src": "assets/refined/VB-016-v4.webp",
      "note": "",
      "text": "Choose an opposing non-Rooted Ally in a normal lane. Open the Netherway if closed, then move that Ally there and exhaust it. Does not extend an existing realm. Cannot target Companions.",
      "reused": null
    },
    {
      "key": "IM-001",
      "id": "IM-001",
      "title": "Rauk",
      "faction": "Ironmaw",
      "type": "Companion",
      "stage": "Base",
      "src": "assets/ironmaw-growth/rauk-base-v4.webp",
      "note": "",
      "text": "Siege Rhythm - During your turn, after another friendly character Challenges at Rauk's Route, Rauk gains +1 Force this turn. Maximum +2 per turn.",
      "reused": null
    },
    {
      "key": "IM-001:Siegebreaker:first",
      "id": "IM-001",
      "title": "Siegebreaker",
      "faction": "Ironmaw",
      "type": "Companion",
      "stage": "First evolution",
      "src": "assets/ironmaw-growth/rauk-siegebreaker-v5.webp",
      "note": "Base Rauk and the first Siegebreaker share a similar side-on boar silhouette. A more forceful stance, larger shoulders and longer tusks could separate this step further.",
      "text": "First evolution of Rauk · Siegebreaker",
      "stats": [
        4,
        6,
        1
      ],
      "reused": null
    },
    {
      "key": "IM-001:Siegebreaker:ascension",
      "id": "IM-001",
      "title": "Worldbreaker Rauk",
      "faction": "Ironmaw",
      "type": "Companion",
      "stage": "Ascension",
      "src": "assets/ascension-growth/im-001-a-v3.webp",
      "note": "",
      "text": "Ascension of Rauk · Siegebreaker",
      "stats": [
        6,
        8,
        1
      ],
      "reused": null
    },
    {
      "key": "IM-001:Pack Bastion:first",
      "id": "IM-001",
      "title": "Pack Bastion",
      "faction": "Ironmaw",
      "type": "Companion",
      "stage": "First evolution",
      "src": "assets/ironmaw-growth/rauk-pack-bastion-v5.webp",
      "note": "",
      "text": "First evolution of Rauk · Pack Bastion",
      "stats": [
        2,
        7,
        1
      ],
      "reused": null
    },
    {
      "key": "IM-001:Pack Bastion:ascension",
      "id": "IM-001",
      "title": "Ironcrown Behemoth",
      "faction": "Ironmaw",
      "type": "Companion",
      "stage": "Ascension",
      "src": "assets/ascension-growth/im-001-b-v3.webp",
      "note": "",
      "text": "Ascension of Rauk · Pack Bastion",
      "stats": [
        4,
        9,
        1
      ],
      "reused": null
    },
    {
      "key": "IM-002",
      "id": "IM-002",
      "title": "Skara",
      "faction": "Ironmaw",
      "type": "Companion",
      "stage": "Base",
      "src": "assets/ironmaw-growth/skara-base-v4.webp",
      "note": "",
      "text": "Relentless - After its own Challenge defeats an Ally, you may pay 2 Charge to ready Skara. It cannot Explore this turn. Once per turn. Eight-legged predator with oversized interlocking fangs.",
      "reused": null
    },
    {
      "key": "IM-002:Eightfold Ravager:first",
      "id": "IM-002",
      "title": "Eightfold Ravager",
      "faction": "Ironmaw",
      "type": "Companion",
      "stage": "First evolution",
      "src": "assets/ironmaw-growth/skara-ravager-v4.webp",
      "note": "",
      "text": "First evolution of Skara · Eightfold Ravager",
      "stats": [
        4,
        4,
        1
      ],
      "reused": null
    },
    {
      "key": "IM-002:Eightfold Ravager:ascension",
      "id": "IM-002",
      "title": "Eightfold Cataclysm",
      "faction": "Ironmaw",
      "type": "Companion",
      "stage": "Ascension",
      "src": "assets/ironmaw-growth/skara-cataclysm-v4.webp",
      "note": "",
      "text": "Ascension of Skara · Eightfold Ravager",
      "stats": [
        6,
        6,
        1
      ],
      "reused": null
    },
    {
      "key": "IM-002:Fang Sovereign:first",
      "id": "IM-002",
      "title": "Fang Sovereign",
      "faction": "Ironmaw",
      "type": "Companion",
      "stage": "First evolution",
      "src": "assets/ironmaw-growth/skara-sovereign-v4.webp",
      "note": "",
      "text": "First evolution of Skara · Fang Sovereign",
      "stats": [
        5,
        5,
        1
      ],
      "reused": null
    },
    {
      "key": "IM-002:Fang Sovereign:ascension",
      "id": "IM-002",
      "title": "Dreadfang Empress",
      "faction": "Ironmaw",
      "type": "Companion",
      "stage": "Ascension",
      "src": "assets/ironmaw-growth/skara-empress-v4.webp",
      "note": "",
      "text": "Ascension of Skara · Fang Sovereign",
      "stats": [
        7,
        7,
        1
      ],
      "reused": null
    },
    {
      "key": "IM-003",
      "id": "IM-003",
      "title": "Gorequill",
      "faction": "Ironmaw",
      "type": "Ally",
      "stage": "Card",
      "src": "assets/refined/IM-003-v2.webp",
      "note": "",
      "text": "Pack Momentum - During your turn, after another friendly character Challenges at its Route, this character gains +1 Force this turn. Maximum +3 per turn.",
      "reused": null
    },
    {
      "key": "IM-004",
      "id": "IM-004",
      "title": "Snapmaw",
      "faction": "Ironmaw",
      "type": "Ally",
      "stage": "Card",
      "src": "assets/refined/IM-004-v2.webp",
      "note": "",
      "text": "First Bite - Its first Challenge during the turn it enters has +1 Force for that Challenge.",
      "reused": null
    },
    {
      "key": "IM-005",
      "id": "IM-005",
      "title": "Ridgebreaker",
      "faction": "Ironmaw",
      "type": "Ally",
      "stage": "Card",
      "src": "assets/refined/IM-005-v4.webp",
      "note": "",
      "text": "Cleave - After its own Challenge defeats an Ally, deal excess damage to one other opposing Ally at that Route, chosen by the defender. No further spillover. See timing guide.",
      "reused": null
    },
    {
      "key": "IM-006",
      "id": "IM-006",
      "title": "Bloodhowl",
      "faction": "Ironmaw",
      "type": "Ally",
      "stage": "Card",
      "src": "assets/refined/IM-006-v4.webp",
      "note": "",
      "text": "Hunting Chorus - During your turn, other friendly characters at this Route gain +1 Force. Multiple Hunting Choruses and Pack Bastion do not stack.",
      "reused": null
    },
    {
      "key": "IM-007",
      "id": "IM-007",
      "title": "Shardsprinter",
      "faction": "Ironmaw",
      "type": "Ally",
      "stage": "Card",
      "src": "assets/refined/IM-007-v4.webp",
      "note": "",
      "text": "",
      "reused": null
    },
    {
      "key": "IM-008",
      "id": "IM-008",
      "title": "Craggnash",
      "faction": "Ironmaw",
      "type": "Ally",
      "stage": "Card",
      "src": "assets/refined/IM-008-v4.webp",
      "note": "",
      "text": "",
      "reused": null
    },
    {
      "key": "IM-009",
      "id": "IM-009",
      "title": "Spineknuckle",
      "faction": "Ironmaw",
      "type": "Ally",
      "stage": "Card",
      "src": "assets/refined/IM-009-v4.webp",
      "note": "",
      "text": "Grim Recovery - After its own Challenge defeats an Ally, heal this character by 1.",
      "reused": null
    },
    {
      "key": "IM-010",
      "id": "IM-010",
      "title": "Emberlash",
      "faction": "Ironmaw",
      "type": "Ally",
      "stage": "Card",
      "src": "assets/refined/IM-010-v4.webp",
      "note": "",
      "text": "Scent of Victory - During your turn, after another friendly character's Challenge defeats an Ally, this character gains +1 Force this turn. Once per turn.",
      "reused": null
    },
    {
      "key": "IM-011",
      "id": "IM-011",
      "title": "Bloodrush",
      "faction": "Ironmaw",
      "type": "Tactic",
      "stage": "Card",
      "src": "assets/refined/IM-011-v4.webp",
      "note": "",
      "text": "A friendly character gains +3 Force until the end of your turn. Does not ready it or prevent Explore.",
      "reused": null
    },
    {
      "key": "IM-012",
      "id": "IM-012",
      "title": "Run Them Down",
      "faction": "Ironmaw",
      "type": "Tactic",
      "stage": "Card",
      "src": "assets/refined/IM-012-v4.webp",
      "note": "",
      "text": "Ready an exhausted friendly Ally. It cannot Explore this turn.",
      "reused": null
    },
    {
      "key": "IM-013",
      "id": "IM-013",
      "title": "Pack Provision",
      "faction": "Ironmaw",
      "type": "Tactic",
      "stage": "Card",
      "src": "assets/refined/IM-013-v4.webp",
      "note": "",
      "text": "Draw 2 cards.",
      "reused": null
    },
    {
      "key": "IM-014",
      "id": "IM-014",
      "title": "Jawbreaker",
      "faction": "Ironmaw",
      "type": "Tactic",
      "stage": "Card",
      "src": "assets/refined/IM-014-v4.webp",
      "note": "",
      "text": "Deal 3 damage to an opposing character at any Route, including the Netherway. Companions follow their normal defeat-and-return rule.",
      "reused": null
    },
    {
      "key": "IM-015",
      "id": "IM-015",
      "title": "Shatter the Line",
      "faction": "Ironmaw",
      "type": "Tactic",
      "stage": "Card",
      "src": "assets/refined/IM-015-v4.webp",
      "note": "",
      "text": "Defeat an opposing Ally at any Route, regardless of remaining Guard. Cannot target Companions.",
      "reused": null
    },
    {
      "key": "IM-016",
      "id": "IM-016",
      "title": "Stampede",
      "faction": "Ironmaw",
      "type": "Tactic",
      "stage": "Card",
      "src": "assets/refined/IM-016-v4.webp",
      "note": "",
      "text": "Defeat every opposing Ally at one Route, including the Netherway if open. Friendly characters and all Companions remain. Surviving ready enemies still block Explore.",
      "reused": null
    },
    {
      "key": "VB-017",
      "id": "VB-017",
      "title": "Vanta",
      "faction": "Veilborn",
      "type": "Ally",
      "stage": "Card",
      "src": "assets/refined/VB-017-v4.webp",
      "note": "Vanta's dark wings share values with the ruins. A lighter area behind the wings would make its silhouette easier to recognize.",
      "text": "Riftfire Ambush - After Vanta explores the Netherway and emerges exhausted, you may deal 2 damage to one opposing Ally at his exit Route. Cannot target Companions. Normal exploration restrictions apply.",
      "reused": null
    },
    {
      "key": "HC-001",
      "id": "HC-001",
      "title": "Orryx, the Unfinished",
      "faction": "Hourglass Covenant",
      "type": "Companion",
      "stage": "Base",
      "src": "assets/expansion-draft/HC-001.webp",
      "note": "",
      "text": "Once during your turn, reduce the Charge cost of a Foretell Tactic you schedule by 1, minimum 0. Your first Explore with Orryx each turn while you have a pending Foretell gains 1 additional Renown; no extra Journey mark.",
      "reused": null
    },
    {
      "key": "HC-001:Meridian Keeper:first",
      "id": "HC-001",
      "title": "Meridian Keeper",
      "faction": "Hourglass Covenant",
      "type": "Companion",
      "stage": "First evolution",
      "src": "assets/expansion-complete/HC-P01.webp",
      "note": "",
      "text": "First evolution of Orryx, the Unfinished · Meridian Keeper",
      "stats": [
        1,
        6,
        2
      ],
      "reused": null
    },
    {
      "key": "HC-001:Meridian Keeper:ascension",
      "id": "HC-001",
      "title": "Warden of the Undying Sun",
      "faction": "Hourglass Covenant",
      "type": "Companion",
      "stage": "Ascension",
      "src": "assets/ascension-growth/hc-001-a-v3.webp",
      "note": "",
      "text": "Ascension of Orryx, the Unfinished · Meridian Keeper",
      "stats": [
        3,
        8,
        2
      ],
      "reused": null
    },
    {
      "key": "HC-001:Age of Ruin:first",
      "id": "HC-001",
      "title": "Age of Ruin",
      "faction": "Hourglass Covenant",
      "type": "Companion",
      "stage": "First evolution",
      "src": "assets/expansion-complete/HC-P02.webp",
      "note": "",
      "text": "First evolution of Orryx, the Unfinished · Age of Ruin",
      "stats": [
        4,
        4,
        1
      ],
      "reused": null
    },
    {
      "key": "HC-001:Age of Ruin:ascension",
      "id": "HC-001",
      "title": "The Last Epoch",
      "faction": "Hourglass Covenant",
      "type": "Companion",
      "stage": "Ascension",
      "src": "assets/ascension-growth/hc-001-b-v3.webp",
      "note": "",
      "text": "Ascension of Orryx, the Unfinished · Age of Ruin",
      "stats": [
        6,
        6,
        1
      ],
      "reused": null
    },
    {
      "key": "HC-002",
      "id": "HC-002",
      "title": "Saela, Keeper of Tomorrows",
      "faction": "Hourglass Covenant",
      "type": "Companion",
      "stage": "Base",
      "src": "assets/hourglass/HC-002.webp",
      "note": "",
      "text": "After your Foretell Tactic resolves, Saela gains +1 Insight for her next Explore this turn. If she is ready and has not moved normally, you may also move her to an adjacent normal Route for 0 Charge. This is her normal move and exhausts her.",
      "reused": null
    },
    {
      "key": "HC-002:Tomorrow Cartographer:first",
      "id": "HC-002",
      "title": "Tomorrow Cartographer",
      "faction": "Hourglass Covenant",
      "type": "Companion",
      "stage": "First evolution",
      "src": "assets/expansion-complete/HC-P03.webp",
      "note": "",
      "text": "First evolution of Saela, Keeper of Tomorrows · Tomorrow Cartographer",
      "stats": [
        2,
        5,
        2
      ],
      "reused": null
    },
    {
      "key": "HC-002:Tomorrow Cartographer:ascension",
      "id": "HC-002",
      "title": "Architect of Unwritten Horizons",
      "faction": "Hourglass Covenant",
      "type": "Companion",
      "stage": "Ascension",
      "src": "assets/ascension-growth/hc-002-a-v3.webp",
      "note": "",
      "text": "Ascension of Saela, Keeper of Tomorrows · Tomorrow Cartographer",
      "stats": [
        4,
        7,
        2
      ],
      "reused": null
    },
    {
      "key": "HC-002:Brass Judicator:first",
      "id": "HC-002",
      "title": "Brass Judicator",
      "faction": "Hourglass Covenant",
      "type": "Companion",
      "stage": "First evolution",
      "src": "assets/expansion-complete/HC-P04.webp",
      "note": "",
      "text": "First evolution of Saela, Keeper of Tomorrows · Brass Judicator",
      "stats": [
        4,
        5,
        1
      ],
      "reused": null
    },
    {
      "key": "HC-002:Brass Judicator:ascension",
      "id": "HC-002",
      "title": "Judgment at the End of Time",
      "faction": "Hourglass Covenant",
      "type": "Companion",
      "stage": "Ascension",
      "src": "assets/ascension-growth/hc-002-b-v3.webp",
      "note": "",
      "text": "Ascension of Saela, Keeper of Tomorrows · Brass Judicator",
      "stats": [
        6,
        7,
        1
      ],
      "reused": null
    },
    {
      "key": "HC-003",
      "id": "HC-003",
      "title": "Secondhand Sentinel",
      "faction": "Hourglass Covenant",
      "type": "Ally",
      "stage": "Card",
      "src": "assets/refined/HC-003-v4.webp",
      "note": "",
      "text": "After your Foretell Tactic resolves, this character gains +2 Force until the end of your turn, once per turn.",
      "reused": null
    },
    {
      "key": "HC-004",
      "id": "HC-004",
      "title": "Yesterday’s Echo",
      "faction": "Hourglass Covenant",
      "type": "Ally",
      "stage": "Card",
      "src": "assets/refined/HC-004-v4.webp",
      "note": "",
      "text": "When played, look at the top 2 cards of your deck and put them back in either order. Do not reshuffle for this effect.",
      "reused": null
    },
    {
      "key": "HC-005",
      "id": "HC-005",
      "title": "Dunewick",
      "faction": "Hourglass Covenant",
      "type": "Ally",
      "stage": "Card",
      "src": "assets/refined/HC-005-v4.webp",
      "note": "",
      "text": "Instinct — Relies on its printed stats.",
      "reused": null
    },
    {
      "key": "HC-006",
      "id": "HC-006",
      "title": "Pendulum Warden",
      "faction": "Hourglass Covenant",
      "type": "Ally",
      "stage": "Card",
      "src": "assets/refined/HC-006-v4.webp",
      "note": "",
      "text": "During your turn, this character has +1 Force while you have a pending Foretell Tactic.",
      "reused": null
    },
    {
      "key": "HC-007",
      "id": "HC-007",
      "title": "Copper Archivist",
      "faction": "Hourglass Covenant",
      "type": "Ally",
      "stage": "Card",
      "src": "assets/refined/HC-007-v4.webp",
      "note": "",
      "text": "Instinct — Relies on its printed stats.",
      "reused": null
    },
    {
      "key": "HC-008",
      "id": "HC-008",
      "title": "Afterimage Courser",
      "faction": "Hourglass Covenant",
      "type": "Ally",
      "stage": "Card",
      "src": "assets/refined/HC-008-v4.webp",
      "note": "",
      "text": "Instinct — Relies on its printed stats.",
      "reused": null
    },
    {
      "key": "HC-009",
      "id": "HC-009",
      "title": "Eonbreaker",
      "faction": "Hourglass Covenant",
      "type": "Ally",
      "stage": "Card",
      "src": "assets/refined/HC-009-v4.webp",
      "note": "",
      "text": "Instinct — Relies on its printed stats.",
      "reused": null
    },
    {
      "key": "HC-010",
      "id": "HC-010",
      "title": "Vesper Clock",
      "faction": "Hourglass Covenant",
      "type": "Ally",
      "stage": "Card",
      "src": "assets/refined/HC-010-v4.webp",
      "note": "",
      "text": "When played, you may change the locked Route of your pending Foretell Tactic to an adjacent normal Route. Its resolution time does not change.",
      "reused": null
    },
    {
      "key": "HC-011",
      "id": "HC-011",
      "title": "Borrowed Dawn",
      "faction": "Hourglass Covenant",
      "type": "Tactic",
      "stage": "Card",
      "src": "assets/refined/HC-011-v4.webp",
      "note": "",
      "text": "Foretell — At your next turn’s Foretell step, draw 2 cards.",
      "reused": null
    },
    {
      "key": "HC-012",
      "id": "HC-012",
      "title": "The Coming Fracture",
      "faction": "Hourglass Covenant",
      "type": "Tactic",
      "stage": "Card",
      "src": "assets/refined/HC-012-v4.webp",
      "note": "",
      "text": "Foretell — Lock a normal Route. At your next Foretell step, deal 2 damage to each opposing Ally and 3 damage to each opposing Construct there. Does not hit Companions.",
      "reused": null
    },
    {
      "key": "HC-013",
      "id": "HC-013",
      "title": "Last Moment",
      "faction": "Hourglass Covenant",
      "type": "Tactic",
      "stage": "Card",
      "src": "assets/refined/HC-013-v4.webp",
      "note": "",
      "text": "Deal 3 damage to an opposing character or Construct at any Route. Immediate; not Foretell.",
      "reused": null
    },
    {
      "key": "HC-014",
      "id": "HC-014",
      "title": "Unwritten Route",
      "faction": "Hourglass Covenant",
      "type": "Tactic",
      "stage": "Card",
      "src": "assets/refined/HC-014-v4.webp",
      "note": "",
      "text": "A friendly character gains +2 Insight until the end of your turn. Does not ready it. This is immediate.",
      "reused": null
    },
    {
      "key": "HC-015",
      "id": "HC-015",
      "title": "Deferred Shelter",
      "faction": "Hourglass Covenant",
      "type": "Tactic",
      "stage": "Card",
      "src": "assets/refined/HC-015-v4.webp",
      "note": "",
      "text": "Foretell — Choose a normal Route when scheduling. At resolution, heal one friendly character there by 3.",
      "reused": null
    },
    {
      "key": "HC-016",
      "id": "HC-016",
      "title": "Future Claim",
      "faction": "Hourglass Covenant",
      "type": "Tactic",
      "stage": "Card",
      "src": "assets/refined/HC-016-v4.webp",
      "note": "",
      "text": "Foretell — Choose a normal Route when scheduling. At resolution, if a ready friendly character and no ready opposing characters are there, gain 2 Renown. This is not an Explore and grants no Journey mark.",
      "reused": null
    },
    {
      "key": "RW-001",
      "id": "RW-001",
      "title": "Zazri, the Grand Misrule",
      "faction": "Revelwild",
      "type": "Companion",
      "stage": "Base",
      "src": "assets/expansion-draft/RW-001.webp",
      "note": "",
      "text": "Encore — After another friendly character Challenges from this Route, Zazri gains +1 Insight for its next Explore this turn, once per turn. An unused bonus expires at turn end.",
      "reused": null
    },
    {
      "key": "RW-001:Crown of Revels:first",
      "id": "RW-001",
      "title": "Crown of Revels",
      "faction": "Revelwild",
      "type": "Companion",
      "stage": "First evolution",
      "src": "assets/expansion-complete/RW-P01.webp",
      "note": "",
      "text": "First evolution of Zazri, the Grand Misrule · Crown of Revels",
      "stats": [
        2,
        5,
        2
      ],
      "reused": null
    },
    {
      "key": "RW-001:Crown of Revels:ascension",
      "id": "RW-001",
      "title": "Sovereign of the Endless Revel",
      "faction": "Revelwild",
      "type": "Companion",
      "stage": "Ascension",
      "src": "assets/ascension-growth/rw-001-a-v3.webp",
      "note": "",
      "text": "Ascension of Zazri, the Grand Misrule · Crown of Revels",
      "stats": [
        4,
        7,
        2
      ],
      "reused": null
    },
    {
      "key": "RW-001:Masquerade Tyrant:first",
      "id": "RW-001",
      "title": "Masquerade Tyrant",
      "faction": "Revelwild",
      "type": "Companion",
      "stage": "First evolution",
      "src": "assets/expansion-complete/RW-P02.webp",
      "note": "",
      "text": "First evolution of Zazri, the Grand Misrule · Masquerade Tyrant",
      "stats": [
        4,
        5,
        1
      ],
      "reused": null
    },
    {
      "key": "RW-001:Masquerade Tyrant:ascension",
      "id": "RW-001",
      "title": "The Thousandmask Dread",
      "faction": "Revelwild",
      "type": "Companion",
      "stage": "Ascension",
      "src": "assets/ascension-growth/rw-001-b-v3.webp",
      "note": "",
      "text": "Ascension of Zazri, the Grand Misrule · Masquerade Tyrant",
      "stats": [
        6,
        7,
        1
      ],
      "reused": null
    },
    {
      "key": "RW-002",
      "id": "RW-002",
      "title": "Pippa, Lanternheart",
      "faction": "Revelwild",
      "type": "Companion",
      "stage": "Base",
      "src": "assets/expansion-complete/RW-002.webp",
      "note": "",
      "text": "Encore — After another friendly character Explores here, you may heal a friendly character here by 2, once per turn.",
      "reused": null
    },
    {
      "key": "RW-002:Lantern Maestra:first",
      "id": "RW-002",
      "title": "Lantern Maestra",
      "faction": "Revelwild",
      "type": "Companion",
      "stage": "First evolution",
      "src": "assets/expansion-complete/RW-P03.webp",
      "note": "",
      "text": "First evolution of Pippa, Lanternheart · Lantern Maestra",
      "stats": [
        1,
        6,
        2
      ],
      "reused": null
    },
    {
      "key": "RW-002:Lantern Maestra:ascension",
      "id": "RW-002",
      "title": "Matriarch of a Thousand Lanterns",
      "faction": "Revelwild",
      "type": "Companion",
      "stage": "Ascension",
      "src": "assets/ascension-growth/rw-002-a-v3.webp",
      "note": "",
      "text": "Ascension of Pippa, Lanternheart · Lantern Maestra",
      "stats": [
        3,
        8,
        2
      ],
      "reused": null
    },
    {
      "key": "RW-002:Riotheart:first",
      "id": "RW-002",
      "title": "Riotheart",
      "faction": "Revelwild",
      "type": "Companion",
      "stage": "First evolution",
      "src": "assets/expansion-complete/RW-P04.webp",
      "note": "",
      "text": "First evolution of Pippa, Lanternheart · Riotheart",
      "stats": [
        3,
        5,
        1
      ],
      "reused": null
    },
    {
      "key": "RW-002:Riotheart:ascension",
      "id": "RW-002",
      "title": "Inferno of the Grand Procession",
      "faction": "Revelwild",
      "type": "Companion",
      "stage": "Ascension",
      "src": "assets/ascension-growth/rw-002-b-v3.webp",
      "note": "",
      "text": "Ascension of Pippa, Lanternheart · Riotheart",
      "stats": [
        5,
        7,
        1
      ],
      "reused": null
    },
    {
      "key": "RW-003",
      "id": "RW-003",
      "title": "Tatterstep",
      "faction": "Revelwild",
      "type": "Ally",
      "stage": "Card",
      "src": "assets/refined/RW-003-v4.webp",
      "note": "",
      "text": "Encore — After another friendly character Explores here, if Tatterstep is ready and has not moved normally this turn, you may move it to an adjacent normal Route for 0 Charge. This is its normal move and exhausts it.",
      "reused": null
    },
    {
      "key": "RW-004",
      "id": "RW-004",
      "title": "Grumbleglow",
      "faction": "Revelwild",
      "type": "Ally",
      "stage": "Card",
      "src": "assets/refined/RW-004-v4.webp",
      "note": "",
      "text": "Encore — After another friendly character Challenges from this Route, Grumbleglow gains +2 Force until turn end, once per turn.",
      "reused": null
    },
    {
      "key": "RW-005",
      "id": "RW-005",
      "title": "Paintspark",
      "faction": "Revelwild",
      "type": "Ally",
      "stage": "Card",
      "src": "assets/refined/RW-005-v4.webp",
      "note": "",
      "text": "Instinct — Relies on its printed stats.",
      "reused": null
    },
    {
      "key": "RW-006",
      "id": "RW-006",
      "title": "Ribbon Duelist",
      "faction": "Revelwild",
      "type": "Ally",
      "stage": "Card",
      "src": "assets/refined/RW-006-v4.webp",
      "note": "",
      "text": "Encore — After another friendly character Explores here, this character gains +1 Force until turn end, once per turn.",
      "reused": null
    },
    {
      "key": "RW-007",
      "id": "RW-007",
      "title": "Maskbearer",
      "faction": "Revelwild",
      "type": "Ally",
      "stage": "Card",
      "src": "assets/refined/RW-007-v4.webp",
      "note": "",
      "text": "Encore — After another friendly character Challenges from this Route, heal Maskbearer by 1, once per turn.",
      "reused": null
    },
    {
      "key": "RW-008",
      "id": "RW-008",
      "title": "Parade Weaver",
      "faction": "Revelwild",
      "type": "Ally",
      "stage": "Card",
      "src": "assets/refined/RW-008-v4.webp",
      "note": "",
      "text": "Instinct — Relies on its printed stats.",
      "reused": null
    },
    {
      "key": "RW-009",
      "id": "RW-009",
      "title": "Crescendo Hulk",
      "faction": "Revelwild",
      "type": "Ally",
      "stage": "Card",
      "src": "assets/refined/RW-009-v4.webp",
      "note": "",
      "text": "Encore — After another friendly character Explores here, this character gains +2 Force until turn end, once per turn.",
      "reused": null
    },
    {
      "key": "RW-010",
      "id": "RW-010",
      "title": "Backstage Sprite",
      "faction": "Revelwild",
      "type": "Ally",
      "stage": "Card",
      "src": "assets/refined/RW-010-v4.webp",
      "note": "",
      "text": "Instinct — Relies on its printed stats.",
      "reused": null
    },
    {
      "key": "RW-011",
      "id": "RW-011",
      "title": "Steal the Spotlight",
      "faction": "Revelwild",
      "type": "Tactic",
      "stage": "Card",
      "src": "assets/refined/RW-011-v4.webp",
      "note": "",
      "text": "A friendly Ally gains +3 Force until turn end. If another friendly character already Challenged from that Ally’s current Route this turn, draw 1 card. Does not ready the Ally or prevent Explore.",
      "reused": null
    },
    {
      "key": "RW-012",
      "id": "RW-012",
      "title": "Curtain Call",
      "faction": "Revelwild",
      "type": "Tactic",
      "stage": "Card",
      "src": "assets/refined/RW-012-v4.webp",
      "note": "",
      "text": "Return one of your Allies to your hand, clearing its damage and temporary effects, then draw 2 cards. Cannot target Companions. Replaying the Ally costs its normal Charge.",
      "reused": null
    },
    {
      "key": "RW-013",
      "id": "RW-013",
      "title": "Crowd Favor",
      "faction": "Revelwild",
      "type": "Tactic",
      "stage": "Card",
      "src": "assets/refined/RW-013-v4.webp",
      "note": "",
      "text": "Draw 2 cards.",
      "reused": null
    },
    {
      "key": "RW-014",
      "id": "RW-014",
      "title": "Painted Rebuke",
      "faction": "Revelwild",
      "type": "Tactic",
      "stage": "Card",
      "src": "assets/refined/RW-014-v4.webp",
      "note": "",
      "text": "Deal 3 damage to an opposing character at any Route.",
      "reused": null
    },
    {
      "key": "RW-015",
      "id": "RW-015",
      "title": "Standing Ovation",
      "faction": "Revelwild",
      "type": "Tactic",
      "stage": "Card",
      "src": "assets/refined/RW-015-v4.webp",
      "note": "",
      "text": "Choose a normal Route and a friendly character that already Challenged from there this turn. The next friendly Explore there this turn gains 2 additional Renown if its explorer is different from that chosen attacker. No additional Journey mark.",
      "reused": null
    },
    {
      "key": "RW-016",
      "id": "RW-016",
      "title": "Empty Seats",
      "faction": "Revelwild",
      "type": "Tactic",
      "stage": "Card",
      "src": "assets/refined/RW-016-v4.webp",
      "note": "",
      "text": "Return an opposing Ally at a normal Route to its owner’s hand, clearing its state. You may then deal 1 damage to a different opposing Ally still at that Route. Cannot target Companions.",
      "reused": null
    },
    {
      "key": "PF-001",
      "id": "PF-001",
      "title": "Vitra, the Shaping Heart",
      "faction": "Prismforge",
      "type": "Companion",
      "stage": "Base",
      "src": "assets/expansion-draft/PF-001.webp",
      "note": "The pale crystal figure competes with a detailed teal background. Stronger edge contrast or a quieter area behind Vitra would help at hand-card size.",
      "text": "Once during your turn, reduce the Charge cost of a Construct you play by 1, minimum 1. Route-slot restrictions still apply.",
      "reused": null
    },
    {
      "key": "PF-001:Spire Architect:first",
      "id": "PF-001",
      "title": "Spire Architect",
      "faction": "Prismforge",
      "type": "Companion",
      "stage": "First evolution",
      "src": "assets/expansion-complete/PF-P01.webp",
      "note": "The abstract crystal-ring silhouette can read more like an object than a mature Vitra. Clarify the head/limbs while retaining the architectural identity.",
      "text": "First evolution of Vitra, the Shaping Heart · Spire Architect",
      "stats": [
        1,
        6,
        2
      ],
      "reused": null
    },
    {
      "key": "PF-001:Spire Architect:ascension",
      "id": "PF-001",
      "title": "Architect of the Prismatic Crown",
      "faction": "Prismforge",
      "type": "Companion",
      "stage": "Ascension",
      "src": "assets/ascension-growth/pf-001-a-v3.webp",
      "note": "",
      "text": "Ascension of Vitra, the Shaping Heart · Spire Architect",
      "stats": [
        3,
        8,
        2
      ],
      "reused": null
    },
    {
      "key": "PF-001:Shard Empress:first",
      "id": "PF-001",
      "title": "Shard Empress",
      "faction": "Prismforge",
      "type": "Companion",
      "stage": "First evolution",
      "src": "assets/expansion-complete/PF-P02.webp",
      "note": "",
      "text": "First evolution of Vitra, the Shaping Heart · Shard Empress",
      "stats": [
        3,
        5,
        1
      ],
      "reused": null
    },
    {
      "key": "PF-001:Shard Empress:ascension",
      "id": "PF-001",
      "title": "Empress of the Shardstorm",
      "faction": "Prismforge",
      "type": "Companion",
      "stage": "Ascension",
      "src": "assets/ascension-growth/pf-001-b-v3.webp",
      "note": "",
      "text": "Ascension of Vitra, the Shaping Heart · Shard Empress",
      "stats": [
        5,
        7,
        1
      ],
      "reused": null
    },
    {
      "key": "PF-002",
      "id": "PF-002",
      "title": "Keldrax, Walking Citadel",
      "faction": "Prismforge",
      "type": "Companion",
      "stage": "Base",
      "src": "assets/expansion-complete/PF-002.webp",
      "note": "",
      "text": "Foundation — Your first Construct this match costs 1 less Charge, minimum 1. Keldrax has +2 Force while at a normal Route containing your Construct.",
      "reused": null
    },
    {
      "key": "PF-002:Citadel Walker:first",
      "id": "PF-002",
      "title": "Citadel Walker",
      "faction": "Prismforge",
      "type": "Companion",
      "stage": "First evolution",
      "src": "assets/expansion-complete/PF-P03.webp",
      "note": "",
      "text": "First evolution of Keldrax, Walking Citadel · Citadel Walker",
      "stats": [
        3,
        7,
        1
      ],
      "reused": null
    },
    {
      "key": "PF-002:Citadel Walker:ascension",
      "id": "PF-002",
      "title": "The Adamant Citadel",
      "faction": "Prismforge",
      "type": "Companion",
      "stage": "Ascension",
      "src": "assets/ascension-growth/pf-002-a-v3.webp",
      "note": "",
      "text": "Ascension of Keldrax, Walking Citadel · Citadel Walker",
      "stats": [
        5,
        9,
        1
      ],
      "reused": null
    },
    {
      "key": "PF-002:Relay Titan:first",
      "id": "PF-002",
      "title": "Relay Titan",
      "faction": "Prismforge",
      "type": "Companion",
      "stage": "First evolution",
      "src": "assets/expansion-complete/PF-P04.webp",
      "note": "",
      "text": "First evolution of Keldrax, Walking Citadel · Relay Titan",
      "stats": [
        2,
        5,
        2
      ],
      "reused": null
    },
    {
      "key": "PF-002:Relay Titan:ascension",
      "id": "PF-002",
      "title": "Heart of the Infinite Relay",
      "faction": "Prismforge",
      "type": "Companion",
      "stage": "Ascension",
      "src": "assets/ascension-growth/pf-002-b-v3.webp",
      "note": "",
      "text": "Ascension of Keldrax, Walking Citadel · Relay Titan",
      "stats": [
        4,
        7,
        2
      ],
      "reused": null
    },
    {
      "key": "PF-003",
      "id": "PF-003",
      "title": "Shardling Surveyor",
      "faction": "Prismforge",
      "type": "Ally",
      "stage": "Card",
      "src": "assets/refined/PF-003-v2.webp",
      "note": "",
      "text": "When played, look at the top 5 cards of your deck. You may reveal one Construct and put it into your hand. Put the rest on the bottom in any order. Do not reshuffle for this effect.",
      "reused": null
    },
    {
      "key": "PF-004",
      "id": "PF-004",
      "title": "Facetbreaker",
      "faction": "Prismforge",
      "type": "Ally",
      "stage": "Card",
      "src": "assets/refined/PF-004-v2.webp",
      "note": "",
      "text": "This character deals +2 Challenge damage when attacking a Construct. During your turn, this character has +1 Force while at a Route containing your Construct.",
      "reused": null
    },
    {
      "key": "PF-005",
      "id": "PF-005",
      "title": "Chiselkin",
      "faction": "Prismforge",
      "type": "Ally",
      "stage": "Card",
      "src": "assets/refined/PF-005-v2.webp",
      "note": "",
      "text": "Instinct — Relies on its printed stats.",
      "reused": null
    },
    {
      "key": "PF-006",
      "id": "PF-006",
      "title": "Chromewarden",
      "faction": "Prismforge",
      "type": "Ally",
      "stage": "Card",
      "src": "assets/refined/PF-006-v2.webp",
      "note": "Chromewarden's silver/teal body blends into the crystalline landscape at small size. More subject/background separation would help.",
      "text": "During your turn, this character has +1 Force while at a Route containing your Construct.",
      "reused": null
    },
    {
      "key": "PF-007",
      "id": "PF-007",
      "title": "Refraction Mason",
      "faction": "Prismforge",
      "type": "Ally",
      "stage": "Card",
      "src": "assets/refined/PF-007-v2.webp",
      "note": "Refraction Mason's thin limbs and tools compete with the busy crystal scene. A quieter backdrop would make its working silhouette clearer.",
      "text": "Instinct — Relies on its printed stats.",
      "reused": null
    },
    {
      "key": "PF-008",
      "id": "PF-008",
      "title": "Lattice Vanguard",
      "faction": "Prismforge",
      "type": "Ally",
      "stage": "Card",
      "src": "assets/refined/PF-008-v2.webp",
      "note": "",
      "text": "Instinct — Relies on its printed stats.",
      "reused": null
    },
    {
      "key": "PF-009",
      "id": "PF-009",
      "title": "Shard Courier",
      "faction": "Prismforge",
      "type": "Ally",
      "stage": "Card",
      "src": "assets/refined/PF-009-v2.webp",
      "note": "",
      "text": "When played, you may relocate one of your Constructs to an adjacent normal Route with an empty friendly Construct slot. Keep its damage.",
      "reused": null
    },
    {
      "key": "PF-010",
      "id": "PF-010",
      "title": "Core Tender",
      "faction": "Prismforge",
      "type": "Ally",
      "stage": "Card",
      "src": "assets/refined/PF-010-v2.webp",
      "note": "",
      "text": "When played, heal one of your Constructs at this Route by 2.",
      "reused": null
    },
    {
      "key": "PF-011",
      "id": "PF-011",
      "title": "Emergency Assembly",
      "faction": "Prismforge",
      "type": "Tactic",
      "stage": "Card",
      "src": "assets/refined/PF-011-v4.webp",
      "note": "",
      "text": "Relocate one of your Constructs to an adjacent normal Route with an empty friendly Construct slot, then heal it by 2.",
      "reused": null
    },
    {
      "key": "PF-012",
      "id": "PF-012",
      "title": "Prismatic Lance",
      "faction": "Prismforge",
      "type": "Tactic",
      "stage": "Card",
      "src": "assets/refined/PF-012-v4.webp",
      "note": "",
      "text": "Deal 3 damage to an opposing character or Construct at any Route.",
      "reused": null
    },
    {
      "key": "PF-013",
      "id": "PF-013",
      "title": "Pattern Recall",
      "faction": "Prismforge",
      "type": "Tactic",
      "stage": "Card",
      "src": "assets/refined/PF-013-v4.webp",
      "note": "",
      "text": "Draw 2 cards.",
      "reused": null
    },
    {
      "key": "PF-014",
      "id": "PF-014",
      "title": "Facet Surge",
      "faction": "Prismforge",
      "type": "Tactic",
      "stage": "Card",
      "src": "assets/refined/PF-014-v4.webp",
      "note": "",
      "text": "A friendly character gains +3 Force until the end of your turn. Does not ready it or prevent Explore.",
      "reused": null
    },
    {
      "key": "PF-015",
      "id": "PF-015",
      "title": "Salvage Order",
      "faction": "Prismforge",
      "type": "Tactic",
      "stage": "Card",
      "src": "assets/refined/PF-015-v4.webp",
      "note": "",
      "text": "Return one of your damaged Constructs to your hand, clearing its damage, then draw 1 card. It must be replayed for its normal cost.",
      "reused": null
    },
    {
      "key": "PF-016",
      "id": "PF-016",
      "title": "Focused Refraction",
      "faction": "Prismforge",
      "type": "Tactic",
      "stage": "Card",
      "src": "assets/refined/PF-016-v4.webp",
      "note": "",
      "text": "Deal 4 damage to an opposing Ally at a normal Route containing your Construct. Cannot target Companions or Constructs.",
      "reused": null
    },
    {
      "key": "PF-017",
      "id": "PF-017",
      "title": "Resonance Spire",
      "faction": "Prismforge",
      "type": "Construct",
      "stage": "Card",
      "src": "assets/refined/PF-017-v4.webp",
      "note": "",
      "text": "Guard 3. The first friendly character to Explore here during your turn gains 1 additional Renown. This bonus is not an additional Explore or Journey mark. Blocks opposing Explore at this Route until destroyed or relocated.",
      "reused": null
    },
    {
      "key": "PF-018",
      "id": "PF-018",
      "title": "Relay Prism",
      "faction": "Prismforge",
      "type": "Construct",
      "stage": "Card",
      "src": "assets/refined/PF-018-v4.webp",
      "note": "",
      "text": "Guard 3. Once during your turn, reduce the Charge cost of a friendly character’s normal move from this Route by 1, minimum 0. It still exhausts unless its own ability says otherwise. Blocks opposing Explore at this Route until destroyed or relocated.",
      "reused": null
    },
    {
      "key": "PF-019",
      "id": "PF-019",
      "title": "Facet Bulwark",
      "faction": "Prismforge",
      "type": "Construct",
      "stage": "Card",
      "src": "assets/refined/PF-019-v4.webp",
      "note": "",
      "text": "Guard 4. Once per numbered round, reduce the first positive Challenge damage dealt to a friendly Ally here by 1, minimum 1. Does not combine with another Challenge-damage reduction; use the largest reduction. Does not protect Companions or Constructs. Blocks opposing Explore at this Route until destroyed or relocated.",
      "reused": null
    },
    {
      "key": "VA003",
      "id": "VA003",
      "title": "Spark Surveyor",
      "faction": "Vigilant Array",
      "type": "Ally",
      "stage": "Card",
      "src": "assets/refined/VA003-v4.webp",
      "note": "",
      "text": "Instinct - Relies on its printed stats.",
      "reused": null
    },
    {
      "key": "VA004",
      "id": "VA004",
      "title": "Latchguard",
      "faction": "Vigilant Array",
      "type": "Ally",
      "stage": "Card",
      "src": "assets/refined/VA004-v4.webp",
      "note": "",
      "text": "When Latchguard defends a Challenge, prevent 1 damage that Challenge would deal to it.",
      "reused": null
    },
    {
      "key": "VA005",
      "id": "VA005",
      "title": "Voltstrider",
      "faction": "Vigilant Array",
      "type": "Ally",
      "stage": "Card",
      "src": "assets/refined/VA005-v4.webp",
      "note": "",
      "text": "Instinct - Relies on its printed stats.",
      "reused": null
    },
    {
      "key": "VA006",
      "id": "VA006",
      "title": "Signal Wisp",
      "faction": "Vigilant Array",
      "type": "Ally",
      "stage": "Card",
      "src": "assets/refined/VA006-v4.webp",
      "note": "",
      "text": "Instinct - Relies on its printed stats.",
      "reused": null
    },
    {
      "key": "VA007",
      "id": "VA007",
      "title": "Coilblade",
      "faction": "Vigilant Array",
      "type": "Ally",
      "stage": "Card",
      "src": "assets/refined/VA007-v4.webp",
      "note": "",
      "text": "On your turn, Coilblade has +1 Force while you have at least 2 Charge remaining.",
      "reused": null
    },
    {
      "key": "VA008",
      "id": "VA008",
      "title": "Mirror Marshal",
      "faction": "Vigilant Array",
      "type": "Ally",
      "stage": "Card",
      "src": "assets/refined/VA008-v4.webp",
      "note": "",
      "text": "The first time each opponent turn you play a Reaction, prevent the next 1 damage that turn to Mirror Marshal. Multiple Marshals do not share shields.",
      "reused": null
    },
    {
      "key": "VA009",
      "id": "VA009",
      "title": "Orison, Last Directive",
      "faction": "Vigilant Array",
      "type": "Ally",
      "stage": "Card",
      "src": "assets/refined/VA009-v4.webp",
      "note": "",
      "text": "Once on your turn: pay 1 Charge to move another friendly character in Orison's Route to an adjacent standard Route. That character exhausts.",
      "reused": null
    },
    {
      "key": "VA010",
      "id": "VA010",
      "title": "Emergency Plating",
      "faction": "Vigilant Array",
      "type": "Tactic",
      "stage": "Card",
      "src": "assets/refined/VA010-v4.webp",
      "note": "",
      "text": "On your turn: heal a friendly character by 3. Reaction: After the defender of an enemy Challenge is locked, before damage: prevent 2 damage that Challenge would deal to that defender. It must be your character.",
      "reused": null
    },
    {
      "key": "VA011",
      "id": "VA011",
      "title": "Feedback Spike",
      "faction": "Vigilant Array",
      "type": "Tactic",
      "stage": "Card",
      "src": "assets/refined/VA011-v4.webp",
      "note": "",
      "text": "On your turn: deal 2 damage to an exhausted enemy character in a standard Route. Reaction: After an enemy Challenge finishes dealing damage and resolving defeats: deal 2 damage to its surviving attacker. Legal even if your defender was defeated.",
      "reused": null
    },
    {
      "key": "VA012",
      "id": "VA012",
      "title": "Intercept Protocol",
      "faction": "Vigilant Array",
      "type": "Tactic",
      "stage": "Card",
      "src": "assets/refined/VA012-v4.webp",
      "note": "",
      "text": "On your turn: move a friendly character to an adjacent standard Route without changing its readiness. Respect Rooted. Reaction: After an enemy Challenge locks one of your characters as defender, before damage: move a ready friendly character from an adjacent standard Route into this Route as the new defender. Exhaust it; its exhaustion does not invalidate this interception. The original defender remains in place.",
      "reused": null
    },
    {
      "key": "VA013",
      "id": "VA013",
      "title": "Target Lock",
      "faction": "Vigilant Array",
      "type": "Tactic",
      "stage": "Card",
      "src": "assets/refined/VA013-v4.webp",
      "note": "",
      "text": "On your turn: deal 3 damage to an enemy character in a standard Route. Reaction: After an enemy character completes movement into a standard Route and all movement consequences resolve: deal 2 damage to it if it remains in play in that Route.",
      "reused": null
    },
    {
      "key": "VA014",
      "id": "VA014",
      "title": "Containment Pulse",
      "faction": "Vigilant Array",
      "type": "Tactic",
      "stage": "Card",
      "src": "assets/refined/VA014-v4.webp",
      "note": "",
      "text": "On your turn: exhaust a ready enemy character in a standard Route. Reaction: After an enemy character completes Explore: exhaust another ready enemy character in that same standard Route. The completed Explore keeps all Renown and Journey.",
      "reused": null
    },
    {
      "key": "EW003",
      "id": "EW003",
      "title": "Mossback Forager",
      "faction": "Elderwake",
      "type": "Ally",
      "stage": "Card",
      "src": "assets/refined/EW003-v4.webp",
      "note": "",
      "text": "Instinct - Relies on its printed stats.",
      "reused": null
    },
    {
      "key": "EW004",
      "id": "EW004",
      "title": "Cragling",
      "faction": "Elderwake",
      "type": "Ally",
      "stage": "Card",
      "src": "assets/refined/EW004-v4.webp",
      "note": "",
      "text": "Instinct - Relies on its printed stats.",
      "reused": null
    },
    {
      "key": "EW005",
      "id": "EW005",
      "title": "Tideglass Pilgrim",
      "faction": "Elderwake",
      "type": "Ally",
      "stage": "Card",
      "src": "assets/refined/EW005-v4.webp",
      "note": "",
      "text": "Instinct - Relies on its printed stats.",
      "reused": null
    },
    {
      "key": "EW006",
      "id": "EW006",
      "title": "Basalt Hewer",
      "faction": "Elderwake",
      "type": "Ally",
      "stage": "Card",
      "src": "assets/refined/EW006-v4.webp",
      "note": "",
      "text": "Awaken 1: deal 2 damage to an enemy character in this Route.",
      "reused": null
    },
    {
      "key": "EW007",
      "id": "EW007",
      "title": "Reef-Crowned Ogre",
      "faction": "Elderwake",
      "type": "Ally",
      "stage": "Card",
      "src": "assets/refined/EW007-v4.webp",
      "note": "",
      "text": "Awaken 1: remove up to 4 damage from another friendly character in this Route.",
      "reused": null
    },
    {
      "key": "EW008",
      "id": "EW008",
      "title": "Hollowpeak Ancient",
      "faction": "Elderwake",
      "type": "Ally",
      "stage": "Card",
      "src": "assets/refined/EW008-v4.webp",
      "note": "",
      "text": "Awaken 2: deal 2 damage to each other character in this Route, friendly and enemy. Resolve the damage simultaneously, then defeats.",
      "reused": null
    },
    {
      "key": "EW009",
      "id": "EW009",
      "title": "Oruun, the Walking Horizon",
      "faction": "Elderwake",
      "type": "Ally",
      "stage": "Card",
      "src": "assets/refined/EW009-v4.webp",
      "note": "",
      "text": "Awaken 2: choose one - deal 4 damage to an enemy character in this Route; or Oruun gains +2 Insight until end of this turn. Choose the mode when preparing; damage target at resolution.",
      "reused": null
    },
    {
      "key": "EW010",
      "id": "EW010",
      "title": "Deep Nourishment",
      "faction": "Elderwake",
      "type": "Tactic",
      "stage": "Card",
      "src": "assets/refined/EW010-v4.webp",
      "note": "",
      "text": "On your turn: remove up to 4 damage from a friendly character. It must have at least 1 damage.",
      "reused": null
    },
    {
      "key": "EW011",
      "id": "EW011",
      "title": "Faultline Strike",
      "faction": "Elderwake",
      "type": "Tactic",
      "stage": "Card",
      "src": "assets/refined/EW011-v4.webp",
      "note": "",
      "text": "On your turn: deal 3 damage to an exhausted enemy character in a standard Route.",
      "reused": null
    },
    {
      "key": "EW012",
      "id": "EW012",
      "title": "Shelter of Ages",
      "faction": "Elderwake",
      "type": "Tactic",
      "stage": "Card",
      "src": "assets/refined/EW012-v4.webp",
      "note": "",
      "text": "On your turn: choose a friendly character with a pending Awakening. Prevent the next 2 damage to it before your next turn begins. This does not prevent movement or removal.",
      "reused": null
    },
    {
      "key": "EW013",
      "id": "EW013",
      "title": "Seismic Roar",
      "faction": "Elderwake",
      "type": "Tactic",
      "stage": "Card",
      "src": "assets/refined/EW013-v4.webp",
      "note": "",
      "text": "On your turn: deal 2 damage to each character in a chosen standard Route, including yours. Damage is simultaneous; resolve defeats before another action.",
      "reused": null
    },
    {
      "key": "EW014",
      "id": "EW014",
      "title": "Rising Deep",
      "faction": "Elderwake",
      "type": "Tactic",
      "stage": "Card",
      "src": "assets/refined/EW014-v4.webp",
      "note": "",
      "text": "On your turn: move a friendly character from its current standard Route to an adjacent standard Route. Exhaust it. If it is ready and has Awaken, you may instead prepare its printed Awakening for 1 less Charge, minimum 0, paying that cost in addition to this Tactic. No movement in that mode; exhaust normally.",
      "reused": null
    },
    {
      "key": "VA001",
      "id": "VA001",
      "title": "Aegrix, Keeper of the Last Gate",
      "faction": "Vigilant Array",
      "type": "Companion",
      "stage": "Base",
      "src": "assets/nine-factions/VA001-base-v1.webp",
      "note": "",
      "text": "First Reaction each opponent turn: heal Aegrix by 1 after resolution if it remains in play and is not recovering.",
      "reused": null
    },
    {
      "key": "VA001:Bastion:first",
      "id": "VA001",
      "title": "Bastion",
      "faction": "Vigilant Array",
      "type": "Companion",
      "stage": "First evolution",
      "src": "assets/nine-factions/bastion-v1.webp",
      "note": "",
      "text": "First evolution of Aegrix, Keeper of the Last Gate · Bastion",
      "stats": [
        1,
        7,
        2
      ],
      "reused": null
    },
    {
      "key": "VA001:Bastion:ascension",
      "id": "VA001",
      "title": "Aegrix, the Unyielding Gate",
      "faction": "Vigilant Array",
      "type": "Companion",
      "stage": "Ascension",
      "src": "assets/ascension-growth/va001-a-v3.webp",
      "note": "",
      "text": "Ascension of Aegrix, Keeper of the Last Gate · Bastion",
      "stats": [
        3,
        9,
        2
      ],
      "reused": null
    },
    {
      "key": "VA001:Reprisal:first",
      "id": "VA001",
      "title": "Reprisal",
      "faction": "Vigilant Array",
      "type": "Companion",
      "stage": "First evolution",
      "src": "assets/nine-factions/reprisal-v1.webp",
      "note": "",
      "text": "First evolution of Aegrix, Keeper of the Last Gate · Reprisal",
      "stats": [
        3,
        5,
        2
      ],
      "reused": null
    },
    {
      "key": "VA001:Reprisal:ascension",
      "id": "VA001",
      "title": "Aegrix, Engine of Retribution",
      "faction": "Vigilant Array",
      "type": "Companion",
      "stage": "Ascension",
      "src": "assets/ascension-growth/va001-b-v3.webp",
      "note": "",
      "text": "Ascension of Aegrix, Keeper of the Last Gate · Reprisal",
      "stats": [
        5,
        7,
        2
      ],
      "reused": null
    },
    {
      "key": "VA002",
      "id": "VA002",
      "title": "Syntra, the Questioning Signal",
      "faction": "Vigilant Array",
      "type": "Companion",
      "stage": "Base",
      "src": "assets/nine-factions/VA002-base-v1.webp",
      "note": "",
      "text": "First Reaction each opponent turn with printed cost 2+: draw 1 after resolution if not recovering.",
      "reused": null
    },
    {
      "key": "VA002:Oracle:first",
      "id": "VA002",
      "title": "Oracle",
      "faction": "Vigilant Array",
      "type": "Companion",
      "stage": "First evolution",
      "src": "assets/nine-factions/oracle-v1.webp",
      "note": "",
      "text": "First evolution of Syntra, the Questioning Signal · Oracle",
      "stats": [
        2,
        6,
        2
      ],
      "reused": null
    },
    {
      "key": "VA002:Oracle:ascension",
      "id": "VA002",
      "title": "Syntra, the Awakened Oracle",
      "faction": "Vigilant Array",
      "type": "Companion",
      "stage": "Ascension",
      "src": "assets/ascension-growth/va002-a-v3.webp",
      "note": "",
      "text": "Ascension of Syntra, the Questioning Signal · Oracle",
      "stats": [
        4,
        8,
        2
      ],
      "reused": null
    },
    {
      "key": "VA002:Pursuit:first",
      "id": "VA002",
      "title": "Pursuit",
      "faction": "Vigilant Array",
      "type": "Companion",
      "stage": "First evolution",
      "src": "assets/nine-factions/pursuit-v1.webp",
      "note": "",
      "text": "First evolution of Syntra, the Questioning Signal · Pursuit",
      "stats": [
        3,
        5,
        2
      ],
      "reused": null
    },
    {
      "key": "VA002:Pursuit:ascension",
      "id": "VA002",
      "title": "Syntra, the Inescapable Signal",
      "faction": "Vigilant Array",
      "type": "Companion",
      "stage": "Ascension",
      "src": "assets/ascension-growth/va002-b-v3.webp",
      "note": "",
      "text": "Ascension of Syntra, the Questioning Signal · Pursuit",
      "stats": [
        5,
        7,
        2
      ],
      "reused": null
    },
    {
      "key": "EW001",
      "id": "EW001",
      "title": "Tharuun, the Buried Dawn",
      "faction": "Elderwake",
      "type": "Companion",
      "stage": "Base",
      "src": "assets/nine-factions/EW001-base-v1.webp",
      "note": "",
      "text": "Awaken 2: deal 3 damage to an enemy character in this Route. Base form: +1 Insight while you control at least two Allies.",
      "reused": null
    },
    {
      "key": "EW001:Worldwarden:first",
      "id": "EW001",
      "title": "Worldwarden",
      "faction": "Elderwake",
      "type": "Companion",
      "stage": "First evolution",
      "src": "assets/nine-factions/worldwarden-v1.webp",
      "note": "",
      "text": "First evolution of Tharuun, the Buried Dawn · Worldwarden",
      "stats": [
        2,
        7,
        2
      ],
      "reused": null
    },
    {
      "key": "EW001:Worldwarden:ascension",
      "id": "EW001",
      "title": "Tharuun, the Living Continent",
      "faction": "Elderwake",
      "type": "Companion",
      "stage": "Ascension",
      "src": "assets/ascension-growth/ew001-a-v3.webp",
      "note": "",
      "text": "Ascension of Tharuun, the Buried Dawn · Worldwarden",
      "stats": [
        4,
        9,
        2
      ],
      "reused": null
    },
    {
      "key": "EW001:Riftbreaker:first",
      "id": "EW001",
      "title": "Riftbreaker",
      "faction": "Elderwake",
      "type": "Companion",
      "stage": "First evolution",
      "src": "assets/nine-factions/riftbreaker-v1.webp",
      "note": "",
      "text": "First evolution of Tharuun, the Buried Dawn · Riftbreaker",
      "stats": [
        4,
        5,
        2
      ],
      "reused": null
    },
    {
      "key": "EW001:Riftbreaker:ascension",
      "id": "EW001",
      "title": "Tharuun, Fist of the First Dawn",
      "faction": "Elderwake",
      "type": "Companion",
      "stage": "Ascension",
      "src": "assets/ascension-growth/ew001-b-v3.webp",
      "note": "",
      "text": "Ascension of Tharuun, the Buried Dawn · Riftbreaker",
      "stats": [
        6,
        7,
        2
      ],
      "reused": null
    },
    {
      "key": "EW002",
      "id": "EW002",
      "title": "Nhalora, the Deep Remembering",
      "faction": "Elderwake",
      "type": "Companion",
      "stage": "Base",
      "src": "assets/nine-factions/EW002-base-v1.webp",
      "note": "",
      "text": "Awaken 2: move another friendly character here to an adjacent standard Route without changing readiness. Base form: +1 Insight while you control at least two Allies.",
      "reused": null
    },
    {
      "key": "EW002:Tidekeeper:first",
      "id": "EW002",
      "title": "Tidekeeper",
      "faction": "Elderwake",
      "type": "Companion",
      "stage": "First evolution",
      "src": "assets/nine-factions/tidekeeper-v1.webp",
      "note": "Nhalora's five forms remain close in silhouette. A broader guardian body or stronger protective fins would help distinguish the Tidekeeper path.",
      "text": "First evolution of Nhalora, the Deep Remembering · Tidekeeper",
      "stats": [
        1,
        7,
        2
      ],
      "reused": null
    },
    {
      "key": "EW002:Tidekeeper:ascension",
      "id": "EW002",
      "title": "Nhalora, Sovereign of the Sheltering Deep",
      "faction": "Elderwake",
      "type": "Companion",
      "stage": "Ascension",
      "src": "assets/ascension-growth/ew002-a-v3.webp",
      "note": "The mature rendering is stronger, but the guardian path could separate further through bulk, protective fins or a more grounded guarding pose.",
      "text": "Ascension of Nhalora, the Deep Remembering · Tidekeeper",
      "stats": [
        3,
        9,
        2
      ],
      "reused": null
    },
    {
      "key": "EW002:Starcurrent:first",
      "id": "EW002",
      "title": "Starcurrent",
      "faction": "Elderwake",
      "type": "Companion",
      "stage": "First evolution",
      "src": "assets/nine-factions/starcurrent-v1.webp",
      "note": "The long, slender silhouette stays close to base Nhalora. Stronger fin shape and a more dynamic stance would distinguish Starcurrent.",
      "text": "First evolution of Nhalora, the Deep Remembering · Starcurrent",
      "stats": [
        3,
        5,
        2
      ],
      "reused": null
    },
    {
      "key": "EW002:Starcurrent:ascension",
      "id": "EW002",
      "title": "Nhalora, Wings of the Starsea",
      "faction": "Elderwake",
      "type": "Companion",
      "stage": "Ascension",
      "src": "assets/ascension-growth/ew002-b-v3.webp",
      "note": "The final form has more elaborate fins, but larger wing-like extremities or a more distinct swimming silhouette would strengthen the path contrast.",
      "text": "Ascension of Nhalora, the Deep Remembering · Starcurrent",
      "stats": [
        5,
        7,
        2
      ],
      "reused": null
    }
  ]
}