{
 "note": "Main storyline 1→40 (47 quests). Auto-Quest walks steps in order; \"choose\" steps pause and prompt. XP share is a fraction of that level’s xpToNext (progression.json).",
 "autoQuestRules": [
  "Tracks the lowest-numbered incomplete main quest; side content never auto-runs unless enabled.",
  "travel: path with mount when allowed; uses waypoints when the route saves > 60 s.",
  "hunt/collect: runs the active Auto-Hunt preset restricted to quest targets inside the zone.",
  "talk/interact: walk to the target and interact; dialogue auto-advances (setting: skip/read).",
  "choose: pauses with a prompt (weapon, movement gem, pet, facet). Never auto-picks for the player.",
  "Stops on: death, potions below threshold with none to buy, bag full, boss/dungeon entry (needs confirm), player input (any manual action pauses for 5 s then resumes).",
  "All automation sends the same validated commands as manual play (no separate server path)."
 ],
 "chapters": [
  {
   "id": 1,
   "name": "Dust on the Road",
   "levels": [
    1,
    10
   ],
   "zones": [
    "amber_gate",
    "dewgrass_meadow",
    "old_orchard",
    "reedwater_banks"
   ],
   "pitch": "Register with the caravan, learn to fight, choose a companion and earn your first mount."
  },
  {
   "id": 2,
   "name": "Locks and Kilns",
   "levels": [
    11,
    20
   ],
   "zones": [
    "reedwater_banks",
    "clay_cut",
    "cinder_kilns"
   ],
   "pitch": "Reopen the canal locks and quench the kilns; first dungeon."
  },
  {
   "id": 3,
   "name": "Salt and Bells",
   "levels": [
    21,
    28
   ],
   "zones": [
    "saltway_flats",
    "bellshade_court"
   ],
   "pitch": "Bandits on the salt road and the silent bells of the shrine."
  },
  {
   "id": 4,
   "name": "Storm and Ash",
   "levels": [
    29,
    36
   ],
   "zones": [
    "stormquill_ridge",
    "ashroot_grove",
    "caravan_crown_arena"
   ],
   "pitch": "The Ashen Caravan rises; find the lost caravan in the burned grove."
  },
  {
   "id": 5,
   "name": "The Jade Seal",
   "levels": [
    37,
    40
   ],
   "zones": [
    "jade_seal_ruins"
   ],
   "pitch": "Break the Bellbound Seal and open the western road."
  }
 ],
 "quests": [
  {
   "id": "Q1.01",
   "chapter": 1,
   "level": 1,
   "zone": "amber_gate",
   "giver": "npc_registrar_hessa",
   "title": "Arrival at Amber Gate",
   "story": "A new wayfarer signs the caravan ledger at the twin-roof gate.",
   "steps": [
    {
     "auto": "talk",
     "target": "npc_registrar_hessa",
     "note": "Camera + WASD tutorial on the walk"
    },
    {
     "auto": "tutorial",
     "target": "targeting",
     "note": "Click / Tab target practice"
    }
   ],
   "teaches": "Movement, camera, targeting",
   "rewards": {
    "xp": 126,
    "xpShareOfLevel": 0.25,
    "gold": 22,
    "atlasPoint": 0
   },
   "autoQuest": "full"
  },
  {
   "id": "Q1.02",
   "chapter": 1,
   "level": 1,
   "zone": "amber_gate",
   "giver": "npc_caravan_master_daoud",
   "title": "First Steps",
   "story": "Daoud wants to see you swing before the road sees you bleed.",
   "steps": [
    {
     "auto": "talk",
     "target": "npc_trainer_ordu",
     "note": "Your pole trainer (Ordu/Yazi/Lun by origin)"
    },
    {
     "auto": "tutorial",
     "target": "codex_pick_1",
     "note": "Learn skill pick #1"
    },
    {
     "auto": "interact",
     "target": "training_dummy",
     "count": 5
    }
   ],
   "teaches": "M1 chain, Smart Chain, skill pick #1",
   "rewards": {
    "xp": 126,
    "xpShareOfLevel": 0.25,
    "gold": 22,
    "atlasPoint": 0
   },
   "autoQuest": "full"
  },
  {
   "id": "Q1.03",
   "chapter": 1,
   "level": 2,
   "zone": "dewgrass_meadow",
   "giver": "npc_ranger_tam",
   "title": "Read the Meadow",
   "story": "Not every animal wants a fight — read the nameplates.",
   "steps": [
    {
     "auto": "travel",
     "target": "dewgrass_meadow"
    },
    {
     "auto": "hunt",
     "target": "dewhorn_hare",
     "count": 3
    },
    {
     "auto": "choose",
     "target": "movement_gem",
     "note": "Pick 1 of 6 movement gems for M2 (belt T5, 1 socket)",
     "pausesAuto": true
    },
    {
     "auto": "talk",
     "target": "npc_ranger_tam"
    }
   ],
   "teaches": "Name colours, neutral vs hostile, M2 movement gem",
   "rewards": {
    "xp": 280,
    "xpShareOfLevel": 0.4,
    "gold": 25,
    "atlasPoint": 0
   },
   "autoQuest": "pause_for_choice"
  },
  {
   "id": "Q1.04",
   "chapter": 1,
   "level": 3,
   "zone": "dewgrass_meadow",
   "giver": "npc_ranger_tam",
   "title": "Fox in the Reeds",
   "story": "Resin-spitting foxes raid the wicker bridges.",
   "steps": [
    {
     "auto": "hunt",
     "target": "reed_fox",
     "count": 5
    },
    {
     "auto": "tutorial",
     "target": "codex_pick_2",
     "note": "Skill pick #2 → put it on Q"
    }
   ],
   "teaches": "Hotbar Q/E, cooldowns",
   "rewards": {
    "xp": 370,
    "xpShareOfLevel": 0.4,
    "gold": 28,
    "atlasPoint": 0
   },
   "autoQuest": "full"
  },
  {
   "id": "Q1.05",
   "chapter": 1,
   "level": 4,
   "zone": "amber_gate",
   "giver": "npc_petkeeper_miri",
   "title": "A Small Companion",
   "story": "Miri offers a loot companion for the long road.",
   "steps": [
    {
     "auto": "talk",
     "target": "npc_petkeeper_miri"
    },
    {
     "auto": "choose",
     "target": "pet",
     "note": "Rabbit / Boar / Fox / Cat (free switching later)",
     "pausesAuto": true
    },
    {
     "auto": "collect",
     "target": "tutorial_drop",
     "count": 3,
     "from": "dewgrass_meadow"
    }
   ],
   "teaches": "Pets and loot pickup",
   "rewards": {
    "xp": 560,
    "xpShareOfLevel": 0.4,
    "gold": 31,
    "atlasPoint": 0
   },
   "autoQuest": "pause_for_choice"
  },
  {
   "id": "Q1.06",
   "chapter": 1,
   "level": 5,
   "zone": "amber_gate",
   "giver": "npc_alchemist_ses",
   "title": "Potions and Patience",
   "story": "Ses teaches the caravan rule: never fight without potions.",
   "steps": [
    {
     "auto": "talk",
     "target": "npc_alchemist_ses"
    },
    {
     "auto": "tutorial",
     "target": "quick_slots",
     "note": "Put HP/MP potions on 1 and 2"
    },
    {
     "auto": "tutorial",
     "target": "auto_hunt",
     "note": "Run Auto-Hunt for 10 kills in Dewgrass"
    },
    {
     "auto": "tutorial",
     "target": "auto_quest",
     "note": "Auto-Quest unlocked"
    }
   ],
   "teaches": "Quick slots, Auto-Hunt, Auto-Quest",
   "rewards": {
    "xp": 441,
    "xpShareOfLevel": 0.25,
    "gold": 35,
    "atlasPoint": 0
   },
   "autoQuest": "full"
  },
  {
   "id": "Q1.07",
   "chapter": 1,
   "level": 6,
   "zone": "old_orchard",
   "giver": "npc_blacksmith_toragh",
   "title": "Forged by Choice",
   "story": "Animal parts become weapons at the forge.",
   "steps": [
    {
     "auto": "talk",
     "target": "npc_blacksmith_toragh",
     "note": "Learn the 18 salvage-kit patterns; assemble one supplied kit"
    },
    {
     "auto": "travel",
     "target": "old_orchard"
    },
    {
     "auto": "hunt",
     "target": "duneplate_beetle",
     "count": 4
    }
   ],
   "teaches": "Salvage kits, weapon bases",
   "rewards": {
    "xp": 1313,
    "xpShareOfLevel": 0.55,
    "gold": 39,
    "atlasPoint": 1
   },
   "autoQuest": "full"
  },
  {
   "id": "Q1.08",
   "chapter": 1,
   "level": 7,
   "zone": "old_orchard",
   "giver": "npc_orchard_keeper_ayla",
   "title": "Orchard Tolls",
   "story": "Boars trample the amber trees; beetles nest in the toll sheds.",
   "steps": [
    {
     "auto": "hunt",
     "target": "orchard_boar",
     "count": 6
    },
    {
     "auto": "hunt",
     "target": "duneplate_beetle",
     "count": 4
    }
   ],
   "teaches": "Neutral monsters only fight back",
   "rewards": {
    "xp": 1274,
    "xpShareOfLevel": 0.4,
    "gold": 44,
    "atlasPoint": 0
   },
   "autoQuest": "full"
  },
  {
   "id": "Q1.09",
   "chapter": 1,
   "level": 8,
   "zone": "old_orchard",
   "giver": "npc_orchard_keeper_ayla",
   "title": "Shared Road",
   "story": "An elite boar guards the orchard well.",
   "steps": [
    {
     "auto": "tutorial",
     "target": "party",
     "note": "Form/join a party or accept the NPC escort (solo route)"
    },
    {
     "auto": "hunt",
     "target": "orchard_boar_elite",
     "count": 1
    }
   ],
   "teaches": "Party, channels, elites (★)",
   "rewards": {
    "xp": 1638,
    "xpShareOfLevel": 0.4,
    "gold": 50,
    "atlasPoint": 0
   },
   "autoQuest": "full"
  },
  {
   "id": "Q1.10",
   "chapter": 1,
   "level": 9,
   "zone": "reedwater_banks",
   "giver": "npc_lockkeeper_suren",
   "title": "Spines over Reedwater",
   "story": "Lizards spit spines from the reed beds.",
   "steps": [
    {
     "auto": "travel",
     "target": "reedwater_banks"
    },
    {
     "auto": "hunt",
     "target": "reedscale_lizard",
     "count": 6
    }
   ],
   "teaches": "Use cover vs ranged monsters",
   "rewards": {
    "xp": 2288,
    "xpShareOfLevel": 0.4,
    "gold": 55,
    "atlasPoint": 0
   },
   "autoQuest": "full"
  },
  {
   "id": "Q1.11",
   "chapter": 1,
   "level": 10,
   "zone": "amber_gate",
   "giver": "npc_stablemaster_kerem",
   "title": "The Reedback Stable",
   "story": "Kerem trusts you with a Reedback Strider, a dune lizard that never sinks in the reeds.",
   "steps": [
    {
     "auto": "talk",
     "target": "npc_stablemaster_kerem"
    },
    {
     "auto": "tutorial",
     "target": "mount",
     "note": "Summon mount (T)"
    },
    {
     "auto": "interact",
     "target": "waypoint",
     "count": 3
    }
   ],
   "teaches": "Mount, waypoints, skill pick #4",
   "rewards": {
    "xp": 1512,
    "xpShareOfLevel": 0.25,
    "gold": 62,
    "atlasPoint": 0
   },
   "autoQuest": "full"
  },
  {
   "id": "Q2.01",
   "chapter": 2,
   "level": 11,
   "zone": "reedwater_banks",
   "giver": "npc_lockkeeper_suren",
   "title": "Wolf Sign",
   "story": "Wolves pounce from the reeds — watch the marked ground.",
   "steps": [
    {
     "auto": "hunt",
     "target": "marsh_wolf",
     "count": 5
    },
    {
     "auto": "tutorial",
     "target": "enemy_filter",
     "note": "Configure the Auto-Hunt target filter"
    }
   ],
   "teaches": "Telegraph dodging, target filter",
   "rewards": {
    "xp": 2968,
    "xpShareOfLevel": 0.4,
    "gold": 70,
    "atlasPoint": 0
   },
   "autoQuest": "full"
  },
  {
   "id": "Q2.02",
   "chapter": 2,
   "level": 12,
   "zone": "amber_gate",
   "giver": "npc_stashkeeper_bao",
   "title": "Keeper of Many Things",
   "story": "Old Bao keeps what the road would take.",
   "steps": [
    {
     "auto": "talk",
     "target": "npc_stashkeeper_bao"
    },
    {
     "auto": "tutorial",
     "target": "stash",
     "note": "Deposit one item in the stash"
    }
   ],
   "teaches": "Stash and bank",
   "rewards": {
    "xp": 2310,
    "xpShareOfLevel": 0.25,
    "gold": 78,
    "atlasPoint": 0
   },
   "autoQuest": "full"
  },
  {
   "id": "Q2.03",
   "chapter": 2,
   "level": 12,
   "zone": "reedwater_banks",
   "giver": "npc_lockkeeper_suren",
   "title": "Reedwater Wardens",
   "story": "Reed-pipes from the lizards will tune the lock bells.",
   "steps": [
    {
     "auto": "collect",
     "target": "reed_pipe",
     "count": 8,
     "from": "reedscale_lizard"
    }
   ],
   "teaches": "Drop quests",
   "rewards": {
    "xp": 3696,
    "xpShareOfLevel": 0.4,
    "gold": 78,
    "atlasPoint": 0
   },
   "autoQuest": "full"
  },
  {
   "id": "Q2.04",
   "chapter": 2,
   "level": 13,
   "zone": "clay_cut",
   "giver": "npc_lockkeeper_suren",
   "title": "Into the Clay Cut",
   "story": "Scorpions have claimed the quarry terraces.",
   "steps": [
    {
     "auto": "travel",
     "target": "clay_cut"
    },
    {
     "auto": "hunt",
     "target": "clayclaw_scorpion",
     "count": 8
    }
   ],
   "rewards": {
    "xp": 4435,
    "xpShareOfLevel": 0.4,
    "gold": 87,
    "atlasPoint": 0
   },
   "autoQuest": "full"
  },
  {
   "id": "Q2.05",
   "chapter": 2,
   "level": 14,
   "zone": "clay_cut",
   "giver": "npc_lockkeeper_suren",
   "title": "Dry Locks",
   "story": "Open the sluices while geckos swarm the gates.",
   "steps": [
    {
     "auto": "interact",
     "target": "canal_sluice",
     "count": 3
    },
    {
     "auto": "hunt",
     "target": "siltspit_gecko",
     "count": 4
    }
   ],
   "teaches": "Defend-while-interacting",
   "rewards": {
    "xp": 5387,
    "xpShareOfLevel": 0.4,
    "gold": 98,
    "atlasPoint": 0
   },
   "autoQuest": "full"
  },
  {
   "id": "Q2.06",
   "chapter": 2,
   "level": 15,
   "zone": "clay_cut",
   "giver": "npc_lockkeeper_suren",
   "title": "Unclog the Locks",
   "story": "Clear the locks and break a gecko channel.",
   "steps": [
    {
     "auto": "hunt",
     "target": "clayclaw_scorpion",
     "count": 5
    },
    {
     "auto": "hunt",
     "target": "siltspit_gecko",
     "count": 5
    },
    {
     "auto": "tutorial",
     "target": "interrupt",
     "note": "Interrupt a visible channel"
    }
   ],
   "teaches": "Interrupts, T4 belt (1–2 sockets)",
   "rewards": {
    "xp": 8947,
    "xpShareOfLevel": 0.55,
    "gold": 109,
    "atlasPoint": 1
   },
   "autoQuest": "full"
  },
  {
   "id": "Q2.07",
   "chapter": 2,
   "level": 16,
   "zone": "amber_gate",
   "giver": "npc_trainer_ordu",
   "title": "A Second Lesson",
   "story": "Your trainer shows how a skill can grow.",
   "steps": [
    {
     "auto": "talk",
     "target": "npc_trainer_ordu",
     "note": "Your pole trainer"
    },
    {
     "auto": "tutorial",
     "target": "facets",
     "note": "Rank a skill to 2 and pick a facet"
    }
   ],
   "teaches": "Skill ranks and facets",
   "rewards": {
    "xp": 4830,
    "xpShareOfLevel": 0.25,
    "gold": 123,
    "atlasPoint": 0
   },
   "autoQuest": "full"
  },
  {
   "id": "Q2.08",
   "chapter": 2,
   "level": 17,
   "zone": "cinder_kilns",
   "giver": "npc_kilnmaster_harun",
   "title": "Ember Road",
   "story": "Vipers bask on the warm kiln bricks.",
   "steps": [
    {
     "auto": "travel",
     "target": "cinder_kilns"
    },
    {
     "auto": "hunt",
     "target": "emberhorn_viper",
     "count": 6
    }
   ],
   "rewards": {
    "xp": 9229,
    "xpShareOfLevel": 0.4,
    "gold": 137,
    "atlasPoint": 0
   },
   "autoQuest": "full"
  },
  {
   "id": "Q2.09",
   "chapter": 2,
   "level": 18,
   "zone": "cinder_kilns",
   "giver": "npc_kilnmaster_harun",
   "title": "Banked Embers",
   "story": "Learn to put out a burn — and to temper steel.",
   "steps": [
    {
     "auto": "hunt",
     "target": "emberhorn_viper",
     "count": 6
    },
    {
     "auto": "tutorial",
     "target": "cleanse",
     "note": "Use a cleanse tonic on burn"
    },
    {
     "auto": "tutorial",
     "target": "refine",
     "note": "Refine a weapon +1…+4 at the blacksmith"
    }
   ],
   "teaches": "Cleansing, refinement safe band",
   "rewards": {
    "xp": 10948,
    "xpShareOfLevel": 0.4,
    "gold": 154,
    "atlasPoint": 0
   },
   "autoQuest": "full"
  },
  {
   "id": "Q2.10",
   "chapter": 2,
   "level": 19,
   "zone": "cinder_kilns",
   "giver": "npc_kilnmaster_harun",
   "title": "Scarab Furnace",
   "story": "Scarabs carry furnace cores in their shells.",
   "steps": [
    {
     "auto": "hunt",
     "target": "kilnback_scarab",
     "count": 8
    },
    {
     "auto": "collect",
     "target": "furnace_core",
     "count": 5,
     "from": "kilnback_scarab"
    }
   ],
   "rewards": {
    "xp": 12902,
    "xpShareOfLevel": 0.4,
    "gold": 172,
    "atlasPoint": 0
   },
   "autoQuest": "full"
  },
  {
   "id": "Q2.11",
   "chapter": 2,
   "level": 20,
   "zone": "cinder_kilns",
   "giver": "npc_kiln_warden_beha",
   "title": "Kiln Depths",
   "story": "Something hotter than fire stirs below the kilns.",
   "steps": [
    {
     "auto": "talk",
     "target": "npc_kiln_warden_beha"
    },
    {
     "auto": "dungeon",
     "target": "kiln_depths"
    }
   ],
   "teaches": "Dungeon (8 h reward), skill pick #6, paid respec begins",
   "rewards": {
    "xp": 12425,
    "xpShareOfLevel": 0.25,
    "gold": 193,
    "atlasPoint": 0
   },
   "autoQuest": "full"
  },
  {
   "id": "Q3.01",
   "chapter": 3,
   "level": 21,
   "zone": "saltway_flats",
   "giver": "npc_salt_courier_ina",
   "title": "Saltway Manifest",
   "story": "Bandits stole the salt manifests.",
   "steps": [
    {
     "auto": "travel",
     "target": "saltway_flats"
    },
    {
     "auto": "collect",
     "target": "route_manifest",
     "count": 6,
     "from": "saltway_bandit"
    },
    {
     "auto": "talk",
     "target": "npc_salt_courier_ina"
    }
   ],
   "rewards": {
    "xp": 24041,
    "xpShareOfLevel": 0.4,
    "gold": 216,
    "atlasPoint": 0
   },
   "autoQuest": "full"
  },
  {
   "id": "Q3.02",
   "chapter": 3,
   "level": 22,
   "zone": "amber_gate",
   "giver": "npc_convoy_marshal_rua",
   "title": "The Convoy Marshal",
   "story": "Once a month the Lantern Convoy crosses the basin.",
   "steps": [
    {
     "auto": "talk",
     "target": "npc_convoy_marshal_rua"
    },
    {
     "auto": "talk",
     "target": "npc_stall_warden_pell",
     "note": "Open your own stall"
    }
   ],
   "teaches": "Lantern Convoy event, stalls",
   "rewards": {
    "xp": 17966,
    "xpShareOfLevel": 0.25,
    "gold": 242,
    "atlasPoint": 0
   },
   "autoQuest": "full"
  },
  {
   "id": "Q3.03",
   "chapter": 3,
   "level": 23,
   "zone": "saltway_flats",
   "giver": "npc_salt_courier_ina",
   "title": "Courier on the Causeway",
   "story": "Get Ina across the flooded causeway alive.",
   "steps": [
    {
     "auto": "escort",
     "target": "salt_courier_ina"
    }
   ],
   "teaches": "Escort",
   "rewards": {
    "xp": 21375,
    "xpShareOfLevel": 0.25,
    "gold": 271,
    "atlasPoint": 0
   },
   "autoQuest": "full"
  },
  {
   "id": "Q3.04",
   "chapter": 3,
   "level": 24,
   "zone": "saltway_flats",
   "giver": "npc_salt_courier_ina",
   "title": "The Quiet Shell",
   "story": "Mark tortoise nests — without starting a fight.",
   "steps": [
    {
     "auto": "interact",
     "target": "tortoise_nest",
     "count": 3
    },
    {
     "auto": "escort",
     "target": "salt_courier_ina"
    }
   ],
   "teaches": "Non-combat objectives",
   "rewards": {
    "xp": 55902,
    "xpShareOfLevel": 0.55,
    "gold": 304,
    "atlasPoint": 1
   },
   "autoQuest": "full"
  },
  {
   "id": "Q3.05",
   "chapter": 3,
   "level": 25,
   "zone": "amber_gate",
   "giver": "npc_gate_captain_aras",
   "title": "Bounty Board",
   "story": "The gate captain pays for elite heads.",
   "steps": [
    {
     "auto": "talk",
     "target": "npc_gate_captain_aras"
    },
    {
     "auto": "hunt",
     "target": "any_elite_21_28",
     "count": 1
    }
   ],
   "teaches": "Daily elite bounties",
   "rewards": {
    "xp": 48020,
    "xpShareOfLevel": 0.4,
    "gold": 340,
    "atlasPoint": 0
   },
   "autoQuest": "full"
  },
  {
   "id": "Q3.06",
   "chapter": 3,
   "level": 25,
   "zone": "bellshade_court",
   "giver": "npc_bell_monk_odo",
   "title": "Bellshade Steps",
   "story": "Jerboas ring the broken bells at night.",
   "steps": [
    {
     "auto": "travel",
     "target": "bellshade_court"
    },
    {
     "auto": "hunt",
     "target": "bellwhisker_jerboa",
     "count": 6
    }
   ],
   "rewards": {
    "xp": 48020,
    "xpShareOfLevel": 0.4,
    "gold": 340,
    "atlasPoint": 0
   },
   "autoQuest": "full"
  },
  {
   "id": "Q3.07",
   "chapter": 3,
   "level": 26,
   "zone": "bellshade_court",
   "giver": "npc_bell_monk_odo",
   "title": "Listen to the Bells",
   "story": "Learn the rhythm of the bell rings.",
   "steps": [
    {
     "auto": "hunt",
     "target": "bellwhisker_jerboa",
     "count": 5
    },
    {
     "auto": "tutorial",
     "target": "dodge_ring",
     "note": "Avoid a marked ground ring"
    }
   ],
   "rewards": {
    "xp": 53704,
    "xpShareOfLevel": 0.4,
    "gold": 381,
    "atlasPoint": 0
   },
   "autoQuest": "full"
  },
  {
   "id": "Q3.08",
   "chapter": 3,
   "level": 27,
   "zone": "bellshade_court",
   "giver": "npc_bell_monk_odo",
   "title": "Silent Bells",
   "story": "Ring the three shrine bells while hyenas circle.",
   "steps": [
    {
     "auto": "interact",
     "target": "shrine_bell",
     "count": 3
    },
    {
     "auto": "hunt",
     "target": "duskfang_hyena",
     "count": 6
    }
   ],
   "teaches": "Skill pick #7, rank-3 facets",
   "rewards": {
    "xp": 63196,
    "xpShareOfLevel": 0.4,
    "gold": 426,
    "atlasPoint": 0
   },
   "autoQuest": "full"
  },
  {
   "id": "Q3.09",
   "chapter": 3,
   "level": 28,
   "zone": "bellshade_court",
   "giver": "npc_bell_monk_odo",
   "title": "A Measured Hunt",
   "story": "Hunt the patient hyenas — then talk about a second path.",
   "steps": [
    {
     "auto": "hunt",
     "target": "duskfang_hyena",
     "count": 6
    },
    {
     "auto": "talk",
     "target": "npc_trainer_yazi",
     "note": "Crossing into a hybrid lane"
    }
   ],
   "teaches": "Hybrid Atlas lanes",
   "rewards": {
    "xp": 99484,
    "xpShareOfLevel": 0.55,
    "gold": 478,
    "atlasPoint": 1
   },
   "autoQuest": "full"
  },
  {
   "id": "Q4.01",
   "chapter": 4,
   "level": 29,
   "zone": "stormquill_ridge",
   "giver": "npc_ridge_watcher_kai",
   "title": "Ridge Watch",
   "story": "Quill stalkers hunt the ridge paths.",
   "steps": [
    {
     "auto": "travel",
     "target": "stormquill_ridge"
    },
    {
     "auto": "hunt",
     "target": "stormquill_stalker",
     "count": 8
    }
   ],
   "rewards": {
    "xp": 84896,
    "xpShareOfLevel": 0.4,
    "gold": 535,
    "atlasPoint": 0
   },
   "autoQuest": "full"
  },
  {
   "id": "Q4.02",
   "chapter": 4,
   "level": 30,
   "zone": "caravan_crown_arena",
   "giver": "npc_ridge_watcher_kai",
   "title": "The Ashen Caravan",
   "story": "Every four hours the Ashen Caravan walks again.",
   "steps": [
    {
     "auto": "tutorial",
     "target": "world_boss",
     "note": "See the Kharuun schedule; join one occurrence or watch"
    },
    {
     "auto": "travel",
     "target": "caravan_crown_arena"
    }
   ],
   "teaches": "World boss, offline Auto-Hunt (4 h), T3 gear",
   "rewards": {
    "xp": 81428,
    "xpShareOfLevel": 0.25,
    "gold": 599,
    "atlasPoint": 0
   },
   "autoQuest": "full"
  },
  {
   "id": "Q4.03",
   "chapter": 4,
   "level": 31,
   "zone": "stormquill_ridge",
   "giver": "npc_ridge_watcher_kai",
   "title": "Ground the Relays",
   "story": "Copper relays draw lightning to the kestrel roosts.",
   "steps": [
    {
     "auto": "hunt",
     "target": "stormwing_kestrel",
     "count": 6
    },
    {
     "auto": "interact",
     "target": "relay_post",
     "count": 3
    }
   ],
   "rewards": {
    "xp": 155949,
    "xpShareOfLevel": 0.4,
    "gold": 671,
    "atlasPoint": 0
   },
   "autoQuest": "full"
  },
  {
   "id": "Q4.04",
   "chapter": 4,
   "level": 32,
   "zone": "stormquill_ridge",
   "giver": "npc_ridge_watcher_kai",
   "title": "Kestrel Roosts",
   "story": "Storm feathers make the best fletching.",
   "steps": [
    {
     "auto": "collect",
     "target": "storm_feather",
     "count": 6,
     "from": "stormwing_kestrel"
    }
   ],
   "rewards": {
    "xp": 185573,
    "xpShareOfLevel": 0.4,
    "gold": 752,
    "atlasPoint": 0
   },
   "autoQuest": "full"
  },
  {
   "id": "Q4.05",
   "chapter": 4,
   "level": 33,
   "zone": "ashroot_grove",
   "giver": "npc_grove_healer_nadi",
   "title": "Into the Burned Grove",
   "story": "Raiders camp among the black cedars.",
   "steps": [
    {
     "auto": "travel",
     "target": "ashroot_grove"
    },
    {
     "auto": "hunt",
     "target": "ashroad_raider",
     "count": 8
    }
   ],
   "rewards": {
    "xp": 216586,
    "xpShareOfLevel": 0.4,
    "gold": 842,
    "atlasPoint": 0
   },
   "autoQuest": "full"
  },
  {
   "id": "Q4.06",
   "chapter": 4,
   "level": 34,
   "zone": "ashroot_grove",
   "giver": "npc_grove_healer_nadi",
   "title": "The Lost Caravan",
   "story": "Recover the seals and lead the survivors home.",
   "steps": [
    {
     "auto": "collect",
     "target": "caravan_seal",
     "count": 6,
     "from": "ashroad_raider"
    },
    {
     "auto": "escort",
     "target": "caravan_survivors"
    }
   ],
   "teaches": "Skill pick #8 (final)",
   "rewards": {
    "xp": 252706,
    "xpShareOfLevel": 0.4,
    "gold": 943,
    "atlasPoint": 0
   },
   "autoQuest": "full"
  },
  {
   "id": "Q4.07",
   "chapter": 4,
   "level": 35,
   "zone": "ashroot_grove",
   "giver": "npc_grove_healer_nadi",
   "title": "Ashroot Remedies",
   "story": "Salves for the wounded pangolins.",
   "steps": [
    {
     "auto": "interact",
     "target": "ashroot_salve",
     "count": 6
    }
   ],
   "rewards": {
    "xp": 183708,
    "xpShareOfLevel": 0.25,
    "gold": 1056,
    "atlasPoint": 0
   },
   "autoQuest": "full"
  },
  {
   "id": "Q4.08",
   "chapter": 4,
   "level": 35,
   "zone": "ashroot_grove",
   "giver": "npc_grove_healer_nadi",
   "title": "Raider Captain",
   "story": "The raider captain will not go quietly.",
   "steps": [
    {
     "auto": "hunt",
     "target": "ashroad_raider_elite",
     "count": 1
    }
   ],
   "teaches": "Party elites",
   "rewards": {
    "xp": 293933,
    "xpShareOfLevel": 0.4,
    "gold": 1056,
    "atlasPoint": 0
   },
   "autoQuest": "full"
  },
  {
   "id": "Q4.09",
   "chapter": 4,
   "level": 36,
   "zone": "ashroot_grove",
   "giver": "npc_grove_healer_nadi",
   "title": "Roots Remember",
   "story": "Heal three pangolins and find the grove trade seal.",
   "steps": [
    {
     "auto": "interact",
     "target": "treat_pangolin",
     "count": 3
    },
    {
     "auto": "collect",
     "target": "grove_trade_seal",
     "count": 1,
     "from": "ashroot_grove"
    }
   ],
   "rewards": {
    "xp": 469508,
    "xpShareOfLevel": 0.55,
    "gold": 1183,
    "atlasPoint": 1
   },
   "autoQuest": "full"
  },
  {
   "id": "Q5.01",
   "chapter": 5,
   "level": 37,
   "zone": "jade_seal_ruins",
   "giver": "npc_relic_hunter_vesh",
   "title": "Relic Hunter's Map",
   "story": "Monitors guard every courtyard of the ruins.",
   "steps": [
    {
     "auto": "travel",
     "target": "jade_seal_ruins"
    },
    {
     "auto": "hunt",
     "target": "jadecrest_monitor",
     "count": 8
    }
   ],
   "rewards": {
    "xp": 385594,
    "xpShareOfLevel": 0.4,
    "gold": 1325,
    "atlasPoint": 0
   },
   "autoQuest": "full"
  },
  {
   "id": "Q5.02",
   "chapter": 5,
   "level": 38,
   "zone": "jade_seal_ruins",
   "giver": "npc_relic_hunter_vesh",
   "title": "Behind the Jade Gate",
   "story": "Clear the way to the Regent’s court.",
   "steps": [
    {
     "auto": "hunt",
     "target": "jadecrest_monitor",
     "count": 6
    },
    {
     "auto": "hunt",
     "target": "basaltsting_scorpion",
     "count": 4
    }
   ],
   "rewards": {
    "xp": 435512,
    "xpShareOfLevel": 0.4,
    "gold": 1484,
    "atlasPoint": 0
   },
   "autoQuest": "full"
  },
  {
   "id": "Q5.03",
   "chapter": 5,
   "level": 38,
   "zone": "amber_gate",
   "giver": "npc_jade_seer_qiyan",
   "title": "Seer's Warning",
   "story": "The seer explains what sleeps inside the bell-shell.",
   "steps": [
    {
     "auto": "talk",
     "target": "npc_jade_seer_qiyan"
    },
    {
     "auto": "tutorial",
     "target": "boss_prep",
     "note": "Refine, restock potions, set Auto-Hunt preset"
    }
   ],
   "rewards": {
    "xp": 272195,
    "xpShareOfLevel": 0.25,
    "gold": 1484,
    "atlasPoint": 0
   },
   "autoQuest": "full"
  },
  {
   "id": "Q5.04",
   "chapter": 5,
   "level": 39,
   "zone": "jade_seal_ruins",
   "giver": "npc_relic_hunter_vesh",
   "title": "Basalt Sting",
   "story": "Seal shards are lodged in the basalt scorpions.",
   "steps": [
    {
     "auto": "hunt",
     "target": "basaltsting_scorpion",
     "count": 8
    },
    {
     "auto": "collect",
     "target": "seal_shard",
     "count": 3,
     "from": "basaltsting_scorpion"
    }
   ],
   "rewards": {
    "xp": 491837,
    "xpShareOfLevel": 0.4,
    "gold": 1662,
    "atlasPoint": 0
   },
   "autoQuest": "full"
  },
  {
   "id": "Q5.05",
   "chapter": 5,
   "level": 39,
   "zone": "jade_seal_ruins",
   "giver": "npc_relic_hunter_vesh",
   "title": "Three Weakened Seals",
   "story": "Crack the outer seals before facing the Regent.",
   "steps": [
    {
     "auto": "interact",
     "target": "outer_seal",
     "count": 3
    }
   ],
   "teaches": "Solo story route for the boss",
   "rewards": {
    "xp": 307398,
    "xpShareOfLevel": 0.25,
    "gold": 1662,
    "atlasPoint": 0
   },
   "autoQuest": "full"
  },
  {
   "id": "Q5.06",
   "chapter": 5,
   "level": 40,
   "zone": "jade_seal_ruins",
   "giver": "npc_relic_hunter_vesh",
   "title": "Break the Bellbound Seal",
   "story": "Face the Bellbound Regent with a party — or break its echo seals alone.",
   "steps": [
    {
     "auto": "boss",
     "target": "bellbound_regent",
     "note": "Party (Party Finder) or solo story seals; same completion"
    }
   ],
   "autoQuest": "party_or_solo_route",
   "rewards": {
    "xp": 676276,
    "xpShareOfLevel": 0.55,
    "gold": 1861,
    "atlasPoint": 1
   }
  },
  {
   "id": "Q5.07",
   "chapter": 5,
   "level": 40,
   "zone": "amber_gate",
   "giver": "npc_caravan_master_daoud",
   "title": "A Road Beyond Amber",
   "story": "The western road is open — but not yet for you.",
   "steps": [
    {
     "auto": "talk",
     "target": "npc_caravan_master_daoud"
    },
    {
     "auto": "tutorial",
     "target": "endgame",
     "note": "Endgame loop overview: bosses, dungeon, crafting, refinement, convoy"
    }
   ],
   "rewards": {
    "xp": 307398,
    "xpShareOfLevel": 0.25,
    "gold": 1861,
    "atlasPoint": 0
   },
   "autoQuest": "full"
  }
 ],
 "repeatables": [
  {
   "id": "R.contracts",
   "name": "Caravan Contracts",
   "unlock": 12,
   "cadence": "3 per day, reset 00:00 UTC",
   "what": "Area-scaled kill/collect contracts from the Gate notice board",
   "xp": "≈ 40% of a level per contract (band-scaled)"
  },
  {
   "id": "R.hunting_log",
   "name": "Hunting Log",
   "unlock": 1,
   "cadence": "per area milestones 100 / 300 / 500 kills",
   "what": "Bonus XP + area title; feeds Auto-Hunt efficiency stats",
   "xp": "≈ 25% of a level per milestone"
  },
  {
   "id": "R.bounties",
   "name": "Elite Bounties",
   "unlock": 25,
   "cadence": "1 per day",
   "what": "Defeat a named ★ elite in your band (party-friendly)",
   "xp": "≈ 60% of a level"
  },
  {
   "id": "R.kiln_depths",
   "name": "Kiln Depths (dungeon)",
   "unlock": 20,
   "cadence": "enter anytime; reward chest once per 8 h",
   "what": "4-player instanced dungeon, 3 encounters, fastest-clear ranking (monthly reset)",
   "xp": "≈ 1 level per full clear in band"
  },
  {
   "id": "R.kharuun",
   "name": "Kharuun, the Ashen Caravan",
   "unlock": 30,
   "cadence": "every 4 h (UTC 00/04/08/12/16/20), 45-min window",
   "what": "World boss; participation bundle up to 3/day across bosses",
   "xp": "participation XP + rewards (boss-rewards contract)"
  },
  {
   "id": "R.regent",
   "name": "The Bellbound Regent",
   "unlock": 40,
   "cadence": "respawns 15 min after defeat",
   "what": "Story boss, farmable; shared daily bundle cap",
   "xp": "level-capped"
  },
  {
   "id": "R.convoy",
   "name": "Lantern Convoy",
   "unlock": 22,
   "cadence": "monthly event (16 players, team play)",
   "what": "Escort the lantern convoy across the basin; sign-up at Marshal Rua",
   "xp": "event rewards (cosmetic + orbs)"
  }
 ]
}
