MountAtlasMounts = {
  -- reset: daily, weekly, repeatable, event, special
  -- optional: dropChance = "Aprox. 1%", eventName = "Brewfest", route = "Step 1 > Step 2"
  -- guide optional: method, coordinates, requirements, respawn, macro, tomtom, routeWaypoints
  -- alt progress optional: faction, renownLevel, requiredProfession, campaignAchievementID
  -- quest/story progress optional: questIDs, campaignQuestIDs, requiredAchievementIDs, progressRequirements
  -- localized fields can use tables: note = { enUS = "Weekly attempt.", esMX = "Intento semanal." }
  {
    name = "Rivendare's Deathcharger",
    mountID = 69,
    itemID = 13335,
    spellID = 17481,
    boss = "Lord Aurius Rivendare",
    zone = "Stratholme",
    source = "Dungeon",
    expansion = "Classic",
    reset = "repeatable",
    dropChance = "Muy baja",
    method = "Drop de Lord Aurius Rivendare en Stratholme.",
    route = "Stratholme Service Entrance > Lord Aurius Rivendare > salir y reiniciar instancia",
    note = "Normal dungeon. Se puede repetir, respetando el limite de instancias."
  },
  {
    name = "Raven Lord",
    mountID = 185,
    itemID = 32768,
    spellID = 41252,
    boss = "Anzu",
    zone = "Sethekk Halls",
    source = "Dungeon",
    expansion = "Burning Crusade",
    reset = "daily",
    dropChance = "Muy baja",
    method = "Drop de Anzu en Sethekk Halls Heroic.",
    route = "Sethekk Halls Heroic > Anzu; un intento diario por personaje",
    note = "Heroic. Un intento diario por personaje."
  },
  {
    name = "Swift White Hawkstrider",
    mountID = 213,
    itemID = 35513,
    spellID = 46628,
    boss = "Kael'thas Sunstrider",
    zone = "Magisters' Terrace",
    source = "Dungeon",
    expansion = "Burning Crusade",
    reset = "daily",
    dropChance = "Baja",
    method = "Drop de Kael'thas Sunstrider en Magisters' Terrace Heroic.",
    route = "Magisters' Terrace Heroic > Kael'thas Sunstrider; un intento diario por personaje",
    note = "Heroic. Un intento diario por personaje."
  },
  {
    name = "White Polar Bear",
    mountID = 237,
    itemID = 43962,
    spellID = 54753,
    boss = "Hyldnir Spoils",
    zone = "The Storm Peaks",
    source = "Daily quest",
    expansion = "Wrath",
    reset = "daily",
    method = "Chance from Hyldnir Spoils, the reward bag from Brunnhildar Village daily quests.",
    route = "The Storm Peaks > Brunnhildar Village > complete daily quests > open Hyldnir Spoils",
    note = "Sale de la bolsa de recompensa de las diarias de Brunnhildar Village."
  },
  {
    name = "Bronze Drake",
    mountID = 248,
    itemID = 43951,
    spellID = 59569,
    boss = "Infinite Corrupter",
    zone = "The Culling of Stratholme",
    source = "Dungeon",
    expansion = "Wrath",
    reset = "daily",
    dropChance = "Garantizada si completas el evento cronometrado",
    method = "Kill Infinite Corrupter before the timer expires in The Culling of Stratholme Heroic.",
    route = "The Culling of Stratholme Heroic > llegar al Infinite Corrupter antes del tiempo limite",
    note = "Heroic timed run. Normalmente es garantizada si llegas a tiempo."
  },
  {
    name = "Blue Proto-Drake",
    mountID = 264,
    itemID = 44151,
    spellID = 59996,
    boss = "Skadi the Ruthless",
    zone = "Utgarde Pinnacle",
    source = "Dungeon",
    expansion = "Wrath",
    reset = "daily",
    dropChance = "Muy baja",
    method = "Drop de Skadi the Ruthless en Utgarde Pinnacle Heroic.",
    route = "Utgarde Pinnacle Heroic > Skadi the Ruthless; un intento diario por personaje",
    note = "Heroic. Un intento diario por personaje."
  },
  {
    name = "Vitreous Stone Drake",
    mountID = 397,
    itemID = 63043,
    spellID = 88746,
    boss = "Slabhide",
    zone = "The Stonecore",
    source = "Dungeon",
    expansion = "Cataclysm",
    reset = "repeatable",
    dropChance = "Muy baja",
    method = "Drop de Slabhide en The Stonecore.",
    route = "The Stonecore > Slabhide; Normal se puede repetir, Heroic es diario",
    note = "Normal se puede repetir; Heroic es diario."
  },
  {
    name = "Drake of the North Wind",
    mountID = 395,
    itemID = 63040,
    spellID = 88742,
    boss = "Altairus",
    zone = "The Vortex Pinnacle",
    source = "Dungeon",
    expansion = "Cataclysm",
    reset = "repeatable",
    dropChance = "Muy baja",
    method = "Drop de Altairus en The Vortex Pinnacle.",
    route = "The Vortex Pinnacle > Altairus; Normal se puede repetir, Heroic es diario",
    note = "Normal se puede repetir; Heroic es diario."
  },
  {
    name = "Armored Razzashi Raptor",
    mountID = 410,
    itemID = 68823,
    spellID = 96491,
    boss = "Bloodlord Mandokir",
    zone = "Zul'Gurub",
    source = "Dungeon",
    expansion = "Cataclysm",
    reset = "daily",
    dropChance = "Muy baja",
    method = "Drop de Bloodlord Mandokir en Zul'Gurub.",
    route = "Zul'Gurub Heroic > Bloodlord Mandokir; un intento diario por personaje",
    note = "Un intento diario por personaje."
  },
  {
    name = "Swift Zulian Panther",
    mountID = 411,
    itemID = 68824,
    spellID = 96499,
    boss = "High Priestess Kilnara",
    zone = "Zul'Gurub",
    source = "Dungeon",
    expansion = "Cataclysm",
    reset = "daily",
    dropChance = "Muy baja",
    method = "Drop de High Priestess Kilnara en Zul'Gurub.",
    route = "Zul'Gurub Heroic > High Priestess Kilnara; un intento diario por personaje",
    note = "Un intento diario por personaje."
  },
  {
    name = "Amani Battle Bear",
    mountID = 419,
    itemID = 69747,
    spellID = 98204,
    boss = "Timed chest",
    zone = "Zul'Aman",
    source = "Dungeon",
    expansion = "Cataclysm",
    reset = "daily",
    dropChance = "Garantizada si completas el evento cronometrado",
    method = "Completa el timed run Bear-ly Made It en Zul'Aman y abre Kasha's Bag.",
    route = "Zul'Aman Heroic > evento cronometrado Bear-ly Made It > Kasha's Bag",
    note = "Completa el evento cronometrado y abre Kasha's Bag."
  },
  {
    name = "Midnight",
    mountID = 875,
    itemID = 142236,
    spellID = 229499,
    boss = "Attumen the Huntsman",
    zone = "Return to Karazhan",
    source = "Dungeon",
    expansion = "Legion",
    reset = "weekly",
    dropChance = "Muy baja",
    method = "Drop de Attumen the Huntsman en Return to Karazhan Mythic.",
    route = "Return to Karazhan Mythic > Attumen the Huntsman",
    note = "Mythic. Un intento semanal por personaje."
  },
  {
    name = "Smoldering Ember Wyrm",
    mountID = 883,
    itemID = 142552,
    spellID = 231428,
    boss = "Nightbane",
    zone = "Return to Karazhan",
    source = "Dungeon",
    expansion = "Legion",
    reset = "weekly",
    dropChance = "Garantizada para un jugador si el grupo cumple el evento",
    method = "Completa el evento cronometrado de Return to Karazhan Mythic para invocar a Nightbane.",
    route = "Return to Karazhan Mythic > evento cronometrado > Nightbane",
    note = "El drop se reparte entre el grupo cuando Nightbane es invocado correctamente."
  },

  {
    name = "Ashes of Al'ar",
    mountID = 183,
    itemID = 32458,
    spellID = 40192,
    boss = "Kael'thas Sunstrider",
    zone = "The Eye",
    source = "Raid",
    expansion = "Burning Crusade",
    reset = "weekly",
    dropChance = "Muy baja",
    method = "Drop de Kael'thas Sunstrider en The Eye.",
    route = "The Eye > Kael'thas Sunstrider; un intento semanal por personaje",
    note = "Tempest Keep / The Eye. Un intento semanal por personaje."
  },
  {
    name = "Azure Drake",
    mountID = 246,
    itemID = 43952,
    spellID = 59567,
    boss = "Malygos",
    zone = "Eye of Eternity",
    source = "Raid",
    expansion = "Wrath",
    reset = "weekly",
    dropChance = "Baja",
    method = "Drop de Malygos en Eye of Eternity.",
    route = "Eye of Eternity > Malygos; un intento semanal por personaje",
    note = "Un intento semanal por personaje."
  },
  {
    name = "Blue Drake",
    mountID = 247,
    itemID = 43953,
    spellID = 59568,
    boss = "Malygos",
    zone = "Eye of Eternity",
    source = "Raid",
    expansion = "Wrath",
    reset = "weekly",
    dropChance = "Baja",
    method = "Drop de Malygos en Eye of Eternity; tambien aparece en fuentes legacy relacionadas con Oculus.",
    route = "Eye of Eternity > Malygos; alternativa legacy: The Oculus Heroic random dungeon reward",
    note = "Tambien puede salir en The Oculus Heroic mediante random dungeon reward."
  },
  {
    name = "Black Drake",
    mountID = 253,
    itemID = 43986,
    spellID = 59650,
    boss = "Sartharion",
    zone = "The Obsidian Sanctum",
    source = "Raid",
    expansion = "Wrath",
    reset = "weekly",
    dropChance = "Garantizada si cumples la condicion",
    method = "10 player Obsidian Sanctum: kill Sartharion with all 3 drakes alive.",
    route = "The Obsidian Sanctum 10 player > dejar vivos los 3 dracos > Sartharion",
    note = "10 player, deja vivos los 3 dracos antes de matar a Sartharion."
  },
  {
    name = "Twilight Drake",
    mountID = 250,
    itemID = 43954,
    spellID = 59571,
    boss = "Sartharion",
    zone = "The Obsidian Sanctum",
    source = "Raid",
    expansion = "Wrath",
    reset = "weekly",
    dropChance = "Garantizada si cumples la condicion",
    method = "25 player Obsidian Sanctum: kill Sartharion with all 3 drakes alive.",
    route = "The Obsidian Sanctum 25 player > dejar vivos los 3 dracos > Sartharion",
    note = "25 player, deja vivos los 3 dracos antes de matar a Sartharion."
  },
  {
    name = "Onyxian Drake",
    mountID = 349,
    itemID = 49636,
    spellID = 69395,
    boss = "Onyxia",
    zone = "Onyxia's Lair",
    source = "Raid",
    expansion = "Wrath",
    reset = "weekly",
    dropChance = "Muy baja",
    method = "Drop de Onyxia en Onyxia's Lair.",
    route = "Onyxia's Lair > Onyxia; un intento semanal por personaje",
    note = "Un intento semanal por personaje."
  },
  {
    name = "Mimiron's Head",
    mountID = 304,
    itemID = 45693,
    spellID = 63796,
    boss = "Yogg-Saron",
    zone = "Ulduar",
    source = "Raid",
    expansion = "Wrath",
    reset = "weekly",
    dropChance = "Muy baja",
    method = "Drop de Yogg-Saron en Ulduar sin guardianes activos.",
    route = "Ulduar > Yogg-Saron sin guardianes activos",
    note = "Mata a Yogg-Saron sin guardianes activos."
  },
  {
    name = "Invincible",
    mountID = 363,
    itemID = 50818,
    spellID = 72286,
    boss = "The Lich King",
    zone = "Icecrown Citadel",
    source = "Raid",
    expansion = "Wrath",
    reset = "weekly",
    dropChance = "Muy baja",
    method = "Drop de The Lich King en Icecrown Citadel 25 Heroic.",
    route = "Icecrown Citadel 25 Heroic > The Lich King; un intento semanal por personaje",
    note = "25 Heroic. Un intento semanal por personaje."
  },
  {
    name = "Drake of the South Wind",
    mountID = 396,
    itemID = 63041,
    spellID = 88744,
    boss = "Al'Akir",
    zone = "Throne of the Four Winds",
    source = "Raid",
    expansion = "Cataclysm",
    reset = "weekly",
    dropChance = "Muy baja",
    method = "Drop de Al'Akir en Throne of the Four Winds.",
    route = "Throne of the Four Winds > Al'Akir",
    note = "Un intento semanal por personaje."
  },
  {
    name = "Pureblood Fire Hawk",
    mountID = 415,
    itemID = 69224,
    spellID = 97493,
    boss = "Ragnaros",
    zone = "Firelands",
    source = "Raid",
    expansion = "Cataclysm",
    reset = "weekly",
    dropChance = "Muy baja",
    method = "Drop de Ragnaros en Firelands.",
    route = "Firelands > Ragnaros",
    note = "Un intento semanal por personaje."
  },
  {
    name = "Flametalon of Alysrazor",
    mountID = 425,
    itemID = 71665,
    spellID = 101542,
    boss = "Alysrazor",
    zone = "Firelands",
    source = "Raid",
    expansion = "Cataclysm",
    reset = "weekly",
    dropChance = "Muy baja",
    method = "Drop de Alysrazor en Firelands.",
    route = "Firelands > Alysrazor",
    note = "Un intento semanal por personaje."
  },
  {
    name = "Experiment 12-B",
    mountID = 445,
    itemID = 78919,
    spellID = 110039,
    boss = "Ultraxion",
    zone = "Dragon Soul",
    source = "Raid",
    expansion = "Cataclysm",
    reset = "weekly",
    dropChance = "Muy baja",
    method = "Drop de Ultraxion en Dragon Soul.",
    route = "Dragon Soul > Ultraxion",
    note = "Un intento semanal por personaje."
  },
  {
    name = "Blazing Drake",
    mountID = 442,
    itemID = 77067,
    spellID = 107842,
    boss = "Madness of Deathwing",
    zone = "Dragon Soul",
    source = "Raid",
    expansion = "Cataclysm",
    reset = "weekly",
    dropChance = "Baja",
    method = "Drop de Madness of Deathwing en Dragon Soul.",
    route = "Dragon Soul > Madness of Deathwing",
    note = "Un intento semanal por personaje."
  },
  {
    name = "Life-Binder's Handmaiden",
    mountID = 444,
    itemID = 77069,
    spellID = 107845,
    boss = "Madness of Deathwing",
    zone = "Dragon Soul",
    source = "Raid",
    expansion = "Cataclysm",
    reset = "weekly",
    dropChance = "Baja",
    method = "Drop de Madness of Deathwing en Dragon Soul Heroic.",
    route = "Dragon Soul Heroic > Madness of Deathwing",
    note = "Heroic. Un intento semanal por personaje."
  },
  {
    name = "Astral Cloud Serpent",
    mountID = 478,
    itemID = 87777,
    spellID = 127170,
    boss = "Elegon",
    zone = "Mogu'shan Vaults",
    source = "Raid",
    expansion = "Pandaria",
    reset = "weekly",
    dropChance = "Muy baja",
    method = "Drop de Elegon en Mogu'shan Vaults.",
    route = "Mogu'shan Vaults > Elegon",
    note = "Un intento semanal por personaje."
  },
  {
    name = "Spawn of Horridon",
    mountID = 531,
    itemID = 93666,
    spellID = 136471,
    boss = "Horridon",
    zone = "Throne of Thunder",
    source = "Raid",
    expansion = "Pandaria",
    reset = "weekly",
    dropChance = "Muy baja",
    method = "Drop de Horridon en Throne of Thunder.",
    route = "Throne of Thunder > Horridon",
    note = "Un intento semanal por personaje."
  },
  {
    name = "Clutch of Ji-Kun",
    mountID = 543,
    itemID = 95059,
    spellID = 139448,
    boss = "Ji-Kun",
    zone = "Throne of Thunder",
    source = "Raid",
    expansion = "Pandaria",
    reset = "weekly",
    dropChance = "Muy baja",
    method = "Drop de Ji-Kun en Throne of Thunder.",
    route = "Throne of Thunder > Ji-Kun",
    note = "Un intento semanal por personaje."
  },
  {
    name = "Kor'kron Juggernaut",
    mountID = 559,
    itemID = 104253,
    spellID = 148417,
    boss = "Garrosh Hellscream",
    zone = "Siege of Orgrimmar",
    source = "Raid",
    expansion = "Pandaria",
    reset = "weekly",
    dropChance = "Muy baja",
    method = "Drop de Garrosh Hellscream en Siege of Orgrimmar Mythic.",
    route = "Siege of Orgrimmar Mythic > Garrosh Hellscream",
    note = "Mythic. Un intento semanal por personaje."
  },

  {
    name = "Heavenly Onyx Cloud Serpent",
    mountID = 473,
    itemID = 87771,
    spellID = 127158,
    boss = "Sha of Anger",
    zone = "Kun-Lai Summit",
    source = "World boss",
    expansion = "Pandaria",
    reset = "weekly",
    dropChance = "Muy baja",
    method = "Drop de Sha of Anger en Kun-Lai Summit.",
    route = "Kun-Lai Summit > Sha of Anger",
    note = "World boss de Pandaria. Un intento semanal por personaje."
  },
  {
    name = "Son of Galleon",
    mountID = 515,
    itemID = 89783,
    spellID = 130965,
    boss = "Galleon",
    zone = "Valley of the Four Winds",
    source = "World boss",
    expansion = "Pandaria",
    reset = "weekly",
    dropChance = "Muy baja",
    method = "Drop de Galleon en Valley of the Four Winds.",
    route = "Valley of the Four Winds > Galleon",
    note = "World boss de Pandaria. Un intento semanal por personaje."
  },
  {
    name = "Thundering Cobalt Cloud Serpent",
    mountID = 542,
    itemID = 95057,
    spellID = 139442,
    boss = "Nalak",
    zone = "Isle of Thunder",
    source = "World boss",
    expansion = "Pandaria",
    reset = "weekly",
    dropChance = "Muy baja",
    method = "Drop de Nalak en Isle of Thunder.",
    route = "Isle of Thunder > Nalak",
    note = "World boss de Pandaria. Un intento semanal por personaje."
  },
  {
    name = "Cobalt Primordial Direhorn",
    mountID = 533,
    itemID = 94228,
    spellID = 138423,
    boss = "Oondasta",
    zone = "Isle of Giants",
    source = "World boss",
    expansion = "Pandaria",
    reset = "weekly",
    dropChance = "Muy baja",
    method = "Drop de Oondasta en Isle of Giants.",
    route = "Isle of Giants > Oondasta",
    note = "World boss de Pandaria. Un intento semanal por personaje."
  },
  {
    name = "Thundering Ruby Cloud Serpent",
    mountID = 517,
    itemID = 90655,
    spellID = 132036,
    boss = "Alani",
    zone = "Vale of Eternal Blossoms",
    source = "Rare",
    expansion = "Pandaria",
    reset = "special",
    dropChance = "Garantizada si usas Sky Crystal y derrotas a Alani",
    method = "Reune 10 Skyshards para crear Sky Crystal, quita el escudo de Alani y derrota al rare.",
    route = "Vale of Eternal Blossoms > reunir Skyshards > usar Sky Crystal en Alani",
    note = "Necesitas Sky Crystal para quitarle el escudo a Alani."
  },
  {
    name = "Thundering Onyx Cloud Serpent",
    mountID = 561,
    itemID = 104269,
    spellID = 148476,
    boss = "Huolon",
    zone = "Timeless Isle",
    source = "Rare",
    expansion = "Pandaria",
    reset = "daily",
    dropChance = "Muy baja",
    method = "Drop de Huolon en Timeless Isle.",
    route = "Timeless Isle > Huolon",
    note = "Rare de Timeless Isle. Buen candidato para intento diario."
  },

  -- Warlords of Draenor
  {
    name = "Solar Spirehawk",
    mountID = 634,
    itemID = 116771,
    spellID = 171828,
    boss = "Rukhmar",
    zone = "Spires of Arak",
    source = "World boss",
    expansion = "Draenor",
    reset = "weekly",
    dropChance = "Muy baja",
    method = "Drop de Rukhmar en Spires of Arak.",
    route = "Spires of Arak > Rukhmar",
    note = "World boss de Draenor. Un intento semanal por personaje."
  },
  {
    name = "Garn Nighthowl",
    mountID = 657,
    itemID = 116794,
    spellID = 171851,
    boss = "Nok-Karosh",
    zone = "Frostfire Ridge",
    source = "Rare",
    expansion = "Draenor",
    reset = "repeatable",
    dropChance = "Garantizada si participas en la muerte",
    method = "Drop de Nok-Karosh en Frostfire Ridge.",
    route = "Frostfire Ridge > Nok-Karosh",
    note = "Rare de mundo abierto; buen objetivo para grupos de farmeo."
  },
  {
    name = "Voidtalon of the Dark Star",
    mountID = 682,
    itemID = 121815,
    spellID = 179478,
    boss = "Edge of Reality portal",
    zone = "Draenor",
    source = "Secret",
    expansion = "Draenor",
    reset = "special",
    dropChance = "Garantizada si entras al portal correcto",
    method = "Find an Edge of Reality portal in Draenor and loot the Voidtalon egg inside.",
    route = "Draenor rare portal spawn > Edge of Reality > Voidtalon egg",
    note = "Busca portales Edge of Reality en zonas de Draenor."
  },
  {
    name = "Ironhoof Destroyer",
    mountID = 613,
    itemID = 116660,
    spellID = 171621,
    boss = "Blackhand",
    zone = "Blackrock Foundry",
    source = "Raid",
    expansion = "Draenor",
    reset = "weekly",
    dropChance = "Muy baja",
    method = "Drop de Blackhand en Blackrock Foundry Mythic.",
    route = "Blackrock Foundry Mythic > Blackhand",
    note = "Mythic. Un intento semanal por personaje."
  },
  {
    name = "Felsteel Annihilator",
    mountID = 751,
    itemID = 123890,
    spellID = 182912,
    boss = "Archimonde",
    zone = "Hellfire Citadel",
    source = "Raid",
    expansion = "Draenor",
    reset = "weekly",
    dropChance = "Muy baja",
    method = "Drop de Archimonde en Hellfire Citadel Mythic.",
    route = "Hellfire Citadel Mythic > Archimonde",
    note = "Mythic. Un intento semanal por personaje."
  },

  -- Legion
  {
    name = "Fathom Dweller",
    mountID = 838,
    itemID = 138201,
    spellID = 223018,
    boss = "Kosumoth the Hungering",
    zone = "Broken Isles",
    source = "Secret",
    expansion = "Legion",
    reset = "special",
    method = "Desbloquea el secreto de los orbes de Kosumoth y completa la world quest cuando la recompensa sea la montura.",
    route = "Broken Isles > secreto de orbes > Kosumoth the Hungering world quest",
    note = "Requiere desbloquear el secreto de los orbes antes de poder obtener la recompensa."
  },
  {
    name = "Long-Forgotten Hippogryph",
    mountID = 802,
    itemID = 138258,
    spellID = 215159,
    boss = "Ephemeral Crystal",
    zone = "Azsuna",
    source = "Secret",
    expansion = "Legion",
    reset = "special",
    method = "Encuentra y toca cinco Ephemeral Crystals en Azsuna dentro del tiempo de vida de los cristales.",
    route = "Azsuna > cinco Ephemeral Crystals",
    note = "Encuentra y toca cinco cristales efimeros antes que otros jugadores."
  },
  {
    name = "Abyss Worm",
    mountID = 899,
    itemID = 143643,
    spellID = 232519,
    boss = "Mistress Sassz'ine",
    zone = "Tomb of Sargeras",
    source = "Raid",
    expansion = "Legion",
    reset = "weekly",
    dropChance = "Muy baja",
    method = "Drop de Mistress Sassz'ine en Tomb of Sargeras.",
    route = "Tomb of Sargeras > Mistress Sassz'ine",
    note = "Drop de raid. Un intento semanal por personaje."
  },
  {
    name = "Antoran Charhound",
    mountID = 971,
    itemID = 152816,
    spellID = 253088,
    boss = "Felhounds of Sargeras",
    zone = "Antorus, the Burning Throne",
    source = "Raid",
    expansion = "Legion",
    reset = "weekly",
    dropChance = "Muy baja",
    method = "Drop de Felhounds of Sargeras en Antorus, the Burning Throne.",
    route = "Antorus, the Burning Throne > Felhounds of Sargeras",
    note = "Drop de raid. Un intento semanal por personaje."
  },
  {
    name = "Shackled Ur'zul",
    mountID = 954,
    itemID = 152789,
    spellID = 243651,
    boss = "Argus the Unmaker",
    zone = "Antorus, the Burning Throne",
    source = "Raid",
    expansion = "Legion",
    reset = "weekly",
    dropChance = "Muy baja",
    method = "Drop de Argus the Unmaker en Antorus Mythic.",
    route = "Antorus, the Burning Throne Mythic > Argus the Unmaker",
    note = "Mythic. Un intento semanal por personaje."
  },
  {
    name = "Maddened Chaosrunner",
    mountID = 970,
    itemID = 152814,
    spellID = 253058,
    boss = "Wrangler Kravos",
    zone = "Mac'Aree",
    source = "Rare",
    expansion = "Legion",
    reset = "daily",
    dropChance = "Muy baja",
    method = "Drop del rare Wrangler Kravos en Mac'Aree.",
    route = "Mac'Aree > Wrangler Kravos",
    note = "Rare de Argus."
  },
  {
    name = "Lambent Mana Ray",
    mountID = 973,
    itemID = 152844,
    spellID = 253107,
    boss = "Venorn",
    zone = "Mac'Aree",
    source = "Rare",
    expansion = "Legion",
    reset = "daily",
    dropChance = "Muy baja",
    method = "Drop del rare Venorn en Mac'Aree.",
    route = "Mac'Aree > Venorn",
    note = "Rare de Argus."
  },

  -- Battle for Azeroth
  {
    name = "Sharkbait",
    mountID = 995,
    itemID = 159842,
    spellID = 254813,
    boss = "Harlan Sweete",
    zone = "Freehold",
    source = "Dungeon",
    expansion = "BFA",
    reset = "weekly",
    dropChance = "Muy baja",
    method = "Drop de Harlan Sweete en Freehold Mythic.",
    route = "Freehold Mythic > Harlan Sweete",
    note = "Mythic. Un intento semanal por personaje; Mythic+ puede dar mas oportunidades segun temporada."
  },
  {
    name = "Tomb Stalker",
    mountID = 1040,
    itemID = 159921,
    spellID = 266058,
    boss = "King Dazar",
    zone = "Kings' Rest",
    source = "Dungeon",
    expansion = "BFA",
    reset = "weekly",
    dropChance = "Muy baja",
    method = "Drop de King Dazar en Kings' Rest Mythic.",
    route = "Kings' Rest Mythic > King Dazar",
    note = "Mythic. Un intento semanal por personaje."
  },
  {
    name = "Underrot Crawg",
    mountID = 1053,
    itemID = 160829,
    spellID = 273541,
    boss = "Unbound Abomination",
    zone = "The Underrot",
    source = "Dungeon",
    expansion = "BFA",
    reset = "weekly",
    dropChance = "Muy baja",
    method = "Drop de Unbound Abomination en The Underrot Mythic.",
    route = "The Underrot Mythic > Unbound Abomination",
    note = "Mythic. Un intento semanal por personaje."
  },
  {
    name = "Mechagon Peacekeeper",
    mountID = 1252,
    itemID = 168826,
    spellID = 299158,
    boss = "HK-8 Aerial Oppression Unit",
    zone = "Operation: Mechagon",
    source = "Dungeon",
    expansion = "BFA",
    reset = "weekly",
    dropChance = "Muy baja",
    method = "Drop de HK-8 Aerial Oppression Unit en Operation: Mechagon Hard Mode.",
    route = "Operation: Mechagon Mythic > Hard Mode > HK-8 Aerial Oppression Unit",
    note = "Hard mode / Mythic."
  },
  {
    name = "G.M.O.D.",
    mountID = 1217,
    itemID = 166518,
    spellID = 289083,
    boss = "High Tinker Mekkatorque",
    zone = "Battle of Dazar'alor",
    source = "Raid",
    expansion = "BFA",
    reset = "weekly",
    dropChance = "Muy baja",
    method = "Drop de High Tinker Mekkatorque en Battle of Dazar'alor.",
    route = "Battle of Dazar'alor > High Tinker Mekkatorque",
    note = "Drop de raid."
  },
  {
    name = "Glacial Tidestorm",
    mountID = 1219,
    itemID = 166705,
    spellID = 289555,
    boss = "Lady Jaina Proudmoore",
    zone = "Battle of Dazar'alor",
    source = "Raid",
    expansion = "BFA",
    reset = "weekly",
    dropChance = "Muy baja",
    method = "Drop de Lady Jaina Proudmoore en Battle of Dazar'alor Mythic.",
    route = "Battle of Dazar'alor Mythic > Lady Jaina Proudmoore",
    note = "Mythic. Drop bajo despues de BFA."
  },
  {
    name = "Ny'alotha Allseer",
    mountID = 1293,
    itemID = 174872,
    spellID = 308814,
    boss = "N'Zoth the Corruptor",
    zone = "Ny'alotha, the Waking City",
    source = "Raid",
    expansion = "BFA",
    reset = "weekly",
    dropChance = "Muy baja",
    method = "Drop de N'Zoth the Corruptor en Ny'alotha Mythic.",
    route = "Ny'alotha, the Waking City Mythic > N'Zoth the Corruptor",
    note = "Mythic. Drop bajo despues de BFA."
  },
  {
    name = "Silent Glider",
    mountID = 1257,
    itemID = 169163,
    spellID = 300149,
    boss = "Soundless",
    zone = "Nazjatar",
    source = "Rare",
    expansion = "BFA",
    reset = "daily",
    dropChance = "Muy baja",
    method = "Drop del rare Soundless en Nazjatar.",
    route = "Nazjatar > Soundless",
    note = "Rare de Nazjatar."
  },
  {
    name = "Rusty Mechanocrawler",
    mountID = 1229,
    itemID = 168823,
    spellID = 291492,
    boss = "Arachnoid Harvester",
    zone = "Mechagon",
    source = "Rare",
    expansion = "BFA",
    reset = "daily",
    dropChance = "Muy baja",
    method = "Drop del rare Arachnoid Harvester en Mechagon.",
    route = "Mechagon > Arachnoid Harvester",
    note = "Rare de Mechagon."
  },
  {
    name = "Mollie",
    mountID = 1250,
    itemID = 174842,
    spellID = 298367,
    boss = "Dunegorger Kraulok",
    zone = "Vol'dun",
    source = "World boss",
    expansion = "BFA",
    reset = "weekly",
    dropChance = "Muy baja",
    method = "Drop de Dunegorger Kraulok cuando esta activo como world boss.",
    route = "Vol'dun > Dunegorger Kraulok world boss",
    note = "World boss de BFA cuando esta activo."
  },

  -- Shadowlands
  {
    name = "Marrowfang",
    mountID = 1406,
    itemID = 181819,
    spellID = 336036,
    boss = "Nalthor the Rimebinder",
    zone = "The Necrotic Wake",
    source = "Dungeon",
    expansion = "Shadowlands",
    reset = "weekly",
    dropChance = "Muy baja",
    method = "Drop de Nalthor the Rimebinder en The Necrotic Wake Mythic.",
    route = "The Necrotic Wake Mythic > Nalthor the Rimebinder",
    note = "Mythic. Un intento semanal por personaje."
  },
  {
    name = "Cartel Master's Gearglider",
    mountID = 1481,
    itemID = 186638,
    spellID = 353263,
    boss = "So'leah",
    zone = "Tazavesh, the Veiled Market",
    source = "Dungeon",
    expansion = "Shadowlands",
    reset = "weekly",
    dropChance = "Muy baja",
    method = "Drop de So'leah en Tazavesh, the Veiled Market Hard Mode.",
    route = "Tazavesh, the Veiled Market Mythic > Hard Mode > So'leah",
    note = "Hard mode / Mythic."
  },
  {
    name = "Sanctum Gloomcharger",
    mountID = 1500,
    itemID = 186656,
    spellID = 354351,
    boss = "The Nine",
    zone = "Sanctum of Domination",
    source = "Raid",
    expansion = "Shadowlands",
    reset = "weekly",
    dropChance = "Muy baja",
    method = "Drop de The Nine en Sanctum of Domination.",
    route = "Sanctum of Domination > The Nine",
    note = "Drop de raid."
  },
  {
    name = "Vengeance",
    mountID = 1471,
    itemID = 186642,
    spellID = 351195,
    boss = "Sylvanas Windrunner",
    zone = "Sanctum of Domination",
    source = "Raid",
    expansion = "Shadowlands",
    reset = "weekly",
    dropChance = "Muy baja",
    method = "Drop de Sylvanas Windrunner en Sanctum of Domination Mythic.",
    route = "Sanctum of Domination Mythic > Sylvanas Windrunner",
    note = "Mythic. Drop bajo despues de Shadowlands."
  },
  {
    name = "Zereth Overseer",
    mountID = 1587,
    itemID = 190768,
    spellID = 368158,
    boss = "The Jailer",
    zone = "Sepulcher of the First Ones",
    source = "Raid",
    expansion = "Shadowlands",
    reset = "weekly",
    dropChance = "Muy baja",
    method = "Drop de The Jailer en Sepulcher of the First Ones Mythic.",
    route = "Sepulcher of the First Ones Mythic > The Jailer",
    note = "Mythic. Drop bajo despues de Shadowlands."
  },
  {
    name = "Fallen Charger",
    mountID = 1502,
    itemID = 186659,
    spellID = 354353,
    boss = "Fallen Charger",
    zone = "The Maw",
    source = "Rare",
    expansion = "Shadowlands",
    reset = "repeatable",
    dropChance = "Muy baja",
    method = "Drop del rare Fallen Charger durante su ruta por The Maw.",
    route = "The Maw > Fallen Charger patrol route",
    note = "Rare con ruta por The Maw."
  },
  {
    name = "Arboreal Gulper",
    mountID = 1415,
    itemID = 182650,
    spellID = 339632,
    boss = "Humon'gozz",
    zone = "Ardenweald",
    source = "Rare",
    expansion = "Shadowlands",
    reset = "daily",
    dropChance = "Muy baja",
    method = "Usa Unusually Large Mushroom para invocar a Humon'gozz y derrotarlo.",
    route = "Ardenweald > Unusually Large Mushroom > Humon'gozz",
    note = "Usa Unusually Large Mushroom para invocarlo."
  },
  {
    name = "Wildseed Cradle",
    mountID = 1397,
    itemID = 180731,
    spellID = 334352,
    boss = "Cache of the Moon",
    zone = "Ardenweald",
    source = "Secret",
    expansion = "Shadowlands",
    reset = "special",
    method = "Encuentra las herramientas perdidas de Twinklestar y abre Cache of the Moon en Ardenweald.",
    route = "Ardenweald > Twinklestar tools > Cache of the Moon",
    note = "Tesoro/secreto de Ardenweald."
  },

  -- Dragonflight
  {
    name = "Liberated Slyvern",
    mountID = 1553,
    itemID = 201440,
    spellID = 359622,
    boss = "Breezebiter",
    zone = "The Azure Span",
    source = "Rare",
    expansion = "Dragonflight",
    reset = "daily",
    dropChance = "Muy baja",
    method = "Drop del rare Breezebiter en The Azure Span.",
    route = "The Azure Span > Breezebiter",
    note = "Rare de Dragonflight."
  },
  {
    name = "Zenet Hatchling",
    mountID = 1672,
    itemID = 198825,
    spellID = 385266,
    boss = "Zenet Avis",
    zone = "Ohn'ahran Plains",
    source = "Rare",
    expansion = "Dragonflight",
    reset = "daily",
    dropChance = "Muy baja",
    method = "Drop del rare Zenet Avis en Ohn'ahran Plains.",
    route = "Ohn'ahran Plains > Zenet Avis",
    note = "Rare de Dragonflight."
  },
  {
    name = "Magmashell",
    mountID = 1469,
    itemID = 192777,
    spellID = 350219,
    boss = "Empowered Snail",
    zone = "The Waking Shores",
    source = "Secret",
    expansion = "Dragonflight",
    reset = "special",
    method = "Obtén Empty Magma Shell y úsalo sobre Empowered Snail en The Waking Shores.",
    route = "The Waking Shores > Empty Magma Shell > Empowered Snail",
    note = "Requiere Empty Magma Shell."
  },
  {
    name = "Divine Kiss of Ohn'ahra",
    mountID = 1545,
    spellID = 395644,
    boss = "Godoloto",
    zone = "Ohn'ahran Plains",
    source = "Quest",
    expansion = "Dragonflight",
    reset = "special",
    requirement = "Maruuk Centaur reputation and Ohn'ahra questline requirements.",
    method = "Complete the special Ohn'ahra questline with Godoloto after meeting Maruuk Centaur requirements.",
    route = "Ohn'ahran Plains > Ohn'iri Springs > Godoloto",
    note = "Cadena especial con reputacion de Maruuk Centaur."
  },
  {
    name = "Reins of the Quantum Courser",
    itemID = 208216,
    boss = "Chrono-Lord Deios",
    zone = "Dawn of the Infinite",
    source = "Dungeon",
    expansion = "Dragonflight",
    reset = "weekly",
    dropChance = "Muy baja",
    method = "Drop de Chrono-Lord Deios en Dawn of the Infinite; el item enseña una montura de dungeon antigua que no tengas.",
    route = "Dawn of the Infinite Mythic > Chrono-Lord Deios",
    note = "Puede enseniar una montura de dungeon antigua que no tengas."
  },
  {
    name = "Anu'relos, Flame's Guidance",
    mountID = 1818,
    itemID = 210061,
    spellID = 424484,
    boss = "Fyrakk",
    zone = "Amirdrassil, the Dream's Hope",
    source = "Raid",
    expansion = "Dragonflight",
    reset = "weekly",
    dropChance = "Muy baja",
    method = "Drop de Fyrakk en Amirdrassil Mythic.",
    route = "Amirdrassil, the Dream's Hope Mythic > Fyrakk",
    note = "Mythic. Drop bajo despues de Dragonflight."
  },
  {
    name = "Shadow Dusk Dreamsaber",
    mountID = 1814,
    itemID = 210060,
    spellID = 424474,
    boss = "Glory of the Dream Raider",
    zone = "Amirdrassil, the Dream's Hope",
    source = "Achievement",
    expansion = "Dragonflight",
    reset = "special",
    requirement = "Glory of the Dream Raider",
    method = "Complete the Amirdrassil raid meta-achievement Glory of the Dream Raider.",
    route = "Glory of the Dream Raider",
    note = "Recompensa del meta-logro de Amirdrassil."
  },

  -- The War Within
  {
    name = "Alunira",
    mountID = 2176,
    itemID = 223270,
    spellID = 447213,
    boss = "Alunira",
    zone = "Isle of Dorn",
    source = "Rare",
    expansion = "The War Within",
    reset = "special",
    method = "Gather Crackling Shards, remove Alunira's shield, then defeat Alunira.",
    route = "Isle of Dorn > gather Crackling Shards > remove Alunira's shield > defeat Alunira",
    coordinates = "45.2, 67.8",
    waypointZone = { enUS = "Isle of Dorn", esMX = "Isla de Dorn", esES = "Isla de Dorn" },
    requirements = {
      { text = "Campana completada", status = "ok" },
      { text = "Item especial", status = "missing" }
    },
    respawn = "30-60 min",
    dropChance = "100%",
    macro = "/target Alunira",
    note = "Requiere reunir Crackling Shards para quitarle el escudo."
  },
  {
    name = "Beledar's Spawn",
    mountID = 2192,
    itemID = 223315,
    spellID = 448941,
    boss = "Beledar's Spawn",
    zone = "Hallowfall",
    source = "Rare",
    expansion = "The War Within",
    reset = "daily",
    dropChance = "Muy baja",
    method = "Drop de Beledar's Spawn cuando aparece durante el ciclo de Beledar.",
    route = "Hallowfall > Beledar cycle > Beledar's Spawn",
    note = "Rare asociado al ciclo de Beledar."
  },
  {
    name = "Siesbarg",
    mountID = 2222,
    itemID = 224150,
    spellID = 451489,
    boss = "Tka'ktath",
    zone = "Azj-Kahet",
    source = "Quest",
    expansion = "The War Within",
    reset = "special",
    method = "Obtén el drop raro de Tka'ktath e inicia la cadena/grindeo para conseguir Siesbarg.",
    route = "Azj-Kahet > Tka'ktath > Siesbarg questline",
    note = "Cadena/grindeo que empieza con drop raro."
  },
  {
    name = "Delver's Dirigible",
    mountID = 2144,
    itemID = 219391,
    spellID = 446052,
    boss = "Ship It!",
    zone = "Khaz Algar",
    source = "Quest",
    expansion = "The War Within",
    reset = "special",
    method = "Complete the Delves introduction quest Ship It! to receive the customizable Delver's Dirigible.",
    route = "Dornogal > Delves introduction > Ship It!",
    note = "Montura personalizable de la introduccion a Delves."
  },
  {
    name = "Ivory Goliathus",
    mountID = 2230,
    itemID = 224415,
    spellID = 452779,
    boss = "Glory of the War Within Delver",
    zone = "Khaz Algar Delves",
    source = "Achievement",
    expansion = "The War Within",
    reset = "special",
    requirement = "Glory of the War Within Delver",
    method = "Complete the War Within Delves meta-achievement.",
    route = "Glory of the War Within Delver",
    note = "Recompensa del meta-logro de Delves."
  },
  {
    name = "Stonevault Mechsuit",
    mountID = 2119,
    itemID = 221765,
    spellID = 442358,
    boss = "Void Speaker Eirich",
    zone = "The Stonevault",
    source = "Dungeon",
    expansion = "The War Within",
    reset = "weekly",
    dropChance = "Muy baja",
    method = "Drop indirecto/quest item de Void Speaker Eirich en The Stonevault Mythic o Mythic+.",
    route = "The Stonevault Mythic/Mythic+ > Void Speaker Eirich",
    note = "Drop indirecto por item de quest; Mythic o Mythic+."
  },
  {
    name = "Wick",
    mountID = 2204,
    itemID = 225548,
    spellID = 449264,
    boss = "The Darkness",
    zone = "Darkflame Cleft",
    source = "Dungeon",
    expansion = "The War Within",
    reset = "weekly",
    dropChance = "Muy baja",
    method = "Drop de The Darkness en Darkflame Cleft Mythic o Mythic+.",
    route = "Darkflame Cleft Mythic/Mythic+ > The Darkness",
    note = "Drop de Mythic o Mythic+."
  },
  {
    name = "Diamond Mechsuit",
    mountID = 2244,
    itemID = 226357,
    spellID = 458335,
    boss = "The War Within Keystone Master: Season One",
    zone = "Khaz Algar",
    source = "Achievement",
    expansion = "The War Within",
    reset = "special",
    requirement = "Timelost Saddle or original The War Within Season 1 Keystone Master reward.",
    method = "Earn or purchase through the Mythic+ Timelost Saddle system; originally from The War Within Season 1.",
    route = "Mythic+ > Timelost Saddle",
    note = "Listado por Simple Armory bajo Timelost Saddle."
  },
  {
    name = "Crimson Shreddertank",
    mountID = 2480,
    itemID = 235549,
    spellID = 1217235,
    boss = "The War Within Keystone Master: Season Two",
    zone = "Undermine",
    source = "Achievement",
    expansion = "The War Within",
    reset = "special",
    requirement = "Timelost Saddle or original The War Within Season 2 Keystone Master reward.",
    method = "Earn or purchase through the Mythic+ Timelost Saddle system; originally from The War Within Season 2.",
    route = "Mythic+ > Timelost Saddle",
    note = "Listado por Simple Armory bajo Timelost Saddle."
  },
  {
    name = "Sureki Skyrazor",
    mountID = 2219,
    itemID = 224147,
    spellID = 451486,
    boss = "Queen Ansurek",
    zone = "Nerub-ar Palace",
    source = "Raid",
    expansion = "The War Within",
    reset = "weekly",
    dropChance = "Muy baja",
    method = "Drop de Queen Ansurek en Nerub-ar Palace en cualquier dificultad.",
    route = "Nerub-ar Palace > Queen Ansurek",
    note = "Drop extremadamente raro en cualquier dificultad."
  },
  {
    name = "Ascendant Skyrazor",
    mountID = 2223,
    itemID = 224151,
    spellID = 451491,
    boss = "Queen Ansurek",
    zone = "Nerub-ar Palace",
    source = "Raid",
    expansion = "The War Within",
    reset = "weekly",
    dropChance = "Muy baja",
    method = "Drop de Queen Ansurek en Nerub-ar Palace Mythic.",
    route = "Nerub-ar Palace Mythic > Queen Ansurek",
    note = "Mythic. Drop bajo despues de The War Within."
  },
  {
    name = "Shadowed Swarmite",
    mountID = 2180,
    itemID = 223266,
    spellID = 447190,
    boss = "Glory of the Nerub-ar Raider",
    zone = "Nerub-ar Palace",
    source = "Achievement",
    expansion = "The War Within",
    reset = "special",
    requirement = "Glory of the Nerub-ar Raider",
    method = "Complete the Nerub-ar Palace raid meta-achievement.",
    route = "Glory of the Nerub-ar Raider",
    note = "Recompensa del meta-logro de Nerub-ar Palace."
  },
  {
    name = "Prototype A.S.M.R.",
    mountID = 2507,
    itemID = 236960,
    spellID = 1221155,
    boss = "Chrome King Gallywix",
    zone = "Liberation of Undermine",
    source = "Raid",
    expansion = "The War Within",
    reset = "weekly",
    dropChance = "Muy baja",
    method = "Drop de Chrome King Gallywix en Liberation of Undermine en cualquier dificultad.",
    route = "Liberation of Undermine > Chrome King Gallywix",
    note = "Drop extremadamente raro en cualquier dificultad."
  },
  {
    name = "The Big G",
    mountID = 2487,
    itemID = 235626,
    spellID = 1217760,
    boss = "Chrome King Gallywix",
    zone = "Liberation of Undermine",
    source = "Raid",
    expansion = "The War Within",
    reset = "weekly",
    dropChance = "Muy baja",
    method = "Drop de Chrome King Gallywix en Liberation of Undermine Mythic.",
    route = "Liberation of Undermine Mythic > Chrome King Gallywix",
    note = "Mythic. Drop bajo despues de The War Within."
  },
  {
    name = "Junkmaestro's Magnetomech",
    mountID = 2313,
    itemID = 231173,
    spellID = 468068,
    boss = "Glory of the Liberation of Undermine Raider",
    zone = "Liberation of Undermine",
    source = "Achievement",
    expansion = "The War Within",
    reset = "special",
    requirement = "Glory of the Liberation of Undermine Raider",
    method = "Complete the Liberation of Undermine raid meta-achievement.",
    route = "Glory of the Liberation of Undermine Raider",
    note = "Recompensa del meta-logro de Liberation of Undermine."
  },
  {
    name = "Crimson Mudnose",
    mountID = 2209,
    itemID = 223505,
    spellID = 449269,
    boss = "Waxmonger Squick",
    vendor = "Waxmonger Squick",
    zone = "The Ringing Deeps",
    source = "Reputation",
    expansion = "The War Within",
    reset = "special",
    cost = "8,125 Resonance Crystals",
    requirement = "The Assembly of the Deeps Renown 19",
    reputation = "The Assembly of the Deeps",
    method = "Buy from Waxmonger Squick after reaching The Assembly of the Deeps Renown 19.",
    route = "The Ringing Deeps > Gundargaz > Waxmonger Squick",
    note = "Recompensa de renombre de The Assembly of the Deeps."
  },
  {
    name = "Cyan Glowmite",
    mountID = 2162,
    itemID = 222989,
    spellID = 447176,
    boss = "Waxmonger Squick",
    vendor = "Waxmonger Squick",
    zone = "The Ringing Deeps",
    source = "Reputation",
    expansion = "The War Within",
    reset = "special",
    cost = "11,375 Resonance Crystals",
    requirement = "The Assembly of the Deeps Renown 23",
    reputation = "The Assembly of the Deeps",
    method = "Buy from Waxmonger Squick after reaching The Assembly of the Deeps Renown 23.",
    route = "The Ringing Deeps > Gundargaz > Waxmonger Squick",
    note = "Recompensa de renombre de The Assembly of the Deeps."
  },
  {
    name = "The Breaker's Song",
    mountID = 2332,
    itemID = 232991,
    spellID = 472752,
    boss = "Isle Remember You",
    zone = "Siren Isle",
    source = "Achievement",
    expansion = "The War Within",
    reset = "special",
    requirement = "Isle Remember You",
    method = "Complete the Siren Isle achievement Isle Remember You.",
    route = "Siren Isle > Isle Remember You",
    note = "Recompensa de logro en Siren Isle."
  },

  -- Event mounts
  {
    name = "X-45 Heartbreaker",
    mountID = 352,
    itemID = 50250,
    spellID = 71342,
    boss = "Apothecary Hummel",
    zone = "Shadowfang Keep",
    source = "Event",
    expansion = "Wrath",
    reset = "event",
    eventName = "Love is in the Air",
    dropChance = "Muy baja",
    method = "Chance from the daily event reward during Love is in the Air.",
    route = "Durante Love is in the Air > cola del evento > Apothecary Hummel > abrir Heart-Shaped Box una vez al dia por personaje",
    note = "Disponible solo durante el evento."
  },
  {
    name = "Headless Horseman's Mount",
    mountID = 219,
    itemID = 37012,
    spellID = 48025,
    boss = "Headless Horseman",
    zone = "Scarlet Monastery",
    source = "Event",
    expansion = "Burning Crusade",
    reset = "event",
    eventName = "Hallow's End",
    dropChance = "Muy baja",
    method = "Chance from Loot-Filled Pumpkin during Hallow's End after defeating Headless Horseman.",
    route = "Durante Hallow's End > cola del evento > Headless Horseman > abrir Loot-Filled Pumpkin una vez al dia por personaje",
    note = "Disponible solo durante el evento."
  },
  {
    name = "Great Brewfest Kodo",
    mountID = 226,
    itemID = 37828,
    spellID = 49379,
    boss = "Coren Direbrew",
    zone = "Blackrock Depths",
    source = "Event",
    expansion = "Burning Crusade",
    reset = "event",
    eventName = "Brewfest",
    dropChance = "Baja",
    method = "Chance from Keg-Shaped Treasure Chest during Brewfest after defeating Coren Direbrew.",
    route = "Durante Brewfest > cola del evento > Coren Direbrew > abrir Keg-Shaped Treasure Chest una vez al dia por personaje",
    note = "Disponible solo durante el evento."
  },
  {
    name = "Swift Brewfest Ram",
    mountID = 202,
    itemID = 33977,
    spellID = 43900,
    boss = "Coren Direbrew",
    zone = "Blackrock Depths",
    source = "Event",
    expansion = "Burning Crusade",
    reset = "event",
    eventName = "Brewfest",
    dropChance = "Baja",
    method = "Chance from Keg-Shaped Treasure Chest during Brewfest after defeating Coren Direbrew.",
    route = "Durante Brewfest > cola del evento > Coren Direbrew > abrir Keg-Shaped Treasure Chest una vez al dia por personaje",
    note = "Disponible solo durante el evento."
  },
  {
    name = "Infinite Timereaver",
    mountID = 781,
    itemID = 133543,
    spellID = 201098,
    boss = "Timewalking dungeon bosses",
    zone = "Timewalking",
    source = "Event",
    expansion = "Draenor",
    reset = "event",
    eventName = "Timewalking",
    dropChance = "Muy baja",
    method = "Rare drop from Timewalking dungeon bosses while any Timewalking event is active.",
    route = "Durante Timewalking > encadenar calabozos Timewalking > loot de jefes",
    note = "Drop repetible mientras el evento de Timewalking esta activo."
  },

  -- Vendor and reputation mounts
  {
    name = "Grand Expedition Yak",
    mountID = 460,
    itemID = 84101,
    spellID = 122708,
    boss = "Uncle Bigpocket",
    vendor = "Uncle Bigpocket",
    zone = "Kun-Lai Summit",
    source = "Vendor",
    expansion = "Pandaria",
    reset = "special",
    cost = "120,000 gold",
    method = "Buy from Uncle Bigpocket at the Grummle Bazaar in Kun-Lai Summit.",
    route = "Kun-Lai Summit > Grummle Bazaar > Uncle Bigpocket",
    note = "Grummle Bazaar. Montura con vendedor, reparador y transfigurador."
  },
  {
    name = "Grey Riding Yak",
    mountID = 486,
    itemID = 87788,
    spellID = 127216,
    boss = "Uncle Bigpocket",
    vendor = "Uncle Bigpocket",
    zone = "Kun-Lai Summit",
    source = "Vendor",
    expansion = "Pandaria",
    reset = "special",
    cost = "3,000 gold",
    method = "Buy from Uncle Bigpocket at the Grummle Bazaar in Kun-Lai Summit.",
    route = "Kun-Lai Summit > Grummle Bazaar > Uncle Bigpocket",
    note = "Grummle Bazaar."
  },
  {
    name = "Blonde Riding Yak",
    mountID = 487,
    itemID = 87789,
    spellID = 127220,
    boss = "Uncle Bigpocket",
    vendor = "Uncle Bigpocket",
    zone = "Kun-Lai Summit",
    source = "Vendor",
    expansion = "Pandaria",
    reset = "special",
    cost = "3,000 gold",
    method = "Buy from Uncle Bigpocket at the Grummle Bazaar in Kun-Lai Summit.",
    route = "Kun-Lai Summit > Grummle Bazaar > Uncle Bigpocket",
    note = "Grummle Bazaar."
  },
  {
    name = "Bloodfang Widow",
    mountID = 663,
    itemID = 137570,
    spellID = 213115,
    boss = "The Mad Merchant",
    vendor = "The Mad Merchant",
    zone = "Dalaran (Broken Isles)",
    source = "Vendor",
    expansion = "Legion",
    reset = "special",
    cost = "2,000,000 gold",
    requirement = "The Mad Merchant must be spawned",
    method = "Buy from The Mad Merchant when he appears in The Wonderworks in Legion Dalaran.",
    route = "Dalaran (Broken Isles) > The Wonderworks > The Mad Merchant",
    note = "Vendedor raro de la tienda The Wonderworks en Dalaran de Legion."
  },
  {
    name = "Green Marsh Hopper",
    mountID = 1012,
    itemID = 163183,
    spellID = 259740,
    boss = "Gottum",
    vendor = "Gottum",
    zone = "Nazmir",
    source = "Vendor",
    expansion = "BFA",
    reset = "special",
    cost = "333,333 gold",
    method = "Buy from Gottum in The Frogmarsh, Nazmir.",
    route = "Nazmir > The Frogmarsh > Gottum",
    note = "The Frogmarsh, Nazmir."
  },
  {
    name = "Blue Marsh Hopper",
    mountID = 1206,
    itemID = 166442,
    spellID = 288587,
    boss = "Gottum",
    vendor = "Gottum",
    zone = "Nazmir",
    source = "Vendor",
    expansion = "BFA",
    reset = "special",
    cost = "333,333 gold",
    method = "Buy from Gottum in The Frogmarsh, Nazmir.",
    route = "Nazmir > The Frogmarsh > Gottum",
    note = "The Frogmarsh, Nazmir."
  },
  {
    name = "Yellow Marsh Hopper",
    mountID = 1207,
    itemID = 166443,
    spellID = 288589,
    boss = "Gottum",
    vendor = "Gottum",
    zone = "Nazmir",
    source = "Vendor",
    expansion = "BFA",
    reset = "special",
    cost = "333,333 gold",
    method = "Buy from Gottum in The Frogmarsh, Nazmir.",
    route = "Nazmir > The Frogmarsh > Gottum",
    note = "The Frogmarsh, Nazmir."
  },
  {
    name = "Palehide Direhorn",
    mountID = 1179,
    itemID = 163589,
    spellID = 279474,
    boss = "Talutu / Tricky Nick",
    vendor = "Talutu / Tricky Nick",
    zone = "Zuldazar / Tiragarde Sound",
    source = "Vendor",
    expansion = "BFA",
    reset = "special",
    cost = "500,000 gold",
    method = "Buy from Talutu in Zuldazar on Horde or Tricky Nick in Tiragarde Sound on Alliance.",
    route = "Zuldazar > Talutu / Tiragarde Sound > Tricky Nick",
    note = "Talutu para Horda; Tricky Nick para Alianza."
  },
  {
    name = "Noble Bruffalon",
    mountID = 1467,
    itemID = 204382,
    spellID = 349935,
    boss = "Storykeeper Ashekh",
    vendor = "Storykeeper Ashekh",
    zone = "The Forbidden Reach",
    source = "Vendor",
    expansion = "Dragonflight",
    reset = "special",
    cost = "100,000 Elemental Overflow",
    method = "Buy from Storykeeper Ashekh in Morqut Village on The Forbidden Reach.",
    route = "The Forbidden Reach > Morqut Village > Storykeeper Ashekh",
    note = "Morqut Village, The Forbidden Reach."
  },
  {
    name = "Iskaara Trader's Ottuk",
    mountID = 1546,
    itemID = 198871,
    spellID = 359409,
    boss = "Tattukiaka",
    vendor = "Tattukiaka",
    zone = "Iskaara",
    source = "Vendor",
    expansion = "Dragonflight",
    reset = "special",
    cost = "2 raid necklaces",
    requirement = "Terros's Captive Core and Eye of the Vengeful Hurricane",
    method = "Trade the required Vault of the Incarnates necklaces to Tattukiaka in Iskaara.",
    route = "The Azure Span > Iskaara > Tattukiaka",
    note = "Intercambio con objetos de Vault of the Incarnates."
  },
  {
    name = "Ivory Trader's Ottuk",
    mountID = 1658,
    itemID = 198873,
    spellID = 376879,
    boss = "Tattukiaka",
    vendor = "Tattukiaka",
    zone = "Iskaara",
    source = "Vendor",
    expansion = "Dragonflight",
    reset = "special",
    cost = "3 dungeon rings",
    requirement = "Thunderous Downburst Ring, Unstable Arcane Loop and Platinum Star Band",
    method = "Trade the required Dragonflight dungeon rings to Tattukiaka in Iskaara.",
    route = "The Azure Span > Iskaara > Tattukiaka",
    note = "Intercambio con anillos de mazmorras de Dragonflight."
  },
  {
    name = "Stormhide Salamanther",
    mountID = 1622,
    itemID = 192775,
    spellID = 374098,
    boss = "Mythressa",
    vendor = "Mythressa",
    zone = "Valdrakken",
    source = "Vendor",
    expansion = "Dragonflight",
    reset = "special",
    cost = "2,000 Elemental Overflow",
    method = "Buy from Mythressa in Valdrakken with Elemental Overflow.",
    route = "Valdrakken > Mythressa",
    note = "Vendedora de equipo de tormentas en Valdrakken."
  },
  {
    name = "Scrappy Worldsnail",
    mountID = 1629,
    itemID = 192786,
    spellID = 374162,
    boss = "Dealer Vexil",
    vendor = "Dealer Vexil",
    zone = "The Waking Shores",
    source = "Vendor",
    expansion = "Dragonflight",
    reset = "special",
    cost = "1,000 Magmotes",
    requirement = "Worldbreaker Membership",
    method = "Unlock Worldbreaker Membership, farm Magmotes and buy from Dealer Vexil.",
    route = "The Waking Shores > desbloquear Worldbreaker Membership > farmear Magmotes > Dealer Vexil",
    note = "Requiere desbloquear el farmeo de Worldbreaker Membership."
  },
  {
    name = "Subterranean Magmammoth",
    mountID = 1603,
    itemID = 191838,
    spellID = 371176,
    boss = "Saccratros",
    vendor = "Saccratros",
    zone = "Zaralek Cavern",
    source = "Vendor",
    expansion = "Dragonflight",
    reset = "special",
    cost = "100 Coveted Baubles",
    method = "Buy from Saccratros in Loamm with Coveted Baubles.",
    route = "Zaralek Cavern > Loamm > Saccratros",
    note = "Loamm, Zaralek Cavern."
  },
  {
    name = "Igneous Shalewing",
    mountID = 1730,
    itemID = 205197,
    spellID = 408627,
    boss = "Saccratros",
    vendor = "Saccratros",
    zone = "Zaralek Cavern",
    source = "Vendor",
    expansion = "Dragonflight",
    reset = "special",
    cost = "400 Coveted Baubles",
    method = "Buy from Saccratros in Loamm with Coveted Baubles.",
    route = "Zaralek Cavern > Loamm > Saccratros",
    note = "Loamm, Zaralek Cavern."
  },
  {
    name = "Duskwing Ohuna",
    mountID = 1671,
    itemID = 198824,
    spellID = 385262,
    boss = "Celestine of the Harvest",
    vendor = "Celestine of the Harvest",
    zone = "Dreamsurge zones",
    source = "Vendor",
    expansion = "Dragonflight",
    reset = "special",
    cost = "1,000 Dreamsurge Coalescence",
    method = "Buy from Celestine of the Harvest in the active Dreamsurge zone.",
    route = "Active Dreamsurge zone > Celestine of the Harvest",
    note = "Disponible en la zona activa de Dreamsurge."
  },
  {
    name = "Imagiwing",
    mountID = 1939,
    itemID = 210948,
    spellID = 427549,
    boss = "Elianna",
    vendor = "Elianna",
    zone = "Emerald Dream",
    source = "Vendor",
    expansion = "Dragonflight",
    reset = "special",
    cost = "1 Dream Infusion",
    requirement = "Dream Wardens Renown 5 and a compatible base mount",
    method = "Buy from Elianna with a Dream Infusion after unlocking Dream Infusion with Dream Wardens.",
    route = "Emerald Dream > Central Encampment > Elianna",
    note = "Dream Infusion desbloqueado con Dream Wardens."
  },
  {
    name = "Soaring Meaderbee",
    mountID = 2165,
    itemID = 223153,
    spellID = 447151,
    boss = "Cendvin",
    vendor = "Cendvin",
    zone = "Isle of Dorn",
    source = "Vendor",
    expansion = "The War Within",
    reset = "special",
    cost = "900 Sizzling Cinderpollen",
    method = "Farm Sizzling Cinderpollen from elites near Cinderbrew Meadery and buy the mount from Cendvin.",
    route = "Isle of Dorn > elites cerca de Cinderbrew Meadery > juntar Sizzling Cinderpollen > Cendvin",
    note = "La moneda se farmea de elites cerca de Cinderbrew Meadery."
  },
  {
    name = "Shale Ramolith",
    mountID = 2213,
    itemID = 223571,
    spellID = 449418,
    boss = "Auditor Balwurz",
    vendor = "Auditor Balwurz",
    zone = "Dornogal",
    source = "Reputation",
    expansion = "The War Within",
    reset = "special",
    cost = "8,125 Resonance Crystals",
    requirement = "Council of Dornogal Renown 18",
    reputation = "Council of Dornogal",
    method = "Buy from Auditor Balwurz after reaching Council of Dornogal Renown 18.",
    route = "Dornogal > subir Council of Dornogal Renown 18 > Auditor Balwurz",
    note = "Recompensa de renombre de Council of Dornogal."
  },
  {
    name = "Smoldering Cinderbee",
    mountID = 2148,
    itemID = 221753,
    spellID = 447057,
    boss = "Auditor Balwurz",
    vendor = "Auditor Balwurz",
    zone = "Dornogal",
    source = "Reputation",
    expansion = "The War Within",
    reset = "special",
    cost = "11,375 Resonance Crystals",
    requirement = "Council of Dornogal Renown 23",
    reputation = "Council of Dornogal",
    method = "Buy from Auditor Balwurz after reaching Council of Dornogal Renown 23.",
    route = "Dornogal > subir Council of Dornogal Renown 23 > Auditor Balwurz",
    note = "Recompensa de renombre de Council of Dornogal."
  },
  {
    name = "Vermillion Imperial Lynx",
    mountID = 2193,
    itemID = 223317,
    spellID = 448978,
    boss = "Auralia Steelstrike",
    vendor = "Auralia Steelstrike",
    zone = "Hallowfall",
    source = "Reputation",
    expansion = "The War Within",
    reset = "special",
    cost = "8,125 Resonance Crystals",
    requirement = "Hallowfall Arathi Renown 21",
    reputation = "Hallowfall Arathi",
    method = "Buy from Auralia Steelstrike after reaching Hallowfall Arathi Renown 21.",
    route = "Hallowfall > subir Hallowfall Arathi Renown 21 > Auralia Steelstrike",
    note = "Recompensa de renombre de Hallowfall Arathi."
  },
  {
    name = "Shackled Shadow",
    mountID = 2191,
    itemID = 223314,
    spellID = 448939,
    boss = "Auralia Steelstrike",
    vendor = "Auralia Steelstrike",
    zone = "Hallowfall",
    source = "Reputation",
    expansion = "The War Within",
    reset = "special",
    cost = "11,375 Resonance Crystals",
    requirement = "Hallowfall Arathi Renown 23",
    reputation = "Hallowfall Arathi",
    method = "Buy from Auralia Steelstrike after reaching Hallowfall Arathi Renown 23.",
    route = "Hallowfall > subir Hallowfall Arathi Renown 23 > Auralia Steelstrike",
    note = "Recompensa de renombre de Hallowfall Arathi."
  },
  {
    name = "Ferocious Jawcrawler",
    mountID = 2184,
    itemID = 223274,
    spellID = 447957,
    boss = "Lady Vinazian",
    vendor = "Lady Vinazian",
    zone = "Azj-Kahet",
    source = "Reputation",
    expansion = "The War Within",
    reset = "special",
    cost = "2,815 Kej",
    requirement = "The Severed Threads Renown 22",
    reputation = "The Severed Threads",
    method = "Buy from Lady Vinazian after reaching The Severed Threads Renown 22.",
    route = "Azj-Kahet > The Weaver's Lair > Lady Vinazian",
    note = "Recompensa de renombre de The Severed Threads."
  },
  {
    name = "Aquamarine Swarmite",
    mountID = 2177,
    itemID = 223264,
    spellID = 447185,
    boss = "Lady Vinazian",
    vendor = "Lady Vinazian",
    zone = "Azj-Kahet",
    source = "Reputation",
    expansion = "The War Within",
    reset = "special",
    cost = "3,940 Kej",
    requirement = "The Severed Threads Renown 23",
    reputation = "The Severed Threads",
    method = "Buy from Lady Vinazian after reaching The Severed Threads Renown 23.",
    route = "Azj-Kahet > The Weaver's Lair > Lady Vinazian",
    note = "Recompensa de renombre de The Severed Threads."
  },
  {
    name = "Violet Armored Growler",
    mountID = 2277,
    itemID = 229936,
    spellID = 466002,
    boss = "Smaks Topskimmer",
    vendor = "Smaks Topskimmer",
    zone = "Undermine",
    source = "Reputation",
    expansion = "The War Within",
    reset = "special",
    cost = "8,125 Resonance Crystals",
    requirement = "The Cartels of Undermine Renown 15",
    reputation = "The Cartels of Undermine",
    method = "Buy from Smaks Topskimmer after reaching The Cartels of Undermine Renown 15.",
    route = "Undermine > Smaks Topskimmer",
    note = "Recompensa de renombre de The Cartels of Undermine."
  },
  {
    name = "The Topskimmer Special",
    mountID = 2280,
    itemID = 229944,
    spellID = 466016,
    boss = "Smaks Topskimmer",
    vendor = "Smaks Topskimmer",
    zone = "Undermine",
    source = "Reputation",
    expansion = "The War Within",
    reset = "special",
    cost = "11,375 Resonance Crystals",
    requirement = "The Cartels of Undermine Renown 19",
    reputation = "The Cartels of Undermine",
    method = "Buy from Smaks Topskimmer after reaching The Cartels of Undermine Renown 19.",
    route = "Undermine > Smaks Topskimmer",
    note = "Recompensa de renombre de The Cartels of Undermine."
  },
  {
    name = "Crimson Armored Growler",
    mountID = 2272,
    itemID = 229935,
    spellID = 465999,
    boss = "Rocco Razzboom",
    vendor = "Rocco Razzboom",
    zone = "Undermine",
    source = "Reputation",
    expansion = "The War Within",
    reset = "special",
    cost = "8,125 Resonance Crystals",
    requirement = "Bilgewater Cartel Exalted",
    reputation = "Bilgewater Cartel",
    method = "Buy from Rocco Razzboom after reaching Exalted with Bilgewater Cartel.",
    route = "Undermine > Rocco Razzboom",
    note = "Recompensa de reputacion de Bilgewater Cartel."
  },
  {
    name = "Darkfuse Chompactor",
    mountID = 2276,
    itemID = 229924,
    spellID = 466000,
    boss = "Ando the Gat",
    vendor = "Ando the Gat",
    zone = "Liberation of Undermine",
    source = "Reputation",
    expansion = "The War Within",
    reset = "special",
    cost = "500 gold",
    requirement = "Gallagio Loyalty Rewards Club Renown 17",
    reputation = "Gallagio Loyalty Rewards Club",
    method = "Buy from Ando the Gat inside Liberation of Undermine after reaching Gallagio Loyalty Rewards Club Renown 17.",
    route = "Liberation of Undermine > Ando the Gat",
    note = "Vendedor dentro de Liberation of Undermine."
  },
  {
    name = "Radiant Imperial Lynx",
    mountID = 2519,
    itemID = 238829,
    spellID = 1226421,
    boss = "Lars Bronsmaelt",
    vendor = "Lars Bronsmaelt",
    zone = "Hallowfall",
    source = "Reputation",
    expansion = "The War Within",
    reset = "special",
    cost = "8,125 Resonance Crystals",
    requirement = "Flame's Radiance Renown 9",
    reputation = "Flame's Radiance",
    method = "Buy from Lars Bronsmaelt after reaching Flame's Radiance Renown 9.",
    route = "Hallowfall > Lars Bronsmaelt",
    note = "Recompensa de renombre de Flame's Radiance."
  },
  {
    name = "Soweezi's Vintage Waveshredder",
    mountID = 2333,
    itemID = 233058,
    spellID = 473137,
    boss = "Soweezi",
    vendor = "Soweezi",
    zone = "Siren Isle",
    source = "Vendor",
    expansion = "The War Within",
    reset = "special",
    cost = "10,000 Flame-Blessed Iron",
    method = "Buy from Soweezi on Siren Isle with Flame-Blessed Iron.",
    route = "Siren Isle > Soweezi",
    note = "Vendedor de Siren Isle."
  },
  {
    name = "Asset Advocator",
    mountID = 2290,
    itemID = 229952,
    spellID = 466023,
    boss = "Skedgit Cinderbangs",
    vendor = "Skedgit Cinderbangs",
    zone = "Undermine",
    source = "Vendor",
    expansion = "The War Within",
    reset = "special",
    cost = "25 Miscellaneous Mechanica",
    requirement = "Complete Skedgit Cinderbangs' Heist quest chain",
    method = "Complete Skedgit Cinderbangs' Heist quest chain, then buy from Skedgit Cinderbangs with Miscellaneous Mechanica.",
    route = "Undermine > Entrepreneur Inc. > Skedgit Cinderbangs",
    note = "Vendedor en Entrepreneur Inc., Undermine."
  },
  {
    name = "Margin Manipulator",
    mountID = 2292,
    itemID = 229954,
    spellID = 466025,
    boss = "Skedgit Cinderbangs",
    vendor = "Skedgit Cinderbangs",
    zone = "Undermine",
    source = "Vendor",
    expansion = "The War Within",
    reset = "special",
    cost = "25 Miscellaneous Mechanica",
    requirement = "Complete Skedgit Cinderbangs' Heist quest chain",
    method = "Complete Skedgit Cinderbangs' Heist quest chain, then buy from Skedgit Cinderbangs with Miscellaneous Mechanica.",
    route = "Undermine > Entrepreneur Inc. > Skedgit Cinderbangs",
    note = "Vendedor en Entrepreneur Inc., Undermine."
  },
}

local function MountAtlasAddCuratedMount(entry)
  table.insert(MountAtlasMounts, entry)
end

local function MountAtlasAddClassicMount(entry)
  entry.expansion = "Classic"
  MountAtlasAddCuratedMount(entry)
end

local classicRacialMountGroups = {
  {
    race = "Human",
    reputation = "Stormwind",
    faction = "Alliance",
    side = "A",
    vendor = "Katie Stokx",
    zone = "Stormwind City",
    requirement = "Alliance. Humans can buy directly; other Alliance races need Exalted with Stormwind.",
    route = "Stormwind City > Old Town > Katie Stokx",
    mounts = {
      { "Black Stallion", 9, 2411, 470 },
      { "Brown Horse", 6, 5656, 458 },
      { "Chestnut Mare", 18, 5655, 6648 },
      { "Pinto", 11, 2414, 472 },
      { "Swift Brown Steed", 93, 18777, 23229 },
      { "Swift Palomino", 91, 18776, 23227 },
      { "Swift White Steed", 92, 18778, 23228 }
    }
  },
  {
    race = "Dwarf",
    reputation = "Ironforge",
    faction = "Alliance",
    side = "A",
    vendor = "Veron Amberstill",
    zone = "Dun Morogh",
    requirement = "Alliance. Dwarves can buy directly; other Alliance races need Exalted with Ironforge.",
    route = "Dun Morogh > Amberstill Ranch > Veron Amberstill",
    mounts = {
      { "Brown Ram", 25, 5872, 6899 },
      { "Gray Ram", 21, 5864, 6777 },
      { "White Ram", 24, 5873, 6898 },
      { "Swift Brown Ram", 94, 18786, 23238 },
      { "Swift Gray Ram", 95, 18787, 23239 },
      { "Swift White Ram", 96, 18785, 23240 }
    }
  },
  {
    race = "Gnome",
    reputation = "Gnomeregan Exiles",
    faction = "Alliance",
    side = "A",
    vendor = "Milli Featherwhistle",
    zone = "Dun Morogh",
    requirement = "Alliance. Gnomes can buy directly; other Alliance races need Exalted with Gnomeregan Exiles.",
    route = "Dun Morogh > Steelgrill's Depot > Milli Featherwhistle",
    mounts = {
      { "Blue Mechanostrider", 40, 8595, 10969 },
      { "Green Mechanostrider", 57, 13321, 17453 },
      { "Red Mechanostrider", 39, 8563, 10873 },
      { "Unpainted Mechanostrider", 58, 13322, 17454 },
      { "Swift Green Mechanostrider", 90, 18772, 23225 },
      { "Swift White Mechanostrider", 89, 18773, 23223 },
      { "Swift Yellow Mechanostrider", 88, 18774, 23222 }
    }
  },
  {
    race = "Night Elf",
    reputation = "Darnassus",
    faction = "Alliance",
    side = "A",
    vendor = "Lelanai",
    zone = "Darnassus",
    requirement = "Alliance. Night elves can buy directly; other Alliance races need Exalted with Darnassus.",
    route = "Darnassus > Cenarion Enclave > Lelanai",
    mounts = {
      { "Spotted Frostsaber", 31, 8632, 10789 },
      { "Striped Dawnsaber", 337, 47100, 66847 },
      { "Striped Frostsaber", 26, 8631, 8394 },
      { "Striped Nightsaber", 34, 8629, 10793 },
      { "Swift Frostsaber", 87, 18766, 23221 },
      { "Swift Mistsaber", 85, 18767, 23219 },
      { "Swift Stormsaber", 107, 18902, 23338 }
    }
  },
  {
    race = "Orc",
    reputation = "Orgrimmar",
    faction = "Horde",
    side = "H",
    vendor = "Ogunaro Wolfrunner",
    zone = "Orgrimmar",
    requirement = "Horde. Orcs can buy directly; other Horde races need Exalted with Orgrimmar.",
    route = "Orgrimmar > Valley of Honor > Ogunaro Wolfrunner",
    mounts = {
      { "Black Wolf", 310, 46099, 64658 },
      { "Brown Wolf", 20, 5668, 6654 },
      { "Dire Wolf", 19, 5665, 6653 },
      { "Timber Wolf", 14, 1132, 580 },
      { "Swift Brown Wolf", 104, 18796, 23250 },
      { "Swift Gray Wolf", 106, 18798, 23252 },
      { "Swift Timber Wolf", 105, 18797, 23251 }
    }
  },
  {
    race = "Tauren",
    reputation = "Thunder Bluff",
    faction = "Horde",
    side = "H",
    vendor = "Harb Clawhoof",
    zone = "Mulgore",
    requirement = "Horde. Tauren can buy directly; other Horde races need Exalted with Thunder Bluff.",
    route = "Thunder Bluff > Bloodhoof Village mount vendor > Harb Clawhoof",
    mounts = {
      { "Brown Kodo", 72, 15290, 18990 },
      { "Gray Kodo", 71, 15277, 18989 },
      { "White Kodo", 309, 46100, 64657 },
      { "Great Brown Kodo", 103, 18794, 23249 },
      { "Great Gray Kodo", 102, 18795, 23248 },
      { "Great White Kodo", 101, 18793, 23247 }
    }
  },
  {
    race = "Troll",
    reputation = "Darkspear Trolls",
    faction = "Horde",
    side = "H",
    vendor = "Zjolnir",
    zone = "Durotar",
    requirement = "Horde. Trolls can buy directly; other Horde races need Exalted with Darkspear Trolls.",
    route = "Durotar > Sen'jin Village > Zjolnir",
    mounts = {
      { "Emerald Raptor", 27, 8588, 8395 },
      { "Turquoise Raptor", 36, 8591, 10796 },
      { "Violet Raptor", 38, 8592, 10799 },
      { "Swift Blue Raptor", 97, 18788, 23241 },
      { "Swift Olive Raptor", 98, 18789, 23242 },
      { "Swift Orange Raptor", 99, 18790, 23243 }
    }
  },
  {
    race = "Undead",
    reputation = "Undercity",
    faction = "Horde",
    side = "H",
    vendor = "Zachariah Post",
    zone = "Tirisfal Glades",
    requirement = "Horde. Undead can buy directly; other Horde races need Exalted with Undercity.",
    route = "Tirisfal Glades > Brill > Zachariah Post",
    mounts = {
      { "Black Skeletal Horse", 314, 46308, 64977 },
      { "Blue Skeletal Horse", 66, 13332, 17463 },
      { "Brown Skeletal Horse", 67, 13333, 17464 },
      { "Red Skeletal Horse", 65, 13331, 17462 },
      { "Green Skeletal Warhorse", 68, 13334, 17465 },
      { "Ochre Skeletal Warhorse", 336, 47101, 66846 },
      { "Purple Skeletal Warhorse", 100, 18791, 23246 }
    }
  }
}

for _, group in ipairs(classicRacialMountGroups) do
  for _, mount in ipairs(group.mounts or {}) do
    MountAtlasAddClassicMount({
      name = mount[1],
      mountID = mount[2],
      itemID = mount[3],
      spellID = mount[4],
      boss = group.vendor,
      vendor = group.vendor,
      zone = group.zone,
      source = "Vendor",
      reset = "special",
      faction = group.faction,
      side = group.side,
      reputation = group.reputation,
      requirement = group.requirement,
      cost = "Gold; faction and riding discounts may apply",
      method = "Buy from the " .. group.race .. " racial mount vendor.",
      route = group.route,
      note = "Classic racial mount. Opposite faction characters cannot buy it directly."
    })
  end
end

local classicQuestReputationMounts = {
  {
    name = "Winterspring Frostsaber",
    mountID = 55,
    itemID = 13086,
    spellID = 17229,
    boss = "Wintersaber Trainers",
    vendor = "Rivern Frostwind",
    zone = "Winterspring",
    source = "Reputation",
    faction = "Alliance",
    side = "A",
    requirement = "Alliance. Complete the Wintersaber Trainers grind or daily chain in Winterspring.",
    method = "Finish the Wintersaber Trainers progression and claim Reins of the Winterspring Frostsaber.",
    route = "Winterspring > Frostsaber Rock > Wintersaber Trainers quests",
    note = "Alliance-only Classic reputation mount."
  },
  {
    name = "Venomhide Ravasaur",
    mountID = 311,
    itemID = 46102,
    spellID = 64659,
    boss = "Mor'vek",
    vendor = "Mor'vek",
    zone = "Un'Goro Crater",
    source = "Reputation",
    faction = "Horde",
    side = "H",
    requirement = "Horde. Complete the Venomhide Hatchling training chain in Un'Goro Crater.",
    method = "Raise the Venomhide Hatchling through its quest chain and complete the final turn-in.",
    route = "Un'Goro Crater > Mor'vek > Venomhide Hatchling quests",
    note = "Horde counterpart to the Winterspring Frostsaber-style Classic grind."
  }
}

for _, mount in ipairs(classicQuestReputationMounts) do
  MountAtlasAddClassicMount(mount)
end

local classicQirajiBattleTanks = {
  { "Blue Qiraji Battle Tank", 117, 21218, 25953, "Common AQ drop" },
  { "Green Qiraji Battle Tank", 120, 21323, 26056, "Common AQ drop" },
  { "Yellow Qiraji Battle Tank", 119, 21324, 26055, "Common AQ drop" },
  { "Red Qiraji Battle Tank", 118, 21321, 26054, "Rare AQ drop" }
}

for _, mount in ipairs(classicQirajiBattleTanks) do
  MountAtlasAddClassicMount({
    name = mount[1],
    mountID = mount[2],
    itemID = mount[3],
    spellID = mount[4],
    boss = "Temple of Ahn'Qiraj raid drops",
    zone = "Temple of Ahn'Qiraj",
    source = "Raid",
    reset = "weekly",
    dropChance = mount[5],
    method = "Loot the matching Qiraji Resonating Crystal inside Temple of Ahn'Qiraj.",
    route = "Temple of Ahn'Qiraj > clear trash and bosses for resonating crystals",
    note = "These battle tanks are Classic AQ mounts and are only usable inside Ahn'Qiraj."
  })
end

MountAtlasAddClassicMount({
  name = "Black Qiraji Resonating Crystal",
  itemID = 21176,
  spellID = 26656,
  boss = "The Scarab Gong",
  zone = "Temple of Ahn'Qiraj",
  source = "Legacy",
  reset = "special",
  requirement = "Legacy and no longer obtainable. Originally required completing the Scepter of the Shifting Sands questline and ringing the Scarab Gong during the Ahn'Qiraj opening event.",
  method = "This mount was originally awarded during the Ahn'Qiraj opening event after using the Scepter of the Shifting Sands at the Scarab Gong.",
  route = "Silithus > Temple of Ahn'Qiraj > The Scarab Gong",
  note = "Legacy Scarab Lord mount tied to the original Ahn'Qiraj gate opening event."
})

local classicPvpMounts = {
  { "Stormpike Battle Charger", 109, 19030, 23510, "Alliance", "A", "Stormpike Guard / Alterac Valley vendor", "Alterac Valley", "Alliance Alterac Valley PvP mount." },
  { "Black Battlestrider", 77, 29465, 22719, "Alliance", "A", "Alliance PvP mount vendor", "Stormwind City", "Alliance Mark of Honor PvP mount." },
  { "Black War Ram", 78, 29467, 22720, "Alliance", "A", "Alliance PvP mount vendor", "Stormwind City", "Alliance Mark of Honor PvP mount." },
  { "Black War Steed", 75, 29468, 22717, "Alliance", "A", "Alliance PvP mount vendor", "Stormwind City", "Alliance Mark of Honor PvP mount." },
  { "Black War Tiger", 81, 29471, 22723, "Alliance", "A", "Alliance PvP mount vendor", "Stormwind City", "Alliance Mark of Honor PvP mount." },
  { "Frostwolf Howler", 108, 19029, 23509, "Horde", "H", "Frostwolf Clan / Alterac Valley vendor", "Alterac Valley", "Horde Alterac Valley PvP mount." },
  { "Black War Kodo", 76, 29466, 22718, "Horde", "H", "Horde PvP mount vendor", "Orgrimmar", "Horde Mark of Honor PvP mount." },
  { "Black War Raptor", 79, 29472, 22721, "Horde", "H", "Horde PvP mount vendor", "Orgrimmar", "Horde Mark of Honor PvP mount." },
  { "Black War Wolf", 82, 29469, 22724, "Horde", "H", "Horde PvP mount vendor", "Orgrimmar", "Horde Mark of Honor PvP mount." },
  { "Red Skeletal Warhorse", 80, 29470, 22722, "Horde", "H", "Horde PvP mount vendor", "Orgrimmar", "Horde Mark of Honor PvP mount." }
}

for _, mount in ipairs(classicPvpMounts) do
  MountAtlasAddClassicMount({
    name = mount[1],
    mountID = mount[2],
    itemID = mount[3],
    spellID = mount[4],
    boss = mount[7],
    vendor = mount[7],
    zone = mount[8],
    source = "PvP",
    reset = "special",
    faction = mount[5],
    side = mount[6],
    cost = "Marks of Honor",
    requirement = mount[5] .. " character; buy from the appropriate PvP mount vendor.",
    method = "Purchase with Marks of Honor from the faction PvP mount vendor.",
    route = mount[8] .. " > " .. mount[7],
    note = mount[9]
  })
end

local classicClassMounts = {
  {
    name = "Warhorse",
    mountID = 41,
    spellID = 13819,
    boss = "Paladin trainer",
    zone = "Class spellbook",
    faction = "Alliance",
    side = "A",
    requirement = "Paladin class.",
    note = "Classic Alliance paladin class mount."
  },
  {
    name = "Charger",
    mountID = 84,
    spellID = 23214,
    boss = "Paladin trainer",
    zone = "Class spellbook",
    faction = "Alliance",
    side = "A",
    requirement = "Paladin class.",
    note = "Classic Alliance paladin class mount."
  },
  {
    name = "Felsteed",
    mountID = 17,
    spellID = 5784,
    boss = "Warlock trainer",
    zone = "Class spellbook",
    requirement = "Warlock class.",
    note = "Classic warlock class mount."
  },
  {
    name = "Dreadsteed",
    mountID = 83,
    spellID = 23161,
    boss = "Warlock trainer",
    zone = "Class spellbook",
    requirement = "Warlock class.",
    note = "Classic warlock class mount."
  }
}

for _, mount in ipairs(classicClassMounts) do
  mount.source = "Class"
  mount.reset = "special"
  mount.method = "Learn the class mount spell on an eligible character."
  mount.route = mount.zone .. " > " .. mount.boss
  MountAtlasAddClassicMount(mount)
end

local classicBlackMarketMounts = {
  { "Swift Razzashi Raptor", 110, 19872, 24242, "Bloodlord Mandokir" },
  { "Swift Zulian Tiger", 111, 19902, 24252, "High Priest Thekal" }
}

for _, mount in ipairs(classicBlackMarketMounts) do
  MountAtlasAddClassicMount({
    name = mount[1],
    mountID = mount[2],
    itemID = mount[3],
    spellID = mount[4],
    boss = mount[5] .. " (legacy Zul'Gurub)",
    vendor = "Black Market Auction House",
    zone = "Zul'Gurub",
    source = "Black Market",
    reset = "special",
    requirement = "Only obtainable when listed on the Black Market Auction House.",
    method = "Bid on the Black Market Auction House when the legacy Zul'Gurub mount appears.",
    route = "Black Market Auction House > rotating listings",
    note = "Originally dropped in the removed Classic Zul'Gurub raid version; no longer drops from current Zul'Gurub."
  })
end

local function MountAtlasAddBurningCrusadeMount(entry)
  entry.expansion = "Burning Crusade"
  MountAtlasAddCuratedMount(entry)
end

local burningCrusadeRacialMountGroups = {
  {
    race = "Draenei",
    reputation = "The Exodar",
    faction = "Alliance",
    side = "A",
    vendor = "Torallius the Pack Handler",
    zone = "The Exodar",
    requirement = "Alliance. Draenei can buy directly; other Alliance races need Exalted with The Exodar.",
    route = "The Exodar > Torallius the Pack Handler",
    mounts = {
      { "Brown Elekk", 147, 28481, 34406 },
      { "Gray Elekk", 163, 29744, 35710 },
      { "Purple Elekk", 164, 29743, 35711 },
      { "Great Blue Elekk", 166, 29745, 35713 },
      { "Great Green Elekk", 165, 29746, 35712 },
      { "Great Purple Elekk", 167, 29747, 35714 }
    }
  },
  {
    race = "Blood Elf",
    reputation = "Silvermoon City",
    faction = "Horde",
    side = "H",
    vendor = "Winaestra",
    zone = "Silvermoon City",
    requirement = "Horde. Blood elves can buy directly; other Horde races need Exalted with Silvermoon City.",
    route = "Silvermoon City > Royal Exchange > Winaestra",
    mounts = {
      { "Black Hawkstrider", 159, 29221, 35022 },
      { "Blue Hawkstrider", 158, 29220, 35020 },
      { "Purple Hawkstrider", 157, 29222, 35018 },
      { "Red Hawkstrider", 152, 28927, 34795 },
      { "Swift Green Hawkstrider", 160, 29223, 35025 },
      { "Swift Pink Hawkstrider", 146, 28936, 33660 },
      { "Swift Purple Hawkstrider", 161, 29224, 35027 }
    }
  }
}

for _, group in ipairs(burningCrusadeRacialMountGroups) do
  for _, mount in ipairs(group.mounts or {}) do
    MountAtlasAddBurningCrusadeMount({
      name = mount[1],
      mountID = mount[2],
      itemID = mount[3],
      spellID = mount[4],
      boss = group.vendor,
      vendor = group.vendor,
      zone = group.zone,
      source = "Vendor",
      reset = "special",
      faction = group.faction,
      side = group.side,
      reputation = group.reputation,
      requirement = group.requirement,
      cost = "Gold; faction and riding discounts may apply",
      method = "Buy from the " .. group.race .. " racial mount vendor.",
      route = group.route,
      note = "Burning Crusade racial mount."
    })
  end
end

local burningCrusadeFlyingVendorMounts = {
  { "Golden Gryphon", 129, 25470, 32235, "Alliance", "A", "Expert Riding", "Brunn Flamebeard", "Shadowmoon Valley" },
  { "Ebon Gryphon", 130, 25471, 32239, "Alliance", "A", "Expert Riding", "Brunn Flamebeard", "Shadowmoon Valley" },
  { "Snowy Gryphon", 131, 25472, 32240, "Alliance", "A", "Expert Riding", "Brunn Flamebeard", "Shadowmoon Valley" },
  { "Swift Blue Gryphon", 132, 25473, 32242, "Alliance", "A", "Artisan Riding", "Brunn Flamebeard", "Shadowmoon Valley" },
  { "Swift Red Gryphon", 137, 25527, 32289, "Alliance", "A", "Artisan Riding", "Brunn Flamebeard", "Shadowmoon Valley" },
  { "Swift Green Gryphon", 138, 25528, 32290, "Alliance", "A", "Artisan Riding", "Brunn Flamebeard", "Shadowmoon Valley" },
  { "Swift Purple Gryphon", 139, 25529, 32292, "Alliance", "A", "Artisan Riding", "Brunn Flamebeard", "Shadowmoon Valley" },
  { "Tawny Wind Rider", 133, 25474, 32243, "Horde", "H", "Expert Riding", "Dama Wildmane", "Shadowmoon Valley" },
  { "Blue Wind Rider", 134, 25475, 32244, "Horde", "H", "Expert Riding", "Dama Wildmane", "Shadowmoon Valley" },
  { "Green Wind Rider", 135, 25476, 32245, "Horde", "H", "Expert Riding", "Dama Wildmane", "Shadowmoon Valley" },
  { "Swift Red Wind Rider", 136, 25477, 32246, "Horde", "H", "Artisan Riding", "Dama Wildmane", "Shadowmoon Valley" },
  { "Swift Green Wind Rider", 140, 25531, 32295, "Horde", "H", "Artisan Riding", "Dama Wildmane", "Shadowmoon Valley" },
  { "Swift Yellow Wind Rider", 141, 25532, 32296, "Horde", "H", "Artisan Riding", "Dama Wildmane", "Shadowmoon Valley" },
  { "Swift Purple Wind Rider", 142, 25533, 32297, "Horde", "H", "Artisan Riding", "Dama Wildmane", "Shadowmoon Valley" }
}

for _, mount in ipairs(burningCrusadeFlyingVendorMounts) do
  MountAtlasAddBurningCrusadeMount({
    name = mount[1],
    mountID = mount[2],
    itemID = mount[3],
    spellID = mount[4],
    boss = mount[8],
    vendor = mount[8],
    zone = mount[9],
    source = "Vendor",
    reset = "special",
    faction = mount[5],
    side = mount[6],
    cost = "Gold",
    requirement = mount[5] .. " character with " .. mount[7] .. ".",
    method = "Buy from the Outland flying mount vendor.",
    route = "Shadowmoon Valley > faction flying mount vendor",
    note = "Burning Crusade flying mount vendor purchase."
  })
end

local burningCrusadeReputationMounts = {
  { "Cenarion War Hippogryph", 203, 33999, 43927, "Cenarion Expedition", "Fedryen Swiftspear", "Zangarmarsh", "Cenarion Expedition Exalted", "Buy from Fedryen Swiftspear at Cenarion Refuge." },
  { "Cobalt War Talbuk", 153, 29227, 34896, "Kurenai / The Mag'har", "Trader Narasu / Provisioner Nasela", "Nagrand", "Kurenai Exalted (Alliance) or The Mag'har Exalted (Horde)", "Buy from the Nagrand faction quartermaster." },
  { "White War Talbuk", 154, 29231, 34897, "Kurenai / The Mag'har", "Trader Narasu / Provisioner Nasela", "Nagrand", "Kurenai Exalted (Alliance) or The Mag'har Exalted (Horde)", "Buy from the Nagrand faction quartermaster." },
  { "Silver War Talbuk", 155, 29229, 34898, "Kurenai / The Mag'har", "Trader Narasu / Provisioner Nasela", "Nagrand", "Kurenai Exalted (Alliance) or The Mag'har Exalted (Horde)", "Buy from the Nagrand faction quartermaster." },
  { "Tan War Talbuk", 156, 29230, 34899, "Kurenai / The Mag'har", "Trader Narasu / Provisioner Nasela", "Nagrand", "Kurenai Exalted (Alliance) or The Mag'har Exalted (Horde)", "Buy from the Nagrand faction quartermaster." },
  { "Cobalt Riding Talbuk", 170, 31830, 39315, "Kurenai / The Mag'har", "Trader Narasu / Provisioner Nasela", "Nagrand", "Kurenai Exalted (Alliance) or The Mag'har Exalted (Horde)", "Buy from the Nagrand faction quartermaster." },
  { "Silver Riding Talbuk", 172, 31832, 39317, "Kurenai / The Mag'har", "Trader Narasu / Provisioner Nasela", "Nagrand", "Kurenai Exalted (Alliance) or The Mag'har Exalted (Horde)", "Buy from the Nagrand faction quartermaster." },
  { "Tan Riding Talbuk", 173, 31834, 39318, "Kurenai / The Mag'har", "Trader Narasu / Provisioner Nasela", "Nagrand", "Kurenai Exalted (Alliance) or The Mag'har Exalted (Horde)", "Buy from the Nagrand faction quartermaster." },
  { "White Riding Talbuk", 174, 31836, 39319, "Kurenai / The Mag'har", "Trader Narasu / Provisioner Nasela", "Nagrand", "Kurenai Exalted (Alliance) or The Mag'har Exalted (Horde)", "Buy from the Nagrand faction quartermaster." },
  { "Azure Netherwing Drake", 187, 32858, 41514, "Netherwing", "Drake Dealer Hurlunk", "Shadowmoon Valley", "Netherwing Exalted", "Start with Mordenai, unlock Netherwing dailies, reach Exalted, then buy the drake." },
  { "Cobalt Netherwing Drake", 188, 32859, 41515, "Netherwing", "Drake Dealer Hurlunk", "Shadowmoon Valley", "Netherwing Exalted", "Start with Mordenai, unlock Netherwing dailies, reach Exalted, then buy the drake." },
  { "Onyx Netherwing Drake", 186, 32857, 41513, "Netherwing", "Drake Dealer Hurlunk", "Shadowmoon Valley", "Netherwing Exalted", "Start with Mordenai, unlock Netherwing dailies, reach Exalted, then buy the drake." },
  { "Purple Netherwing Drake", 189, 32860, 41516, "Netherwing", "Drake Dealer Hurlunk", "Shadowmoon Valley", "Netherwing Exalted", "Start with Mordenai, unlock Netherwing dailies, reach Exalted, then buy the drake." },
  { "Veridian Netherwing Drake", 190, 32861, 41517, "Netherwing", "Drake Dealer Hurlunk", "Shadowmoon Valley", "Netherwing Exalted", "Start with Mordenai, unlock Netherwing dailies, reach Exalted, then buy the drake." },
  { "Violet Netherwing Drake", 191, 32862, 41518, "Netherwing", "Drake Dealer Hurlunk", "Shadowmoon Valley", "Netherwing Exalted", "Start with Mordenai, unlock Netherwing dailies, reach Exalted, then buy the drake." },
  { "Blue Riding Nether Ray", 180, 32319, 39803, "Sha'tari Skyguard", "Grella", "Terokkar Forest", "Sha'tari Skyguard Exalted", "Buy from Grella at Blackwind Landing after reaching Exalted." },
  { "Green Riding Nether Ray", 176, 32314, 39798, "Sha'tari Skyguard", "Grella", "Terokkar Forest", "Sha'tari Skyguard Exalted", "Buy from Grella at Blackwind Landing after reaching Exalted." },
  { "Purple Riding Nether Ray", 178, 32316, 39801, "Sha'tari Skyguard", "Grella", "Terokkar Forest", "Sha'tari Skyguard Exalted", "Buy from Grella at Blackwind Landing after reaching Exalted." },
  { "Red Riding Nether Ray", 177, 32317, 39800, "Sha'tari Skyguard", "Grella", "Terokkar Forest", "Sha'tari Skyguard Exalted", "Buy from Grella at Blackwind Landing after reaching Exalted." },
  { "Silver Riding Nether Ray", 179, 32318, 39802, "Sha'tari Skyguard", "Grella", "Terokkar Forest", "Sha'tari Skyguard Exalted", "Buy from Grella at Blackwind Landing after reaching Exalted." }
}

for _, mount in ipairs(burningCrusadeReputationMounts) do
  MountAtlasAddBurningCrusadeMount({
    name = mount[1],
    mountID = mount[2],
    itemID = mount[3],
    spellID = mount[4],
    boss = mount[6],
    vendor = mount[6],
    zone = mount[7],
    source = "Reputation",
    reset = "special",
    reputation = mount[5],
    requirement = mount[8],
    cost = "Gold; faction discounts may apply",
    method = mount[9],
    route = mount[7] .. " > " .. mount[6],
    note = mount[5] .. " Burning Crusade reputation mount."
  })
end

local burningCrusadePvpMounts = {
  { "Swift Warstrider", 162, 34129, 35028, "Horde", "H", "Horde PvP mount vendor", "Orgrimmar", "Marks of Honor", "Horde Blood Elf PvP racial mount." },
  { "Black War Elekk", 220, 35906, 48027, "Alliance", "A", "Alliance PvP mount vendor", "Stormwind City", "Marks of Honor", "Alliance Draenei PvP racial mount." },
  { "Dark Riding Talbuk", 171, 28915, 39316, nil, nil, "Aldraan / Coreiel", "Nagrand", "Halaa Battle Tokens and Halaa Research Tokens", "Halaa PvP riding talbuk." },
  { "Dark War Talbuk", 151, 29228, 34790, nil, nil, "Aldraan / Coreiel", "Nagrand", "Halaa Battle Tokens and Halaa Research Tokens", "Halaa PvP war talbuk." }
}

for _, mount in ipairs(burningCrusadePvpMounts) do
  MountAtlasAddBurningCrusadeMount({
    name = mount[1],
    mountID = mount[2],
    itemID = mount[3],
    spellID = mount[4],
    boss = mount[7],
    vendor = mount[7],
    zone = mount[8],
    source = "PvP",
    reset = "special",
    faction = mount[5],
    side = mount[6],
    cost = mount[9],
    requirement = mount[9],
    method = "Purchase from the Burning Crusade PvP mount vendor.",
    route = mount[8] .. " > " .. mount[7],
    note = mount[10]
  })
end

local burningCrusadeGladiatorMounts = {
  { "Swift Nether Drake", 169, 30609, 37015, "Arena Season 1" },
  { "Merciless Nether Drake", 207, 34092, 44744, "Arena Season 2" },
  { "Vengeful Nether Drake", 223, 37676, 49193, "Arena Season 3" },
  { "Brutal Nether Drake", 241, 43516, 58615, "Arena Season 4" }
}

for _, mount in ipairs(burningCrusadeGladiatorMounts) do
  MountAtlasAddBurningCrusadeMount({
    name = mount[1],
    mountID = mount[2],
    itemID = mount[3],
    spellID = mount[4],
    boss = "Arena season rewards",
    zone = "Arena season rewards",
    source = "PvP",
    reset = "special",
    requirement = "Legacy and no longer obtainable. Originally awarded to Gladiators at the end of " .. mount[5] .. ".",
    method = "This mount was originally granted as a Gladiator end-of-season reward in " .. mount[5] .. ".",
    route = mount[5] .. " > end-of-season Gladiator reward",
    note = "Legacy Burning Crusade Gladiator mount removed from retail."
  })
end

local burningCrusadeProfessionMounts = {
  { "Flying Machine", 205, 34060, 44153, "Engineering", "Outland Engineering flying machine." },
  { "Turbo-Charged Flying Machine", 204, 34061, 44151, "Engineering", "Outland Engineering epic flying machine." }
}

for _, mount in ipairs(burningCrusadeProfessionMounts) do
  MountAtlasAddBurningCrusadeMount({
    name = mount[1],
    mountID = mount[2],
    itemID = mount[3],
    spellID = mount[4],
    boss = mount[5],
    zone = "Engineering",
    source = "Profession",
    reset = "special",
    requiredProfession = mount[5],
    requirement = mount[5],
    method = "Craft or learn the mount through Outland Engineering.",
    route = "Outland Engineering > craft or buy from another player",
    note = mount[6]
  })
end

local burningCrusadeClassMounts = {
  { "Thalassian Warhorse", 150, 34769, "Blood Elf Paladin", "Horde", "H" },
  { "Thalassian Charger", 149, 34767, "Blood Elf Paladin", "Horde", "H" }
}

for _, mount in ipairs(burningCrusadeClassMounts) do
  MountAtlasAddBurningCrusadeMount({
    name = mount[1],
    mountID = mount[2],
    spellID = mount[3],
    boss = mount[4],
    zone = "Class spellbook",
    source = "Class",
    reset = "special",
    faction = mount[5],
    side = mount[6],
    requirement = mount[4] .. ".",
    method = "Learn the Blood Elf Paladin class mount spell on an eligible character.",
    route = "Class spellbook > Paladin mounts",
    note = "Burning Crusade Blood Elf Paladin class mount."
  })
end

MountAtlasAddBurningCrusadeMount({
  name = "Amani War Bear",
  mountID = 199,
  itemID = 33809,
  spellID = 43688,
  boss = "Timed chest",
  zone = "Zul'Aman",
  source = "Raid",
  reset = "special",
  requirement = "Legacy and no longer obtainable. Originally awarded from the Zul'Aman timed run chest in the Burning Crusade raid version.",
  method = "This mount originally came from the timed chest reward for completing the legacy Zul'Aman timed run.",
  route = "Ghostlands > Zul'Aman > evento cronometrado original > cofre final del timed run",
  note = "Legacy Burning Crusade Zul'Aman mount removed from retail."
})

MountAtlasAddBurningCrusadeMount({
  name = "Fiery Warhorse",
  mountID = 168,
  itemID = 30480,
  spellID = 36702,
  boss = "Attumen the Huntsman",
  zone = "Karazhan",
  source = "Raid",
  reset = "weekly",
  dropChance = "Muy baja",
  method = "Drop de Attumen the Huntsman en Karazhan.",
  route = "Karazhan > Attumen the Huntsman; un intento semanal por personaje",
  note = "Burning Crusade Karazhan raid drop."
})

local function MountAtlasAddWrathReputationMount(name, mountID, itemID, spellID, faction, vendor, zone, requirement, note, side)
  local cost = "Champion's Seals"

  if faction == "Wyrmrest Accord" then
    cost = "2,000 gold before discounts"
  elseif name == "Ice Mammoth" then
    cost = "1,000 gold before discounts"
  elseif name == "Grand Ice Mammoth" then
    cost = "10,000 gold before discounts"
  elseif faction == "The Oracles" then
    cost = "Mysterious Egg"
  end

  MountAtlasAddCuratedMount({
    name = name,
    mountID = mountID,
    itemID = itemID,
    spellID = spellID,
    boss = vendor,
    vendor = vendor,
    zone = zone,
    source = "Reputation",
    expansion = "Wrath",
    reset = "special",
    faction = side == "A" and "Alliance" or side == "H" and "Horde" or nil,
    side = side,
    reputation = faction,
    requirement = requirement,
    cost = cost,
    method = "Buy or obtain from the listed Wrath reputation/vendor source.",
    route = zone .. " > " .. vendor,
    guideUrl = "https://www.wowhead.com/item=" .. tostring(itemID),
    note = note or (faction .. " reputation reward.")
  })
end

local wrathReputationMounts = {
  { "Red Drake", 249, 43955, 59570, "Wyrmrest Accord", "Cielstrasza", "Dragonblight", "Wyrmrest Accord Exalted", "Wyrmrest Accord vendor at Wyrmrest Temple." },
  { "Ice Mammoth", 259, 43958, 59799, "The Sons of Hodir", "Lillehoff", "The Storm Peaks", "The Sons of Hodir Revered", "Alliance Sons of Hodir vendor at Dun Niffelem.", "A" },
  { "Ice Mammoth", 258, 44080, 59797, "The Sons of Hodir", "Lillehoff", "The Storm Peaks", "The Sons of Hodir Revered", "Horde Sons of Hodir vendor at Dun Niffelem.", "H" },
  { "Grand Ice Mammoth", 289, 43961, 61470, "The Sons of Hodir", "Lillehoff", "The Storm Peaks", "The Sons of Hodir Exalted", "Alliance three-seat Sons of Hodir reputation mount.", "A" },
  { "Grand Ice Mammoth", 288, 44086, 61469, "The Sons of Hodir", "Lillehoff", "The Storm Peaks", "The Sons of Hodir Exalted", "Horde three-seat Sons of Hodir reputation mount.", "H" },
  { "Green Proto-Drake", 278, 44707, 61294, "The Oracles", "Geen", "Sholazar Basin", "The Oracles Revered", "Chance from Mysterious Egg purchased from Geen." },

  { "Swift Gray Steed", 321, 46752, 65640, "Stormwind", "Stormwind Quartermaster", "Argent Tournament", "Stormwind Champion", "Alliance Argent Tournament faction mount.", "A" },
  { "Stormwind Steed", 294, 45125, 63232, "Stormwind", "Stormwind Quartermaster", "Argent Tournament", "Stormwind Champion", "Alliance Argent Tournament faction mount.", "A" },
  { "Swift Moonsaber", 319, 46744, 65638, "Darnassus", "Darnassus Quartermaster", "Argent Tournament", "Darnassus Champion", "Alliance Argent Tournament faction mount.", "A" },
  { "Darnassian Nightsaber", 297, 45591, 63637, "Darnassus", "Darnassus Quartermaster", "Argent Tournament", "Darnassus Champion", "Alliance Argent Tournament faction mount.", "A" },
  { "Swift Violet Ram", 324, 46748, 65643, "Ironforge", "Ironforge Quartermaster", "Argent Tournament", "Ironforge Champion", "Alliance Argent Tournament faction mount.", "A" },
  { "Ironforge Ram", 296, 45586, 63636, "Ironforge", "Ironforge Quartermaster", "Argent Tournament", "Ironforge Champion", "Alliance Argent Tournament faction mount.", "A" },
  { "Turbostrider", 323, 46747, 65642, "Gnomeregan", "Gnomeregan Quartermaster", "Argent Tournament", "Gnomeregan Champion", "Alliance Argent Tournament faction mount.", "A" },
  { "Gnomeregan Mechanostrider", 298, 45589, 63638, "Gnomeregan", "Gnomeregan Quartermaster", "Argent Tournament", "Gnomeregan Champion", "Alliance Argent Tournament faction mount.", "A" },
  { "Great Red Elekk", 318, 46745, 65637, "Exodar", "Exodar Quartermaster", "Argent Tournament", "Exodar Champion", "Alliance Argent Tournament faction mount.", "A" },
  { "Exodar Elekk", 299, 45590, 63639, "Exodar", "Exodar Quartermaster", "Argent Tournament", "Exodar Champion", "Alliance Argent Tournament faction mount.", "A" },

  { "Swift Burgundy Wolf", 327, 46749, 65646, "Orgrimmar", "Orgrimmar Quartermaster", "Argent Tournament", "Orgrimmar Champion", "Horde Argent Tournament faction mount.", "H" },
  { "Orgrimmar Wolf", 300, 45595, 63640, "Orgrimmar", "Orgrimmar Quartermaster", "Argent Tournament", "Orgrimmar Champion", "Horde Argent Tournament faction mount.", "H" },
  { "Swift Purple Raptor", 325, 46743, 65644, "Darkspear Trolls", "Darkspear Quartermaster", "Argent Tournament", "Darkspear Champion", "Horde Argent Tournament faction mount.", "H" },
  { "Darkspear Raptor", 295, 45593, 63635, "Darkspear Trolls", "Darkspear Quartermaster", "Argent Tournament", "Darkspear Champion", "Horde Argent Tournament faction mount.", "H" },
  { "Great Golden Kodo", 322, 46750, 65641, "Thunder Bluff", "Thunder Bluff Quartermaster", "Argent Tournament", "Thunder Bluff Champion", "Horde Argent Tournament faction mount.", "H" },
  { "Thunder Bluff Kodo", 301, 45592, 63641, "Thunder Bluff", "Thunder Bluff Quartermaster", "Argent Tournament", "Thunder Bluff Champion", "Horde Argent Tournament faction mount.", "H" },
  { "White Skeletal Warhorse", 326, 46746, 65645, "Undercity", "Undercity Quartermaster", "Argent Tournament", "Undercity Champion", "Horde Argent Tournament faction mount.", "H" },
  { "Forsaken Warhorse", 303, 45597, 63643, "Undercity", "Undercity Quartermaster", "Argent Tournament", "Undercity Champion", "Horde Argent Tournament faction mount.", "H" },
  { "Swift Red Hawkstrider", 320, 46751, 65639, "Silvermoon", "Silvermoon Quartermaster", "Argent Tournament", "Silvermoon Champion", "Horde Argent Tournament faction mount.", "H" },
  { "Silvermoon Hawkstrider", 302, 45596, 63642, "Silvermoon", "Silvermoon Quartermaster", "Argent Tournament", "Silvermoon Champion", "Horde Argent Tournament faction mount.", "H" },

  { "Quel'dorei Steed", 331, 46815, 66090, "The Silver Covenant", "The Silver Covenant", "Argent Tournament", "Exalted Champion of the Alliance", "Alliance Argent Tournament reward.", "A" },
  { "Silver Covenant Hippogryph", 329, 46813, 66087, "The Silver Covenant", "The Silver Covenant", "Argent Tournament", "Exalted Champion of the Alliance", "Alliance Argent Tournament reward.", "A" },
  { "Sunreaver Hawkstrider", 332, 46816, 66091, "The Sunreavers", "The Sunreavers", "Argent Tournament", "Exalted Champion of the Horde", "Horde Argent Tournament reward.", "H" },
  { "Sunreaver Dragonhawk", 330, 46814, 66088, "The Sunreavers", "The Sunreavers", "Argent Tournament", "Exalted Champion of the Horde", "Horde Argent Tournament reward.", "H" },
  { "Argent Warhorse", 341, 47180, 67466, "Argent Crusade", "Dame Evniki Kapsalis", "Argent Tournament", "Crusader title", "Argent Tournament Crusader reward." },
  { "Argent Hippogryph", 305, 45725, 63844, "Argent Crusade", "Dame Evniki Kapsalis", "Argent Tournament", "Crusader title", "Argent Tournament Crusader reward." },
  { "Argent Charger", 338, 47179, 66906, "Argent Crusade", "Dame Evniki Kapsalis", "Argent Tournament", "Paladin and Crusader title", "Paladin-only Argent Tournament Crusader reward." }
}

for _, mount in ipairs(wrathReputationMounts) do
  MountAtlasAddWrathReputationMount(
    mount[1],
    mount[2],
    mount[3],
    mount[4],
    mount[5],
    mount[6],
    mount[7],
    mount[8],
    mount[9],
    mount[10]
  )
end

local function MountAtlasAddWrathMount(entry)
  entry.expansion = "Wrath"
  MountAtlasAddCuratedMount(entry)
end

local wrathVendorMounts = {
  { "Armored Snowy Gryphon", 276, 44689, 61229, "Alliance", "A", "Mei Francis", "Dalaran", "Flying vendor mount." },
  { "Armored Blue Wind Rider", 277, 44690, 61230, "Horde", "H", "Mei Francis", "Dalaran", "Flying vendor mount." },
  { "Wooly Mammoth", 256, 44230, 59791, "Alliance", "A", "Mei Francis", "Dalaran", "Dalaran vendor mammoth." },
  { "Wooly Mammoth", 257, 44231, 59793, "Horde", "H", "Mei Francis", "Dalaran", "Dalaran vendor mammoth." },
  { "Traveler's Tundra Mammoth", 280, 44235, 61425, "Alliance", "A", "Mei Francis", "Dalaran", "Vendor mammoth with vendors and repair." },
  { "Traveler's Tundra Mammoth", 284, 44234, 61447, "Horde", "H", "Mei Francis", "Dalaran", "Vendor mammoth with vendors and repair." },
  { "Armored Brown Bear", 269, 44225, 60114, "Alliance", "A", "Mei Francis", "Dalaran", "Dalaran vendor bear." },
  { "Armored Brown Bear", 270, 44226, 60116, "Horde", "H", "Mei Francis", "Dalaran", "Dalaran vendor bear." }
}

for _, mount in ipairs(wrathVendorMounts) do
  MountAtlasAddWrathMount({
    name = mount[1],
    mountID = mount[2],
    itemID = mount[3],
    spellID = mount[4],
    boss = mount[7],
    vendor = mount[7],
    zone = mount[8],
    source = "Vendor",
    reset = "special",
    faction = mount[5],
    side = mount[6],
    cost = "Gold; Kirin Tor reputation discounts may apply",
    requirement = mount[5] .. " character.",
    method = "Buy from Mei Francis in Dalaran.",
    route = "Dalaran > Magical Menagerie > Mei Francis",
    note = mount[9]
  })
end

local wrathRaidAndRareMounts = {
  { "Grand Black War Mammoth", 286, 43959, 61465, "Vault of Archavon bosses", "Vault of Archavon", "Raid", "weekly", "Alliance", "A", "Rare drop from Vault of Archavon." },
  { "Grand Black War Mammoth", 287, 44083, 61467, "Vault of Archavon bosses", "Vault of Archavon", "Raid", "weekly", "Horde", "H", "Rare drop from Vault of Archavon." },
  { "Time-Lost Proto-Drake", 265, 44168, 60002, "Time-Lost Proto-Drake", "The Storm Peaks", "Rare", "repeatable", nil, nil, "Rare spawn in The Storm Peaks." }
}

for _, mount in ipairs(wrathRaidAndRareMounts) do
  MountAtlasAddWrathMount({
    name = mount[1],
    mountID = mount[2],
    itemID = mount[3],
    spellID = mount[4],
    boss = mount[5],
    zone = mount[6],
    source = mount[7],
    reset = mount[8],
    faction = mount[9],
    side = mount[10],
    dropChance = "Muy baja",
    method = mount[11],
    route = mount[6] .. " > " .. mount[5],
    note = mount[11]
  })
end

local wrathLegacyRaidMounts = {
  {
    "Swift Alliance Steed",
    343,
    49044,
    68057,
    "Argent Crusade Tribute Chest",
    "Trial of the Crusader",
    "Alliance",
    "A",
    "Legacy and no longer obtainable. Originally came from the Argent Crusade Tribute Chest in Trial of the Grand Crusader.",
    "Legacy Wrath Trial of the Crusader tribute chest mount removed from retail."
  },
  {
    "Swift Horde Wolf",
    342,
    49046,
    68056,
    "Argent Crusade Tribute Chest",
    "Trial of the Crusader",
    "Horde",
    "H",
    "Legacy and no longer obtainable. Originally came from the Argent Crusade Tribute Chest in Trial of the Grand Crusader.",
    "Legacy Wrath Trial of the Crusader tribute chest mount removed from retail."
  }
}

for _, mount in ipairs(wrathLegacyRaidMounts) do
  MountAtlasAddWrathMount({
    name = mount[1],
    mountID = mount[2],
    itemID = mount[3],
    spellID = mount[4],
    boss = mount[5],
    zone = mount[6],
    source = "Raid",
    reset = "special",
    faction = mount[7],
    side = mount[8],
    requirement = mount[9],
    method = "This mount was originally awarded from the Argent Crusade Tribute Chest in Trial of the Grand Crusader.",
    route = "Icecrown > Trial of the Crusader > Argent Crusade Tribute Chest",
    note = mount[10]
  })
end

MountAtlasAddWrathMount({
  name = "Crimson Deathcharger",
  mountID = 366,
  itemID = 52200,
  spellID = 73313,
  boss = "Mograine's Reunion / Unsealed Chest",
  zone = "Icecrown Citadel",
  source = "Quest",
  reset = "special",
  requirement = "Shadowmourne questline reward chest or player trading/Auction House availability.",
  method = "Reward from the Unsealed Chest after completing the Shadowmourne questline and Mograine's Reunion.",
  route = "Icecrown Citadel > Shadowmourne questline > Unsealed Chest",
  note = "Tradable reward from the Shadowmourne legendary questline."
})

local wrathProfessionMounts = {
  { "Mekgineer's Chopper", 275, 44413, 60424, "Engineering", "Alliance", "A", "Alliance engineering motorcycle." },
  { "Mechano-Hog", 240, 41508, 55531, "Engineering", "Horde", "H", "Horde engineering motorcycle." },
  { "Flying Carpet", 285, 44554, 61451, "Tailoring", nil, nil, "Northrend Tailoring flying carpet." },
  { "Magnificent Flying Carpet", 279, 44558, 61309, "Tailoring", nil, nil, "Northrend Tailoring epic flying carpet." },
  { "Frosty Flying Carpet", 375, 54797, 75596, "Tailoring", nil, nil, "Northrend Tailoring flying carpet." },
  { "Sea Turtle", 312, 46109, 64731, "Fishing", nil, nil, "Rare fishing catch from Northrend and later fishing pools." }
}

for _, mount in ipairs(wrathProfessionMounts) do
  MountAtlasAddWrathMount({
    name = mount[1],
    mountID = mount[2],
    itemID = mount[3],
    spellID = mount[4],
    boss = mount[5],
    zone = mount[5],
    source = "Profession",
    reset = "special",
    requiredProfession = mount[5],
    faction = mount[6],
    side = mount[7],
    requirement = mount[5],
    method = "Obtain through " .. mount[5] .. ".",
    route = mount[5] .. " > craft, learn, fish, or buy where applicable",
    note = mount[8]
  })
end

local wrathPvpMounts = {
  { "Black War Mammoth", 254, 43956, 59785, "Alliance", "A", "Wintergrasp Quartermaster", "Wintergrasp", "Alliance Wintergrasp PvP mount." },
  { "Black War Mammoth", 255, 44077, 59788, "Horde", "H", "Wintergrasp Quartermaster", "Wintergrasp", "Horde Wintergrasp PvP mount." }
}

for _, mount in ipairs(wrathPvpMounts) do
  MountAtlasAddWrathMount({
    name = mount[1],
    mountID = mount[2],
    itemID = mount[3],
    spellID = mount[4],
    boss = mount[7],
    vendor = mount[7],
    zone = mount[8],
    source = "PvP",
    reset = "special",
    faction = mount[5],
    side = mount[6],
    cost = "Marks of Honor / legacy PvP currency",
    requirement = "Buy from the Wintergrasp PvP mount vendor.",
    method = "Purchase from the Wintergrasp PvP vendor.",
    route = mount[8] .. " > " .. mount[7],
    note = mount[9]
  })
end

local wrathGladiatorMounts = {
  { "Deadly Gladiator's Frost Wyrm", 313, 46708, 64927, "Arena Season 5" },
  { "Furious Gladiator's Frost Wyrm", 317, 46171, 65439, "Arena Season 6" },
  { "Relentless Gladiator's Frost Wyrm", 340, 47840, 67336, "Arena Season 7" },
  { "Wrathful Gladiator's Frost Wyrm", 358, 50435, 71810, "Arena Season 8" }
}

for _, mount in ipairs(wrathGladiatorMounts) do
  MountAtlasAddWrathMount({
    name = mount[1],
    mountID = mount[2],
    itemID = mount[3],
    spellID = mount[4],
    boss = "Arena season rewards",
    zone = "Arena season rewards",
    source = "PvP",
    reset = "special",
    requirement = "Legacy and no longer obtainable. Originally awarded to Gladiators at the end of " .. mount[5] .. ".",
    method = "This mount was originally granted as a Gladiator end-of-season reward in " .. mount[5] .. ".",
    route = mount[5] .. " > end-of-season Gladiator reward",
    note = "Legacy Wrath Gladiator mount removed from retail."
  })
end

local wrathClassMounts = {
  { "Acherus Deathcharger", 221, nil, 48778, "Death Knight", "Death Knight class mount learned during the starting experience." },
  { "Winged Steed of the Ebon Blade", 236, 40775, 54729, "Death Knight", "Death Knight flying mount sold by the Knights of the Ebon Blade." }
}

for _, mount in ipairs(wrathClassMounts) do
  MountAtlasAddWrathMount({
    name = mount[1],
    mountID = mount[2],
    itemID = mount[3],
    spellID = mount[4],
    boss = mount[5],
    zone = "Class spellbook",
    source = "Class",
    reset = "special",
    requirement = "Death Knight class.",
    method = "Learn or buy the Death Knight class mount on an eligible character.",
    route = "Death Knight class progression / Knights of the Ebon Blade",
    note = mount[6]
  })
end

MountAtlasAddWrathMount({
  name = "Violet Proto-Drake",
  mountID = 267,
  itemID = 44177,
  spellID = 60024,
  boss = "What A Long, Strange Trip It's Been",
  zone = "World Events",
  source = "Achievement",
  reset = "special",
  requirement = "Complete the world event meta-achievement What A Long, Strange Trip It's Been.",
  method = "Complete all required holiday meta-achievements.",
  route = "World Events > holiday meta-achievements",
  note = "Wrath-era world event meta-achievement mount."
})

MountAtlasAddWrathMount({
  name = "Plagued Proto-Drake",
  mountID = 266,
  itemID = 44175,
  spellID = 60021,
  boss = "Black Market Auction House",
  zone = "Black Market Auction House",
  source = "Black Market",
  reset = "special",
  cost = "Black Market Auction House bid",
  requirement = "Available only when listed on the Black Market Auction House.",
  method = "Bid on it when it appears on the Black Market Auction House.",
  route = "Black Market Auction House",
  note = "Originally the removed Glory of the Raider (10 player) Wrath reward."
})

MountAtlasAddWrathMount({
  name = "Black Proto-Drake",
  mountID = 263,
  itemID = 44164,
  spellID = 59976,
  boss = "Glory of the Raider (25 player)",
  zone = "Wrath achievements",
  source = "Achievement",
  reset = "special",
  requirement = "Legacy and no longer obtainable. Originally awarded for Glory of the Raider (25 player).",
  method = "This mount was originally awarded for completing Glory of the Raider (25 player).",
  route = "Glory of the Raider (25 player)",
  note = "Legacy Wrath raid meta-achievement mount removed from retail."
})

local wrathLegacyAchievementMounts = {
  {
    "Crusader's White Warhorse",
    344,
    49096,
    68187,
    "A Tribute to Immortality",
    "Trial of the Crusader",
    "Alliance",
    "A"
  },
  {
    "Crusader's Black Warhorse",
    345,
    49098,
    68188,
    "A Tribute to Immortality",
    "Trial of the Crusader",
    "Horde",
    "H"
  }
}

for _, mount in ipairs(wrathLegacyAchievementMounts) do
  MountAtlasAddWrathMount({
    name = mount[1],
    mountID = mount[2],
    itemID = mount[3],
    spellID = mount[4],
    boss = mount[5],
    zone = mount[6],
    source = "Achievement",
    reset = "special",
    faction = mount[7],
    side = mount[8],
    requirement = "Legacy and no longer obtainable. Originally awarded for completing A Tribute to Immortality in Trial of the Grand Crusader.",
    method = "This mount was originally awarded for completing A Tribute to Immortality in Trial of the Grand Crusader.",
    route = "Icecrown > Trial of the Crusader > A Tribute to Immortality",
    note = "Legacy Wrath Trial of the Crusader achievement mount removed from retail."
  })
end

local wrathAchievementMounts = {
  { "Red Proto-Drake", 262, 44160, 59961, "Glory of the Hero", "Heroic dungeon meta-achievement." },
  { "Rusted Proto-Drake", 307, 45802, 63963, "Glory of the Ulduar Raider (10 player)", "Ulduar 10 player legacy achievement." },
  { "Ironbound Proto-Drake", 306, 45801, 63956, "Glory of the Ulduar Raider (25 player)", "Ulduar 25 player legacy achievement." },
  { "Bloodbathed Frostbrood Vanquisher", 365, 51954, 72808, "Glory of the Icecrown Raider (10 player)", "Icecrown Citadel 10 player legacy achievement." },
  { "Icebound Frostbrood Vanquisher", 364, 51955, 72807, "Glory of the Icecrown Raider (25 player)", "Icecrown Citadel 25 player legacy achievement." }
}

for _, mount in ipairs(wrathAchievementMounts) do
  MountAtlasAddWrathMount({
    name = mount[1],
    mountID = mount[2],
    itemID = mount[3],
    spellID = mount[4],
    boss = mount[5],
    zone = "Wrath achievements",
    source = "Achievement",
    reset = "special",
    requirement = mount[5],
    method = "Complete the listed Wrath achievement.",
    route = mount[5],
    note = mount[6]
  })
end

local function MountAtlasAddCataclysmMount(entry)
  entry.expansion = "Cataclysm"
  MountAtlasAddCuratedMount(entry)
end

local cataclysmAchievementMounts = {
  { "Flameward Hippogryph", 413, 69213, 97359, "The Molten Front Offensive", "Molten Front", "Complete the Molten Front Offensive achievement." },
  { "Volcanic Stone Drake", 391, 62900, 88331, "Glory of the Cataclysm Hero", "Cataclysm dungeons", "Complete the Cataclysm heroic dungeon meta-achievement." },
  { "Drake of the East Wind", 392, 62901, 88335, "Glory of the Cataclysm Raider", "Cataclysm raids", "Complete the Blackwing Descent, Bastion of Twilight and Throne of the Four Winds meta-achievement." },
  { "Corrupted Fire Hawk", 417, 69230, 97560, "Glory of the Firelands Raider", "Firelands", "Complete the Firelands raid meta-achievement." },
  { "Twilight Harbinger", 443, 77068, 107844, "Glory of the Dragon Soul Raider", "Dragon Soul", "Complete the Dragon Soul raid meta-achievement." }
}

for _, mount in ipairs(cataclysmAchievementMounts) do
  MountAtlasAddCataclysmMount({
    name = mount[1],
    mountID = mount[2],
    itemID = mount[3],
    spellID = mount[4],
    boss = mount[5],
    zone = mount[6],
    source = "Achievement",
    reset = "special",
    requirement = mount[5],
    method = mount[7],
    route = mount[5],
    note = mount[7]
  })
end

MountAtlasAddCataclysmMount({
  name = "Vashj'ir Seahorse",
  mountID = 373,
  itemID = 54465,
  spellID = 75207,
  boss = "The Abyssal Ride",
  zone = "Vashj'ir",
  source = "Quest",
  reset = "special",
  requirement = "Vashj'ir intro questline.",
  method = "Complete The Abyssal Ride during the Vashj'ir introductory questline.",
  route = "Vashj'ir > Kelp'thar Forest questline > The Abyssal Ride",
  note = "Quest reward for the underwater zone intro."
})

local cataclysmReputationMounts = {
  { "Drake of the West Wind", 394, 65356, 88741, "Baradin's Wardens / Hellscream's Reach", "Tol Barad quartermaster", "Tol Barad", "Exalted and 200 Tol Barad Commendations", nil, nil, "Tol Barad reputation mount." },
  { "Spectral Steed", 405, 64998, 92231, "Baradin's Wardens", "Quartermaster Brazie", "Tol Barad Peninsula", "Baradin's Wardens Exalted and Tol Barad Commendations", "Alliance", "A", "Alliance Tol Barad reputation mount." },
  { "Spectral Wolf", 406, 64999, 92232, "Hellscream's Reach", "Pogg", "Tol Barad Peninsula", "Hellscream's Reach Exalted and Tol Barad Commendations", "Horde", "H", "Horde Tol Barad reputation mount." },
  { "Brown Riding Camel", 398, 63044, 88748, "Ramkahen", "Blacksmith Abasi", "Uldum", "Ramkahen Exalted", nil, nil, "Ramkahen reputation camel." },
  { "Tan Riding Camel", 399, 63045, 88749, "Ramkahen", "Blacksmith Abasi", "Uldum", "Ramkahen Exalted", nil, nil, "Ramkahen reputation camel." }
}

for _, mount in ipairs(cataclysmReputationMounts) do
  MountAtlasAddCataclysmMount({
    name = mount[1],
    mountID = mount[2],
    itemID = mount[3],
    spellID = mount[4],
    boss = mount[6],
    vendor = mount[6],
    zone = mount[7],
    source = "Reputation",
    reset = "special",
    reputation = mount[5],
    requirement = mount[8],
    faction = mount[9],
    side = mount[10],
    method = "Buy from the listed Cataclysm reputation vendor after meeting the reputation and currency requirement.",
    route = mount[7] .. " > " .. mount[6],
    note = mount[11]
  })
end

local cataclysmRareMounts = {
  { "Subdued Seahorse", 420, 67151, 98718, "Poseidus", "Vashj'ir", "Rare spawn in Vashj'ir." },
  { "Phosphorescent Stone Drake", 393, 63042, 88718, "Aeonaxx", "Deepholm", "Rare spawn in Deepholm." },
  { "Grey Riding Camel", 400, 63046, 88750, "Dormus the Camel-Hoarder", "Uldum", "Find the real Mysterious Camel Figurine in Uldum, then defeat Dormus." }
}

for _, mount in ipairs(cataclysmRareMounts) do
  MountAtlasAddCataclysmMount({
    name = mount[1],
    mountID = mount[2],
    itemID = mount[3],
    spellID = mount[4],
    boss = mount[5],
    zone = mount[6],
    source = "Rare",
    reset = "repeatable",
    dropChance = "Muy baja",
    method = mount[7],
    route = mount[6] .. " > " .. mount[5],
    note = mount[7]
  })
end

local cataclysmProfessionMounts = {
  { "Sandstone Drake", 407, 65891, 93326, "Alchemy", "Craft or buy Vial of the Sands.", "Alchemy crafted mount from Vial of the Sands." },
  { "Fossilized Raptor", 386, 60954, 84751, "Archaeology", "Solve the Fossil Archaeology rare project.", "Fossil Archaeology rare solve." },
  { "Ultramarine Qiraji Battle Tank", 404, 64883, 92155, "Archaeology", "Solve the Tol'vir Archaeology rare project.", "Tol'vir Archaeology rare solve." }
}

for _, mount in ipairs(cataclysmProfessionMounts) do
  MountAtlasAddCataclysmMount({
    name = mount[1],
    mountID = mount[2],
    itemID = mount[3],
    spellID = mount[4],
    boss = mount[5],
    zone = mount[5],
    source = "Profession",
    reset = "special",
    requiredProfession = mount[5],
    requirement = mount[5],
    method = mount[6],
    route = mount[5] .. " > " .. mount[6],
    note = mount[7]
  })
end

local cataclysmRacialMounts = {
  { "Mountain Horse", 435, 73838, 103195, "Alliance", "A", "Worgen racial mount vendor", "Gilneas / Darnassus", "Worgen racial ground mount." },
  { "Swift Mountain Horse", 436, 73839, 103196, "Alliance", "A", "Worgen racial mount vendor", "Gilneas / Darnassus", "Worgen racial epic ground mount." },
  { "Goblin Trike", 388, 62461, 87090, "Horde", "H", "Goblin racial mount vendor", "Orgrimmar", "Goblin racial ground mount." },
  { "Goblin Turbo-Trike", 389, 62462, 87091, "Horde", "H", "Goblin racial mount vendor", "Orgrimmar", "Goblin racial epic ground mount." }
}

for _, mount in ipairs(cataclysmRacialMounts) do
  MountAtlasAddCataclysmMount({
    name = mount[1],
    mountID = mount[2],
    itemID = mount[3],
    spellID = mount[4],
    boss = mount[7],
    vendor = mount[7],
    zone = mount[8],
    source = "Vendor",
    reset = "special",
    faction = mount[5],
    side = mount[6],
    requirement = mount[5] .. " character or exalted with the related city faction.",
    method = "Buy from the Cataclysm racial mount vendor.",
    route = mount[8] .. " > " .. mount[7],
    note = mount[9]
  })
end

local cataclysmClassMounts = {
  { "Sunwalker Kodo", 350, nil, 69820, "Tauren Paladin", "Horde", "H", "Tauren Paladin class mount." },
  { "Great Sunwalker Kodo", 351, nil, 69826, "Tauren Paladin", "Horde", "H", "Tauren Paladin epic class mount." },
  { "Exarch's Elekk", 367, nil, 73629, "Draenei Paladin", "Alliance", "A", "Draenei Paladin class mount." },
  { "Great Exarch's Elekk", 368, nil, 73630, "Draenei Paladin", "Alliance", "A", "Draenei Paladin epic class mount." }
}

for _, mount in ipairs(cataclysmClassMounts) do
  MountAtlasAddCataclysmMount({
    name = mount[1],
    mountID = mount[2],
    itemID = mount[3],
    spellID = mount[4],
    boss = mount[5],
    zone = "Class spellbook",
    source = "Class",
    reset = "special",
    faction = mount[6],
    side = mount[7],
    requirement = mount[5],
    method = "Learn or buy the Cataclysm Paladin class mount on an eligible character.",
    route = mount[5] .. " class progression",
    note = mount[8]
  })
end

local cataclysmGuildMounts = {
  { "Dark Phoenix", 401, 63125, 88990, "Guild Vendor", nil, nil, "Guild Glory of the Cataclysm Raider guild reward." },
  { "Golden King", 403, 62298, 90621, "Guild Vendor", "Alliance", "A", "Alliance guild vendor mount from Cataclysm." },
  { "Kor'kron Annihilator", 409, 67107, 93644, "Guild Vendor", "Horde", "H", "Horde guild vendor mount from Cataclysm." }
}

for _, mount in ipairs(cataclysmGuildMounts) do
  MountAtlasAddCataclysmMount({
    name = mount[1],
    mountID = mount[2],
    itemID = mount[3],
    spellID = mount[4],
    boss = mount[5],
    vendor = mount[5],
    zone = "Guild Vendor",
    source = "Vendor",
    reset = "special",
    faction = mount[6],
    side = mount[7],
    requirement = "Guild vendor unlock.",
    method = "Buy from a guild vendor after the required legacy guild unlock is available.",
    route = "Capital city > Guild Vendor",
    note = mount[8]
  })
end

local cataclysmPvpMounts = {
  { "Vicious War Steed", 422, 70909, 100332, "Alliance", "A", "Vicious Saddle", "Rated PvP", "Alliance Cataclysm rated PvP reward, now available through Vicious Saddle." },
  { "Vicious War Wolf", 423, 70910, 100333, "Horde", "H", "Vicious Saddle", "Rated PvP", "Horde Cataclysm rated PvP reward, now available through Vicious Saddle." }
}

for _, mount in ipairs(cataclysmPvpMounts) do
  MountAtlasAddCataclysmMount({
    name = mount[1],
    mountID = mount[2],
    itemID = mount[3],
    spellID = mount[4],
    boss = mount[7],
    vendor = mount[7],
    zone = mount[8],
    source = "PvP",
    reset = "special",
    faction = mount[5],
    side = mount[6],
    cost = "Vicious Saddle",
    requirement = "Earn or spend a Vicious Saddle.",
    method = "Purchase from the Vicious Saddle PvP mount vendor.",
    route = mount[8] .. " > " .. mount[7],
    note = mount[9]
  })
end

local cataclysmGladiatorMounts = {
  { "Vicious Gladiator's Twilight Drake", 424, 71339, 101282, "Arena Season 9" },
  { "Ruthless Gladiator's Twilight Drake", 428, 71954, 101821, "Arena Season 10" },
  { "Cataclysmic Gladiator's Twilight Drake", 467, 85785, 124550, "Arena Season 11" }
}

for _, mount in ipairs(cataclysmGladiatorMounts) do
  MountAtlasAddCataclysmMount({
    name = mount[1],
    mountID = mount[2],
    itemID = mount[3],
    spellID = mount[4],
    boss = "Arena season rewards",
    zone = "Arena season rewards",
    source = "PvP",
    reset = "special",
    requirement = "Legacy and no longer obtainable. Originally awarded to Gladiators at the end of " .. mount[5] .. ".",
    method = "This mount was originally granted as a Gladiator end-of-season reward in " .. mount[5] .. ".",
    route = mount[5] .. " > end-of-season Gladiator reward",
    note = "Legacy Cataclysm Gladiator mount removed from retail."
  })
end

local cataclysmEventMounts = {
  { "Swift Lovebird", 431, 72146, 102350, "Love is in the Air", "Love is in the Air vendor", "Buy with Love Tokens during Love is in the Air." },
  { "Swift Springstrider", 430, 72145, 102349, "Noblegarden", "Noblegarden vendor", "Buy with Noblegarden Chocolates during Noblegarden." },
  { "Swift Forest Strider", 429, 72140, 102346, "Darkmoon Faire", "Darkmoon Faire vendor", "Buy with Darkmoon Prize Tickets." },
  { "Darkmoon Dancing Bear", 434, 73766, 103081, "Darkmoon Faire", "Darkmoon Faire vendor", "Buy with Darkmoon Prize Tickets." }
}

for _, mount in ipairs(cataclysmEventMounts) do
  MountAtlasAddCataclysmMount({
    name = mount[1],
    mountID = mount[2],
    itemID = mount[3],
    spellID = mount[4],
    boss = mount[6],
    vendor = mount[6],
    zone = mount[5],
    source = "Event",
    reset = "event",
    eventName = mount[5],
    method = mount[7],
    route = mount[5] .. " > " .. mount[6],
    note = mount[7]
  })
end

local function MountAtlasAddPandariaMount(entry)
  entry.expansion = "Pandaria"
  MountAtlasAddCuratedMount(entry)
end

local pandariaAchievementMounts = {
  { "Pandaren Kite", 450, 81559, 118737, "Pandaren Ambassador", "Pandaria reputations", "Horde", "H", "Horde Pandaria reputation achievement reward." },
  { "Pandaren Kite", 516, 89785, 130985, "Pandaren Ambassador", "Pandaria reputations", "Alliance", "A", "Alliance Pandaria reputation achievement reward." },
  { "Crimson Cloud Serpent", 472, 87769, 127156, "Glory of the Pandaria Hero", "Pandaria heroic dungeons", nil, nil, "Pandaria heroic dungeon meta-achievement." },
  { "Heavenly Crimson Cloud Serpent", 474, 87773, 127161, "Glory of the Pandaria Raider", "Pandaria raids", nil, nil, "Mogu'shan Vaults, Heart of Fear and Terrace of Endless Spring meta-achievement." },
  { "Armored Skyscreamer", 530, 93662, 136400, "Glory of the Thundering Raider", "Throne of Thunder", nil, nil, "Throne of Thunder raid meta-achievement." },
  { "Spawn of Galakras", 557, 104208, 148392, "Glory of the Orgrimmar Raider", "Siege of Orgrimmar", nil, nil, "Siege of Orgrimmar raid meta-achievement." }
}

for _, mount in ipairs(pandariaAchievementMounts) do
  MountAtlasAddPandariaMount({
    name = mount[1],
    mountID = mount[2],
    itemID = mount[3],
    spellID = mount[4],
    boss = mount[5],
    zone = mount[6],
    source = "Achievement",
    reset = "special",
    faction = mount[7],
    side = mount[8],
    requirement = mount[5],
    method = "Complete the listed Mists of Pandaria achievement.",
    route = mount[5],
    note = mount[9]
  })
end

local pandariaLegacyAchievementMounts = {
  { "Crimson Pandaren Phoenix", 503, 89154, 129552, "Kai Featherfall", "Vale of Eternal Blossoms", "Legacy and no longer obtainable. Originally redeemed from Kai Featherfall with an Ancestral Phoenix Egg earned from Pandaria Challenge Modes." },
  { "Ashen Pandaren Phoenix", 518, 90710, 132117, "Kai Featherfall", "Vale of Eternal Blossoms", "Legacy and no longer obtainable. Originally redeemed from Kai Featherfall with an Ancestral Phoenix Egg earned from Pandaria Challenge Modes." },
  { "Emerald Pandaren Phoenix", 519, 90711, 132118, "Kai Featherfall", "Vale of Eternal Blossoms", "Legacy and no longer obtainable. Originally redeemed from Kai Featherfall with an Ancestral Phoenix Egg earned from Pandaria Challenge Modes." },
  { "Violet Pandaren Phoenix", 520, 90712, 132119, "Kai Featherfall", "Vale of Eternal Blossoms", "Legacy and no longer obtainable. Originally redeemed from Kai Featherfall with an Ancestral Phoenix Egg earned from Pandaria Challenge Modes." },
  { "Kor'kron War Wolf", 558, 104246, 148396, "Ahead of the Curve: Garrosh Hellscream", "Siege of Orgrimmar", "Legacy and no longer obtainable. Originally rewarded for Ahead of the Curve: Garrosh Hellscream before Patch 6.0." }
}

for _, mount in ipairs(pandariaLegacyAchievementMounts) do
  MountAtlasAddPandariaMount({
    name = mount[1],
    mountID = mount[2],
    itemID = mount[3],
    spellID = mount[4],
    boss = mount[5],
    vendor = mount[5] == "Kai Featherfall" and mount[5] or nil,
    zone = mount[6],
    source = "Achievement",
    reset = "special",
    requirement = mount[7],
    method = mount[5] == "Kai Featherfall"
      and "This legacy Challenge Mode mount was originally redeemed from Kai Featherfall with an Ancestral Phoenix Egg."
      or "This legacy reward was originally granted for Ahead of the Curve: Garrosh Hellscream before Patch 6.0.",
    route = mount[5] == "Kai Featherfall"
      and (mount[6] .. " > " .. mount[5])
      or "Siege of Orgrimmar > Garrosh Hellscream",
    note = mount[7]
  })
end

local pandariaReputationMounts = {
  { "Azure Riding Crane", 479, 87781, 127174, "Golden Lotus", "Jaluu the Generous", "Vale of Eternal Blossoms", "Golden Lotus Exalted", nil, nil, "Golden Lotus reputation mount." },
  { "Golden Riding Crane", 480, 87782, 127176, "Golden Lotus", "Jaluu the Generous", "Vale of Eternal Blossoms", "Golden Lotus Exalted", nil, nil, "Golden Lotus reputation mount." },
  { "Regal Riding Crane", 481, 87783, 127177, "Golden Lotus", "Jaluu the Generous", "Vale of Eternal Blossoms", "Golden Lotus Exalted", nil, nil, "Golden Lotus reputation mount." },
  { "Azure Cloud Serpent", 464, 85430, 123992, "Order of the Cloud Serpent", "San Redscale", "Jade Forest", "Order of the Cloud Serpent Exalted", nil, nil, "Order of the Cloud Serpent reputation mount." },
  { "Golden Cloud Serpent", 465, 85429, 123993, "Order of the Cloud Serpent", "San Redscale", "Jade Forest", "Order of the Cloud Serpent Exalted", nil, nil, "Order of the Cloud Serpent reputation mount." },
  { "Jade Cloud Serpent", 448, 79802, 113199, "Order of the Cloud Serpent", "San Redscale / Riding the Skies", "Jade Forest", "Order of the Cloud Serpent Exalted", nil, nil, "Order of the Cloud Serpent quest/reputation reward." },
  { "Green Shado-Pan Riding Tiger", 505, 89305, 129932, "Shado-Pan", "Rushi the Fox", "Townlong Steppes", "Shado-Pan Exalted", nil, nil, "Shado-Pan reputation mount." },
  { "Red Shado-Pan Riding Tiger", 507, 89306, 129935, "Shado-Pan", "Rushi the Fox", "Townlong Steppes", "Shado-Pan Exalted", nil, nil, "Shado-Pan reputation mount." },
  { "Blue Shado-Pan Riding Tiger", 506, 89307, 129934, "Shado-Pan", "Rushi the Fox", "Townlong Steppes", "Shado-Pan Exalted", nil, nil, "Shado-Pan reputation mount." },
  { "Brown Riding Goat", 508, 89362, 130086, "The Tillers", "Gina Mudclaw", "Valley of the Four Winds", "The Tillers Exalted", nil, nil, "The Tillers reputation mount." },
  { "White Riding Goat", 510, 89390, 130137, "The Tillers", "Gina Mudclaw", "Valley of the Four Winds", "The Tillers Exalted", nil, nil, "The Tillers reputation mount." },
  { "Black Riding Goat", 511, 89391, 130138, "The Tillers", "Gina Mudclaw", "Valley of the Four Winds", "The Tillers Exalted", nil, nil, "The Tillers reputation mount." },
  { "Grand Armored Gryphon", 526, 93168, 135416, "Operation: Shieldwall", "Agent Malley", "Krasarang Wilds", "Operation: Shieldwall Exalted", "Alliance", "A", "Alliance Operation: Shieldwall reputation mount." },
  { "Grand Armored Wyvern", 527, 93169, 135418, "Dominance Offensive", "Ongrom Black Tooth", "Krasarang Wilds", "Dominance Offensive Exalted", "Horde", "H", "Horde Dominance Offensive reputation mount." },
  { "Golden Primal Direhorn", 545, 95564, 140249, "Kirin Tor Offensive", "Hiren Loresong", "Isle of Thunder", "Kirin Tor Offensive Exalted", "Alliance", "A", "Alliance Isle of Thunder reputation mount." },
  { "Crimson Primal Direhorn", 546, 95565, 140250, "Sunreaver Onslaught", "Vasarin Redmorn", "Isle of Thunder", "Sunreaver Onslaught Exalted", "Horde", "H", "Horde Isle of Thunder reputation mount." },
  { "Azure Water Strider", 449, 81354, 118089, "The Anglers", "Nat Pagle", "Krasarang Wilds", "The Anglers Exalted", nil, nil, "The Anglers reputation mount." },
  { "Thundering August Cloud Serpent", 504, 89304, 129918, "The August Celestials", "Sage Whiteheart / Sage Lotusbloom", "Vale of Eternal Blossoms", "The August Celestials Exalted", nil, nil, "August Celestials reputation mount." },
  { "Amber Scorpion", 463, 85262, 123886, "The Klaxxi", "Ambersmith Zikk", "Dread Wastes", "The Klaxxi Exalted", nil, nil, "Klaxxi reputation mount." },
  { "Red Flying Cloud", 509, 89363, 130092, "The Lorewalkers", "Tan Shin Tiao", "Vale of Eternal Blossoms", "The Lorewalkers Exalted", nil, nil, "Lorewalkers reputation mount." },
  { "Heavenly Golden Cloud Serpent", 475, 87774, 127164, "Emperor Shaohao", "Mistweaver Ku", "Timeless Isle", "Emperor Shaohao Exalted", nil, nil, "Emperor Shaohao reputation mount." }
}

for _, mount in ipairs(pandariaReputationMounts) do
  MountAtlasAddPandariaMount({
    name = mount[1],
    mountID = mount[2],
    itemID = mount[3],
    spellID = mount[4],
    boss = mount[6],
    vendor = mount[6],
    zone = mount[7],
    source = "Reputation",
    reset = "special",
    reputation = mount[5],
    requirement = mount[8],
    faction = mount[9],
    side = mount[10],
    method = "Buy or obtain from the listed Mists of Pandaria reputation source.",
    route = mount[7] .. " > " .. mount[6],
    note = mount[11]
  })
end

local pandariaQuestMounts = {
  { "Grand Gryphon", 528, 93385, 136163, "Operation: Shieldwall campaign", "Krasarang Wilds", "Alliance", "A", "Complete the Operation: Shieldwall campaign." },
  { "Grand Wyvern", 529, 93386, 136164, "Dominance Offensive campaign", "Krasarang Wilds", "Horde", "H", "Complete the Dominance Offensive campaign." },
  { "Onyx Cloud Serpent", 471, 87768, 127154, "Surprise Attack!", "Jade Forest", nil, nil, "Complete the Order of the Cloud Serpent questline." },
  { "Bone-White Primal Raptor", 537, 94290, 138640, "A Large Pile of Giant Dinosaur Bones", "Isle of Giants", nil, nil, "Turn in 9,999 Giant Dinosaur Bones to Ku'ma on the Isle of Giants." }
}

for _, mount in ipairs(pandariaQuestMounts) do
  MountAtlasAddPandariaMount({
    name = mount[1],
    mountID = mount[2],
    itemID = mount[3],
    spellID = mount[4],
    boss = mount[5],
    zone = mount[6],
    source = "Quest",
    reset = "special",
    faction = mount[7],
    side = mount[8],
    requirement = mount[5],
    method = mount[9],
    route = mount[6] .. " > " .. mount[5],
    note = mount[9]
  })
end

local pandariaRareMounts = {
  { "Red Primal Raptor", 538, 94291, 138641, "Primal Egg", "Isle of Giants", "Chance when a Primal Egg from Isle of Giants dinosaurs hatches." },
  { "Black Primal Raptor", 539, 94292, 138642, "Primal Egg", "Isle of Giants", "Chance when a Primal Egg from Isle of Giants dinosaurs hatches." },
  { "Green Primal Raptor", 540, 94293, 138643, "Primal Egg", "Isle of Giants", "Chance when a Primal Egg from Isle of Giants dinosaurs hatches." },
  { "Slate Primordial Direhorn", 535, 94229, 138425, "Zandalari Warbringers", "Pandaria", "Rare drop from Zandalari Warbringers." },
  { "Amber Primordial Direhorn", 534, 94230, 138424, "Zandalari Warbringers", "Pandaria", "Rare drop from Zandalari Warbringers." },
  { "Jade Primordial Direhorn", 536, 94231, 138426, "Zandalari Warbringers", "Pandaria", "Rare drop from Zandalari Warbringers." }
}

for _, mount in ipairs(pandariaRareMounts) do
  MountAtlasAddPandariaMount({
    name = mount[1],
    mountID = mount[2],
    itemID = mount[3],
    spellID = mount[4],
    boss = mount[5],
    zone = mount[6],
    source = "Rare",
    reset = "repeatable",
    dropChance = "Muy baja",
    method = mount[7],
    route = mount[6] .. " > " .. mount[5],
    note = mount[7]
  })
end

local pandariaRacialMounts = {
  { "Great Red Dragon Turtle", 453, 91010, 120822 },
  { "Great Green Dragon Turtle", 497, 91012, 127293 },
  { "Great Black Dragon Turtle", 498, 91011, 127295 },
  { "Great Blue Dragon Turtle", 499, 91013, 127302 },
  { "Great Brown Dragon Turtle", 500, 91014, 127308 },
  { "Great Purple Dragon Turtle", 501, 91015, 127310 },
  { "Green Dragon Turtle", 452, 91004, 120395 },
  { "Black Dragon Turtle", 492, 91008, 127286 },
  { "Blue Dragon Turtle", 493, 91009, 127287 },
  { "Brown Dragon Turtle", 494, 91005, 127288 },
  { "Purple Dragon Turtle", 495, 91006, 127289 },
  { "Red Dragon Turtle", 496, 91007, 127290 }
}

for _, mount in ipairs(pandariaRacialMounts) do
  MountAtlasAddPandariaMount({
    name = mount[1],
    mountID = mount[2],
    itemID = mount[3],
    spellID = mount[4],
    boss = "Pandaren racial mount vendor",
    vendor = "Pandaren racial mount vendor",
    zone = "Stormwind / Orgrimmar",
    source = "Vendor",
    reset = "special",
    requirement = "Pandaren character or exalted with Tushui Pandaren / Huojin Pandaren.",
    method = "Buy from the Pandaren racial mount vendor.",
    route = "Stormwind / Orgrimmar > Pandaren racial mount vendor",
    note = "Mists of Pandaria Pandaren racial mount."
  })
end

local pandariaProfessionMounts = {
  { "Depleted-Kyparium Rocket", 469, 87250, 126507, "Engineering", "Pandaria Engineering crafted rocket." },
  { "Geosynchronous World Spinner", 470, 87251, 126508, "Engineering", "Pandaria Engineering crafted rocket." },
  { "Sky Golem", 522, 95416, 134359, "Engineering", "Pandaria Engineering crafted mount." },
  { "Jade Panther", 457, 83088, 121837, "Jewelcrafting", "Pandaria Jewelcrafting crafted panther." },
  { "Ruby Panther", 458, 83087, 121838, "Jewelcrafting", "Pandaria Jewelcrafting crafted panther." },
  { "Sapphire Panther", 456, 83090, 121836, "Jewelcrafting", "Pandaria Jewelcrafting crafted panther." },
  { "Sunstone Panther", 459, 83089, 121839, "Jewelcrafting", "Pandaria Jewelcrafting crafted panther." },
  { "Jeweled Onyx Panther", 451, 82453, 120043, "Jewelcrafting", "Pandaria Jewelcrafting crafted panther made from the four colored panthers." }
}

for _, mount in ipairs(pandariaProfessionMounts) do
  MountAtlasAddPandariaMount({
    name = mount[1],
    mountID = mount[2],
    itemID = mount[3],
    spellID = mount[4],
    boss = mount[5],
    zone = mount[5],
    source = "Profession",
    reset = "special",
    requiredProfession = mount[5],
    requirement = mount[5],
    method = "Craft with " .. mount[5] .. " or buy from another player.",
    route = mount[5] .. " > craft or buy from another player",
    note = mount[6]
  })
end

local pandariaPvpMounts = {
  { "Vicious Kaldorei Warsaber", 554, 102514, 146615, "Alliance", "A", "Vicious Saddle", "Rated PvP", "Alliance Mists of Pandaria rated PvP reward, now available through Vicious Saddle." },
  { "Vicious Skeletal Warhorse", 555, 102533, 146622, "Horde", "H", "Vicious Saddle", "Rated PvP", "Horde Mists of Pandaria rated PvP reward, now available through Vicious Saddle." },
  { "Ashhide Mushan Beast", 560, 103638, 148428, nil, nil, "Speaker Gulan", "Timeless Isle", "Buy with Bloody Coins from Speaker Gulan on Timeless Isle." }
}

for _, mount in ipairs(pandariaPvpMounts) do
  MountAtlasAddPandariaMount({
    name = mount[1],
    mountID = mount[2],
    itemID = mount[3],
    spellID = mount[4],
    boss = mount[7],
    vendor = mount[7],
    zone = mount[8],
    source = "PvP",
    reset = "special",
    faction = mount[5],
    side = mount[6],
    cost = mount[7] == "Vicious Saddle" and "Vicious Saddle" or mount[7] == "Speaker Gulan" and "Bloody Coins" or nil,
    requirement = mount[9],
    method = mount[9],
    route = mount[8] .. " > " .. mount[7],
    note = mount[9]
  })
end

local pandariaGladiatorMounts = {
  { "Malevolent Gladiator's Cloud Serpent", 541, 95041, 139407, "Arena Season 12" },
  { "Tyrannical Gladiator's Cloud Serpent", 562, 104325, 148618, "Arena Season 13" },
  { "Grievous Gladiator's Cloud Serpent", 563, 104326, 148619, "Arena Season 14" },
  { "Prideful Gladiator's Cloud Serpent", 564, 104327, 148620, "Arena Season 15" }
}

for _, mount in ipairs(pandariaGladiatorMounts) do
  MountAtlasAddPandariaMount({
    name = mount[1],
    mountID = mount[2],
    itemID = mount[3],
    spellID = mount[4],
    boss = "Arena season rewards",
    zone = "Arena season rewards",
    source = "PvP",
    reset = "special",
    requirement = "Legacy and no longer obtainable. Originally awarded to Gladiators at the end of " .. mount[5] .. ".",
    method = "This mount was originally granted as a Gladiator end-of-season reward in " .. mount[5] .. ".",
    route = mount[5] .. " > end-of-season Gladiator reward",
    note = "Legacy Pandaria Gladiator mount removed from retail."
  })
end

MountAtlasAddPandariaMount({
  name = "Brawler's Burly Mushan Beast",
  mountID = 550,
  itemID = 98405,
  spellID = 142641,
  boss = "Brawler's Guild",
  zone = "Brawler's Guild",
  source = "Event",
  reset = "special",
  requirement = "Brawler's Guild rank requirement.",
  method = "Earn through Brawler's Guild when the feature is active.",
  route = "Brawler's Guild",
  note = "Mists-era Brawler's Guild mount."
})

MountAtlasAddPandariaMount({
  name = "Thundering Jade Cloud Serpent",
  mountID = 466,
  itemID = 85666,
  spellID = 124408,
  boss = "Guild Vendor",
  vendor = "Guild Vendor",
  zone = "Guild Vendor",
  source = "Vendor",
  reset = "special",
  requirement = "Guild Glory of the Pandaria Raider guild unlock.",
  method = "Buy from a guild vendor after the required legacy guild unlock is available.",
  route = "Capital city > Guild Vendor",
  note = "Mists of Pandaria guild vendor mount."
})

local function MountAtlasAddDraenorMount(entry)
  entry.expansion = "Draenor"
  MountAtlasAddCuratedMount(entry)
end

local draenorAchievementMounts = {
  { "Soaring Skyterror", 772, 128706, 191633, "Draenor Pathfinder", "Draenor", "Complete Draenor Pathfinder." },
  { "Frostplains Battleboar", 623, 116670, 171632, "Glory of the Draenor Hero", "Draenor dungeons", "Complete the Draenor heroic dungeon meta-achievement." },
  { "Gorestrider Gronnling", 607, 116383, 171436, "Glory of the Draenor Raider", "Draenor raids", "Complete the Highmaul and Blackrock Foundry raid meta-achievement." },
  { "Infernal Direwolf", 758, 127140, 186305, "Glory of the Hellfire Raider", "Hellfire Citadel", "Complete the Hellfire Citadel raid meta-achievement." },
  { "Challenger's War Yeti", 654, 116791, 171848, "Challenge Warlord: Silver", "Draenor challenge modes", "Legacy and no longer obtainable. Originally awarded for completing Warlords of Draenor Challenge Modes on Silver difficulty." },
  { "Grove Warden", 764, 128422, 189999, "Ahead of the Curve: The Black Gate", "Hellfire Citadel", "Legacy and no longer obtainable. Originally rewarded from Heroic Archimonde before Legion." }
}

for _, mount in ipairs(draenorAchievementMounts) do
  MountAtlasAddDraenorMount({
    name = mount[1],
    mountID = mount[2],
    itemID = mount[3],
    spellID = mount[4],
    boss = mount[5],
    zone = mount[6],
    source = "Achievement",
    reset = "special",
    requirement = mount[5],
    method = mount[7],
    route = mount[5],
    note = mount[7]
  })
end

local draenorVendorMounts = {
  { "Rocktusk Battleboar", 620, 116667, 171628, "Trader Araanda / Trader Darakk", "Garrison", "Gold vendor mount." },
  { "Witherhide Cliffstomper", 608, 116655, 171616, "Trader Araanda / Trader Darakk", "Garrison", "Gold vendor mount." }
}

for _, mount in ipairs(draenorVendorMounts) do
  MountAtlasAddDraenorMount({
    name = mount[1],
    mountID = mount[2],
    itemID = mount[3],
    spellID = mount[4],
    boss = mount[5],
    vendor = mount[5],
    zone = mount[6],
    source = "Vendor",
    reset = "special",
    cost = "Gold",
    method = "Buy from the listed Warlords of Draenor garrison vendor.",
    route = mount[6] .. " > " .. mount[5],
    note = mount[7]
  })
end

local draenorReputationMounts = {
  { "Swift Frostwolf", 648, 116785, 171842, "Frostwolf Orcs", "Beska Redtusk", "Warspear", "Frostwolf Orcs Exalted", "Horde", "H", "Horde Frostwolf Orcs reputation mount." },
  { "Dusty Rockhide", 617, 116664, 171625, "Council of Exarchs", "Vindicator Nuurem", "Stormshield", "Council of Exarchs Exalted", "Alliance", "A", "Alliance Council of Exarchs reputation mount." },
  { "Shadowmane Charger", 635, 116772, 171829, "Arakkoa Outcasts", "Shadow-Sage Brakoss / Ravenspeaker Skeega", "Ashran", "Arakkoa Outcasts Exalted", nil, nil, "Arakkoa Outcasts reputation mount." },
  { "Domesticated Razorback", 625, 116672, 171634, "Steamwheedle Preservation Society", "Gazrix Gearlock / Mimi Wizzlebub", "Ashran", "Steamwheedle Preservation Society Exalted", nil, nil, "Steamwheedle Preservation Society reputation mount." },
  { "Mosshide Riverwallow", 632, 116768, 171825, "The Saberstalkers", "Z'tenga the Walker", "Tanaan Jungle", "The Saberstalkers Exalted", nil, nil, "Saberstalkers reputation mount." },
  { "Wild Goretusk", 624, 116671, 171633, "The Saberstalkers", "Z'tenga the Walker", "Tanaan Jungle", "The Saberstalkers Exalted", nil, nil, "Saberstalkers reputation mount." },
  { "Bristling Hellboar", 765, 128480, 190690, "The Saberstalkers", "Z'tenga the Walker", "Tanaan Jungle", "The Saberstalkers Exalted", nil, nil, "Saberstalkers reputation mount." },
  { "Deathtusk Felboar", 768, 128526, 190977, "Vol'jin's Headhunters / Hand of the Prophet", "Ravenspeaker Thelnaas / Vindicator Krethos", "Tanaan Jungle", "Exalted with your Tanaan Jungle faction", nil, nil, "Tanaan Jungle faction reputation mount; Horde and Alliance use different items for the same mount." },
  { "Corrupted Dreadwing", 753, 123974, 183117, "Order of the Awakened", "Dawn-Seeker Krisek", "Tanaan Jungle", "Order of the Awakened Exalted", nil, nil, "Order of the Awakened reputation mount." }
}

for _, mount in ipairs(draenorReputationMounts) do
  MountAtlasAddDraenorMount({
    name = mount[1],
    mountID = mount[2],
    itemID = mount[3],
    spellID = mount[4],
    boss = mount[6],
    vendor = mount[6],
    zone = mount[7],
    source = "Reputation",
    reset = "special",
    reputation = mount[5],
    requirement = mount[8],
    faction = mount[9],
    side = mount[10],
    method = "Buy from the listed Warlords of Draenor reputation vendor after meeting the reputation requirement.",
    route = mount[7] .. " > " .. mount[6],
    note = mount[11]
  })
end

local draenorGarrisonMounts = {
  { "Garn Steelmaw", 642, 116779, 171836, "Garrison invasion reward", "Garrison", "Chance from garrison invasion reward bags." },
  { "Giant Coldsnout", 626, 116673, 171635, "Garrison invasion reward", "Garrison", "Chance from garrison invasion reward bags." },
  { "Smoky Direwolf", 649, 116786, 171843, "Garrison invasion reward", "Garrison", "Chance from garrison invasion reward bags." },
  { "Shadowhide Pearltusk", 616, 116663, 171624, "Garrison invasion reward", "Garrison", "Chance from garrison invasion reward bags." },
  { "Mudback Riverbeast", 631, 116769, 171826, "Garrison mission", "Garrison", "Reward from Warlords of Draenor garrison missions." },
  { "Coalfist Gronnling", 762, 128311, 189364, "Garrison mission", "Garrison", "Reward from Warlords of Draenor garrison missions." }
}

for _, mount in ipairs(draenorGarrisonMounts) do
  MountAtlasAddDraenorMount({
    name = mount[1],
    mountID = mount[2],
    itemID = mount[3],
    spellID = mount[4],
    boss = mount[5],
    zone = mount[6],
    source = "Quest",
    reset = "special",
    requirement = "Warlords of Draenor garrison.",
    method = mount[7],
    route = mount[6] .. " > " .. mount[5],
    note = mount[7]
  })
end

local draenorStablesMounts = {
  { "Trained Snarler", 647, 116784, 171841 },
  { "Trained Meadowstomper", 615, 116662, 171623 },
  { "Trained Riverwallow", 629, 116676, 171638 },
  { "Trained Rocktusk", 628, 116675, 171637 },
  { "Trained Silverpelt", 637, 116774, 171831 },
  { "Trained Icehoof", 609, 116656, 171617 },
  { "Armored Frostboar", 621, 116668, 171629 },
  { "Armored Frostwolf", 644, 116781, 171838 }
}

for _, mount in ipairs(draenorStablesMounts) do
  MountAtlasAddDraenorMount({
    name = mount[1],
    mountID = mount[2],
    itemID = mount[3],
    spellID = mount[4],
    boss = "Garrison Stables",
    zone = "Garrison",
    source = "Quest",
    reset = "special",
    requirement = "Warlords of Draenor garrison Stables.",
    method = "Complete the garrison Stables training and achievement objectives.",
    route = "Garrison > Stables",
    note = "Warlords of Draenor garrison Stables mount."
  })
end

local draenorGarrisonTradingPostLabel = {
  enUS = "Garrison Trading Post",
  esMX = "Puesto comercial del garrison",
  ptBR = "Posto Comercial da Guarnicao",
  frFR = "Comptoir du fief",
  deDE = "Handelsposten der Garnison",
  ruRU = "Торговая лавка гарнизона"
}

local draenorTradingPostMethod = {
  enUS = "Buy from the appropriate Warlords of Draenor faction vendor or Garrison Trading Post vendor.",
  esMX = "Compra la montura al intendente correspondiente de Warlords of Draenor o al vendedor del puesto comercial del garrison.",
  ptBR = "Compre a montaria com o intendente apropriado de Warlords of Draenor ou com o vendedor do Posto Comercial da Guarnicao.",
  frFR = "Achetez la monture aupres de l'intendant approprie de Warlords of Draenor ou du vendeur du comptoir du fief.",
  deDE = "Kaufe das Reittier beim passenden Fraktionshaendler aus Warlords of Draenor oder beim Haendler des Garnisons-Handelspostens.",
  ruRU = "Купите транспорт у соответствующего интенданта Warlords of Draenor или у продавца торговой лавки гарнизона."
}

local draenorTradingPostMounts = {
  {
    "Ironside Warwolf",
    645,
    116782,
    171839,
    "Horde",
    "H",
    "Vol'jin's Spear / Garrison Trading Post",
    "Warspear",
    {
      enUS = "Horde mount from the Draenor garrison Trading Post or the Vol'jin's Spear faction.",
      esMX = "Montura de la Horda del puesto comercial del garrison en Draenor o de la faccion Lanza de Vol'jin.",
      ptBR = "Montaria da Horda do Posto Comercial da Guarnicao de Draenor ou da faccao Lanca de Vol'jin.",
      frFR = "Monture de la Horde obtenue via le comptoir du fief de Draenor ou la faction Lance de Vol'jin.",
      deDE = "Hordenreittier vom Handelsposten der Garnison in Draenor oder von der Fraktion Speer von Vol'jin.",
      ruRU = "Транспорт Орды из торговой лавки гарнизона Дренора или у фракции Копье Вол'джина."
    }
  },
  {
    "Armored Irontusk",
    618,
    116665,
    171626,
    "Alliance",
    "A",
    "Wrynn's Vanguard / Garrison Trading Post",
    "Stormshield",
    {
      enUS = "Alliance mount from the Draenor garrison Trading Post or Wrynn's Vanguard.",
      esMX = "Montura de la Alianza del puesto comercial del garrison en Draenor o de Vanguardia de Wrynn.",
      ptBR = "Montaria da Alianca do Posto Comercial da Guarnicao de Draenor ou da Vanguarda de Wrynn.",
      frFR = "Monture de l'Alliance obtenue via le comptoir du fief de Draenor ou l'Avant-garde de Wrynn.",
      deDE = "Allianzreittier vom Handelsposten der Garnison in Draenor oder von Wrynns Vorhut.",
      ruRU = "Транспорт Альянса из торговой лавки гарнизона Дренора или у Авангарда Ринна."
    }
  }
}

for _, mount in ipairs(draenorTradingPostMounts) do
  MountAtlasAddDraenorMount({
    name = mount[1],
    mountID = mount[2],
    itemID = mount[3],
    spellID = mount[4],
    boss = mount[7],
    vendor = mount[7],
    zone = mount[8],
    source = "Reputation",
    reset = "special",
    faction = mount[5],
    side = mount[6],
    requirement = mount[7],
    method = draenorTradingPostMethod,
    route = { mount[8], draenorGarrisonTradingPostLabel },
    note = mount[9]
  })
end

MountAtlasAddDraenorMount({
  name = "Crimson Water Strider",
  mountID = 488,
  itemID = 87791,
  spellID = 127271,
  boss = "Nat Pagle",
  vendor = "Nat Pagle",
  zone = "Garrison Fishing Shack",
  source = "Profession",
  reset = "special",
  requiredProfession = "Fishing",
  requirement = "Nat Pagle friendship and Nat's Lucky Coins from the garrison Fishing Shack.",
  method = "Buy from Nat Pagle using Nat's Lucky Coins after unlocking him at the garrison Fishing Shack.",
  route = "Garrison > Fishing Shack > Nat Pagle",
  note = "Warlords of Draenor Fishing Shack mount."
})

local draenorRareMounts = {
  { "Great Greytusk", 627, 116674, 171636, "Gorok", "Frostfire Ridge" },
  { "Bloodhoof Bull", 612, 116659, 171620, "Nakk the Thunderer", "Nagrand" },
  { "Mottled Meadowstomper", 614, 116661, 171622, "Luk'hok", "Nagrand" },
  { "Sunhide Gronnling", 655, 116792, 171849, "Poundfist", "Gorgrond" },
  { "Sapphire Riverbeast", 630, 116767, 171824, "Silthide", "Talador" },
  { "Swift Breezestrider", 636, 116773, 171830, "Pathrunner", "Shadowmoon Valley" },
  { "Warsong Direfang", 643, 116780, 171837, "Rattling Iron Cage", "Tanaan Jungle", "Chance from a Rattling Iron Cage dropped by Tanaan Jungle Hellbane rares.", "The cage can contain Warsong Direfang, Armored Razorback, or Tundra Icehoof." },
  { "Armored Razorback", 622, 116669, 171630, "Rattling Iron Cage", "Tanaan Jungle", "Chance from a Rattling Iron Cage dropped by Tanaan Jungle Hellbane rares.", "The cage can contain Warsong Direfang, Armored Razorback, or Tundra Icehoof." },
  { "Tundra Icehoof", 611, 116658, 171619, "Rattling Iron Cage", "Tanaan Jungle", "Chance from a Rattling Iron Cage dropped by Tanaan Jungle Hellbane rares.", "The cage can contain Warsong Direfang, Armored Razorback, or Tundra Icehoof." }
}

for _, mount in ipairs(draenorRareMounts) do
  MountAtlasAddDraenorMount({
    name = mount[1],
    mountID = mount[2],
    itemID = mount[3],
    spellID = mount[4],
    boss = mount[5],
    zone = mount[6],
    source = "Rare",
    reset = "repeatable",
    dropChance = "Muy baja",
    method = mount[7] or "Rare spawn drop in Warlords of Draenor.",
    route = mount[6] .. " > " .. mount[5],
    note = mount[8] or "Draenor rare spawn mount."
  })
end

local draenorProfessionMounts = {
  { "Creeping Carpet", 603, 115363, 169952, "Tailoring", "Warlords of Draenor Tailoring crafted carpet." },
  { "Dustmane Direwolf", 650, 108883, 171844, "Leatherworking", "Warlords of Draenor Leatherworking crafted mount." }
}

for _, mount in ipairs(draenorProfessionMounts) do
  MountAtlasAddDraenorMount({
    name = mount[1],
    mountID = mount[2],
    itemID = mount[3],
    spellID = mount[4],
    boss = mount[5],
    zone = mount[5],
    source = "Profession",
    reset = "special",
    requiredProfession = mount[5],
    requirement = mount[5],
    method = "Craft with " .. mount[5] .. " or buy from another player.",
    route = mount[5] .. " > craft or buy from another player",
    note = mount[6]
  })
end

local draenorPvpMounts = {
  { "Pale Thorngrazer", 639, 116776, 171833, "Alliance", "A", "Ashran PvP vendor", "Ashran", "Alliance Ashran PvP mount." },
  { "Breezestrider Stallion", 638, 116775, 171832, "Horde", "H", "Ashran PvP vendor", "Ashran", "Horde Ashran PvP mount." },
  { "Vicious War Ram", 640, 116777, 171834, "Alliance", "A", "Vicious Saddle", "Rated PvP", "Alliance Warlords of Draenor rated PvP reward, now available through Vicious Saddle." },
  { "Vicious War Raptor", 641, 116778, 171835, "Horde", "H", "Vicious Saddle", "Rated PvP", "Horde Warlords of Draenor rated PvP reward, now available through Vicious Saddle." },
  { "Vicious War Mechanostrider", 755, 124089, 183889, "Alliance", "A", "Vicious Saddle", "Rated PvP", "Alliance Warlords of Draenor rated PvP reward, now available through Vicious Saddle." },
  { "Vicious War Kodo", 756, 124540, 185052, "Horde", "H", "Vicious Saddle", "Rated PvP", "Horde Warlords of Draenor rated PvP reward, now available through Vicious Saddle." }
}

for _, mount in ipairs(draenorPvpMounts) do
  MountAtlasAddDraenorMount({
    name = mount[1],
    mountID = mount[2],
    itemID = mount[3],
    spellID = mount[4],
    boss = mount[7],
    vendor = mount[7],
    zone = mount[8],
    source = "PvP",
    reset = "special",
    faction = mount[5],
    side = mount[6],
    cost = mount[7] == "Vicious Saddle" and "Vicious Saddle" or nil,
    requirement = mount[9],
    method = mount[9],
    route = mount[8] .. " > " .. mount[7],
    note = mount[9]
  })
end

local draenorGladiatorMounts = {
  { "Primal Gladiator's Felblood Gronnling", 759, 128277, 186828 },
  { "Wild Gladiator's Felblood Gronnling", 760, 128281, 189043 },
  { "Warmongering Gladiator's Felblood Gronnling", 761, 128282, 189044 }
}

for _, mount in ipairs(draenorGladiatorMounts) do
  MountAtlasAddDraenorMount({
    name = mount[1],
    mountID = mount[2],
    itemID = mount[3],
    spellID = mount[4],
    boss = "Arena season rewards",
    zone = "Arena season rewards",
    source = "PvP",
    reset = "special",
    requirement = "Legacy and no longer obtainable. Originally awarded as a Draenor Gladiator end-of-season reward.",
    method = "This mount was originally granted as a Draenor Gladiator end-of-season reward.",
    route = "Draenor Gladiator season > end-of-season reward",
    note = "Legacy Draenor Gladiator mount removed from retail."
  })
end

MountAtlasAddDraenorMount({
  name = "Blacksteel Battleboar",
  mountID = 619,
  itemID = 116666,
  spellID = 171627,
  boss = "Guild Vendor",
  vendor = "Guild Vendor",
  zone = "Guild Vendor",
  source = "Vendor",
  reset = "special",
  requirement = "Warlords of Draenor guild vendor unlock.",
  method = "Buy from a guild vendor after the required legacy guild unlock is available.",
  route = "Capital city > Guild Vendor",
  note = "Warlords of Draenor guild vendor mount."
})

local function MountAtlasAddLegionMount(entry)
  entry.expansion = "Legion"
  MountAtlasAddCuratedMount(entry)
end

local legionAchievementMounts = {
  { "Ratstallion", 804, 138387, 215558, "Underbelly Tycoon", "Dalaran (Broken Isles)", "Loot 20,000 Sightless Eyes in Dalaran's Underbelly.", nil, nil },
  { "Bleakhoof Ruinstrider", 986, 153041, 254260, "...And Chew Mana Buns", "Argus", "Kill 2,000 non-trivial demons on Argus.", nil, nil },
  { "Leyfeather Hippogryph", 846, 141217, 225765, "Glory of the Legion Hero", "Legion dungeons", "Complete the Legion mythic dungeon meta-achievement.", nil, nil },
  { "Grove Defiler", 773, 141216, 193007, "Glory of the Legion Raider", "Emerald Nightmare / Nighthold", "Complete the Emerald Nightmare and Nighthold raid meta-achievement.", nil, nil },
  { "Antoran Gloomhound", 972, 152815, 253087, "Glory of the Argus Raider", "Antorus, the Burning Throne", "Complete the Antorus raid meta-achievement.", nil, nil }
}

for _, mount in ipairs(legionAchievementMounts) do
  MountAtlasAddLegionMount({
    name = mount[1],
    mountID = mount[2],
    itemID = mount[3],
    spellID = mount[4],
    boss = mount[5],
    zone = mount[6],
    source = "Achievement",
    reset = "special",
    faction = mount[8],
    side = mount[9],
    requirement = mount[5],
    method = mount[7],
    route = mount[5],
    note = mount[7]
  })
end

local legionVendorMounts = {
  { "Brinedeep Bottom-Feeder", 800, 138811, 214791, "Conjurer Margoss", "Margoss's Retreat", "100 Drowned Mana", "Buy from Conjurer Margoss after raising friendship and collecting Drowned Mana." },
  { "Arcadian War Turtle", 847, 141713, 227956, "Xur'ios", "Dalaran (Broken Isles)", "150 Curious Coins", "Buy from Xur'ios in Dalaran when the mount is available." }
}

for _, mount in ipairs(legionVendorMounts) do
  MountAtlasAddLegionMount({
    name = mount[1],
    mountID = mount[2],
    itemID = mount[3],
    spellID = mount[4],
    boss = mount[5],
    vendor = mount[5],
    zone = mount[6],
    source = "Vendor",
    reset = "special",
    cost = mount[7],
    method = mount[8],
    route = mount[6] .. " > " .. mount[5],
    note = mount[8]
  })
end

local legionQuestMounts = {
  { "Llothien Prowler", 656, 137573, 171850, "Volpin the Elusive", "Suramar", "Complete the Withered Army Training fox invitation chain.", "Suramar > Withered Army Training > Volpin quest chain" },
  { "Arcanist's Manasaber", 881, 142436, 230987, "Fate of the Nightborne", "Suramar", "Complete the Suramar Insurrection finale.", "Suramar > Insurrection > Fate of the Nightborne" },
  { "Predatory Bloodgazer", 793, 137577, 213158, "Bloodgazer Hatchling", "Azsuna", "Raise the Bloodgazer falcosaur hatchling and complete its quest chain.", "Azsuna > falcosaur hatchling questline" },
  { "Snowfeather Hunter", 795, 137578, 213163, "Snowfeather Hatchling", "Highmountain", "Raise the Snowfeather falcosaur hatchling and complete its quest chain.", "Highmountain > falcosaur hatchling questline" },
  { "Brilliant Direbeak", 794, 137579, 213164, "Direbeak Hatchling", "Stormheim", "Raise the Direbeak falcosaur hatchling and complete its quest chain.", "Stormheim > falcosaur hatchling questline" },
  { "Viridian Sharptalon", 796, 137580, 213165, "Sharptalon Hatchling", "Val'sharah", "Raise the Sharptalon falcosaur hatchling and complete its quest chain.", "Val'sharah > falcosaur hatchling questline" }
}

for _, mount in ipairs(legionQuestMounts) do
  MountAtlasAddLegionMount({
    name = mount[1],
    mountID = mount[2],
    itemID = mount[3],
    spellID = mount[4],
    boss = mount[5],
    zone = mount[6],
    source = "Quest",
    reset = "special",
    requirement = mount[5],
    method = mount[7],
    route = mount[8],
    note = mount[7]
  })
end

local legionSecretMounts = {
  { "Riddler's Mind-Worm", 947, 147835, 243025, "Page riddle secret", "Broken Isles", "Solve the hidden page riddle sequence across Legion-era zones and raids.", "Broken Isles / Legion raids > page riddle route" },
  { "Lucid Nightmare", 961, 151623, 247402, "Endless Halls secret", "Azeroth", "Complete the multi-step Lucid Nightmare secret, ending in the Endless Halls maze.", "Dalaran > Ulduar > AQ > Deepholm > Gnomeregan > Val'sharah > Endless Halls" }
}

for _, mount in ipairs(legionSecretMounts) do
  MountAtlasAddLegionMount({
    name = mount[1],
    mountID = mount[2],
    itemID = mount[3],
    spellID = mount[4],
    boss = mount[5],
    zone = mount[6],
    source = "Secret",
    reset = "special",
    requirement = mount[5],
    method = mount[7],
    route = mount[8],
    note = mount[7]
  })
end

local legionReputationMounts = {
  { "Cerulean Ruinstrider", 965, 152797, 253007, "Argussian Reach", "Toraan the Revered", "Krokuun", "Argussian Reach Exalted", "Argussian Reach reputation mount." },
  { "Russet Ruinstrider", 968, 152793, 253006, "Argussian Reach", "Toraan the Revered", "Krokuun", "Argussian Reach Exalted", "Argussian Reach reputation mount." },
  { "Beryl Ruinstrider", 966, 152795, 253005, "Argussian Reach", "Toraan the Revered", "Krokuun", "Argussian Reach Exalted", "Argussian Reach reputation mount." },
  { "Amethyst Ruinstrider", 964, 152794, 253004, "Argussian Reach", "Toraan the Revered", "Krokuun", "Argussian Reach Exalted", "Argussian Reach reputation mount." },
  { "Umber Ruinstrider", 967, 152796, 253008, "Argussian Reach", "Toraan the Revered", "Krokuun", "Argussian Reach Exalted", "Argussian Reach reputation mount." },
  { "Sable Ruinstrider", 939, 152791, 242305, "Argussian Reach", "Toraan the Revered", "Krokuun", "Argussian Reach Exalted", "Argussian Reach reputation mount." },
  { "Lightforged Warframe", 932, 152788, 239013, "Army of the Light", "Vindicator Jaelaana", "Krokuun", "Army of the Light Exalted", "Army of the Light reputation mount." }
}

for _, mount in ipairs(legionReputationMounts) do
  MountAtlasAddLegionMount({
    name = mount[1],
    mountID = mount[2],
    itemID = mount[3],
    spellID = mount[4],
    boss = mount[6],
    vendor = mount[6],
    zone = mount[7],
    source = "Reputation",
    reset = "special",
    reputation = mount[5],
    requirement = mount[8],
    method = "Buy from the listed Argus reputation vendor after meeting the reputation requirement.",
    route = mount[7] .. " > " .. mount[6],
    note = mount[9]
  })
end

local legionRareMounts = {
  { "Vibrant Mana Ray", 974, 152842, 253106, "Fel-Spotted Egg", "Argus", "Hatches from a Fel-Spotted Egg found from Argus rares." },
  { "Scintillating Mana Ray", 976, 152840, 253109, "Fel-Spotted Egg", "Argus", "Hatches from a Fel-Spotted Egg found from Argus rares." },
  { "Felglow Mana Ray", 975, 152841, 253108, "Fel-Spotted Egg", "Argus", "Hatches from a Fel-Spotted Egg found from Argus rares." },
  { "Darkspore Mana Ray", 906, 152843, 235764, "Fel-Spotted Egg", "Argus", "Hatches from a Fel-Spotted Egg found from Argus rares." },
  { "Acid Belcher", 980, 152904, 253662, "Skreeg the Devourer", "Mac'Aree", "Drop from the Argus rare Skreeg the Devourer." },
  { "Crimson Slavermaw", 979, 152905, 253661, "Blistermaw", "Antoran Wastes", "Drop from the Argus rare Blistermaw." },
  { "Biletooth Gnasher", 981, 152903, 253660, "Vrax'thul", "Krokuun", "Drop from the Argus rare Vrax'thul." },
  { "Vile Fiend", 955, 152790, 243652, "Houndmaster Kerrax", "Antoran Wastes", "Drop from the Argus rare Houndmaster Kerrax." }
}

for _, mount in ipairs(legionRareMounts) do
  MountAtlasAddLegionMount({
    name = mount[1],
    mountID = mount[2],
    itemID = mount[3],
    spellID = mount[4],
    boss = mount[5],
    zone = mount[6],
    source = "Rare",
    reset = "daily",
    dropChance = "Muy baja",
    method = mount[7],
    route = mount[6] .. " > " .. mount[5],
    note = mount[7]
  })
end

local legionRaidMounts = {
  { "Felblaze Infernal", 791, 137574, 213134, "Gul'dan", "The Nighthold", "Raid", false, "Drop de Gul'dan en The Nighthold Mythic.", "The Nighthold Mythic > Gul'dan", "Mythic raid drop." },
  { "Hellfire Infernal", 633, 137575, 171827, "Gul'dan", "The Nighthold", "Raid", false, "Drop de Gul'dan en The Nighthold.", "The Nighthold > Gul'dan", "Raid drop." }
}

for _, mount in ipairs(legionRaidMounts) do
  MountAtlasAddLegionMount({
    name = mount[1],
    mountID = mount[2],
    itemID = mount[3],
    spellID = mount[4],
    boss = mount[5],
    zone = mount[6],
    source = mount[7],
    reset = "weekly",
    dropChance = "Muy baja",
    method = mount[9],
    route = mount[10],
    note = mount[11]
  })
end

MountAtlasAddLegionMount({
  name = "Soaring Spelltome",
  mountID = 1532,
  itemID = 188674,
  spellID = 359318,
  boss = "A Tour of Towers",
  zone = "Mage Tower",
  source = "Achievement",
  reset = "special",
  requirement = "Complete all seven Mage Tower challenge types.",
  method = "Complete A Tour of Towers by finishing every Mage Tower challenge type.",
  route = "Broken Shore > Mage Tower > seven challenge types",
  note = "Mage Tower achievement reward."
})

local legionClassHallMounts = {
  { "Deathlord's Vilebrood Vanquisher", 866, 142231, 229387, "Death Knight", nil, nil, "Death Knight class hall mount." },
  { "Highlord's Golden Charger", 885, 143502, 231435, "Paladin", nil, nil, "Paladin class hall mount." },
  { "Highlord's Vengeful Charger", 892, 143503, 231587, "Paladin", nil, nil, "Paladin class hall color variant." },
  { "Highlord's Valorous Charger", 894, 143505, 231589, "Paladin", nil, nil, "Paladin class hall color variant." },
  { "Highlord's Vigilant Charger", 893, 143504, 231588, "Paladin", nil, nil, "Paladin class hall color variant." },
  { "Shadowblade's Murderous Omen", 884, 143493, 231434, "Rogue", nil, nil, "Rogue class hall mount." },
  { "Shadowblade's Lethal Omen", 889, 143492, 231523, "Rogue", nil, nil, "Rogue class hall color variant." },
  { "Shadowblade's Crimson Omen", 891, 143490, 231525, "Rogue", nil, nil, "Rogue class hall color variant." },
  { "Shadowblade's Baneful Omen", 890, 143491, 231524, "Rogue", nil, nil, "Rogue class hall color variant." },
  { "Ban-Lu, Grandmaster's Companion", 864, 142225, 229385, "Monk", nil, nil, "Monk class hall mount." },
  { "Battlelord's Bloodthirsty War Wyrm", 867, 142232, 229388, "Warrior", nil, nil, "Warrior class hall mount." },
  { "Farseer's Raging Tempest", 888, 143489, 231442, "Shaman", nil, nil, "Shaman class hall mount." },
  { "Huntmaster's Loyal Wolfhawk", 865, 142227, 229386, "Hunter", nil, nil, "Hunter class hall mount." },
  { "Huntmaster's Dire Wolfhawk", 872, 142228, 229439, "Hunter", nil, nil, "Hunter class hall color variant." },
  { "Huntmaster's Fierce Wolfhawk", 870, 142226, 229438, "Hunter", nil, nil, "Hunter class hall color variant." },
  { "Netherlord's Chaotic Wrathsteed", 898, nil, 232412, "Warlock", nil, nil, "Warlock class hall mount." },
  { "Netherlord's Accursed Wrathsteed", 931, 142233, 238454, "Warlock", nil, nil, "Warlock class hall color variant." },
  { "Netherlord's Brimstone Wrathsteed", 930, 143637, 238452, "Warlock", nil, nil, "Warlock class hall color variant." },
  { "High Priest's Lightsworn Seeker", 861, nil, 229377, "Priest", nil, nil, "Priest class hall mount." },
  { "Archmage's Prismatic Disc", 860, nil, 229376, "Mage", nil, nil, "Mage class hall mount." },
  { "Slayer's Felbroken Shrieker", 868, nil, 229417, "Demon Hunter", nil, nil, "Demon Hunter class hall mount." }
}

for _, mount in ipairs(legionClassHallMounts) do
  MountAtlasAddLegionMount({
    name = mount[1],
    mountID = mount[2],
    itemID = mount[3],
    spellID = mount[4],
    boss = mount[5] .. " class hall campaign",
    zone = "Class Hall",
    source = "Class",
    reset = "special",
    requiredClass = mount[5],
    faction = mount[6],
    side = mount[7],
    requirement = mount[5] .. " class hall campaign and Breaching the Tomb.",
    method = "Complete the Legion class hall campaign and Breaching the Tomb on an eligible " .. mount[5] .. ".",
    route = mount[5] .. " Order Hall > Broken Shore > class mount quest",
    note = mount[8]
  })
end

local legionParagonMounts = {
  { "Cloudwing Hippogryph", 943, 147806, 242881, "Court of Farondis", "Farondis Chest", "Azsuna", "Paragon cache from Court of Farondis." },
  { "Wild Dreamrunner", 942, 147804, 242875, "Dreamweavers", "Dreamweaver Cache", "Val'sharah", "Paragon cache from Dreamweavers." },
  { "Highmountain Elderhorn", 941, 147807, 242874, "Highmountain Tribe", "Highmountain Supplies", "Highmountain", "Paragon cache from Highmountain Tribe." },
  { "Valarjar Stormwing", 944, 147805, 242882, "Valarjar", "Valarjar Strongbox", "Stormheim", "Paragon cache from Valarjar." },
  { "Leywoven Flying Carpet", 905, 143764, 233364, "The Nightfallen", "Nightfallen Cache", "Suramar", "Paragon cache from The Nightfallen." },
  { "Glorious Felcrusher", 983, 153042, 254069, "Army of the Light", "Gleaming Footlocker", "Krokuun", "Paragon cache from Army of the Light." },
  { "Avenging Felcrusher", 985, 153044, 254259, "Army of the Light", "Gleaming Footlocker", "Krokuun", "Paragon cache from Army of the Light." },
  { "Blessed Felcrusher", 984, 153043, 254258, "Army of the Light", "Gleaming Footlocker", "Krokuun", "Paragon cache from Army of the Light." }
}

for _, mount in ipairs(legionParagonMounts) do
  MountAtlasAddLegionMount({
    name = mount[1],
    mountID = mount[2],
    itemID = mount[3],
    spellID = mount[4],
    boss = mount[6],
    zone = mount[7],
    source = "Reputation",
    reset = "repeatable",
    reputation = mount[5],
    requirement = "Paragon reputation cache after Exalted with " .. mount[5] .. ".",
    method = "Earn 10,000 reputation past Exalted and open the paragon cache.",
    route = mount[5] .. " paragon cache",
    note = mount[8]
  })
end

local legionProfessionMounts = {
  { "Spirit of Eche'ro", 779, 131734, 196681, "Archaeology", "Legion Archaeology biweekly quest", "Complete the Legion Archaeology quest The Right Path when it is active." },
  { "Pond Nettle", 982, 152912, 253711, "Fishing", "Argus fishing", "Fish in Argus pools or open water for the Pond Nettle." },
  { "Great Northern Elderhorn", 854, 129962, 213339, "Leatherworking", "Leatherworking", "Craft with Legion Leatherworking or buy from another player." },
  { "Steelbound Devourer", 797, 137686, 213209, "Blacksmithing", "Blacksmithing", "Craft with Legion Blacksmithing or buy from another player." }
}

for _, mount in ipairs(legionProfessionMounts) do
  MountAtlasAddLegionMount({
    name = mount[1],
    mountID = mount[2],
    itemID = mount[3],
    spellID = mount[4],
    boss = mount[6],
    zone = mount[5],
    source = "Profession",
    reset = "special",
    requiredProfession = mount[5],
    requirement = mount[5],
    method = mount[7],
    route = mount[6],
    note = mount[7]
  })
end

MountAtlasAddLegionMount({
  name = "Felsaber",
  mountID = 780,
  spellID = 200175,
  boss = "Demon Hunter",
  zone = "Class spellbook",
  source = "Class",
  reset = "special",
  requiredClass = "Demon Hunter",
  requirement = "Demon Hunter character.",
  method = "Create or play a Demon Hunter and learn the class mount from the spellbook.",
  route = "Demon Hunter > spellbook",
  note = "Demon Hunter class mount."
})

local legionEventMounts = {
  { "Brawler's Burly Basilisk", 878, 142403, 230844, "Brawler's Guild", "Brawler's Guild", "Earn through the Legion-era Brawler's Guild rank reward when the feature is available." },
  { "Darkwater Skate", 855, 142398, 228919, "Darkmoon Faire", "Darkmoon Island", "Buy with Darkmoon Daggermaw during Darkmoon Faire." },
  { "Darkmoon Dirigible", 962, 153485, 247448, "Darkmoon Faire", "Darkmoon Island", "Buy with Darkmoon Prize Tickets during Darkmoon Faire." }
}

for _, mount in ipairs(legionEventMounts) do
  MountAtlasAddLegionMount({
    name = mount[1],
    mountID = mount[2],
    itemID = mount[3],
    spellID = mount[4],
    boss = mount[5],
    vendor = mount[5],
    zone = mount[6],
    source = "Event",
    reset = "event",
    eventName = mount[5],
    method = mount[7],
    route = mount[6] .. " > " .. mount[5],
    note = mount[7]
  })
end

local legionPvpMounts = {
  { "Prestigious War Steed", 775, 129280, 193695, "Alliance", "A", "Prestige reward", "Rated PvP", "Alliance Legion Prestige achievement reward.", false },
  { "Prestigious War Wolf", 784, 143864, 204166, "Horde", "H", "Prestige reward", "Rated PvP", "Horde Legion Prestige achievement reward.", false },
  { "Prestigious Bronze Courser", 826, 140228, 222202, nil, nil, "Honor reward", "Rated PvP", "Legion honor/prestige reward.", false },
  { "Prestigious Ivory Courser", 833, 140233, 222238, nil, nil, "Honor reward", "Rated PvP", "Legion honor/prestige reward.", false },
  { "Prestigious Azure Courser", 834, 140408, 222240, nil, nil, "Honor reward", "Rated PvP", "Legion honor/prestige reward.", false },
  { "Prestigious Forest Courser", 832, 140232, 222237, nil, nil, "Honor reward", "Rated PvP", "Legion honor/prestige reward.", false },
  { "Prestigious Royal Courser", 831, 140230, 222236, nil, nil, "Honor reward", "Rated PvP", "Legion honor/prestige reward.", false },
  { "Prestigious Midnight Courser", 836, 140407, 222241, nil, nil, "Honor reward", "Rated PvP", "Legion honor/prestige reward.", false },
  { "Vicious Gilnean Warhorse", 841, 140353, 223341, "Alliance", "A", "Vicious Saddle", "Rated PvP", "Alliance Legion rated PvP reward, now available through Vicious Saddle.", false },
  { "Vicious War Elekk", 844, 140350, 223578, "Alliance", "A", "Vicious Saddle", "Rated PvP", "Alliance Legion rated PvP reward, now available through Vicious Saddle.", false },
  { "Vicious Warstrider", 843, 140348, 223363, "Horde", "H", "Vicious Saddle", "Rated PvP", "Horde Legion rated PvP reward, now available through Vicious Saddle.", false },
  { "Vicious War Trike", 842, 140354, 223354, "Horde", "H", "Vicious Saddle", "Rated PvP", "Horde Legion rated PvP reward, now available through Vicious Saddle.", false },
  { "Vicious War Turtle", 900, 143648, 232523, "Alliance", "A", "Vicious Saddle", "Rated PvP", "Alliance Legion rated PvP reward, now available through Vicious Saddle.", false },
  { "Vicious War Turtle", 901, 143649, 232525, "Horde", "H", "Vicious Saddle", "Rated PvP", "Horde Legion rated PvP reward, now available through Vicious Saddle.", false },
  { "Vicious War Bear", 873, 142234, 229487, "Alliance", "A", "Vicious Saddle", "Rated PvP", "Alliance Legion rated PvP reward, now available through Vicious Saddle.", false },
  { "Vicious War Bear", 874, 142235, 229486, "Horde", "H", "Vicious Saddle", "Rated PvP", "Horde Legion rated PvP reward, now available through Vicious Saddle.", false },
  { "Vicious War Lion", 876, 142237, 229512, "Alliance", "A", "Vicious Saddle", "Rated PvP", "Alliance Legion rated PvP reward, now available through Vicious Saddle.", false },
  { "Vicious War Scorpion", 882, 142437, 230988, "Horde", "H", "Vicious Saddle", "Rated PvP", "Horde Legion rated PvP reward, now available through Vicious Saddle.", false },
  { "Vicious War Fox", 945, 152870, 242896, "Alliance", "A", "Vicious Saddle", "Rated PvP", "Alliance Legion rated PvP reward, now available through Vicious Saddle.", false },
  { "Vicious War Fox", 946, 152869, 242897, "Horde", "H", "Vicious Saddle", "Rated PvP", "Horde Legion rated PvP reward, now available through Vicious Saddle.", false }
}

for _, mount in ipairs(legionPvpMounts) do
  MountAtlasAddLegionMount({
    name = mount[1],
    mountID = mount[2],
    itemID = mount[3],
    spellID = mount[4],
    boss = mount[7],
    vendor = mount[7],
    zone = mount[8],
    source = "PvP",
    reset = "special",
    faction = mount[5],
    side = mount[6],
    cost = mount[7] == "Vicious Saddle" and "Vicious Saddle" or nil,
    requirement = mount[9],
    method = mount[9],
    route = mount[8] .. " > " .. mount[7],
    note = mount[9]
  })
end

local function MountAtlasAddBfaMount(entry)
  entry.expansion = "BFA"
  MountAtlasAddCuratedMount(entry)
end

local bfaAchievementMounts = {
  { "Jani's Trashpile", 2339, 235515, 473472, "A Farewell to Arms", "Battle for Azeroth achievements", nil, nil, "Complete the Battle for Azeroth meta-achievement A Farewell to Arms." },
  { "Honeyback Hivemother", 1277, nil, 303767, "Let's Bee Friends", "Stormsong Valley", nil, nil, "Complete the Honeyback Hive friendship achievement." },
  { "Ironclad Frostclaw", 1246, 168056, 295386, "Two Sides to Every Tale", "Battle for Azeroth war campaign", "Alliance", "A", "Alliance reward from the Battle for Azeroth war campaign achievement." },
  { "Bloodflank Charger", 1245, 168055, 295387, "Two Sides to Every Tale", "Battle for Azeroth war campaign", "Horde", "H", "Horde reward from the Battle for Azeroth war campaign achievement." },
  { "Wonderwing 2.0", 1224, 169162, 290328, "Battle for Azeroth Pathfinder, Part Two", "Kul Tiras / Zandalar / Nazjatar / Mechagon", nil, nil, "Complete Battle for Azeroth Pathfinder, Part Two." },
  { "Snapback Scuttler", 1238, 169194, 294039, "Undersea Usurper", "Nazjatar", nil, nil, "Complete the Nazjatar meta-achievement Undersea Usurper." },
  { "Mechacycle Model W", 1247, 168329, 296788, "Mecha-Done", "Mechagon", nil, nil, "Complete the Mechagon meta-achievement Mecha-Done." },
  { "Black Serpent of N'Zoth", 1282, 174654, 305182, "Through the Depths of Visions", "Horrific Visions", nil, nil, "Complete Through the Depths of Visions in Horrific Visions." },
  { "Obsidian Krolusk", 933, 161215, 239049, "Glory of the Wartorn Hero", "Battle for Azeroth dungeons", nil, nil, "Complete the Battle for Azeroth mythic dungeon meta-achievement." },
  { "Bloodgorged Crawg", 963, 163216, 250735, "Glory of the Uldir Raider", "Uldir", nil, nil, "Complete the Uldir raid meta-achievement." },
  { "Dazar'alor Windreaver", 1218, 166539, 289101, "Glory of the Dazar'alor Raider", "Battle of Dazar'alor", nil, nil, "Complete the Battle of Dazar'alor raid meta-achievement." },
  { "Azshari Bloatray", 1232, 167171, 292419, "Glory of the Eternal Raider", "The Eternal Palace", nil, nil, "Complete the Eternal Palace raid meta-achievement." },
  { "Wriggling Parasite", 1322, 174861, 316343, "Glory of the Ny'alotha Raider", "Ny'alotha, the Waking City", nil, nil, "Complete the Ny'alotha raid meta-achievement." }
}

for _, mount in ipairs(bfaAchievementMounts) do
  MountAtlasAddBfaMount({
    name = mount[1],
    mountID = mount[2],
    itemID = mount[3],
    spellID = mount[4],
    boss = mount[5],
    zone = mount[6],
    source = "Achievement",
    reset = "special",
    faction = mount[7],
    side = mount[8],
    requirement = mount[5],
    method = mount[9],
    route = mount[5],
    note = mount[9]
  })
end

local bfaVendorMounts = {
  { "Inkscale Deepseeker", 1262, 169203, 300151, "Crafticus Mindbender / Dazzerian", "Nazjatar", "150 Prismatic Manapearls", "Buy from the Nazjatar faction mount vendor with Prismatic Manapearls." },
  { "Crimson Tidestallion", 1260, 169202, 300153, "Mrrl", "Nazjatar", "Mrrl secret vendor items", "Buy from Mrrl in Nazjatar when the secret vendor chain offers the mount." },
  { "Wicked Swarmer", 1321, 174770, 316340, "Keeper U'nar / Provisioner Qorra", "Uldum", "Uldum Accord supplies", "Buy from the Uldum Accord vendor after meeting the patch 8.3 requirement." }
}

for _, mount in ipairs(bfaVendorMounts) do
  MountAtlasAddBfaMount({
    name = mount[1],
    mountID = mount[2],
    itemID = mount[3],
    spellID = mount[4],
    boss = mount[5],
    vendor = mount[5],
    zone = mount[6],
    source = "Vendor",
    reset = "special",
    cost = mount[7],
    method = mount[8],
    route = mount[6] .. " > " .. mount[5],
    note = mount[8]
  })
end

local bfaQuestMounts = {
  { "Snapdragon Kelpstalker", 1256, 169199, 300146, "Nazjatar storyline", "Nazjatar", "Horde", "H", "Complete the Horde Nazjatar follower mount questline." },
  { "Deepcoral Snapdragon", 1255, 169200, 300147, "Nazjatar storyline", "Nazjatar", "Alliance", "A", "Complete the Alliance Nazjatar follower mount questline." },
  { "Honeyback Harvester", 1013, 170069, 259741, "Honeyback Hive", "Stormsong Valley", "Alliance", "A", "Raise Honeyback Hive friendship and complete the related questline." },
  { "Harbor Gryphon", 1773, 206567, 413827, "Battle for Azeroth story quest", "Kul Tiras", "Alliance", "A", "Complete the related Alliance Battle for Azeroth story quest." },
  { "Scarlet Pterrordax", 1772, 206566, 413825, "Battle for Azeroth story quest", "Zandalar", "Horde", "H", "Complete the related Horde Battle for Azeroth story quest." }
}

for _, mount in ipairs(bfaQuestMounts) do
  MountAtlasAddBfaMount({
    name = mount[1],
    mountID = mount[2],
    itemID = mount[3],
    spellID = mount[4],
    boss = mount[5],
    zone = mount[6],
    source = "Quest",
    reset = "special",
    faction = mount[7],
    side = mount[8],
    requirement = mount[5],
    method = mount[9],
    route = mount[6] .. " > " .. mount[5],
    note = mount[9]
  })
end

local bfaDailyActivityMounts = {
  { "Kua'fon", 1043, 159146, 267270, "Kua'fon questline", "Zuldazar", "Complete Kua'fon's daily questline after finding the egg." },
  { "Scrapforged Mechaspider", 1253, 168827, 299159, "Mechagon daily questline", "Mechagon", "Complete the Mechagon spiderbot daily questline." },
  { "Child of Torcali", 1249, 168408, 297560, "Torcali questline", "Zuldazar", "Complete the Child of Torcali daily questline." },
  { "Springfur Alpaca", 1329, 174859, 316802, "Friendly alpaca", "Uldum", "Feed the friendly alpaca across multiple days in Uldum." },
  { "Shadowbarb Drone", 1320, 174771, 316339, "Shadowbarb Hatchling", "Uldum", "Complete the Shadowbarb Drone daily questline in Uldum." }
}

for _, mount in ipairs(bfaDailyActivityMounts) do
  MountAtlasAddBfaMount({
    name = mount[1],
    mountID = mount[2],
    itemID = mount[3],
    spellID = mount[4],
    boss = mount[5],
    zone = mount[6],
    source = "Daily quest",
    reset = "daily",
    requirement = mount[5],
    method = mount[7],
    route = mount[6] .. " > " .. mount[5],
    note = mount[7]
  })
end

local bfaMedalMounts = {
  { "Rubyshell Krolusk", 1215, 166464, 288735, "The Honorbound Service Medals", "Horde", "H" },
  { "Azureshell Krolusk", 1214, 166465, 288736, "7th Legion Service Medals", "Alliance", "A" },
  { "Sandy Nightsaber", 1204, 166436, 288506, "Service Medals", nil, nil },
  { "Bloodthirsty Dreadwing", 1210, 166469, 288714, "The Honorbound Service Medals", "Horde", "H" },
  { "Priestess' Moonsaber", 1216, 166463, 288740, "7th Legion Service Medals", "Alliance", "A" }
}

for _, mount in ipairs(bfaMedalMounts) do
  MountAtlasAddBfaMount({
    name = mount[1],
    mountID = mount[2],
    itemID = mount[3],
    spellID = mount[4],
    boss = mount[5],
    vendor = mount[5],
    zone = "Warfront service medal vendor",
    source = "Vendor",
    reset = "special",
    faction = mount[6],
    side = mount[7],
    cost = "Service Medals",
    method = "Buy from the Battle for Azeroth service medal vendor.",
    route = "Boralus / Dazar'alor > service medal vendor",
    note = "Service medal vendor mount."
  })
end

local bfaAlliedRaceMounts = {
  { "Highmountain Thunderhoof", 1007, 155662, 258060, "Highmountain Tauren", "Horde", "H" },
  { "Starcursed Voidstrider", 1009, 156486, 259202, "Void Elf", "Alliance", "A" },
  { "Nightborne Manasaber", 1008, 156487, 258845, "Nightborne", "Horde", "H" },
  { "Lightforged Felcrusher", 1006, 155656, 258022, "Lightforged Draenei", "Alliance", "A" },
  { "Mag'har Direwolf", 1044, 161330, 267274, "Mag'har Orc", "Horde", "H" },
  { "Dark Iron Core Hound", 1048, 161331, 271646, "Dark Iron Dwarf", "Alliance", "A" },
  { "Kul Tiran Charger", 1198, 164762, 282682, "Kul Tiran", "Alliance", "A" },
  { "Zandalari Direhorn", 1038, 157870, 263707, "Zandalari Troll", "Horde", "H" },
  { "Caravan Hyena", 1286, 174066, 306423, "Vulpera", "Horde", "H" },
  { "Mechagon Mechanostrider", 1283, 174067, 305592, "Mechagnome", "Alliance", "A" },
  { "Grimhowl", 1597, 191123, 369666, "Gilneas heritage", "Alliance", "A" }
}

for _, mount in ipairs(bfaAlliedRaceMounts) do
  MountAtlasAddBfaMount({
    name = mount[1],
    mountID = mount[2],
    itemID = mount[3],
    spellID = mount[4],
    boss = mount[5],
    zone = "Allied Races",
    source = "Achievement",
    reset = "special",
    faction = mount[6],
    side = mount[7],
    requirement = "Unlock or complete the related " .. mount[5] .. " race requirement.",
    method = "Unlock the related Battle for Azeroth allied race or heritage reward.",
    route = mount[5] .. " unlock / heritage",
    note = "Battle for Azeroth allied race mount."
  })
end

local bfaReputationMounts = {
  { "Admiralty Stallion", 1010, 161911, 259213, "Proudmoore Admiralty", "Provisioner Fray", "Boralus", "Proudmoore Admiralty Exalted", "Alliance", "A" },
  { "Dapple Gray", 1015, 161912, 260172, "Proudmoore Admiralty", "Provisioner Fray", "Boralus", "Proudmoore Admiralty Exalted", "Alliance", "A" },
  { "Smoky Charger", 1016, 161910, 260173, "Proudmoore Admiralty", "Provisioner Fray", "Boralus", "Proudmoore Admiralty Exalted", "Alliance", "A" },
  { "Alabaster Hyena", 926, 161773, 237287, "Voldunai", "Hoarder Jena", "Vol'dun", "Voldunai Exalted", "Horde", "H" },
  { "Expedition Bloodswarmer", 1061, 161774, 275841, "Talanji's Expedition", "Provisioner Lija", "Nazmir", "Talanji's Expedition Exalted", "Horde", "H" },
  { "Cobalt Pterrordax", 1058, 161665, 275837, "Zandalari Empire", "Natal'hakata", "Zuldazar", "Zandalari Empire Exalted", "Horde", "H" },
  { "Proudmoore Sea Scout", 1064, 161879, 275868, "Proudmoore Admiralty", "Provisioner Fray", "Boralus", "Proudmoore Admiralty Exalted", "Alliance", "A" },
  { "Stormsong Coastwatcher", 1063, 161909, 275866, "Storm's Wake", "Sister Lilyana", "Stormsong Valley", "Storm's Wake Exalted", "Alliance", "A" },
  { "Dusky Waycrest Gryphon", 1062, 161908, 275859, "Order of Embers", "Quartermaster Alcorn", "Drustvar", "Order of Embers Exalted", "Alliance", "A" },
  { "Captured Swampstalker", 1059, 161666, 275838, "Talanji's Expedition", "Provisioner Lija", "Nazmir", "Talanji's Expedition Exalted", "Horde", "H" },
  { "Voldunai Dunescraper", 1060, 161667, 275840, "Voldunai", "Hoarder Jena", "Vol'dun", "Voldunai Exalted", "Horde", "H" },
  { "Spectral Pterrorwing", 958, 161664, 244712, "Zandalari Empire", "Natal'hakata", "Zuldazar", "Zandalari Empire Exalted", "Horde", "H" },
  { "Ankoan Waveray", 1231, 167167, 292407, "Waveblade Ankoan", "Artisan Itanu", "Nazjatar", "Waveblade Ankoan Exalted", "Alliance", "A" },
  { "Unshackled Waveray", 1230, 167170, 291538, "The Unshackled", "Finder Pruc", "Nazjatar", "The Unshackled Exalted", "Horde", "H" },
  { "Rustbolt Resistor", 1254, 168829, 299170, "Rustbolt Resistance", "Stolen Royal Vendorbot", "Mechagon", "Rustbolt Resistance Exalted", nil, nil },
  { "Wastewander Skyterror", 1318, 174754, 316276, "Uldum Accord", "Provisioner Qorra", "Uldum", "Uldum Accord Exalted", nil, nil }
}

for _, mount in ipairs(bfaReputationMounts) do
  MountAtlasAddBfaMount({
    name = mount[1],
    mountID = mount[2],
    itemID = mount[3],
    spellID = mount[4],
    boss = mount[6],
    vendor = mount[6],
    zone = mount[7],
    source = "Reputation",
    reset = "special",
    reputation = mount[5],
    requirement = mount[8],
    faction = mount[9],
    side = mount[10],
    method = "Buy from the listed Battle for Azeroth reputation vendor after meeting the reputation requirement.",
    route = mount[7] .. " > " .. mount[6],
    note = mount[5] .. " reputation mount."
  })
end

MountAtlasAddBfaMount({
  name = "The Hivemind",
  mountID = 1025,
  itemID = 156798,
  spellID = 261395,
  boss = "Hivemind secret",
  zone = "Azeroth",
  source = "Secret",
  reset = "special",
  requirement = "Group secret puzzle.",
  method = "Complete the multi-player Hivemind secret puzzle chain.",
  route = "Secret puzzle chain > The Hivemind",
  note = "Battle for Azeroth secret mount."
})

MountAtlasAddBfaMount({
  name = "X-995 Mechanocat",
  mountID = 1239,
  itemID = 167751,
  spellID = 294143,
  boss = "Pascal-K1N6",
  zone = "Mechagon",
  source = "Profession",
  reset = "special",
  requiredProfession = "Junkyard Tinkering",
  requirement = "Mechagon tinkering materials.",
  method = "Craft through Mechagon Junkyard Tinkering at Pascal-K1N6 and collect paint variants separately.",
  route = "Mechagon > Pascal-K1N6",
  note = "Mechagon tinkering mount."
})

local bfaZoneDropMounts = {
  { "Dune Scavenger", 928, 163576, 237286, "Vol'dun mobs", "Vol'dun" },
  { "Terrified Pack Mule", 1018, 163574, 260174, "Drustvar mobs", "Drustvar" },
  { "Leaping Veinseeker", 956, 163575, 243795, "Nazmir mobs", "Nazmir" },
  { "Goldenmane", 1019, 163573, 260175, "Stormsong Valley mobs", "Stormsong Valley" }
}

for _, mount in ipairs(bfaZoneDropMounts) do
  MountAtlasAddBfaMount({
    name = mount[1],
    mountID = mount[2],
    itemID = mount[3],
    spellID = mount[4],
    boss = mount[5],
    zone = mount[6],
    source = "Rare",
    reset = "repeatable",
    dropChance = "Muy baja",
    method = "Low chance drop from eligible outdoor enemies in the listed Battle for Azeroth zone.",
    route = mount[6],
    note = "Battle for Azeroth zone drop mount."
  })
end

local bfaRareMounts = {
  { "Nazjatar Blood Serpent", 1057, 161479, 275623, "Adherent of the Abyss", "Stormsong Valley", "Use an Abyssal Fragment to summon Adherent of the Abyss and complete the ritual chain." },
  { "Frightened Kodo", 1201, 166433, 288499, "Frightened Kodo", "Darkshore", "Find and click the rare Frightened Kodo in Darkshore." },
  { "Fabious", 1258, 169201, 300150, "Fabious", "Nazjatar", "Take a S.E.L.F.I.E. with Fabious when it appears in Nazjatar." },
  { "Junkheap Drifter", 1248, 168370, 297157, "Rustfeather", "Mechagon", "Drop from Rustfeather in Mechagon." },
  { "Elusive Quickhoof", 1324, 174860, 316493, "Elusive Quickhoof", "Vol'dun", "Find and feed Seaside Leafy Greens to the Elusive Quickhoof." }
}

for _, mount in ipairs(bfaRareMounts) do
  MountAtlasAddBfaMount({
    name = mount[1],
    mountID = mount[2],
    itemID = mount[3],
    spellID = mount[4],
    boss = mount[5],
    zone = mount[6],
    source = "Rare",
    reset = "daily",
    dropChance = "Muy baja",
    method = mount[7],
    route = mount[6] .. " > " .. mount[5],
    note = mount[7]
  })
end

local bfaWarfrontArathiMounts = {
  { "Highland Mustang", 1174, 163579, 279456, "Doomrider Helgrim", "Arathi Highlands Warfront", "Alliance", "A" },
  { "Broken Highland Mustang", 1173, 163578, 279457, "Knight-Captain Aldrin", "Arathi Highlands Warfront", "Horde", "H" },
  { "Swift Albino Raptor", 1180, 163644, 279569, "Beastrider Kama", "Arathi Highlands Warfront", nil, nil },
  { "Skullripper", 1183, 163645, 279611, "Skullripper", "Arathi Highlands Warfront", nil, nil },
  { "Witherbark Direwing", 1185, 163706, 279868, "Nimar the Slayer", "Arathi Highlands Warfront", nil, nil },
  { "Lil' Donkey", 1182, 163646, 279608, "Overseer Krix", "Arathi Highlands Warfront", nil, nil }
}

for _, mount in ipairs(bfaWarfrontArathiMounts) do
  MountAtlasAddBfaMount({
    name = mount[1],
    mountID = mount[2],
    itemID = mount[3],
    spellID = mount[4],
    boss = mount[5],
    zone = mount[6],
    source = "Rare",
    reset = "daily",
    faction = mount[7],
    side = mount[8],
    dropChance = "Muy baja",
    method = "Drop from the listed Arathi Highlands Warfront rare.",
    route = mount[6] .. " > " .. mount[5],
    note = "Arathi Highlands Warfront rare mount."
  })
end

local bfaWarfrontDarkshoreMounts = {
  { "Blackpaw", 1199, 166438, 288438, "Blackpaw", "Darkshore Warfront" },
  { "Umber Nightsaber", 1203, 166434, 288503, "Moxo the Beheader", "Darkshore Warfront" },
  { "Kaldorei Nightsaber", 1205, 166435, 288505, "Croz Bloodrage", "Darkshore Warfront" },
  { "Ashenvale Chimaera", 1200, 166432, 288495, "Alash'anir", "Darkshore Warfront" }
}

for _, mount in ipairs(bfaWarfrontDarkshoreMounts) do
  MountAtlasAddBfaMount({
    name = mount[1],
    mountID = mount[2],
    itemID = mount[3],
    spellID = mount[4],
    boss = mount[5],
    zone = mount[6],
    source = "Rare",
    reset = "daily",
    dropChance = "Muy baja",
    method = "Drop from the listed Darkshore Warfront rare.",
    route = mount[6] .. " > " .. mount[5],
    note = "Darkshore Warfront rare mount."
  })
end

local bfaValeAssaultMounts = {
  { "Clutch of Ha-Li", 1297, 173887, 312751, "Ha-Li", "Vale of Eternal Blossoms assault" },
  { "Ivory Cloud Serpent", 1311, 174752, 315014, "Ivory Cloud Serpent", "Vale of Eternal Blossoms assault" },
  { "Ren's Stalwart Hound", 1327, 174841, 316722, "Houndlord Ren", "Vale of Eternal Blossoms assault" },
  { "Xinlao", 1328, 174840, 316723, "Anh-De the Loyal", "Vale of Eternal Blossoms assault" },
  { "Rajani Warserpent", 1313, 174649, 315427, "Zhang Ku", "Vale of Eternal Blossoms assault" }
}

for _, mount in ipairs(bfaValeAssaultMounts) do
  MountAtlasAddBfaMount({
    name = mount[1],
    mountID = mount[2],
    itemID = mount[3],
    spellID = mount[4],
    boss = mount[5],
    zone = mount[6],
    source = "Rare",
    reset = "daily",
    dropChance = "Muy baja",
    method = "Drop from the listed Vale of Eternal Blossoms assault rare.",
    route = mount[6] .. " > " .. mount[5],
    note = "Patch 8.3 assault rare mount."
  })
end

local bfaUldumAssaultMounts = {
  { "Malevolent Drone", 1319, 174769, 316337, "Corpse Eater", "Uldum assault" },
  { "Drake of the Four Winds", 1314, 174641, 315847, "Ishak of the Four Winds", "Uldum assault" },
  { "Waste Marauder", 1317, 174753, 316275, "Rotfeaster", "Uldum assault" }
}

for _, mount in ipairs(bfaUldumAssaultMounts) do
  MountAtlasAddBfaMount({
    name = mount[1],
    mountID = mount[2],
    itemID = mount[3],
    spellID = mount[4],
    boss = mount[5],
    zone = mount[6],
    source = "Rare",
    reset = "daily",
    dropChance = "Muy baja",
    method = "Drop from the listed Uldum assault rare.",
    route = mount[6] .. " > " .. mount[5],
    note = "Patch 8.3 assault rare mount."
  })
end

MountAtlasAddBfaMount({
  name = "Aerial Unit R-21/X",
  mountID = 1227,
  itemID = 168830,
  spellID = 290718,
  boss = "King Mechagon",
  zone = "Operation: Mechagon",
  source = "Dungeon",
  reset = "weekly",
  dropChance = "Muy baja",
  method = "Drop from King Mechagon in Operation: Mechagon Mythic Hard Mode.",
  route = "Operation: Mechagon Mythic > Hard Mode > King Mechagon",
  note = "Operation: Mechagon hard mode mount."
})

local bfaIslandExpeditionMounts = {
  { "Twilight Avenger", 1175, 163584, 279466 },
  { "Surf Jelly", 1169, 163585, 278979 },
  { "Craghorn Chasm-Leaper", 1176, 163583, 279467 },
  { "Squawks", 993, 163586, 254811 },
  { "Qinsho's Eternal Hound", 1178, 163582, 279469 },
  { "Stonehide Elderhorn", 1209, 166470, 288712 },
  { "Bloodgorged Hunter", 1211, 166468, 288720 },
  { "Island Thunderscale", 1212, 166467, 288721 },
  { "Risen Mare", 1213, 166466, 288722 }
}

for _, mount in ipairs(bfaIslandExpeditionMounts) do
  MountAtlasAddBfaMount({
    name = mount[1],
    mountID = mount[2],
    itemID = mount[3],
    spellID = mount[4],
    boss = "Island Expeditions",
    zone = "Island Expeditions",
    source = "Island Expedition",
    reset = "repeatable",
    dropChance = "Muy baja",
    method = "Chance from Battle for Azeroth Island Expedition rewards or salvage crates.",
    route = "Boralus / Dazar'alor > Island Expeditions",
    note = "Island Expedition reward mount."
  })
end

local bfaDubloonMounts = {
  { "Saltwater Seahorse", 1208, 166471, 288711 },
  { "Siltwing Albatross", 1042, 166745, 266925 }
}

for _, mount in ipairs(bfaDubloonMounts) do
  MountAtlasAddBfaMount({
    name = mount[1],
    mountID = mount[2],
    itemID = mount[3],
    spellID = mount[4],
    boss = "Island Expedition vendor",
    vendor = "Island Expedition vendor",
    zone = "Island Expeditions",
    source = "Vendor",
    reset = "special",
    cost = "Seafarer's Dubloons",
    method = "Buy from the Island Expedition vendor with Seafarer's Dubloons.",
    route = "Boralus / Dazar'alor > Island Expedition vendor",
    note = "Island Expedition dubloon vendor mount."
  })
end

MountAtlasAddBfaMount({
  name = "Mail Muncher",
  mountID = 1315,
  itemID = 174653,
  spellID = 315987,
  boss = "Mail Muncher",
  zone = "Horrific Visions",
  source = "Rare",
  reset = "daily",
  dropChance = "Muy baja",
  method = "Chance from the Mail Muncher event inside Horrific Visions.",
  route = "Horrific Visions > mailbox event > Mail Muncher",
  note = "Horrific Visions rare event mount."
})

MountAtlasAddBfaMount({
  name = "Royal Snapdragon",
  mountID = 1237,
  itemID = 169198,
  spellID = 294038,
  boss = "Nazjatar paragon cache",
  zone = "Nazjatar",
  source = "Reputation",
  reset = "repeatable",
  reputation = "Waveblade Ankoan / The Unshackled",
  requirement = "Paragon cache after Exalted with the Nazjatar faction.",
  method = "Earn 10,000 reputation past Exalted and open the Nazjatar paragon cache.",
  route = "Nazjatar faction paragon cache",
  note = "Nazjatar paragon reputation mount."
})

local bfaProfessionMounts = {
  { "Mecha-Mogul Mk2", 1028, 161134, 261437, "Engineering", "Battle for Azeroth Engineering crafted mount." },
  { "Xiwyllag ATV", 999, 153594, 256123, "Engineering", "Battle for Azeroth Engineering crafted mount." },
  { "Great Sea Ray", 1166, 163131, 278803, "Fishing", "Fish from Battle for Azeroth waters." }
}

for _, mount in ipairs(bfaProfessionMounts) do
  MountAtlasAddBfaMount({
    name = mount[1],
    mountID = mount[2],
    itemID = mount[3],
    spellID = mount[4],
    boss = mount[5],
    zone = mount[5],
    source = "Profession",
    reset = "special",
    requiredProfession = mount[5],
    requirement = mount[5],
    method = mount[6],
    route = mount[5],
    note = mount[6]
  })
end

local bfaClassMounts = {
  { "Crusader's Direhorn", 1225, nil, 290608, "Zandalari Troll Paladin", "Horde", "H" },
  { "Darkforge Ram", 1046, nil, 270562, "Dark Iron Dwarf Paladin", "Alliance", "A" },
  { "Dawnforge Ram", 1047, nil, 270564, "Lightforged Draenei Paladin", "Alliance", "A" }
}

for _, mount in ipairs(bfaClassMounts) do
  MountAtlasAddBfaMount({
    name = mount[1],
    mountID = mount[2],
    itemID = mount[3],
    spellID = mount[4],
    boss = mount[5],
    zone = "Class spellbook",
    source = "Class",
    reset = "special",
    faction = mount[6],
    side = mount[7],
    requirement = mount[5],
    method = "Learn or buy the Battle for Azeroth allied-race Paladin class mount on an eligible character.",
    route = mount[5] .. " class progression",
    note = "Battle for Azeroth allied-race Paladin class mount."
  })
end

MountAtlasAddBfaMount({
  name = "Bruce",
  mountID = 1220,
  itemID = 166724,
  spellID = 289639,
  boss = "Brawler's Guild",
  zone = "Brawler's Guild",
  source = "Event",
  reset = "event",
  eventName = "Brawler's Guild",
  requirement = "Brawler's Guild rank requirement.",
  method = "Earn through the Battle for Azeroth Brawler's Guild when the feature is available.",
  route = "Brawler's Guild",
  note = "Battle for Azeroth Brawler's Guild mount."
})

MountAtlasAddBfaMount({
  name = "Mighty Caravan Brutosaur",
  mountID = 1039,
  itemID = 163042,
  spellID = 264058,
  boss = "Black Market Auction House",
  vendor = "Black Market Auction House",
  zone = "Black Market Auction House",
  source = "Black Market",
  reset = "special",
  cost = "Black Market Auction House bid",
  method = "Originally sold by Battle for Azeroth vendors; now appears through the Black Market Auction House.",
  route = "Black Market Auction House",
  note = "Battle for Azeroth vendor mount moved to the Black Market Auction House."
})

local bfaPvpMounts = {
  { "Conqueror's Scythemaw", 1172, 163577, 279454, nil, nil, "Conqueror of Azeroth", "Rated PvP", "Battle for Azeroth PvP achievement reward.", false },
  { "Prestigious Bloodforged Courser", 1192, 164250, 281044, nil, nil, "Honor reward", "Rated PvP", "Battle for Azeroth honor reward.", false },
  { "Vicious War Riverbeast", 1050, 163123, 272481, "Alliance", "A", "Vicious Saddle", "Rated PvP", "Alliance Battle for Azeroth rated PvP reward, now available through Vicious Saddle.", false },
  { "Vicious War Clefthoof", 1045, 163124, 270560, "Horde", "H", "Vicious Saddle", "Rated PvP", "Horde Battle for Azeroth rated PvP reward, now available through Vicious Saddle.", false },
  { "Vicious Black Warsaber", 1195, 165019, 281887, "Alliance", "A", "Vicious Saddle", "Rated PvP", "Alliance Battle for Azeroth rated PvP reward, now available through Vicious Saddle.", false },
  { "Vicious Black Bonesteed", 1196, 165020, 281890, "Horde", "H", "Vicious Saddle", "Rated PvP", "Horde Battle for Azeroth rated PvP reward, now available through Vicious Saddle.", false },
  { "Vicious War Basilisk", 1027, 163122, 261433, "Alliance", "A", "Vicious Saddle", "Rated PvP", "Alliance Battle for Azeroth rated PvP reward, now available through Vicious Saddle.", false },
  { "Vicious War Basilisk", 1026, 163121, 261434, "Horde", "H", "Vicious Saddle", "Rated PvP", "Horde Battle for Azeroth rated PvP reward, now available through Vicious Saddle.", false },
  { "Vicious White Bonesteed", 1197, 173713, 281889, "Horde", "H", "Vicious Saddle", "Rated PvP", "Horde Battle for Azeroth rated PvP reward, now available through Vicious Saddle.", false },
  { "Vicious White Warsaber", 1194, 173714, 281888, "Alliance", "A", "Vicious Saddle", "Rated PvP", "Alliance Battle for Azeroth rated PvP reward, now available through Vicious Saddle.", false }
}

for _, mount in ipairs(bfaPvpMounts) do
  MountAtlasAddBfaMount({
    name = mount[1],
    mountID = mount[2],
    itemID = mount[3],
    spellID = mount[4],
    boss = mount[7],
    vendor = mount[7],
    zone = mount[8],
    source = "PvP",
    reset = "special",
    faction = mount[5],
    side = mount[6],
    cost = mount[7] == "Vicious Saddle" and "Vicious Saddle" or nil,
    requirement = mount[9],
    method = mount[9],
    route = mount[8] .. " > " .. mount[7],
    note = mount[9]
  })
end

local function MountAtlasAddShadowlandsMount(entry)
  entry.expansion = "Shadowlands"
  MountAtlasAddCuratedMount(entry)
end

local shadowlandsAchievementMounts = {
  { "Zovaal's Soul Eater", 2114, 217612, 440444, "Shadowlands meta-achievement", "Shadowlands achievements", "Complete the listed Shadowlands meta-achievement." },
  { "Hand of Salaranga", 1504, 186654, 354355, "Breaking the Chains", "Korthia", "Complete the Korthia achievement Breaking the Chains." },
  { "Tazavesh Gearglider", 1446, 186637, 346554, "Fake It 'Til You Make It", "Tazavesh, the Veiled Market", "Complete the Tazavesh mega-dungeon achievement." },
  { "Cryptic Aurelid", 1551, 187673, 359381, "Zereth Mortis achievement", "Zereth Mortis", "Complete the related Zereth Mortis achievement." },
  { "Voracious Gorger", 1443, 184183, 344659, "Glory of the Shadowlands Hero", "Shadowlands dungeons", "Complete the Shadowlands mythic dungeon meta-achievement." },
  { "Rampart Screecher", 1377, 182596, 332903, "Glory of the Nathria Raider", "Castle Nathria", "Complete the Castle Nathria raid meta-achievement." },
  { "Hand of Hrestimorak", 1417, 186653, 339957, "Glory of the Dominant Raider", "Sanctum of Domination", "Complete the Sanctum of Domination raid meta-achievement." },
  { "Shimmering Aurelid", 1549, 187675, 359379, "Glory of the Sepulcher Raider", "Sepulcher of the First Ones", "Complete the Sepulcher of the First Ones raid meta-achievement." },
  { "Jigglesworth Sr.", 1576, 190170, 366791, "Fates of the Shadowlands Raids", "Shadowlands raids", "Complete the Shadowlands Fated raids achievement." }
}

for _, mount in ipairs(shadowlandsAchievementMounts) do
  MountAtlasAddShadowlandsMount({
    name = mount[1],
    mountID = mount[2],
    itemID = mount[3],
    spellID = mount[4],
    boss = mount[5],
    zone = mount[6],
    source = "Achievement",
    reset = "special",
    requirement = mount[5],
    method = mount[7],
    route = mount[5],
    note = mount[7]
  })
end

local shadowlandsTorghastMounts = {
  { "Colossal Ebonclaw Mawrat", 1566, 188696, 363136, "Jailer's Gauntlet", "Torghast", "Complete the related Jailer's Gauntlet layer reward." },
  { "Corridor Creeper", 1442, 184166, 344578, "Twisting Corridors Layer 8", "Torghast", "Complete Twisting Corridors Layer 8." },
  { "Mawsworn Charger", 1416, 186655, 339956, "The Shade of the Horseman", "Torghast", "Complete the Torghast event that rewards the Mawsworn Charger." },
  { "Colossal Soulshredder Mawrat", 1564, 188736, 363297, "Torghast", "Torghast", "Torghast reward from Shadowlands." },
  { "Colossal Umbrahide Mawrat", 1565, 188700, 363178, "Torghast", "Torghast", "Torghast reward from Shadowlands." }
}

for _, mount in ipairs(shadowlandsTorghastMounts) do
  MountAtlasAddShadowlandsMount({
    name = mount[1],
    mountID = mount[2],
    itemID = mount[3],
    spellID = mount[4],
    boss = mount[5],
    zone = mount[6],
    source = "Torghast",
    reset = "special",
    requirement = mount[5],
    method = mount[7],
    route = mount[6] .. " > " .. mount[5],
    note = mount[7]
  })
end

local shadowlandsVendorMounts = {
  { "Silky Shimmermoth", 1332, 180748, 318051, "Master Clerk Salorn", "Ardenweald", "Anima and Ardenweald unlock requirements.", nil, nil },
  { "Duskflutter Ardenmoth", 1361, 180729, 332256, "Aithlyn", "Ardenweald", "The Wild Hunt Exalted.", "The Wild Hunt", nil },
  { "Lurid Bloodtusk", 1375, 182082, 332484, "Nalcorn Talsen", "Maldraxxus", "The Undying Army Exalted.", "The Undying Army", nil },
  { "Court Sinrunner", 1421, 183518, 341639, "Mistress Mihaela", "Revendreth", "Court of Harvesters Exalted.", "Court of Harvesters", nil },
  { "Gilded Prowler", 1425, 183740, 342334, "Adjutant Nikos", "Bastion", "The Ascended Exalted.", "The Ascended", nil },
  { "Umbral Scythehorn", 1420, 183053, 340503, "Spindlenose", "Ardenweald", "Night Fae covenant vendor.", nil, "Night Fae" },
  { "Winterborn Runestag", 1356, 180415, 332245, "Aithlyn", "Ardenweald", "The Wild Hunt Exalted.", "The Wild Hunt", nil },
  { "Amber Shardhide", 1505, 186647, 354356, "Duchess Mynx", "Korthia", "Death's Advance reputation vendor.", "Death's Advance", nil },
  { "Soaring Razorwing", 1450, 186648, 347251, "Duchess Mynx", "Korthia", "Death's Advance reputation vendor.", "Death's Advance", nil },
  { "Anointed Protostag", 1529, 187640, 359276, "Vilo", "Zereth Mortis", "The Enlightened reputation vendor.", "The Enlightened", nil },
  { "Heartlight Vombata", 1522, 187629, 359229, "Vilo", "Zereth Mortis", "The Enlightened reputation vendor.", "The Enlightened", nil },
  { "Wild Glimmerfur Prowler", 1393, 180730, 334366, "Aithlyn", "Ardenweald", "Night Fae covenant vendor.", nil, "Night Fae" },
  { "Winter Wilderling", 1486, 186495, 353858, "Elwyn", "Ardenweald", "Night Fae covenant vendor.", nil, "Night Fae" },
  { "Phalynx of Humility", 1395, 180762, 334386, "Adjutant Galos", "Bastion", "Kyrian covenant vendor.", nil, "Kyrian" },
  { "Battle-Hardened Aquilon", 1436, 186480, 343550, "Adjutant Galos", "Bastion", "Kyrian covenant vendor.", nil, "Kyrian" },
  { "Armored Bonehoof Tauralus", 1370, 181815, 332466, "Su Zettai", "Maldraxxus", "Necrolord covenant vendor.", nil, "Necrolord" },
  { "Battlefield Swarmer", 1497, 186490, 353885, "Su Zettai", "Maldraxxus", "Necrolord covenant vendor.", nil, "Necrolord" },
  { "Horrid Dredwing", 1310, 180461, 332882, "Chachi the Artiste", "Revendreth", "Venthyr covenant vendor.", nil, "Venthyr" },
  { "Inquisition Gargon", 1382, 182954, 332923, "Mistress Mihaela", "Revendreth", "Venthyr covenant vendor.", nil, "Venthyr" },
  { "Pale Gravewing", 1491, 186477, 353873, "Chachi the Artiste", "Revendreth", "Venthyr covenant vendor.", nil, "Venthyr" }
}

for _, mount in ipairs(shadowlandsVendorMounts) do
  MountAtlasAddShadowlandsMount({
    name = mount[1],
    mountID = mount[2],
    itemID = mount[3],
    spellID = mount[4],
    boss = mount[5],
    vendor = mount[5],
    zone = mount[6],
    source = mount[8] and "Reputation" or "Vendor",
    reset = "special",
    reputation = mount[8],
    requirement = mount[7],
    covenant = mount[9],
    method = "Buy from the listed Shadowlands vendor after meeting the requirement.",
    route = mount[6] .. " > " .. mount[5],
    note = mount[7]
  })
end

local shadowlandsSecretMounts = {
  { "Silverwind Larion", 1404, 180772, 334433, "Vesper of the Silver Wind", "Bastion", "Collect all Anima Crystal Shards and open the Vesper of the Silver Wind." },
  { "Colossal Wraithbound Mawrat", 1585, 190766, 368128, "Zereth Mortis treasure", "Zereth Mortis", "Open the related Zereth Mortis treasure." },
  { "Bound Shadehound", 1441, 184168, 344577, "Maw secret", "The Maw", "Complete the Bound Shadehound secret chain in The Maw." },
  { "Hand of Nilganihmaht", 1503, 186713, 354354, "Nilganihmaht secret", "The Maw", "Collect the Nilganihmaht rings and complete the Hand of Nilganihmaht secret." }
}

for _, mount in ipairs(shadowlandsSecretMounts) do
  MountAtlasAddShadowlandsMount({
    name = mount[1],
    mountID = mount[2],
    itemID = mount[3],
    spellID = mount[4],
    boss = mount[5],
    zone = mount[6],
    source = "Secret",
    reset = "special",
    requirement = mount[5],
    method = mount[7],
    route = mount[6] .. " > " .. mount[5],
    note = mount[7]
  })
end

local shadowlandsQuestMounts = {
  { "Patient Bufonid", 1569, 188808, 363701, "Patient Bufonid questline", "Zereth Mortis", "Complete the multi-day Patient Bufonid questline." },
  { "Darkwarren Hardshell", 1305, 183052, 312763, "Adventure table", "Covenant Adventures", "Reward from Shadowlands covenant Adventures." },
  { "Chittering Animite", 1309, 183617, 312776, "Adventure table", "Covenant Adventures", "Reward from Shadowlands covenant Adventures." },
  { "Warstitched Darkhound", 1422, 183615, 341766, "Adventure table", "Covenant Adventures", "Reward from Shadowlands covenant Adventures." },
  { "Highwind Darkmane", 1423, 183618, 341776, "Adventure table", "Covenant Adventures", "Reward from Shadowlands covenant Adventures." },
  { "Dreamlight Runestag", 1302, 180263, 312759, "Night Fae campaign", "Ardenweald", "Complete the Night Fae covenant quest reward." },
  { "Enchanted Dreamlight Runestag", 1303, 180721, 312761, "Night Fae campaign", "Ardenweald", "Complete the Night Fae covenant quest reward." },
  { "Phalynx of Courage", 1396, 180763, 334391, "Kyrian campaign", "Bastion", "Complete the Kyrian covenant quest reward." },
  { "Eternal Phalynx of Courage", 1400, 180766, 334406, "Kyrian campaign", "Bastion", "Complete the Kyrian covenant quest reward." },
  { "War-Bred Tauralus", 1364, 182077, 332455, "Necrolord campaign", "Maldraxxus", "Complete the Necrolord covenant quest reward." },
  { "Armored War-Bred Tauralus", 1368, 181822, 332462, "Necrolord campaign", "Maldraxxus", "Complete the Necrolord covenant quest reward." },
  { "Crypt Gargon", 1385, 180945, 332932, "Venthyr campaign", "Revendreth", "Complete the Venthyr covenant quest reward." },
  { "Battle Gargon Vrednic", 1299, 180948, 312754, "Venthyr campaign", "Revendreth", "Complete the Venthyr covenant quest reward." }
}

for _, mount in ipairs(shadowlandsQuestMounts) do
  MountAtlasAddShadowlandsMount({
    name = mount[1],
    mountID = mount[2],
    itemID = mount[3],
    spellID = mount[4],
    boss = mount[5],
    zone = mount[6],
    source = "Quest",
    reset = "special",
    requirement = mount[5],
    method = mount[7],
    route = mount[6] .. " > " .. mount[5],
    note = mount[7]
  })
end

local shadowlandsEventMounts = {
  { "Hand of Bahmethra", 1475, 185973, 352309, "Tormentors of Torghast", "The Maw", "Chance from Tormentors of Torghast." },
  { "Harvester's Dredwing", 1378, 185996, 332904, "Venthyr Maw Assault", "The Maw", "Reward from the Venthyr Maw Assault." },
  { "Wild Hunt Legsplitter", 1476, 186000, 352441, "Night Fae Maw Assault", "The Maw", "Reward from the Night Fae Maw Assault." },
  { "Undying Darkhound", 1477, 186103, 352742, "Necrolord Maw Assault", "The Maw", "Reward from the Necrolord Maw Assault." }
}

for _, mount in ipairs(shadowlandsEventMounts) do
  MountAtlasAddShadowlandsMount({
    name = mount[1],
    mountID = mount[2],
    itemID = mount[3],
    spellID = mount[4],
    boss = mount[5],
    zone = mount[6],
    source = "Event",
    reset = "event",
    eventName = mount[5],
    method = mount[7],
    route = mount[6] .. " > " .. mount[5],
    note = mount[7]
  })
end

local shadowlandsParagonMounts = {
  { "Colossal Slaughterclaw", 1350, 182081, 327405, "The Undying Army", "Maldraxxus" },
  { "Amber Ardenmoth", 1428, 183800, 342666, "The Wild Hunt", "Ardenweald" },
  { "Fierce Razorwing", 1508, 186649, 354359, "Death's Advance", "Korthia" },
  { "Beryl Shardhide", 1455, 186644, 347810, "Death's Advance", "Korthia" },
  { "Soulbound Gloomcharger", 1501, 186657, 354352, "The Archivists' Codex", "Korthia" },
  { "Tamed Mauler", 1454, 186641, 347536, "The Archivists' Codex", "Korthia" }
}

for _, mount in ipairs(shadowlandsParagonMounts) do
  MountAtlasAddShadowlandsMount({
    name = mount[1],
    mountID = mount[2],
    itemID = mount[3],
    spellID = mount[4],
    boss = mount[5] .. " paragon cache",
    zone = mount[6],
    source = "Reputation",
    reset = "repeatable",
    reputation = mount[5],
    requirement = "Paragon cache after Exalted with " .. mount[5] .. ".",
    method = "Earn 10,000 reputation past Exalted and open the paragon cache.",
    route = mount[5] .. " paragon cache",
    note = "Shadowlands paragon reputation mount."
  })
end

MountAtlasAddShadowlandsMount({
  name = "Slime Serpent",
  mountID = 1445,
  spellID = 346141,
  boss = "Domina Venomblade / Margrave Stradama",
  zone = "Plaguefall",
  source = "Dungeon",
  reset = "special",
  requirement = "Solo Plaguefall Heroic or Mythic after defeating the required bosses.",
  method = "Solo Plaguefall on Heroic or Mythic, defeat Domina Venomblade and Margrave Stradama, then click the Slime Serpent.",
  route = "Plaguefall Heroic/Mythic solo > Domina Venomblade > Margrave Stradama > Slime Serpent",
  note = "Solo dungeon secret mount."
})

MountAtlasAddShadowlandsMount({
  name = "Carcinized Zerethsteed",
  mountID = 1552,
  itemID = 190771,
  spellID = 359545,
  boss = "The Jailer",
  zone = "Sepulcher of the First Ones",
  source = "Raid",
  reset = "weekly",
  dropChance = "Muy baja",
  method = "Drop de The Jailer en Sepulcher of the First Ones.",
  route = "Sepulcher of the First Ones > The Jailer",
  note = "Raid drop from The Jailer."
})

local shadowlandsDailyMounts = {
  { "Sinrunner Blanchy", 1414, 182614, 339588, "Dead Blanchy", "Revendreth", "Bring the required items to Dead Blanchy across multiple days." },
  { "Loyal Gorger", 1391, 182589, 333027, "Endmire questline", "Revendreth", "Complete the Loyal Gorger daily questline after starting from the Endmire rare." },
  { "Maelie, the Wanderer", 1511, 186643, 354362, "Maelie", "Korthia", "Find Maelie on multiple days and complete the final quest." },
  { "Dusklight Razorwing", 1510, 186651, 354361, "Dusklight Matriarch", "Korthia", "Collect lost razorwing eggs in Korthia and turn them in." },
  { "Darkmaul", 1507, 186646, 354358, "Darkmaul", "Korthia", "Feed Tasty Mawshrooms to Darkmaul across multiple days." },
  { "Bulbous Necroray", 1438, 184160, 344574, "Maldraxxus calling cache", "Maldraxxus", "Chance from Maldraxxus covenant calling reward caches." },
  { "Infested Necroray", 1439, 184161, 344576, "Maldraxxus calling cache", "Maldraxxus", "Chance from Maldraxxus covenant calling reward caches." },
  { "Pestilent Necroray", 1440, 184162, 344575, "Maldraxxus calling cache", "Maldraxxus", "Chance from Maldraxxus covenant calling reward caches." }
}

for _, mount in ipairs(shadowlandsDailyMounts) do
  MountAtlasAddShadowlandsMount({
    name = mount[1],
    mountID = mount[2],
    itemID = mount[3],
    spellID = mount[4],
    boss = mount[5],
    zone = mount[6],
    source = "Daily quest",
    reset = "daily",
    requirement = mount[5],
    method = mount[7],
    route = mount[6] .. " > " .. mount[5],
    note = mount[7]
  })
end

local shadowlandsRareMounts = {
  { "Callow Flayedwing", 1407, 181818, 336038, "Maldraxxus zone drop", "Maldraxxus", "Zone drop from Maldraxxus enemies." },
  { "Swift Gloomhoof", 1306, 180728, 312767, "Night Mare", "Ardenweald", "Drop from Night Mare." },
  { "Shimmermist Runner", 1360, 180727, 332252, "Shizgher", "Ardenweald", "Complete the Shimmermist Runner maze and defeat Shizgher." },
  { "Spinemaw Gladechewer", 1362, 180725, 334364, "Gormtamer Tizo", "Ardenweald", "Drop from Gormtamer Tizo." },
  { "Sundancer", 1307, 180773, 312765, "Sundancer", "Bastion", "Use a Skystrider Glider and soothe Sundancer before defeating it." },
  { "Blisterback Bloodtusk", 1372, 182085, 332478, "Warbringer Mal'Korak", "Maldraxxus", "Drop from Warbringer Mal'Korak." },
  { "Battle-Bound Warhound", 1437, 184062, 344228, "Theater of Pain rares", "Maldraxxus", "Drop from Theater of Pain outdoor rares." },
  { "Gorespine", 1373, 182084, 332480, "Nerissa Heartless", "Maldraxxus", "Drop from Nerissa Heartless." },
  { "Hulking Deathroc", 1410, 182079, 336042, "Violet Mistake", "Maldraxxus", "Drop from Violet Mistake." },
  { "Endmire Flyer", 1379, 180582, 332905, "Famu the Infinite", "Revendreth", "Drop from Famu the Infinite." },
  { "Ascended Skymane", 1426, 183741, 342335, "Ascended Council", "Bastion", "Drop from the Ascended Council event." },
  { "Mawsworn Soulhunter", 1304, 184167, 312762, "Gorged Shadehound", "The Maw", "Drop from Gorged Shadehound during Beastwarrens hunts." },
  { "Rampaging Mauler", 1514, 187183, 356501, "Konthrogz the Obliterator", "Korthia", "Drop from Konthrogz the Obliterator." },
  { "Garnet Razorwing", 1509, 186652, 354360, "Reliwik the Defiant", "Korthia", "Drop from Reliwik the Defiant." },
  { "Crimson Shardhide", 1506, 186645, 354357, "Malbog", "Korthia", "Drop from Malbog." },
  { "Deepstar Aurelid", 1434, 187676, 342680, "Hirukon", "Zereth Mortis", "Drop from Hirukon." },
  { "Colossal Plaguespew Mawrat", 1584, 190765, 368105, "Rhuv, Gorger of Ruin", "Zereth Mortis", "Drop from Rhuv, Gorger of Ruin." },
  { "Summer Wilderling", 1487, 186492, 353859, "Escaped Wilderling", "Ardenweald", "Drop from the Night Fae rare Escaped Wilderling." },
  { "Forsworn Aquilon", 1493, 186483, 353877, "Wild Worldcracker", "Bastion", "Drop from the Kyrian rare Wild Worldcracker." },
  { "Bonehoof Tauralus", 1366, 182075, 332457, "Sabriel the Bonecleaver", "Maldraxxus", "Drop from Sabriel the Bonecleaver." },
  { "Predatory Plagueroc", 1411, 182080, 336045, "Gieger", "Maldraxxus", "Drop from Gieger." },
  { "Lord of the Corpseflies", 1449, 186489, 347250, "Fleshwing", "Korthia", "Drop from Fleshwing." },
  { "Hopecrusher Gargon", 1298, 180581, 312753, "Hopecrusher", "Revendreth", "Drop from Hopecrusher." },
  { "Mastercraft Gravewing", 803, 186479, 215545, "Stygian Stonecrusher", "Korthia", "Drop from Stygian Stonecrusher." }
}

for _, mount in ipairs(shadowlandsRareMounts) do
  MountAtlasAddShadowlandsMount({
    name = mount[1],
    mountID = mount[2],
    itemID = mount[3],
    spellID = mount[4],
    boss = mount[5],
    zone = mount[6],
    source = "Rare",
    reset = "daily",
    dropChance = "Muy baja",
    method = mount[7],
    route = mount[6] .. " > " .. mount[5],
    note = mount[7]
  })
end

local shadowlandsCovenantMounts = {
  { "Pale Acidmaw", 1392, 180726, 334365, "Abomination Factory", "Maldraxxus", "Necrolord covenant feature." },
  { "Silvertip Dredwing", 1376, 181316, 312777, "Ember Court", "Revendreth", "Venthyr covenant feature." },
  { "Gruesome Flayedwing", 1408, 181300, 336039, "Abomination Factory", "Maldraxxus", "Necrolord covenant feature." },
  { "Dauntless Duskrunner", 1413, 181317, 336064, "Queen's Conservatory", "Ardenweald", "Night Fae covenant feature." },
  { "Shadeleaf Runestag", 1354, 180413, 332243, "Night Fae Renown", "Ardenweald", "Night Fae Renown reward." },
  { "Enchanted Shadeleaf Runestag", 1357, 180722, 332246, "Night Fae Renown", "Ardenweald", "Night Fae Renown reward." },
  { "Ardenweald Wilderling", 1484, 186493, 353856, "Night Fae Renown", "Ardenweald", "Night Fae Renown reward." },
  { "Autumnal Wilderling", 1485, 186494, 353857, "Night Fae Renown", "Ardenweald", "Night Fae Renown reward." },
  { "Wakener's Runestag", 1355, 180414, 332244, "Night Fae covenant feature", "Ardenweald", "Night Fae covenant feature reward." },
  { "Enchanted Wakener's Runestag", 1358, 180723, 332247, "Night Fae covenant feature", "Ardenweald", "Night Fae covenant feature reward." },
  { "Vibrant Flutterwing", 1429, 183801, 342667, "Night Fae covenant feature", "Ardenweald", "Night Fae covenant feature reward." },
  { "Enchanted Winterborn Runestag", 1359, 180724, 332248, "Night Fae covenant feature", "Ardenweald", "Night Fae covenant feature reward." },
  { "Phalynx of Purity", 1398, 180764, 334398, "Kyrian Renown", "Bastion", "Kyrian Renown reward." },
  { "Eternal Phalynx of Purity", 1399, 180765, 334403, "Kyrian Renown", "Bastion", "Kyrian Renown reward." },
  { "Elysian Aquilon", 1492, 186482, 353875, "Kyrian Renown", "Bastion", "Kyrian Renown reward." },
  { "Ascendant's Aquilon", 1494, 186485, 353880, "Kyrian Renown", "Bastion", "Kyrian Renown reward." },
  { "Phalynx of Loyalty", 1394, 180761, 334382, "Kyrian covenant feature", "Bastion", "Kyrian covenant feature reward." },
  { "Eternal Phalynx of Loyalty", 1401, 180767, 334408, "Kyrian covenant feature", "Bastion", "Kyrian covenant feature reward." },
  { "Eternal Phalynx of Humility", 1402, 180768, 334409, "Kyrian covenant feature", "Bastion", "Kyrian covenant feature reward." },
  { "Plaguerot Tauralus", 1365, 182076, 332456, "Necrolord Renown", "Maldraxxus", "Necrolord Renown reward." },
  { "Armored Plaguerot Tauralus", 1369, 181821, 332464, "Necrolord Renown", "Maldraxxus", "Necrolord Renown reward." },
  { "Maldraxxian Corpsefly", 1495, 186487, 353883, "Necrolord Renown", "Maldraxxus", "Necrolord Renown reward." },
  { "Regal Corpsefly", 1496, 186488, 353884, "Necrolord Renown", "Maldraxxus", "Necrolord Renown reward." },
  { "Bonesewn Fleshroc", 1409, 182078, 336041, "Necrolord covenant feature", "Maldraxxus", "Necrolord covenant feature reward." },
  { "Chosen Tauralus", 1367, 182074, 332460, "Necrolord covenant feature", "Maldraxxus", "Necrolord covenant feature reward." },
  { "Armored Chosen Tauralus", 1371, 181820, 332467, "Necrolord covenant feature", "Maldraxxus", "Necrolord covenant feature reward." },
  { "Sinfall Gargon", 1384, 183715, 332927, "Venthyr Renown", "Revendreth", "Venthyr Renown reward." },
  { "Gravestone Battle Gargon", 1388, 182332, 333021, "Venthyr Renown", "Revendreth", "Venthyr Renown reward." },
  { "Sinfall Gravewing", 1490, 186476, 353872, "Venthyr Renown", "Revendreth", "Venthyr Renown reward." },
  { "Obsidian Gravewing", 1489, 186478, 353866, "Venthyr Renown", "Revendreth", "Venthyr Renown reward." },
  { "Desire's Battle Gargon", 1387, 182209, 332949, "Venthyr covenant feature", "Revendreth", "Venthyr covenant feature reward." },
  { "Battle Gargon Silessa", 1389, 183798, 333023, "Venthyr covenant feature", "Revendreth", "Venthyr covenant feature reward." }
}

for _, mount in ipairs(shadowlandsCovenantMounts) do
  MountAtlasAddShadowlandsMount({
    name = mount[1],
    mountID = mount[2],
    itemID = mount[3],
    spellID = mount[4],
    boss = mount[5],
    zone = mount[6],
    source = "Quest",
    reset = "special",
    requirement = mount[5],
    method = mount[7],
    route = mount[6] .. " > " .. mount[5],
    note = mount[7]
  })
end

local shadowlandsProtoformMounts = {
  { "Desertwing Hunter", 1430, 187666, 342668 },
  { "Pale Regal Cervid", 1431, 187639, 342671 },
  { "Vespoid Flutterer", 1433, 187660, 342678 },
  { "Serenade", 1448, 187669, 346719 },
  { "Curious Crystalsniffer", 1523, 187630, 359230 },
  { "Darkened Vombata", 1524, 187631, 359231 },
  { "Adorned Vombata", 1525, 187632, 359232 },
  { "Deathrunner", 1526, 187638, 359278 },
  { "Sundered Zerethsteed", 1528, 187641, 359277 },
  { "Forged Spiteflyer", 1533, 187664, 359367 },
  { "Buzz", 1534, 187665, 359366 },
  { "Bronzewing Vespoid", 1535, 187663, 359364 },
  { "Mawdapted Raptora", 1536, 187667, 359372 },
  { "Raptora Swooper", 1537, 187668, 359373 },
  { "Bronze Helicid", 1538, 187670, 359376 },
  { "Unsuccessful Prototype Fleetpod", 1539, 187671, 359377 },
  { "Scarlet Helicid", 1540, 187672, 359378 },
  { "Genesis Crawler", 1541, 187677, 359401 },
  { "Tarachnid Creeper", 1542, 187678, 359402 },
  { "Ineffable Skitterer", 1543, 187679, 359403 },
  { "Goldplate Bufonid", 1547, 187683, 359413 },
  { "Prototype Leaper", 1570, 188809, 363703 },
  { "Russet Bufonid", 1571, 188810, 363706 },
  { "Heartbond Lupine", 1580, 190580, 367673 }
}

for _, mount in ipairs(shadowlandsProtoformMounts) do
  MountAtlasAddShadowlandsMount({
    name = mount[1],
    mountID = mount[2],
    itemID = mount[3],
    spellID = mount[4],
    boss = "Protoform Synthesis",
    zone = "Zereth Mortis",
    source = "Profession",
    reset = "special",
    requiredProfession = "Protoform Synthesis",
    requirement = "Unlock Protoform Synthesis and collect the required schematic and materials.",
    method = "Craft through Protoform Synthesis in Zereth Mortis.",
    route = "Zereth Mortis > Protoform Synthesis Forge",
    note = "Zereth Mortis Protoform Synthesis mount."
  })
end

local shadowlandsPvpMounts = {
  { "Vicious War Spider", 1351, 184014, 327407, "Alliance", "A", "Vicious Saddle", "Rated PvP", "Alliance Shadowlands rated PvP reward, now available through Vicious Saddle.", false },
  { "Vicious War Spider", 1352, 184013, 327408, "Horde", "H", "Vicious Saddle", "Rated PvP", "Horde Shadowlands rated PvP reward, now available through Vicious Saddle.", false },
  { "Vicious War Gorm", 1460, 186178, 348770, "Alliance", "A", "Vicious Saddle", "Rated PvP", "Alliance Shadowlands rated PvP reward, now available through Vicious Saddle.", false },
  { "Vicious War Gorm", 1459, 186179, 348769, "Horde", "H", "Vicious Saddle", "Rated PvP", "Horde Shadowlands rated PvP reward, now available through Vicious Saddle.", false },
  { "Vicious War Croaker", 1451, 187680, 347255, "Horde", "H", "Vicious Saddle", "Rated PvP", "Horde Shadowlands rated PvP reward, now available through Vicious Saddle.", false },
  { "Vicious War Croaker", 1452, 187681, 347256, "Alliance", "A", "Vicious Saddle", "Rated PvP", "Alliance Shadowlands rated PvP reward, now available through Vicious Saddle.", false },
  { "Vicious Warstalker", 1465, 187644, 349824, "Alliance", "A", "Vicious Saddle", "Rated PvP", "Alliance Shadowlands rated PvP reward, now available through Vicious Saddle.", false },
  { "Vicious Warstalker", 1466, 187642, 349823, "Horde", "H", "Vicious Saddle", "Rated PvP", "Horde Shadowlands rated PvP reward, now available through Vicious Saddle.", false }
}

for _, mount in ipairs(shadowlandsPvpMounts) do
  MountAtlasAddShadowlandsMount({
    name = mount[1],
    mountID = mount[2],
    itemID = mount[3],
    spellID = mount[4],
    boss = mount[7],
    vendor = mount[7],
    zone = mount[8],
    source = "PvP",
    reset = "special",
    faction = mount[5],
    side = mount[6],
    cost = mount[7] == "Vicious Saddle" and "Vicious Saddle" or nil,
    requirement = mount[9],
    method = mount[9],
    route = mount[8] .. " > " .. mount[7],
    note = mount[9]
  })
end

local function MountAtlasAddDragonflightMount(entry)
  entry.expansion = "Dragonflight"
  MountAtlasAddCuratedMount(entry)
end

local dragonflightAchievementMounts = {
  { "Taivan", 1825, 210142, 424607, "A World Awoken", "Dragon Isles", "Complete the Dragonflight meta-achievement A World Awoken." },
  { "Calescent Shalewing", 1733, nil, 408648, "Dragonflight achievement", "Zaralek Cavern", "Complete the related Dragonflight achievement." },
  { "Bestowed Ottuk Vanguard", 1651, 211862, 376898, "Thanks for the Carry!", "Dragon Isles", "Dragonflight achievement reward." },
  { "Bestowed Sandskimmer", 1618, 192765, 374071, "Dragonflight achievement", "Dragon Isles", "Dragonflight achievement reward." },
  { "Bestowed Ohuna Spotter", 1669, 198822, 385260, "Dragonflight achievement", "Dragon Isles", "Dragonflight achievement reward." },
  { "Bestowed Thunderspine Packleader", 1474, 192792, 351408, "Dragonflight achievement", "Dragon Isles", "Dragonflight achievement reward." },
  { "Bestowed Trawling Mammoth", 1633, 192788, 374172, "Dragonflight achievement", "Dragon Isles", "Dragonflight achievement reward." },
  { "Stormtouched Bruffalon", 1614, 192751, 373967, "Storm Chaser", "Dragon Isles storms", "Complete the Dragon Isles storm achievement." },
  { "Coralscale Salamanther", 1621, 192774, 374097, "Into the Storm", "Dragon Isles storms", "Complete the Dragon Isles storm achievement." },
  { "Shellack", 1626, 192784, 374155, "Glory of the Dragonflight Hero", "Dragonflight dungeons", "Complete the Dragonflight mythic dungeon meta-achievement." },
  { "Raging Magmammoth", 1644, 192806, 374275, "Glory of the Vault Raider", "Vault of the Incarnates", "Complete the Vault of the Incarnates raid meta-achievement." },
  { "Shadowflame Shalewing", 1734, 205205, 408649, "Glory of the Aberrus Raider", "Aberrus, the Shadowed Crucible", "Complete the Aberrus raid meta-achievement." },
  { "Voyaging Wilderling", 2091, 217340, 439138, "Dragonflight Season 4 meta-achievement", "Dragon Isles", "Dragonflight Season 4 achievement reward." }
}

for _, mount in ipairs(dragonflightAchievementMounts) do
  MountAtlasAddDragonflightMount({
    name = mount[1],
    mountID = mount[2],
    itemID = mount[3],
    spellID = mount[4],
    boss = mount[5],
    zone = mount[6],
    source = "Achievement",
    reset = "special",
    requirement = mount[5],
    method = mount[7],
    route = mount[5],
    note = mount[7]
  })
end

local dragonflightCampaignMounts = {
  { "Renewed Proto-Drake", 1589, 194034, 368896 },
  { "Windborne Velocidrake", 1590, 194549, 368899 },
  { "Highland Drake", 1563, 194705, 360954 },
  { "Cliffside Wylderdrake", 1591, 194521, 368901 },
  { "Winding Slitherdrake", 1588, 204361, 368893 },
  { "Flourishing Whimsydrake", 1830, 210412, 425338 },
  { "Grotto Netherwing Drake", 1744, 206156, 412088 }
}

for _, mount in ipairs(dragonflightCampaignMounts) do
  MountAtlasAddDragonflightMount({
    name = mount[1],
    mountID = mount[2],
    itemID = mount[3],
    spellID = mount[4],
    boss = "Dragonflight campaign",
    zone = "Dragon Isles",
    source = "Quest",
    reset = "special",
    requirement = "Dragonflight campaign progression.",
    method = "Earn through Dragonflight campaign or story progression.",
    route = "Dragon Isles campaign",
    note = "Dragonriding campaign mount."
  })
end

local dragonflightQuestMounts = {
  { "Tarecgosa's Visage", 1727, 206162, 407555, "Dragonwrath questline", "Dragon Isles", "Complete the Dragonwrath/Tarecgosa questline added in Dragonflight." },
  { "Gilnean Prowler", 1949, 211873, 430225, "Gilneas Reclamation", "Gilneas", "Complete the Reclaiming Gilneas questline." },
  { "Lizi, Thunderspine Tramper", 1639, 192799, 374247, "Initiate's Day Out", "Ohn'ahran Plains", "Complete the multi-day Lizi questline with the Maruuk Centaur." },
  { "Big Slick in the City", 1729, 205155, 408313, "Briggul", "Zaralek Cavern", "Raise Loamm Niffen snail racing friendship and complete Big Slick in the City." },
  { "Ochre Dreamtalon", 1834, 210774, 427041, "Emerald Dream daily activity", "Emerald Dream", "Complete the Ochre Dreamtalon daily activity chain." }
}

for _, mount in ipairs(dragonflightQuestMounts) do
  MountAtlasAddDragonflightMount({
    name = mount[1],
    mountID = mount[2],
    itemID = mount[3],
    spellID = mount[4],
    boss = mount[5],
    zone = mount[6],
    source = "Quest",
    reset = (mount[1] == "Lizi, Thunderspine Tramper" or mount[1] == "Big Slick in the City" or mount[1] == "Ochre Dreamtalon") and "daily" or "special",
    requirement = mount[5],
    method = mount[7],
    route = mount[6] .. " > " .. mount[5],
    note = mount[7]
  })
end

local dragonflightRareMounts = {
  { "Ancient Salamanther", 1619, 192772, 374090, "Dragonflight rares", "Dragon Isles", "Drop from eligible Dragonflight rare spawns." },
  { "Cobalt Shalewing", 1732, 205203, 408647, "Karokta", "Zaralek Cavern", "Drop from Karokta in Zaralek Cavern." }
}

for _, mount in ipairs(dragonflightRareMounts) do
  MountAtlasAddDragonflightMount({
    name = mount[1],
    mountID = mount[2],
    itemID = mount[3],
    spellID = mount[4],
    boss = mount[5],
    zone = mount[6],
    source = "Rare",
    reset = "daily",
    dropChance = "Muy baja",
    method = mount[7],
    route = mount[6] .. " > " .. mount[5],
    note = mount[7]
  })
end

local dragonflightSecretMounts = {
  { "Temperamental Skyclaw", 1674, 201454, 385738, "Zon'Wogi", "The Azure Span", "Collect the required gnoll food and trade it to Zon'Wogi." },
  { "Otto", 1656, 198870, 376873, "Otto secret", "Dragon Isles", "Complete the Otto fishing and toy secret chain." },
  { "Valiance", 1774, 206585, 413922, "Valiance secret", "Emerald Dream", "Complete the Emerald Dream secret for Valiance." },
  { "Pattie", 1794, 208152, 418078, "Pattie secret", "Dragon Isles", "Complete the Pattie secret chain." },
  { "Mimiron's Jumpjets", 1813, 210022, 424082, "Azerothian Archives secret", "Dragon Isles", "Complete the Mimiron's Jumpjets secret." }
}

for _, mount in ipairs(dragonflightSecretMounts) do
  MountAtlasAddDragonflightMount({
    name = mount[1],
    mountID = mount[2],
    itemID = mount[3],
    spellID = mount[4],
    boss = mount[5],
    zone = mount[6],
    source = "Secret",
    reset = "special",
    requirement = mount[5],
    method = mount[7],
    route = mount[6] .. " > " .. mount[5],
    note = mount[7]
  })
end

local dragonflightRenownMounts = {
  { "Tamed Skitterfly", 1615, 192761, 374032, "Dragonscale Expedition", "Dragon Isles" },
  { "Azure Skitterfly", 1616, 192762, 374034, "Dragonscale Expedition", "Dragon Isles" },
  { "Brown Scouting Ottuk", 1657, 198872, 376875, "Iskaara Tuskarr", "The Azure Span" },
  { "Yellow Scouting Ottuk", 1659, 200118, 376880, "Iskaara Tuskarr", "The Azure Span" },
  { "Brown War Ottuk", 1653, 201426, 376910, "Iskaara Tuskarr", "The Azure Span" },
  { "Yellow War Ottuk", 1655, 201425, 376913, "Iskaara Tuskarr", "The Azure Span" },
  { "Morsel Sniffer", 1738, 205207, 408655, "Loamm Niffen", "Zaralek Cavern" },
  { "Suntouched Dreamstag", 1809, 209949, 423873, "Dream Wardens", "Emerald Dream" },
  { "Lunar Dreamstag", 1811, 209951, 423891, "Dream Wardens", "Emerald Dream" }
}

for _, mount in ipairs(dragonflightRenownMounts) do
  MountAtlasAddDragonflightMount({
    name = mount[1],
    mountID = mount[2],
    itemID = mount[3],
    spellID = mount[4],
    boss = mount[5],
    zone = mount[6],
    source = "Reputation",
    reset = "special",
    reputation = mount[5],
    requirement = mount[5] .. " renown.",
    method = "Buy or unlock through the listed Dragonflight renown faction.",
    route = mount[6] .. " > " .. mount[5],
    note = mount[5] .. " renown mount."
  })
end

MountAtlasAddDragonflightMount({
  name = "Loyal Magmammoth",
  mountID = 1612,
  itemID = 192601,
  spellID = 373859,
  boss = "Obsidian Citadel",
  zone = "The Waking Shores",
  source = "Quest",
  reset = "special",
  requirement = "Obsidian Citadel reputation and mammoth taming requirements.",
  method = "Earn both required Magmammoth-related reputation rewards at the Obsidian Citadel and tame the Loyal Magmammoth.",
  route = "The Waking Shores > Obsidian Citadel",
  note = "Obsidian Citadel mount."
})

local dragonflightTreasureMounts = {
  { "Mossy Mammoth", 1634, 192790, 374194, "Zskera Vaults", "The Forbidden Reach", "Combine Zskera Vault items to create the Mossy Mammoth." },
  { "Verdant Skitterfly", 1617, 192764, 374048, "Expedition Scout's Pack", "Dragon Isles", "Chance from Dragon Isles treasure rewards." },
  { "Seething Slug", 1623, 192779, 374138, "Seething Orbs", "The Waking Shores", "Collect the Seething Orbs and open the Seething Cache." }
}

for _, mount in ipairs(dragonflightTreasureMounts) do
  MountAtlasAddDragonflightMount({
    name = mount[1],
    mountID = mount[2],
    itemID = mount[3],
    spellID = mount[4],
    boss = mount[5],
    zone = mount[6],
    source = "Secret",
    reset = "special",
    requirement = mount[5],
    method = mount[7],
    route = mount[6] .. " > " .. mount[5],
    note = mount[7]
  })
end

local dragonflightEventMounts = {
  { "Plainswalker Bearer", 1635, 192791, 374196, "Grand Hunts", "Dragon Isles", "Chance from Grand Hunt reward satchels." },
  { "Gooey Snailemental", 1627, 192785, 374157, "Primal Storms", "Dragon Isles", "Chance from Dragonflight Primal Storm rewards." },
  { "Cataloged Shalewing", 1735, 205204, 408651, "Researchers Under Fire", "Zaralek Cavern", "Reward from Researchers Under Fire event progress." },
  { "Renewed Magmammoth", 1645, 192807, 374278, "Dragonflight storms", "Dragon Isles", "Dragonflight storm event reward." },
  { "Heartseeker Mana Ray", 1941, 210973, 427777, "Love is in the Air", "Love is in the Air", "Event reward added during Dragonflight." },
  { "Black-Furred Bakar", 1710, 210140, 404018, "Timewalking vendor", "Timewalking", "Buy from the related Timewalking vendor." },
  { "Sandy Shalewing", 1737, 205208, 408654, "Timewalking vendor", "Timewalking", "Buy from the related Timewalking vendor." }
}

for _, mount in ipairs(dragonflightEventMounts) do
  MountAtlasAddDragonflightMount({
    name = mount[1],
    mountID = mount[2],
    itemID = mount[3],
    spellID = mount[4],
    boss = mount[5],
    vendor = mount[5],
    zone = mount[6],
    source = "Event",
    reset = "event",
    eventName = mount[5],
    method = mount[7],
    route = mount[6] .. " > " .. mount[5],
    note = mount[7]
  })
end

local dragonflightTimeRiftMounts = {
  { "Felstorm Dragon", 1779, 206676, 414326 },
  { "Perfected Juggernaut", 1782, 206679, 414328 },
  { "Gold-Toed Albatross", 1778, 206675, 414324 },
  { "Scourgebound Vanquisher", 1783, 206680, 414334 },
  { "Sulfur Hound", 1781, 206678, 414327 },
  { "Ravenous Black Gryphon", 1777, 206674, 414323 },
  { "White War Wolf", 1776, 206673, 414316 }
}

for _, mount in ipairs(dragonflightTimeRiftMounts) do
  MountAtlasAddDragonflightMount({
    name = mount[1],
    mountID = mount[2],
    itemID = mount[3],
    spellID = mount[4],
    boss = "Time Rifts",
    vendor = "Time Rifts vendor",
    zone = "Thaldraszus",
    source = "Event",
    reset = "event",
    eventName = "Time Rifts",
    method = "Earn from Time Rifts or buy with Paracausal Flakes.",
    route = "Thaldraszus > Tyrhold Reservoir > Time Rifts",
    note = "Dragonflight Time Rifts mount."
  })
end

local dragonflightVendorMounts = {
  { "Skyskin Hornstrider", 1478, 192800, 352926, "Treysh", "The Waking Shores", "Dragon Isles Supplies vendor mount." },
  { "Boulder Hauler", 1736, 205209, 408653, "Ponzo", "Zaralek Cavern", "Buy from Ponzo with Barter Boulders." },
  { "Delugen", 1837, 210831, 427222, "Elianna", "Emerald Dream", "Dream Infusion mount." },
  { "Talont", 1838, 210833, 427224, "Elianna", "Emerald Dream", "Dream Infusion mount." },
  { "Stargrazer", 1839, 210945, 427226, "Elianna", "Emerald Dream", "Dream Infusion mount." },
  { "Mammyth", 1938, 210946, 427546, "Elianna", "Emerald Dream", "Dream Infusion mount." },
  { "Salatrancer", 1940, 210969, 427724, "Elianna", "Emerald Dream", "Dream Infusion mount." },
  { "Clayscale Hornstrider", 2038, 212645, 432610, "Azerothian Archives", "The Waking Shores", "Azerothian Archives vendor/research reward." },
  { "Explorer's Stonehide Packbeast", 1638, 192796, 374204, "Azerothian Archives", "The Waking Shores", "Azerothian Archives vendor/research reward." }
}

for _, mount in ipairs(dragonflightVendorMounts) do
  MountAtlasAddDragonflightMount({
    name = mount[1],
    mountID = mount[2],
    itemID = mount[3],
    spellID = mount[4],
    boss = mount[5],
    vendor = mount[5],
    zone = mount[6],
    source = "Vendor",
    reset = "special",
    requirement = mount[7],
    method = "Buy or unlock from the listed Dragonflight vendor/activity.",
    route = mount[6] .. " > " .. mount[5],
    note = mount[7]
  })
end

local dragonflightEmeraldBountyMounts = {
  { "Winter Night Dreamsaber", 1815, 210059, 424476 },
  { "Evening Sun Dreamsaber", 1816, 210058, 424479 },
  { "Morning Flourish Dreamsaber", 1817, 210057, 424482 },
  { "Springtide Dreamtalon", 1833, 210769, 426955 },
  { "Snowfluff Dreamtalon", 1835, 210775, 427043 },
  { "Rekindled Dreamstag", 1810, 209950, 423877 },
  { "Blossoming Dreamstag", 1808, 209947, 423871 }
}

for _, mount in ipairs(dragonflightEmeraldBountyMounts) do
  MountAtlasAddDragonflightMount({
    name = mount[1],
    mountID = mount[2],
    itemID = mount[3],
    spellID = mount[4],
    boss = "Emerald Bounty",
    zone = "Emerald Dream",
    source = "Event",
    reset = "repeatable",
    method = "Chance from Emerald Bounty and Superbloom-related rewards in the Emerald Dream.",
    route = "Emerald Dream > Emerald Bounty",
    note = "Emerald Dream activity mount."
  })
end

local dragonflightPvpMounts = {
  { "Vicious Sabertooth", 1688, 201789, 394737, "Alliance", "A", "Vicious Saddle", "Rated PvP", "Alliance Dragonflight rated PvP reward, now available through Vicious Saddle.", false },
  { "Vicious Sabertooth", 1689, 201788, 394738, "Horde", "H", "Vicious Saddle", "Rated PvP", "Horde Dragonflight rated PvP reward, now available through Vicious Saddle.", false },
  { "Vicious War Snail", 1740, 205246, 409034, "Alliance", "A", "Vicious Saddle", "Rated PvP", "Alliance Dragonflight rated PvP reward, now available through Vicious Saddle.", false },
  { "Vicious War Snail", 1741, 205245, 409032, "Horde", "H", "Vicious Saddle", "Rated PvP", "Horde Dragonflight rated PvP reward, now available through Vicious Saddle.", false },
  { "Vicious Moonbeast", 1819, 210070, 424534, "Alliance", "A", "Vicious Saddle", "Rated PvP", "Alliance Dragonflight rated PvP reward, now available through Vicious Saddle.", false },
  { "Vicious Moonbeast", 1820, 210069, 424535, "Horde", "H", "Vicious Saddle", "Rated PvP", "Horde Dragonflight rated PvP reward, now available through Vicious Saddle.", false },
  { "Vicious Dreamtalon", 2056, 213439, 434470, "Alliance", "A", "Vicious Saddle", "Rated PvP", "Alliance Dragonflight rated PvP reward, now available through Vicious Saddle.", false },
  { "Vicious Dreamtalon", 2057, 213440, 434477, "Horde", "H", "Vicious Saddle", "Rated PvP", "Horde Dragonflight rated PvP reward, now available through Vicious Saddle.", false }
}

for _, mount in ipairs(dragonflightPvpMounts) do
  MountAtlasAddDragonflightMount({
    name = mount[1],
    mountID = mount[2],
    itemID = mount[3],
    spellID = mount[4],
    boss = mount[7],
    vendor = mount[7],
    zone = mount[8],
    source = "PvP",
    reset = "special",
    faction = mount[5],
    side = mount[6],
    cost = mount[7] == "Vicious Saddle" and "Vicious Saddle" or nil,
    requirement = mount[9],
    method = mount[9],
    route = mount[8] .. " > " .. mount[7],
    note = mount[9]
  })
end

local function MountAtlasAddWarWithinMount(entry)
  entry.expansion = "The War Within"
  MountAtlasAddCuratedMount(entry)
end

local warWithinAchievementMounts = {
  { "Geargrinder Mk. 11", 2802, 258188, 1262886, "The War Within achievement", "Khaz Algar", "Complete the related The War Within achievement." },
  { "Swarmite Skyhunter", 2181, 223267, 447195, "The War Within achievement", "Khaz Algar", "Complete the related The War Within achievement." },
  { "Shadow of Doubt", 2190, 223313, 448934, "The War Within achievement", "Azj-Kahet", "Complete the related The War Within achievement." },
  { "Ny'alothan Shadow Worm", 2500, 235709, 1218314, "Horrific Visions Revisited achievement", "Horrific Visions Revisited", "Complete the related Horrific Visions Revisited achievement." },
  { "Terror of the Night", 2511, 237485, 1223191, "The War Within achievement", "Khaz Algar", "Complete the related The War Within achievement." },
  { "Phase-Lost Slateback", 2655, 250240, 1250578, "K'aresh achievement", "K'aresh", "Complete the related K'aresh achievement." },
  { "Umbral K'arroc", 2549, 242714, 1233511, "K'aresh achievement", "K'aresh", "Complete the related K'aresh achievement." }
}

for _, mount in ipairs(warWithinAchievementMounts) do
  MountAtlasAddWarWithinMount({
    name = mount[1],
    mountID = mount[2],
    itemID = mount[3],
    spellID = mount[4],
    boss = mount[5],
    zone = mount[6],
    source = "Achievement",
    reset = "special",
    requirement = mount[5],
    method = mount[7],
    route = mount[6] .. " > " .. mount[5],
    note = mount[7]
  })
end

local warWithinRaidDropMounts = {
  { "Unbound Star-Eater", 2569, 243061, 1234573, "Dimensius, the All-Devouring", "Manaforge Omega", "Drop/reward from Dimensius, the All-Devouring in Manaforge Omega." },
  { "Royal Voidwing", 2606, 246445, 1242272, "Dimensius, the All-Devouring", "Manaforge Omega", "Drop/reward from Dimensius, the All-Devouring in Manaforge Omega." }
}

for _, mount in ipairs(warWithinRaidDropMounts) do
  MountAtlasAddWarWithinMount({
    name = mount[1],
    mountID = mount[2],
    itemID = mount[3],
    spellID = mount[4],
    boss = mount[5],
    zone = mount[6],
    source = "Raid",
    reset = "weekly",
    dropChance = "Muy baja",
    method = mount[7],
    route = mount[6] .. " > " .. mount[5],
    note = mount[7]
  })
end

local warWithinReputationMounts = {
  { "Widow's Undercrawler", 2171, 223276, 448680, "The Severed Threads", "Azj-Kahet", "Buy from the related Severed Threads vendor after meeting the reputation requirement.", "Kej" },
  { "Heritage Undercrawler", 2172, 223278, 448685, "The Severed Threads", "Azj-Kahet", "Buy from the related Severed Threads vendor after meeting the reputation requirement.", "Kej" },
  { "Royal Court Undercrawler", 2174, 223279, 448689, "The Severed Threads", "Azj-Kahet", "Buy from the related Severed Threads vendor after meeting the reputation requirement.", "Kej" },
  { "Mean Green Flying Machine", 2294, 229956, 466028, "Steamwheedle Cartel", "Undermine", "Buy from the matching Undermine cartel vendor after meeting the reputation requirement.", "Resonance Crystals" },
  { "Blackwater Shredder Deluxe Mk 2", 2286, 229948, 466019, "Blackwater Cartel", "Undermine", "Buy from the matching Undermine cartel vendor after meeting the reputation requirement.", "Resonance Crystals" },
  { "Ochre Delivery Rocket", 2284, 229946, 466013, "Venture Company", "Undermine", "Buy from the matching Undermine cartel vendor after meeting the reputation requirement.", "Resonance Crystals" },
  { "Darkfuse Demolisher", 2287, 229950, 466018, "Darkfuse Solutions", "Undermine", "Buy from the matching Undermine cartel vendor after meeting the reputation requirement.", "Resonance Crystals" },
  { "Ruby Void Creeper", 2556, 242729, 1233546, "K'aresh Trust", "K'aresh", "Buy from the K'aresh renown vendor after meeting the reputation requirement.", "Resonance Crystals" },
  { "Terror of the Wastes", 2510, 237484, 1223187, "The War Within renown", "Khaz Algar", "Earn from the related The War Within renown track.", nil }
}

for _, mount in ipairs(warWithinReputationMounts) do
  MountAtlasAddWarWithinMount({
    name = mount[1],
    mountID = mount[2],
    itemID = mount[3],
    spellID = mount[4],
    boss = mount[5],
    vendor = mount[5] .. " vendor",
    zone = mount[6],
    source = "Reputation",
    reset = "special",
    reputation = mount[5],
    cost = mount[8],
    requirement = mount[5] .. " reputation or renown requirement.",
    method = mount[7],
    route = mount[6] .. " > " .. mount[5],
    note = mount[7]
  })
end

local warWithinParagonMounts = {
  { "Blackwater Bonecrusher", 2274, 229937, 466001, "Blackwater Cartel", "Undermine" },
  { "Steamwheedle Supplier", 2281, 229943, 466014, "Steamwheedle Cartel", "Undermine" },
  { "Bilgewater Bombardier", 2295, 229957, 466024, "Bilgewater Cartel", "Undermine" },
  { "Venture Co-ordinator", 2289, 229951, 466022, "Venture Company", "Undermine" },
  { "Bronze Goblin Waveshredder", 2334, 233064, 473188, "The Cartels of Undermine", "Undermine" }
}

for _, mount in ipairs(warWithinParagonMounts) do
  MountAtlasAddWarWithinMount({
    name = mount[1],
    mountID = mount[2],
    itemID = mount[3],
    spellID = mount[4],
    boss = mount[5] .. " paragon cache",
    zone = mount[6],
    source = "Reputation",
    reset = "repeatable",
    reputation = mount[5],
    dropChance = "Baja",
    requirement = mount[5] .. " paragon/supply cache.",
    method = "Chance from the related paragon or supply cache after maxing " .. mount[5] .. ".",
    route = mount[6] .. " > " .. mount[5] .. " paragon cache",
    note = "Paragon reputation cache mount."
  })
end

local warWithinRaidRenownMounts = {
  { "Thunderdrum Misfire", 2279, 229945, 466012, "Gallagio Loyalty Rewards Club", "Liberation of Undermine", "Buy from the Liberation of Undermine raid renown vendor." },
  { "Flarendo the Furious", 2278, 229940, 466011, "Gallagio Loyalty Rewards Club", "Liberation of Undermine", "Buy from the Liberation of Undermine raid renown vendor." },
  { "Vandal's Gearglider", 1483, 186640, 353265, "Gallagio Loyalty Rewards Club", "Liberation of Undermine", "Buy or unlock through the Liberation of Undermine raid renown track." },
  { "The Bone Freezer", 2555, 242728, 1233542, "Manaforge Vandals", "Manaforge Omega", "Buy or unlock through the Manaforge Omega raid renown track." }
}

for _, mount in ipairs(warWithinRaidRenownMounts) do
  MountAtlasAddWarWithinMount({
    name = mount[1],
    mountID = mount[2],
    itemID = mount[3],
    spellID = mount[4],
    boss = mount[5],
    vendor = mount[5] .. " vendor",
    zone = mount[6],
    source = "Reputation",
    reset = "special",
    reputation = mount[5],
    requirement = mount[5] .. " raid renown.",
    method = mount[7],
    route = mount[6] .. " > " .. mount[5],
    note = mount[7]
  })
end

local warWithinSecretMounts = {
  { "Incognitro, the Indecipherable Felcycle", 1943, 229348, 428013, "Felcycle secret", "Azeroth", "Complete the Felcycle secret/riddle chain." },
  { "Thrayir, Eyes of the Siren", 2322, 232639, 471562, "Thrayir secret", "Siren Isle", "Complete the Siren Isle secret/riddle chain for Thrayir." },
  { "Xy Trustee's Gearglider", 1482, 186639, 353264, "Undermine secret", "Undermine", "Complete the Undermine secret/riddle chain." }
}

for _, mount in ipairs(warWithinSecretMounts) do
  MountAtlasAddWarWithinMount({
    name = mount[1],
    mountID = mount[2],
    itemID = mount[3],
    spellID = mount[4],
    boss = mount[5],
    zone = mount[6],
    source = "Secret",
    reset = "special",
    requirement = mount[5],
    method = mount[7],
    route = mount[6] .. " > " .. mount[5],
    note = mount[7]
  })
end

local warWithinQuestMounts = {
  { "Delver's Gob-Trotter", 2296, 229974, 466133, "Delves progression", "Khaz Algar Delves", "Complete the related Delves progression questline." },
  { "Delver's Mana-Skimmer", 2512, 238051, 1224048, "Delves progression", "Khaz Algar Delves", "Complete the related Delves progression questline." },
  { "Resplendent K'arroc", 2505, 242713, 1221132, "K'aresh campaign", "K'aresh", "Complete the related K'aresh campaign or questline." },
  { "K'arroc Swiftwing", 2550, 242715, 1233516, "K'aresh campaign", "K'aresh", "Complete the related K'aresh campaign or questline." }
}

for _, mount in ipairs(warWithinQuestMounts) do
  MountAtlasAddWarWithinMount({
    name = mount[1],
    mountID = mount[2],
    itemID = mount[3],
    spellID = mount[4],
    boss = mount[5],
    zone = mount[6],
    source = "Quest",
    reset = "special",
    requirement = mount[5],
    method = mount[7],
    route = mount[6] .. " > " .. mount[5],
    note = mount[7]
  })
end

local warWithinZoneFeatureMounts = {
  { "Dauntless Imperial Lynx", 2194, 223318, 448979, "Hallowfall zone feature", "Hallowfall", "Earn from the related Hallowfall zone feature." },
  { "Machine Defense Unit 1-11", 2159, 223269, 448188, "Awakening the Machine", "The Ringing Deeps", "Earn from Awakening the Machine rewards." },
  { "Violet Goblin Shredder", 2303, 229947, 466021, "Undermine zone feature", "Undermine", "Earn from the related Undermine zone feature." },
  { "Void-Scarred Lynx", 2535, 239563, 1228865, "K'aresh zone feature", "K'aresh", "Earn from the related K'aresh zone feature." },
  { "Translocated Gorger", 2602, 246159, 1241070, "K'aresh zone feature", "K'aresh", "Earn from the related K'aresh zone feature." },
  { "Curious Slateback", 2561, 242734, 1233561, "K'aresh zone feature", "K'aresh", "Earn from the related K'aresh zone feature." }
}

for _, mount in ipairs(warWithinZoneFeatureMounts) do
  MountAtlasAddWarWithinMount({
    name = mount[1],
    mountID = mount[2],
    itemID = mount[3],
    spellID = mount[4],
    boss = mount[5],
    zone = mount[6],
    source = "Quest",
    reset = "special",
    requirement = mount[5],
    method = mount[7],
    route = mount[6] .. " > " .. mount[5],
    note = mount[7]
  })
end

local warWithinRareMounts = {
  { "Ol' Mole Rufus", 2205, 223501, 449258, "Ol' Mole Rufus", "The Ringing Deeps" },
  { "Darkfuse Spy-Eye", 2293, 229955, 466027, "Darkfuse Precipitant", "Undermine" },
  { "Salvaged Goblin Gazillionaire's Flying Machine", 2291, 229953, 466026, "The Gobfather", "Undermine" },
  { "Pearlescent Krolusk", 2601, 246067, 1240632, "K'aresh rare spawn", "K'aresh" },
  { "Sthaarbs's Last Lunch", 2603, 246160, 1241076, "Sthaarbs", "K'aresh" }
}

for _, mount in ipairs(warWithinRareMounts) do
  MountAtlasAddWarWithinMount({
    name = mount[1],
    mountID = mount[2],
    itemID = mount[3],
    spellID = mount[4],
    boss = mount[5],
    zone = mount[6],
    source = "Rare",
    reset = "daily",
    dropChance = "Muy baja",
    method = "Drop from " .. mount[5] .. ".",
    route = mount[6] .. " > " .. mount[5],
    note = "Rare spawn drop."
  })
end

local warWithinVisionsMounts = {
  { "Voidfire Deathcycle", 1948, 211089, 428068, "Horrific Visions Revisited", "Earn from Horrific Visions Revisited rewards." },
  { "Nesting Swarmite", 2178, 223265, 447189, "Horrific Visions Revisited", "Earn from Horrific Visions Revisited rewards." },
  { "Void-Scarred Gryphon", 2496, 235700, 1218229, "Horrific Visions Revisited", "Earn from Horrific Visions Revisited rewards." },
  { "Void-Forged Stallion", 2497, 235705, 1218305, "Horrific Visions Revisited", "Earn from Horrific Visions Revisited rewards." },
  { "Void-Scarred Pack Mother", 2498, 235706, 1218306, "Horrific Visions Revisited", "Earn from Horrific Visions Revisited rewards." },
  { "Void-Scarred Windrider", 2499, 235707, 1218307, "Horrific Visions Revisited", "Earn from Horrific Visions Revisited rewards." }
}

for _, mount in ipairs(warWithinVisionsMounts) do
  MountAtlasAddWarWithinMount({
    name = mount[1],
    mountID = mount[2],
    itemID = mount[3],
    spellID = mount[4],
    boss = mount[5],
    zone = "Horrific Visions Revisited",
    source = "Event",
    reset = "weekly",
    eventName = "Horrific Visions Revisited",
    method = mount[6],
    route = "Horrific Visions Revisited",
    note = mount[6]
  })
end

MountAtlasAddWarWithinMount({
  name = "Slatestone Ramolith",
  mountID = 2214,
  itemID = 223572,
  spellID = 449415,
  boss = "Earthen Allied Race",
  zone = "Khaz Algar",
  source = "Quest",
  reset = "special",
  requiredRace = "Earthen",
  requirement = "Unlock the Earthen Allied Race.",
  method = "Unlock the Earthen Allied Race to receive the racial mount.",
  route = "Khaz Algar campaign > Earthen Allied Race unlock",
  note = "Earthen Allied Race racial mount."
})

local warWithinVendorMounts = {
  { "Innovation Investigator", 2283, 229941, 466017, "Undermine vendor", "Undermine", "Buy from the related Undermine vendor." },
  { "Personalized Goblin S.C.R.A.P.per", 2288, 229949, 466020, "Undermine vendor", "Undermine", "Buy from the related Undermine vendor." },
  { "Corruption of the Aspects", 2501, 235711, 1218316, "Horrific Visions Revisited vendor", "Horrific Visions Revisited", "Buy from the Horrific Visions Revisited vendor." },
  { "OC91 Chariot", 2604, 246237, 1241263, "K'aresh vendor", "K'aresh", "Buy from the related K'aresh vendor." },
  { "Acidic Void Creeper", 2557, 242730, 1233547, "K'aresh vendor", "K'aresh", "Buy from the related K'aresh vendor." },
  { "Lavender K'arroc", 2552, 242717, 1233518, "K'aresh vendor", "K'aresh", "Buy from the related K'aresh vendor." }
}

for _, mount in ipairs(warWithinVendorMounts) do
  MountAtlasAddWarWithinMount({
    name = mount[1],
    mountID = mount[2],
    itemID = mount[3],
    spellID = mount[4],
    boss = mount[5],
    vendor = mount[5],
    zone = mount[6],
    source = "Vendor",
    reset = "special",
    requirement = mount[5],
    method = mount[7],
    route = mount[6] .. " > " .. mount[5],
    note = mount[7]
  })
end

local warWithinDailyActivityMounts = {
  { "Prismatic Snapdragon", 2469, 233489, 474086, "The War Within daily activities", "Khaz Algar", "Earn from the related The War Within daily activity." },
  { "Blue Barry", 2560, 242733, 1233559, "K'aresh daily activities", "K'aresh", "Earn from the related K'aresh daily activity." }
}

for _, mount in ipairs(warWithinDailyActivityMounts) do
  MountAtlasAddWarWithinMount({
    name = mount[1],
    mountID = mount[2],
    itemID = mount[3],
    spellID = mount[4],
    boss = mount[5],
    zone = mount[6],
    source = "Daily quest",
    reset = "daily",
    method = mount[7],
    route = mount[6] .. " > " .. mount[5],
    note = mount[7]
  })
end

local warWithinMythicPlusMounts = {
  { "Enterprising Shreddertank", 2508, 237141, 1221694, "Timelost Saddle", "Khaz Algar", "The War Within Mythic+ reward listed under Timelost Saddle." },
  { "Azure Void Flyer", 2633, 248248, 1246781, "Timelost Saddle", "Khaz Algar", "The War Within Mythic+ reward listed under Timelost Saddle." },
  { "Scarlet Void Flyer", 2631, 247822, 1245517, "Timelost Saddle", "Khaz Algar", "The War Within Mythic+ reward listed under Timelost Saddle." }
}

for _, mount in ipairs(warWithinMythicPlusMounts) do
  MountAtlasAddWarWithinMount({
    name = mount[1],
    mountID = mount[2],
    itemID = mount[3],
    spellID = mount[4],
    boss = mount[5],
    zone = mount[6],
    source = "Achievement",
    reset = "special",
    requirement = mount[5],
    method = "Earn or purchase through the Mythic+ Timelost Saddle system.",
    route = "Mythic+ > Timelost Saddle",
    note = mount[7]
  })
end

local warWithinPvpMounts = {
  { "Raging Cinderbee", 2167, 223158, 447160, nil, nil, "Rated PvP", "Rated PvP", "The War Within rated PvP reward.", false },
  { "Vicious Skyflayer", 2211, 223511, 449325, "Alliance", "A", "Vicious Saddle", "Rated PvP", "Alliance The War Within rated PvP reward, now available through Vicious Saddle when eligible.", false },
  { "Vicious Skyflayer", 2150, 221813, 447405, "Horde", "H", "Vicious Saddle", "Rated PvP", "Horde The War Within rated PvP reward, now available through Vicious Saddle when eligible.", false },
  { "Vicious Electro Eel", 2300, 229989, 466146, "Alliance", "A", "Vicious Saddle", "Rated PvP", "Alliance The War Within rated PvP reward, now available through Vicious Saddle when eligible.", false },
  { "Vicious Electro Eel", 2299, 229988, 466145, "Horde", "H", "Vicious Saddle", "Rated PvP", "Horde The War Within rated PvP reward, now available through Vicious Saddle when eligible.", false },
  { "Vicious Void Creeper", 2570, 243157, 1234820, "Alliance", "A", "Vicious Saddle", "Rated PvP", "Alliance The War Within rated PvP reward, now available through Vicious Saddle when eligible.", false },
  { "Vicious Void Creeper", 2571, 243159, 1234821, "Horde", "H", "Vicious Saddle", "Rated PvP", "Horde The War Within rated PvP reward, now available through Vicious Saddle when eligible.", false }
}

for _, mount in ipairs(warWithinPvpMounts) do
  MountAtlasAddWarWithinMount({
    name = mount[1],
    mountID = mount[2],
    itemID = mount[3],
    spellID = mount[4],
    boss = mount[7],
    vendor = mount[7],
    zone = mount[8],
    source = "PvP",
    reset = "special",
    faction = mount[5],
    side = mount[6],
    cost = mount[7] == "Vicious Saddle" and "Vicious Saddle" or nil,
    requirement = mount[9],
    method = mount[9],
    route = mount[8] .. " > " .. mount[7],
    note = mount[9]
  })
end

local warWithinEventMounts = {
  { "Brewfest Bomber", 2640, 248761, 1247662, "Brewfest", "Brewfest", "Earn during Brewfest." },
  { "The Headless Horseman's Ghoulish Charger", 2623, 247721, 1245198, "Hallow's End", "Hallow's End", "Earn during Hallow's End." },
  { "Love Witch's Sweeper", 2328, 232926, 472479, "Love is in the Air", "Love is in the Air", "Earn during Love is in the Air." },
  { "Spring Butterfly", 2492, 235658, 1218013, "Love is in the Air", "Love is in the Air", "Earn during Love is in the Air." },
  { "Lunar Launcher", 2327, 232901, 472253, "Lunar Festival", "Lunar Festival", "Earn during Lunar Festival." },
  { "Frayfeather Hippogryph", 2224, 224398, 452643, "Timewalking vendor", "Timewalking", "Buy from the related Timewalking vendor." },
  { "Amani Hunting Bear", 2225, 224399, 452645, "Timewalking vendor", "Timewalking", "Buy from the related Timewalking vendor." },
  { "Enchanted Spellweave Carpet", 2317, 231374, 468353, "Timewalking vendor", "Timewalking", "Buy from the related Timewalking vendor." },
  { "Broodling of Sinestra", 2473, 234730, 1214946, "Timewalking vendor", "Timewalking", "Buy from the related Timewalking vendor." },
  { "Copper-Maned Quilen", 2474, 234740, 1214974, "Timewalking vendor", "Timewalking", "Buy from the related Timewalking vendor." },
  { "Nightfall Skyreaver", 2470, 234716, 1214920, "Timewalking vendor", "Timewalking", "Buy from the related Timewalking vendor." },
  { "Ur'zul Fleshripper", 2471, 234721, 1214940, "Timewalking vendor", "Timewalking", "Buy from the related Timewalking vendor." },
  { "Ivory Savagemane", 2587, 245694, 1237703, "Timewalking vendor", "Timewalking", "Buy from the related Timewalking vendor." },
  { "Moonlit Nightsaber", 2586, 245695, 1237631, "Timewalking vendor", "Timewalking", "Buy from the related Timewalking vendor." },
  { "Timely Buzzbee", 2321, 232624, 471538, "Timewalking vendor", "Timewalking", "Buy from the related Timewalking vendor." },
  { "Chrono Corsair", 2518, 238739, 1226144, "Timewalking vendor", "Timewalking", "Buy from the related Timewalking vendor." }
}

for _, mount in ipairs(warWithinEventMounts) do
  MountAtlasAddWarWithinMount({
    name = mount[1],
    mountID = mount[2],
    itemID = mount[3],
    spellID = mount[4],
    boss = mount[5],
    vendor = mount[5],
    zone = mount[6],
    source = "Event",
    reset = "event",
    eventName = mount[5] == "Timewalking vendor" and "Timewalking" or mount[5],
    method = mount[7],
    route = mount[6] .. " > " .. mount[5],
    note = mount[7]
  })
end

MountAtlasAddWarWithinMount({
  name = "Earthen Ordinant's Ramolith",
  mountID = 2233,
  spellID = 453785,
  boss = "Paladin class mount",
  zone = "Class spellbook",
  source = "Class",
  reset = "special",
  requiredClass = "Paladin",
  requirement = "Earthen Paladin.",
  method = "Learn as an Earthen Paladin class mount.",
  route = "Class spellbook > Paladin mounts",
  note = "Earthen Paladin class mount."
})

local function MountAtlasAddMidnightMount(entry)
  entry.expansion = "Midnight"
  MountAtlasAddCuratedMount(entry)
end

local midnightAchievementMounts = {
  { "Brilliant Petalwing", 2707, 252011, 1253924, "Midnight achievement", "Harandar", "Complete the related Midnight achievement." },
  { "Vivacious Chloroceros", 2912, 263579, 1270673, "Midnight achievement", "Harandar", "Complete the related Midnight achievement." },
  { "Crimson Dragonhawk", 2756, 257145, 1261298, "Midnight Glyph Hunter", "Quel'Thalas", "Collect the Skyriding Glyphs of Midnight." },
  { "Umbral Dragonhawk", 2755, 257144, 1261296, "Midnight achievement", "Quel'Thalas", "Complete the related Midnight achievement." },
  { "Lab-Grown Stormray", 2829, 260697, 1266703, "Staring Into The Void", "Voidstorm", "Complete the Midnight achievement Staring Into The Void.", 62385 },
  { "Preyseeker's Nightmare", 2771, 257193, 1261338, "Prey: Nightmare Mode III", "Midnight Prey", "Defeat all Prey targets on Nightmare difficulty." },
  { "Giganto Manis", 2773, 257199, 1261349, "Glory of the Midnight Delver", "Midnight Delves", "Complete the Midnight Delves meta-achievement Glory of the Midnight Delver.", 61906 },
  { "Tenebrous Harrower", 2831, 260887, 1266980, "Glory of the Midnight Raider", "Midnight Raids", "Complete the Midnight Season 1 raid meta-achievement Glory of the Midnight Raider.", 61380 }
}

for _, mount in ipairs(midnightAchievementMounts) do
  MountAtlasAddMidnightMount({
    name = mount[1],
    mountID = mount[2],
    itemID = mount[3],
    spellID = mount[4],
    boss = mount[5],
    zone = mount[6],
    source = "Achievement",
    reset = "special",
    achievementID = mount[8],
    requirement = mount[5],
    method = mount[7],
    route = mount[6] .. " > " .. mount[5],
    note = mount[7]
  })
end

local midnightRaidDropMounts = {
  { "Ashes of Belo'ren", 2607, 246590, 1242904, "Midnight raid drop", "Midnight Raids" },
  { "Luminous Sporeglider", 2950, 269240, 1284973, "Midnight raid drop", "Midnight Raids" }
}

for _, mount in ipairs(midnightRaidDropMounts) do
  MountAtlasAddMidnightMount({
    name = mount[1],
    mountID = mount[2],
    itemID = mount[3],
    spellID = mount[4],
    boss = mount[5],
    zone = mount[6],
    source = "Raid",
    reset = "weekly",
    dropChance = "Muy baja",
    method = "Drop from the listed Midnight raid source.",
    route = mount[6] .. " > " .. mount[5],
    note = "Midnight raid drop."
  })
end

local midnightDungeonMounts = {
  { "Spectral Hawkstrider", 2805, 262914, 1263635, "Restless Heart", "Windrunner's Spire", "Drop from Restless Heart on Mythic or from the Challenger's Cache in Mythic+." },
  { "Lucent Hawkstrider", 2817, 260231, 1265784, "Degentrius", "Magister's Terrace", "Drop from Degentrius on Mythic or from the Challenger's Cache in Mythic+." }
}

for _, mount in ipairs(midnightDungeonMounts) do
  MountAtlasAddMidnightMount({
    name = mount[1],
    mountID = mount[2],
    itemID = mount[3],
    spellID = mount[4],
    boss = mount[5],
    zone = mount[6],
    source = "Dungeon",
    reset = "weekly",
    dropChance = "Muy baja",
    method = mount[7],
    route = mount[6] .. " Mythic/Mythic+ > " .. mount[5],
    note = mount[7]
  })
end

MountAtlasAddMidnightMount({
  name = "Arcanovoid Construct",
  mountID = 2842,
  itemID = 263222,
  spellID = 1268949,
  boss = "Let Me Solo Him: Nullaeus",
  zone = "Midnight Delves",
  source = "Delves",
  reset = "special",
  requirement = "Midnight Season 1 Delve Nemesis reward.",
  method = "Defeat the Midnight Season 1 Delve Nemesis Nullaeus.",
  route = "Midnight Delves > Let Me Solo Him: Nullaeus",
  note = "Simple Armory lists this under both Midnight and Midnight: Season 1."
})

MountAtlasAddMidnightMount({
  name = "Prowling Shredclaw",
  mountID = 2791,
  itemID = 257447,
  spellID = 1261584,
  boss = "Thraxadar",
  vendor = "Thraxadar",
  zone = "Voidstorm",
  source = "Reputation",
  reset = "special",
  reputation = "Slayer's Duellum",
  requirement = "Exalted with Slayer's Duellum.",
  method = "Buy from Thraxadar after reaching Exalted with Slayer's Duellum.",
  route = "Masters' Perch > Thraxadar",
  note = "Slayer's Duellum reputation mount."
})

MountAtlasAddMidnightMount({
  name = "Frenzied Shredclaw",
  mountID = 2792,
  itemID = 257448,
  spellID = 1261585,
  boss = "Thraxadar",
  vendor = "Thraxadar",
  zone = "Voidstorm",
  source = "Reputation",
  reset = "special",
  reputation = "Slayer's Duellum",
  requirement = "Exalted with Slayer's Duellum.",
  method = "Buy from Thraxadar after reaching Exalted with Slayer's Duellum.",
  route = "Masters' Perch > Thraxadar",
  note = "Slayer's Duellum reputation mount."
})

MountAtlasAddMidnightMount({
  name = "Duskbrute Harrower",
  mountID = 2764,
  itemID = 257176,
  spellID = 1261332,
  boss = "Midnight paragon cache",
  zone = "Quel'Thalas",
  source = "Reputation",
  reset = "repeatable",
  dropChance = "Baja",
  reputation = "Midnight paragon reputation",
  requirement = "Midnight paragon reputation cache.",
  method = "Chance from the related Midnight paragon reputation cache.",
  route = "Midnight reputation > paragon cache",
  note = "Paragon reputation cache mount."
})

local midnightRenownMounts = {
  { "Fierce Grimlynx", 2614, 246734, 1243593, "Midnight renown", "Harandar" },
  { "Cerulean Sporeglider", 2710, 252014, 1253929, "Midnight renown", "Harandar" },
  { "Amani Blessed Bear", 2776, 257219, 1261357, "Amani renown", "Zul'Aman" },
  { "Amani Windcaller", 2694, 250889, 1251630, "Amani renown", "Zul'Aman" },
  { "Crimson Silvermoon Hawkstrider", 2761, 257154, 1261322, "Silvermoon renown", "Silvermoon City" },
  { "Fiery Dragonhawk", 2753, 257142, 1261291, "Silvermoon renown", "Quel'Thalas" },
  { "Voidbound Stormray", 2828, 260696, 1266702, "Voidstorm renown", "Voidstorm" }
}

for _, mount in ipairs(midnightRenownMounts) do
  MountAtlasAddMidnightMount({
    name = mount[1],
    mountID = mount[2],
    itemID = mount[3],
    spellID = mount[4],
    boss = mount[5],
    vendor = mount[5] .. " vendor",
    zone = mount[6],
    source = "Reputation",
    reset = "special",
    reputation = mount[5],
    requirement = mount[5] .. " requirement.",
    method = "Buy or unlock through the listed Midnight renown track.",
    route = mount[6] .. " > " .. mount[5],
    note = "Midnight renown mount."
  })
end

MountAtlasAddMidnightMount({
  name = "Ravenous Shredclaw",
  mountID = 2789,
  itemID = 257445,
  spellID = 1261579,
  boss = "Void Researcher Anomander",
  vendor = "Void Researcher Anomander",
  zone = "Voidstorm",
  source = "Reputation",
  reset = "special",
  reputation = "The Singularity",
  requirement = "Reach Renown 17 with The Singularity.",
  method = "Buy from Void Researcher Anomander after reaching Renown 17 with The Singularity.",
  route = "Voidstorm > Void Researcher Anomander",
  note = "The Singularity renown mount."
})

MountAtlasAddMidnightMount({
  name = "Void-Touched Hawkstrider",
  mountID = 2935,
  itemID = 268578,
  spellID = 1282936,
  boss = "Sergeant Vornin",
  vendor = "Sergeant Vornin",
  zone = "Silvermoon City",
  source = "Reputation",
  reset = "special",
  reputation = "Ritual Sites",
  requirement = "Reach Renown 8 with Ritual Sites.",
  method = "Buy from Sergeant Vornin after reaching Renown 8 with Ritual Sites.",
  route = "Silvermoon City > Sergeant Vornin",
  note = "Ritual Sites renown mount."
})

local midnightQuestMounts = {
  { "Relinquished Scarlet Charger", 2785, 257240, 1261391, "Midnight questline", "Quel'Thalas" },
  { "Emerald Hawkstrider", 2818, 260233, 1265785, "Midnight questline", "Quel'Thalas" },
  { "Peridot Dragonhawk", 2754, 257143, 1261293, "Midnight questline", "Quel'Thalas" },
  { "Dusk Grimlynx", 2611, 246731, 1243582, "Midnight questline", "Harandar" }
}

for _, mount in ipairs(midnightQuestMounts) do
  MountAtlasAddMidnightMount({
    name = mount[1],
    mountID = mount[2],
    itemID = mount[3],
    spellID = mount[4],
    boss = mount[5],
    zone = mount[6],
    source = "Quest",
    reset = "special",
    requirement = mount[5],
    method = "Complete the related Midnight questline.",
    route = mount[6] .. " > " .. mount[5],
    note = "Midnight quest reward."
  })
end

MountAtlasAddMidnightMount({
  name = "Echo of Aln'sharan",
  mountID = 2749,
  itemID = 256424,
  spellID = 1260356,
  boss = "Kuri",
  zone = "Harandar",
  source = "Secret",
  reset = "special",
  requirement = "Complete Legend of Aln'sharan and gather 500 Mysterious Skyshards.",
  method = "Bring 500 Mysterious Skyshards to Kuri after completing Legend of Aln'sharan.",
  route = "Harandar > Kuri",
  note = "Kuri unlocks the mount turn-in tied to Echo of Aln'sharan."
})

local midnightVendorMounts = {
  { "Amani Sunfeather", 2693, 250782, 1251433, "Amani renown", "Zul'Aman", "Buy from the Amani renown vendor inside Zul'Aman." },
  { "Blessed Amani Burrower", 2772, 257197, 1261348, "Amani renown", "Zul'Aman", "Buy from the Amani renown vendor inside Zul'Aman." },
  { "Silvermoon's Arcane Defender", 2840, 262500, 1268924, "Telemancer Astrandis", "Silvermoon City", "Buy from the Delves vendor after meeting Delver's Journey progress." },
  { "Elven Arcane Guardian", 2841, 262502, 1268926, "Naleidea Rivergleam", "Silvermoon City", "Buy from the Delves vendor with Undercoin." },
  { "Preyseeker's Hubris", 2769, 257191, 1261336, "Construct V'anore", "Silvermoon City", "Buy from the Prey vendor after meeting Preyseeker's Journey progress." },
  { "Preyseeker's Wrath", 2770, 257192, 1261337, "Construct V'anore", "Silvermoon City", "Buy from the Prey vendor after reaching a higher Preyseeker's Journey rank." },
  { "Vivid Chloroceros", 2913, 263580, 1270675, "Mothkeeper Wew'tam", "Harandar", "Buy from Mothkeeper Wew'tam." },
  { "Elder Glowmite", 2161, 222988, 447173, "Mothkeeper Wew'tam", "Harandar", "Buy from Mothkeeper Wew'tam." },
  { "Unbound Manawyrm", 2915, 264348, 1271698, "Sergeant Vornin", "Silvermoon City", "Buy from Sergeant Vornin on the upper deck of the Bazaar in Silvermoon City." },
  { "Magister's Spell Bee", 2933, 268481, 1282471, "Gamesmaster Fleurian", "Silvermoon City", "Buy from Gamesmaster Fleurian in Falconwing Square." },
  { "Voidmancer's Starcarver", 2988, 274649, 1294648, "Kifaan", "Voidstorm", "Buy from Kifaan after completing A Trip Around the Stars." },
  { "Netherforged Nullframe", 2990, 274650, 1294663, "Kifaan", "Voidstorm", "Buy from Kifaan after completing A Trip Through the Stars." },
  { "Tortured Gorger", 3033, 275664, 1297427, "Kifaan", "Voidstorm", "Buy from Kifaan after completing Heroic Showdowns." }
}

for _, mount in ipairs(midnightVendorMounts) do
  MountAtlasAddMidnightMount({
    name = mount[1],
    mountID = mount[2],
    itemID = mount[3],
    spellID = mount[4],
    boss = mount[5],
    vendor = mount[5],
    zone = mount[6],
    source = (mount[2] == 2840 or mount[2] == 2841) and "Delves" or "Vendor",
    reset = "special",
    requirement = mount[5],
    method = mount[7],
    route = mount[6] .. " > " .. mount[5],
    note = mount[7]
  })
end

local midnightTreasureMounts = {
  { "Ruddy Sporeglider", 2713, 252017, 1253938, "Peculiar Cauldron", "Harandar", "Open the Harandar treasure tied to Crystalized Resin Fragments." },
  { "Untainted Grove Crawler", 2747, 256423, 1260354, "Sporespawned Cache", "Harandar", "Open the Sporespawned Cache treasure in Harandar." },
  { "Ancestral War Bear", 2778, 257223, 1261360, "Honored Warrior's Cache", "Zul'Aman", "Open the Zul'Aman treasure that requires keys from four guardians." },
  { "Hexed Vilefeather Eagle", 2786, 257444, 1261576, "Abandoned Ritual Skull", "Zul'Aman", "Open the Zul'Aman treasure tied to Vile Essence." },
  { "Insatiable Shredclaw", 2790, 257446, 1261583, "Final Clutch of Predaxas", "Voidstorm", "Open the Final Clutch of Predaxas treasure in Voidstorm." }
}

for _, mount in ipairs(midnightTreasureMounts) do
  MountAtlasAddMidnightMount({
    name = mount[1],
    mountID = mount[2],
    itemID = mount[3],
    spellID = mount[4],
    boss = mount[5],
    zone = mount[6],
    source = "Secret",
    reset = "special",
    requirement = mount[5],
    method = mount[7],
    route = mount[6] .. " > " .. mount[5],
    note = mount[7]
  })
end

local midnightZoneDropMounts = {
  { "Rootstalker Grimlynx", 2615, 246735, 1243597, "Harandar zone drop", "Harandar" },
  { "Vibrant Petalwing", 2708, 252012, 1253927, "Harandar zone drop", "Harandar" },
  { "Cobalt Dragonhawk", 2758, 257147, 1261302, "Eversong Woods zone drop", "Eversong Woods" },
  { "Cerulean Hawkstrider", 2762, 257156, 1261323, "Eversong Woods zone drop", "Eversong Woods" },
  { "Amani Sharptalon", 2760, 257152, 1261316, "Zul'Aman zone drop", "Zul'Aman" },
  { "Witherbark Pango", 2775, 257200, 1261351, "Zul'Aman zone drop", "Zul'Aman" },
  { "Augmented Stormray", 2751, 257085, 1261155, "Voidstorm zone drop", "Voidstorm" },
  { "Sanguine Harrower", 2827, 260635, 1266700, "Voidstorm zone drop", "Voidstorm" }
}

for _, mount in ipairs(midnightZoneDropMounts) do
  MountAtlasAddMidnightMount({
    name = mount[1],
    mountID = mount[2],
    itemID = mount[3],
    spellID = mount[4],
    boss = mount[5],
    zone = mount[6],
    source = "Rare",
    reset = "daily",
    dropChance = "Muy baja",
    method = "Zone drop from eligible enemies or rares in " .. mount[6] .. ".",
    route = mount[6] .. " > zone drops",
    note = "Simple Armory lists this as a Midnight zone drop."
  })
end

MountAtlasAddMidnightMount({
  name = "Contained Stormarion Defender",
  mountID = 2767,
  itemID = 257180,
  spellID = 1261334,
  boss = "Voidstorm zone feature",
  zone = "Voidstorm",
  source = "Quest",
  reset = "special",
  requirement = "Voidstorm zone feature.",
  method = "Earn from the related Voidstorm zone feature.",
  route = "Voidstorm > zone feature",
  note = "Simple Armory lists this under Midnight zone features."
})

local midnightRitualSiteMounts = {
  { "Witherbark Warbear Mother", 2779, 257225, 1261362, "Ritual Sites", "Zul'Aman" },
  { "Void-Touched Snapdragon", 2964, 270041, 1287357, "Ritual Sites", "Voidstorm" },
  { "Void-Corrupted Hex Eagle", 2961, 269828, 1286606, "Ritual Sites", "Zul'Aman" }
}

for _, mount in ipairs(midnightRitualSiteMounts) do
  MountAtlasAddMidnightMount({
    name = mount[1],
    mountID = mount[2],
    itemID = mount[3],
    spellID = mount[4],
    boss = mount[5],
    zone = mount[6],
    source = "Secret",
    reset = "special",
    requirement = mount[5],
    method = "Earn from Midnight Ritual Sites.",
    route = mount[6] .. " > Ritual Sites",
    note = "Simple Armory lists this under Midnight Ritual Sites."
  })
end

MountAtlasAddMidnightMount({
  name = "Ivory Grimlynx",
  mountID = 2616,
  itemID = 246736,
  spellID = 1243598,
  boss = "Midnight Allied Race",
  zone = "Harandar",
  source = "Quest",
  reset = "special",
  requirement = "Unlock the related Midnight Allied Race.",
  method = "Unlock the related Midnight Allied Race to receive the racial mount.",
  route = "Midnight Allied Race unlock",
  note = "Simple Armory lists this under Midnight Allied Race."
})

local midnightMythicPlusMounts = {
  { "Calamitous Carrion", 2733, 262620, 1257058, "Midnight Keystone Master: Season One", "Midnight Dungeons", "Midnight Mythic+ Season 1 Keystone Master / Timelost Saddle reward." },
  { "Convalescent Carrion", 2734, 262621, 1257081, "Midnight Keystone Legend: Season One", "Midnight Dungeons", "Midnight Mythic+ Season 1 Keystone Legend / Timelost Saddle reward." }
}

for _, mount in ipairs(midnightMythicPlusMounts) do
  MountAtlasAddMidnightMount({
    name = mount[1],
    mountID = mount[2],
    itemID = mount[3],
    spellID = mount[4],
    boss = mount[5],
    zone = mount[6],
    source = "Achievement",
    reset = "special",
    requirement = mount[5],
    method = "Earn through Midnight Mythic+ Season 1 or the Mythic+ Timelost Saddle system.",
    route = "Mythic+ > Midnight Season 1",
    note = mount[7]
  })
end

local midnightPvpMounts = {
  { "Vicious Snaplizard", 2793, 257502, 1261629, "Horde", "H", "Vicious Saddle", "Rated PvP", "Horde Midnight rated PvP reward, now available through Vicious Saddle when eligible.", false },
  { "Vicious Snaplizard", 2794, 257504, 1261648, "Alliance", "A", "Vicious Saddle", "Rated PvP", "Alliance Midnight rated PvP reward, now available through Vicious Saddle when eligible.", false }
}

for _, mount in ipairs(midnightPvpMounts) do
  MountAtlasAddMidnightMount({
    name = mount[1],
    mountID = mount[2],
    itemID = mount[3],
    spellID = mount[4],
    boss = mount[7],
    vendor = mount[7],
    zone = mount[8],
    source = "PvP",
    reset = "special",
    faction = mount[5],
    side = mount[6],
    cost = mount[7] == "Vicious Saddle" and "Vicious Saddle" or nil,
    requirement = mount[9],
    method = mount[9],
    route = mount[8] .. " > " .. mount[7],
    note = mount[9]
  })
end

local supplementalAchievementMounts = {
  { "Albino Drake", 268, 44178, 60025, "Wrath", "Leading the Cavalry", "Collect 50 mounts.", "Mount collection achievement reward." },
  { "Blue Dragonhawk", 291, 44843, 61996, "Wrath", "Mountain o' Mounts", "Collect 100 mounts on an Alliance character.", "Alliance 100 mount collection reward.", "Alliance", "A" },
  { "Red Dragonhawk", 292, 44842, 61997, "Wrath", "Mountain o' Mounts", "Collect 100 mounts on a Horde character.", "Horde 100 mount collection reward.", "Horde", "H" },
  { "Jade Pandaren Kite", 521, 91802, 133023, "Pandaria", "We're Going to Need More Saddles", "Collect 150 mounts.", "Pandaria-era mount collection reward." },
  { "Heavenly Azure Cloud Serpent", 477, 87776, 127169, "Pandaria", "Lord of the Reins", "Collect 300 mounts.", "Mount collection achievement reward." },
  { "Armored Red Dragonhawk", 548, 98104, 142266, "Pandaria", "Mount Parade", "Collect 200 mounts on a Horde character.", "Horde 200 mount collection reward.", "Horde", "H" },
  { "Armored Blue Dragonhawk", 549, 98259, 142478, "Pandaria", "Mount Parade", "Collect 200 mounts on an Alliance character.", "Alliance 200 mount collection reward.", "Alliance", "A" },
  { "Emerald Drake", 664, 118676, 175700, "Draenor", "Awake the Drakes", "Collect the required drake mounts for Awake the Drakes.", "Drake collection achievement reward." },
  { "Felfire Hawk", 416, 69226, 97501, "Draenor", "Mountacular", "Collect 250 mounts.", "Mount collection achievement reward." },
  { "Frostshard Infernal", 1167, 137614, 213350, "Legion", "No Stable Big Enough", "Collect 350 mounts.", "Mount collection achievement reward." },
  { "Mechanized Lumber Extractor", 845, 140500, 223814, "Legion", "Remember to Share", "Collect 300 toys.", "Toy collection achievement reward." },
  { "Frenzied Feltalon", 1191, 163981, 280729, "BFA", "A Horde of Hoofbeats", "Collect 400 mounts.", "Mount collection achievement reward." },
  { "Otterworldly Ottuk Carrier", 1654, 198654, 376912, "Dragonflight", "Thanks for the Carry!", "Collect 500 mounts.", "Mount collection achievement reward." },
  { "Anu'shalla, Shadow's Guidance", 2917, 265656, 1276650, "Midnight", "Mount collection achievement", "Complete the related Midnight mount collection achievement.", "Midnight mount collection reward." }
}

for _, mount in ipairs(supplementalAchievementMounts) do
  MountAtlasAddCuratedMount({
    name = mount[1],
    mountID = mount[2],
    itemID = mount[3],
    spellID = mount[4],
    boss = mount[6],
    zone = "Mount collection achievements",
    source = "Achievement",
    expansion = mount[5],
    reset = "special",
    faction = mount[9],
    side = mount[10],
    requirement = mount[7],
    method = "Complete the achievement " .. mount[6] .. " and claim the mount reward.",
    route = "Achievements > Collections > Mounts > " .. mount[6],
    note = mount[8]
  })
end

local supplementalHeirloomMounts = {
  { "Chauffeured Mechano-Hog", 678, 122703, 179244, "Horde", "H" },
  { "Chauffeured Mekgineer's Chopper", 679, 120968, 179245, "Alliance", "A" }
}

for _, mount in ipairs(supplementalHeirloomMounts) do
  MountAtlasAddDraenorMount({
    name = mount[1],
    mountID = mount[2],
    itemID = mount[3],
    spellID = mount[4],
    boss = "Heirloom Hoarder",
    zone = "Heirloom collection",
    source = "Achievement",
    reset = "special",
    faction = mount[5],
    side = mount[6],
    requirement = "Collect 35 heirlooms.",
    method = "Complete Heirloom Hoarder by collecting 35 heirlooms.",
    route = "Collections > Heirlooms > Heirloom Hoarder",
    note = "Heirloom collection achievement reward."
  })
end

MountAtlasAddBfaMount({
  name = "Pureheart Courser",
  mountID = 1190,
  itemID = 163982,
  spellID = 280730,
  boss = "100 Exalted Reputations",
  zone = "Reputation achievements",
  source = "Reputation",
  reset = "special",
  requirement = "Earn 100 Exalted reputations.",
  method = "Complete the 100 Exalted Reputations achievement.",
  route = "Achievements > Reputation > 100 Exalted Reputations",
  note = "Account-wide reputation collection reward."
})

local supplementalMythicPlusMounts = {
  { "Awakened Mindborer", 1326, 174836, 316637, "BFA", "Battle for Azeroth Keystone Master: Season Four" },
  { "Sintouched Deathwalker", 1419, 182717, 340068, "Shadowlands", "Shadowlands Keystone Master: Season One" },
  { "Restoration Deathwalker", 1405, 192557, 334482, "Shadowlands", "Shadowlands Keystone Master: Season Two" },
  { "Wastewarped Deathwalker", 1544, 187682, 359407, "Shadowlands", "Shadowlands Keystone Master: Season Three" },
  { "Soultwisted Deathwalker", 1520, 187525, 358319, "Shadowlands", "Shadowlands Keystone Master: Season Four" },
  { "Hailstorm Armoredon", 1681, 199412, 387231, "Dragonflight", "Dragonflight Keystone Master: Season One" },
  { "Inferno Armoredon", 1725, 204798, 406637, "Dragonflight", "Dragonflight Keystone Master: Season Two" },
  { "Verdant Armoredon", 1801, 209060, 422486, "Dragonflight", "Dragonflight Keystone Master: Season Three" },
  { "Infinite Armoredon", 2055, 213438, 434462, "Dragonflight", "Dragonflight Keystone Master: Season Four" },
  { "Cerulean Deathwalker", 3005, 275440, 1296731, "Midnight", "Timelost Saddle" },
  { "Amethyst Mechsuit", 3006, 275442, 1296734, "Midnight", "Timelost Saddle" },
  { "Blue-Chip Shreddertank", 3007, 275444, 1296756, "Midnight", "Timelost Saddle" },
  { "Profit-Green Shreddertank", 3008, 275445, 1296758, "Midnight", "Timelost Saddle" },
  { "Speculative Shreddertank", 3009, 275447, 1296760, "Midnight", "Timelost Saddle" },
  { "High-Yield Shreddertank", 3010, 275446, 1296759, "Midnight", "Timelost Saddle" }
}

for _, mount in ipairs(supplementalMythicPlusMounts) do
  MountAtlasAddCuratedMount({
    name = mount[1],
    mountID = mount[2],
    itemID = mount[3],
    spellID = mount[4],
    boss = mount[6],
    zone = "Mythic+",
    source = "Achievement",
    expansion = mount[5],
    reset = "special",
    cost = "Timelost Saddle when available",
    requirement = mount[6],
    method = "Earn from the original Mythic+ seasonal achievement or purchase through the Timelost Saddle system when available.",
    route = "Mythic+ > Timelost Saddle",
    note = "Simple Armory lists this under Mythic+ Timelost Saddle."
  })
end

local supplementalBlackMarketMounts = {
  { "Core Hound", 606, 115484, 170347, "Draenor", "Black Market Auction House", "Originally a 10th Anniversary reward; obtainable when listed on the Black Market Auction House." },
  { "Obsidian Worldbreaker", 1240, 172012, 294197, "BFA", "Black Market Auction House", "Originally a 15th Anniversary reward; obtainable when listed on the Black Market Auction House." },
  { "Golden Regal Scarab", 1944, 211084, 428060, "Dragonflight", "Black Market Auction House", "Obtainable when listed on the Black Market Auction House." }
}

for _, mount in ipairs(supplementalBlackMarketMounts) do
  MountAtlasAddCuratedMount({
    name = mount[1],
    mountID = mount[2],
    itemID = mount[3],
    spellID = mount[4],
    boss = mount[6],
    zone = "Black Market Auction House",
    source = "Black Market",
    expansion = mount[5],
    reset = "special",
    cost = "Gold bid",
    requirement = "Watch for the mount on the Black Market Auction House.",
    method = "Bid on the mount when it appears on the Black Market Auction House.",
    route = "Black Market Auction House",
    note = mount[7]
  })
end

MountAtlasAddBfaMount({
  name = "Lightforged Ruinstrider",
  mountID = 1568,
  spellID = 363613,
  boss = "Lightforged Draenei Paladin",
  zone = "Class spellbook",
  source = "Class",
  reset = "special",
  requiredClass = "Paladin",
  faction = "Alliance",
  side = "A",
  requirement = "Lightforged Draenei Paladin.",
  method = "Learn as a Lightforged Draenei Paladin class mount.",
  route = "Class spellbook > Paladin mounts",
  note = "Lightforged Draenei Paladin racial class mount."
})

local supplementalProfessionMounts = {
  { "Riding Turtle", 125, 23720, 30174, "Wrath", "Fishing", "Fish from Northrend fishing pools or other eligible fishing sources." },
  { "Crowd Pummeler 2-30", 2158, 221967, 448186, "The War Within", "Engineering", "Craft or obtain through The War Within Engineering." },
  { "Kah, Legend of the Deep", 2188, 223286, 448850, "The War Within", "Fishing", "Earn through The War Within fishing content." },
  { "Void-Crystal Panther", 2502, 235712, 1218317, "The War Within", "Jewelcrafting", "Craft or obtain through The War Within Jewelcrafting." },
  { "Nether-Swept Drake", 16, 260916, 3363, "Midnight", "Fishing", "Earn through Midnight fishing content." },
  { "Void-Corrupted Lynx", 2965, 270058, 1287359, "Midnight", "Leatherworking", "Craft or obtain through Midnight Leatherworking." }
}

for _, mount in ipairs(supplementalProfessionMounts) do
  MountAtlasAddCuratedMount({
    name = mount[1],
    mountID = mount[2],
    itemID = mount[3],
    spellID = mount[4],
    boss = mount[6],
    zone = mount[6],
    source = "Profession",
    expansion = mount[5],
    reset = "special",
    requiredProfession = mount[6],
    requirement = mount[6],
    method = mount[7],
    route = "Professions > " .. mount[6],
    note = mount[6] .. " mount."
  })
end

local supplementalPvpMounts = {
  { "Black War Bear", 271, 44223, 60118, "Wrath", "For The Horde!", "Horde", "H", "Kill the Alliance faction leaders for the For The Horde! achievement." },
  { "Black War Bear", 272, 44224, 60119, "Wrath", "For The Alliance!", "Alliance", "A", "Kill the Horde faction leaders for the For The Alliance! achievement." },
  { "Ivory Hawkstrider", 877, 142369, 230401, "Legion", "Talon's Vengeance", nil, nil, "Purchase from Talon's Vengeance after earning the required PvP currency/reputation." }
}

for _, mount in ipairs(supplementalPvpMounts) do
  MountAtlasAddCuratedMount({
    name = mount[1],
    mountID = mount[2],
    itemID = mount[3],
    spellID = mount[4],
    boss = mount[6],
    vendor = mount[6],
    zone = "PvP",
    source = "PvP",
    expansion = mount[5],
    reset = "special",
    faction = mount[7],
    side = mount[8],
    requirement = mount[9],
    method = mount[9],
    route = "PvP > " .. mount[6],
    note = "PvP mount reward."
  })
end

local supplementalRacialVendorMounts = {
  { "Armored Vorquin Leystrider", 1667, 198809, 385131 },
  { "Guardian Vorquin", 1664, 198808, 384963 },
  { "Majestic Armored Vorquin", 1668, 198810, 385115 },
  { "Swift Armored Vorquin", 1665, 198811, 385134 },
  { "Bronze Vorquin", 1685, 201720, 394219 },
  { "Crimson Vorquin", 1683, 201702, 394216 },
  { "Obsidian Vorquin", 1686, 201719, 394220 },
  { "Sapphire Vorquin", 1684, 201704, 394218 }
}

for _, mount in ipairs(supplementalRacialVendorMounts) do
  MountAtlasAddDragonflightMount({
    name = mount[1],
    mountID = mount[2],
    itemID = mount[3],
    spellID = mount[4],
    boss = "Dracthyr mount vendor",
    vendor = "Dracthyr mount vendor",
    zone = "Dragon Isles",
    source = "Vendor",
    reset = "special",
    cost = "Gold",
    requirement = "Dracthyr racial mount vendor access.",
    method = "Buy from a Dracthyr racial mount vendor.",
    route = "Dragon Isles > Dracthyr mount vendor",
    note = "Dragonflight Dracthyr racial mount."
  })
end

MountAtlasAddShadowlandsMount({
  name = "Elusive Emerald Hawkstrider",
  mountID = 1600,
  itemID = 191566,
  spellID = 370620,
  boss = "Blood Elf heritage questline",
  zone = "Silvermoon",
  source = "Quest",
  reset = "special",
  faction = "Horde",
  side = "H",
  requirement = "Eligible Blood Elf character.",
  method = "Complete the Blood Elf heritage questline.",
  route = "Orgrimmar / Silvermoon > Blood Elf heritage questline",
  note = "Blood Elf racial heritage mount."
})

local supplementalEventMounts = {
  { "Brewfest Ram", 201, 33976, 43899, "Burning Crusade", "Brewfest", "Brewfest", "Earn during Brewfest." },
  { "Minion of Grumpus", 769, 128671, 191314, "Draenor", "Winter Veil", "Winter Veil", "Chance from Winter Veil event rewards." },
  { "Frostwolf Snarler", 1285, 172023, 306421, "BFA", "Anniversary", "Alterac Valley", "Earn during the WoW Anniversary Alterac Valley event when available.", "Horde", "H" },
  { "Stormpike Battle Ram", 1292, 172022, 308250, "BFA", "Anniversary", "Alterac Valley", "Earn during the WoW Anniversary Alterac Valley event when available.", "Alliance", "A" },
  { "Illidari Doomhawk", 293, 186469, 62048, "Shadowlands", "Anniversary", "Doomwalker", "Chance from Doomwalker during the WoW Anniversary event." },
  { "Azure Worldchiller", 1798, 208572, 420097, "Dragonflight", "Anniversary", "Doomwalker", "Chance from Doomwalker during the WoW Anniversary event." },
  { "Noble Flying Carpet", 2023, 212599, 432455, "Dragonflight", "Noblegarden", "Noblegarden", "Earn during Noblegarden." },
  { "Coldflame Tempest", 2261, 228760, 463133, "The War Within", "Anniversary", "WoW Anniversary", "Earn during the WoW Anniversary event." },
  { "Sun Festival's Painted Roc", 3036, 275464, 1298439, "Midnight", "Midsummer Fire Festival", "Midsummer Fire Festival", "Earn during Midsummer Fire Festival." },
  { "Brawlin' Bruno", 2807, 259227, 1264621, "Midnight", "Brawler's Guild", "Brawler's Guild", "Earn through Brawler's Guild when the feature is active." },
  { "Ballistic Bronco", 2808, 259238, 1264643, "Midnight", "Brawler's Guild", "Brawler's Guild", "Earn through Brawler's Guild when the feature is active." },
  { "Eclipse Dragonhawk", 778, 129923, 194464, "Draenor", "Timewalking", "Timewalking", "Buy from the related Timewalking vendor." },
  { "Ironbound Wraithcharger", 552, 129922, 142910, "Draenor", "Timewalking", "Timewalking", "Buy from the related Timewalking vendor." },
  { "Yu'lei, Daughter of Jade", 476, 87775, 127165, "Legion", "Timewalking", "Timewalking", "Buy from the Mists of Pandaria Timewalking vendor." },
  { "Beastlord's Irontusk", 1242, 167894, 294568, "BFA", "Timewalking", "Timewalking", "Buy from the Warlords of Draenor Timewalking vendor.", "Alliance", "A" },
  { "Beastlord's Warwolf", 1243, 167895, 294569, "BFA", "Timewalking", "Timewalking", "Buy from the Warlords of Draenor Timewalking vendor.", "Horde", "H" },
  { "Val'sharah Hippogryph", 1521, 187595, 359013, "Shadowlands", "Timewalking", "Timewalking", "Buy from the Legion Timewalking vendor." },
  { "Liquid Hot Magma Slug", 1470, 192778, 350220, "Dragonflight", "Timewalking", "Timewalking", "Buy from the Cataclysm Timewalking vendor." },
  { "Bronze Wilderling", 2795, 257511, 1261668, "Midnight", "Timewalking", "Timewalking", "Buy from the related Timewalking vendor." },
  { "Bronze Aquilon", 2796, 257513, 1261671, "Midnight", "Timewalking", "Timewalking", "Buy from the related Timewalking vendor." },
  { "Bronze Corpsefly", 2797, 257514, 1261677, "Midnight", "Timewalking", "Timewalking", "Buy from the related Timewalking vendor." },
  { "Bronze Gravewing", 2798, 257516, 1261681, "Midnight", "Timewalking", "Timewalking", "Buy from the related Timewalking vendor." },
  { "Crimson Lupine", 2804, 258515, 1263387, "Midnight", "Timewalking", "Timewalking", "Buy from the related Timewalking vendor." },
  { "Snowpaw Glimmerfur Prowler", 2815, 259463, 1264988, "Midnight", "Timewalking", "Timewalking", "Buy from the related Timewalking vendor." }
}

for _, mount in ipairs(supplementalEventMounts) do
  MountAtlasAddCuratedMount({
    name = mount[1],
    mountID = mount[2],
    itemID = mount[3],
    spellID = mount[4],
    boss = mount[6],
    vendor = mount[6],
    zone = mount[7],
    source = "Event",
    expansion = mount[5],
    reset = "event",
    eventName = mount[6],
    faction = mount[9],
    side = mount[10],
    requirement = mount[8],
    method = mount[8],
    route = mount[7] .. " > " .. mount[6],
    note = mount[8]
  })
end

MountAtlasAchievements = {
  -- Wrath of the Lich King
  {
    id = 2136,
    reward = "Mount: Red Proto-Drake",
    mountID = 262,
    expansion = "Wrath",
    note = "Heroic dungeon meta-achievement."
  },
  {
    id = 2957,
    reward = "Mount: Rusted Proto-Drake",
    mountID = 307,
    expansion = "Wrath",
    note = "Ulduar 10 player legacy achievement."
  },
  {
    id = 2958,
    reward = "Mount: Ironbound Proto-Drake",
    mountID = 306,
    expansion = "Wrath",
    note = "Ulduar 25 player legacy achievement."
  },
  {
    id = 4602,
    reward = "Mount: Bloodbathed Frostbrood Vanquisher",
    mountID = 365,
    expansion = "Wrath",
    note = "Icecrown Citadel 10 player legacy achievement."
  },
  {
    id = 4603,
    reward = "Mount: Icebound Frostbrood Vanquisher",
    mountID = 364,
    expansion = "Wrath",
    note = "Icecrown Citadel 25 player legacy achievement."
  },

  -- Cataclysm
  {
    id = 5866,
    reward = "Mount: Flameward Hippogryph",
    mountID = 413,
    expansion = "Cataclysm",
    note = "Molten Front meta-achievement."
  },
  {
    id = 4845,
    reward = "Mount: Volcanic Stone Drake",
    mountID = 391,
    expansion = "Cataclysm",
    note = "Cataclysm heroic dungeon meta-achievement."
  },
  {
    id = 4853,
    reward = "Mount: Drake of the East Wind",
    mountID = 392,
    expansion = "Cataclysm",
    note = "Blackwing Descent, Bastion of Twilight and Throne of the Four Winds."
  },
  {
    id = 5828,
    reward = "Mount: Corrupted Fire Hawk",
    mountID = 417,
    expansion = "Cataclysm",
    note = "Firelands raid meta-achievement."
  },
  {
    id = 6169,
    reward = "Mount: Twilight Harbinger",
    mountID = 443,
    expansion = "Cataclysm",
    note = "Dragon Soul raid meta-achievement."
  },

  -- Mists of Pandaria
  {
    id = 6827,
    reward = "Mount: Pandaren Kite",
    mountID = 516,
    expansion = "Pandaria",
    note = "Alliance Pandaren Ambassador reputation achievement."
  },
  {
    id = 6828,
    reward = "Mount: Pandaren Kite",
    mountID = 450,
    expansion = "Pandaria",
    note = "Horde Pandaren Ambassador reputation achievement."
  },
  {
    id = 6927,
    reward = "Mount: Crimson Cloud Serpent",
    mountID = 472,
    expansion = "Pandaria",
    note = "Pandaria heroic dungeon meta-achievement."
  },
  {
    id = 6932,
    reward = "Mount: Heavenly Crimson Cloud Serpent",
    mountID = 474,
    expansion = "Pandaria",
    note = "Mogu'shan Vaults, Heart of Fear and Terrace of Endless Spring."
  },
  {
    id = 8124,
    reward = "Mount: Armored Skyscreamer",
    mountID = 530,
    expansion = "Pandaria",
    note = "Throne of Thunder raid meta-achievement."
  },
  {
    id = 8454,
    reward = "Mount: Spawn of Galakras",
    mountID = 557,
    expansion = "Pandaria",
    note = "Siege of Orgrimmar raid meta-achievement."
  },

  -- Warlords of Draenor
  {
    id = 9396,
    reward = "Mount: Frostplains Battleboar",
    mountID = 623,
    expansion = "Draenor",
    note = "Draenor heroic dungeon meta-achievement."
  },
  {
    id = 8985,
    reward = "Mount: Gorestrider Gronnling",
    mountID = 607,
    expansion = "Draenor",
    note = "Highmaul and Blackrock Foundry raid achievements."
  },
  {
    id = 10018,
    reward = "Mount: Soaring Skyterror",
    mountID = 772,
    expansion = "Draenor",
    note = "Draenor Pathfinder achievement."
  },
  {
    id = 10149,
    reward = "Mount: Infernal Direwolf",
    mountID = 758,
    expansion = "Draenor",
    note = "Hellfire Citadel raid meta-achievement."
  },

  -- Legion
  {
    id = 11066,
    reward = "Mount: Ratstallion",
    mountID = 804,
    expansion = "Legion",
    note = "Dalaran Underbelly Sightless Eye achievement."
  },
  {
    id = 11163,
    reward = "Mount: Leyfeather Hippogryph",
    mountID = 846,
    expansion = "Legion",
    note = "Legion mythic dungeon meta-achievement."
  },
  {
    id = 11180,
    reward = "Mount: Grove Defiler",
    mountID = 773,
    expansion = "Legion",
    note = "Emerald Nightmare and Nighthold raid achievements."
  },
  {
    id = 11763,
    reward = "Pet/Title: Micronax Controller and Tomb Raider",
    expansion = "Legion",
    note = "Tomb of Sargeras raid meta-achievement."
  },
  {
    id = 11987,
    reward = "Mount: Antoran Gloomhound",
    mountID = 972,
    expansion = "Legion",
    note = "Antorus, the Burning Throne raid meta-achievement."
  },
  {
    id = 12103,
    reward = "Mount: Bleakhoof Ruinstrider",
    mountID = 986,
    expansion = "Legion",
    note = "Argus demon-slaying achievement."
  },
  {
    id = 15310,
    reward = "Mount: Soaring Spelltome",
    mountID = 1532,
    expansion = "Legion",
    note = "Mage Tower challenge achievement."
  },

  -- Battle for Azeroth
  {
    id = 12812,
    reward = "Mount: Obsidian Krolusk",
    mountID = 933,
    expansion = "BFA",
    note = "Battle for Azeroth mythic dungeon meta-achievement."
  },
  {
    id = 13250,
    reward = "Mount: Wonderwing 2.0",
    mountID = 1224,
    expansion = "BFA",
    note = "Battle for Azeroth Pathfinder, Part Two achievement."
  },
  {
    id = 13517,
    reward = "Mounts: Ironclad Frostclaw / Bloodflank Charger",
    expansion = "BFA",
    note = "Battle for Azeroth war campaign achievement; faction reward depends on character side."
  },
  {
    id = 13638,
    reward = "Mount: Snapback Scuttler",
    mountID = 1238,
    expansion = "BFA",
    note = "Nazjatar meta-achievement."
  },
  {
    id = 13541,
    reward = "Mount: Mechacycle Model W",
    mountID = 1247,
    expansion = "BFA",
    note = "Mechagon meta-achievement."
  },
  {
    id = 13994,
    reward = "Mount: Black Serpent of N'Zoth",
    mountID = 1282,
    expansion = "BFA",
    note = "Horrific Visions achievement."
  },
  {
    id = 12806,
    reward = "Mount: Bloodgorged Crawg",
    mountID = 963,
    expansion = "BFA",
    note = "Uldir raid meta-achievement."
  },
  {
    id = 13315,
    reward = "Mount: Dazar'alor Windreaver",
    mountID = 1218,
    expansion = "BFA",
    note = "Battle of Dazar'alor raid meta-achievement."
  },
  {
    id = 13687,
    reward = "Mount: Azshari Bloatray",
    mountID = 1232,
    expansion = "BFA",
    note = "The Eternal Palace raid meta-achievement."
  },
  {
    id = 14146,
    reward = "Mount: Wriggling Parasite",
    mountID = 1322,
    expansion = "BFA",
    note = "Ny'alotha raid meta-achievement."
  },

  -- Shadowlands
  {
    id = 15654,
    reward = "Mount: Zovaal's Soul Eater",
    mountID = 2114,
    expansion = "Shadowlands",
    note = "Back from the Beyond legacy Shadowlands meta-achievement."
  },
  {
    id = 15064,
    reward = "Mount: Hand of Salaranga",
    mountID = 1504,
    expansion = "Shadowlands",
    note = "Korthia meta-achievement."
  },
  {
    id = 15178,
    reward = "Mount: Tazavesh Gearglider",
    mountID = 1446,
    expansion = "Shadowlands",
    note = "Tazavesh mega-dungeon achievement."
  },
  {
    id = 15514,
    reward = "Mount: Cryptic Aurelid",
    mountID = 1551,
    expansion = "Shadowlands",
    note = "Zereth Mortis achievement."
  },
  {
    id = 14322,
    reward = "Mount: Voracious Gorger",
    mountID = 1443,
    expansion = "Shadowlands",
    note = "Shadowlands mythic dungeon meta-achievement."
  },
  {
    id = 14355,
    reward = "Mount: Rampart Screecher",
    mountID = 1377,
    expansion = "Shadowlands",
    note = "Castle Nathria raid meta-achievement."
  },
  {
    id = 15130,
    reward = "Mount: Hand of Hrestimorak",
    mountID = 1417,
    expansion = "Shadowlands",
    note = "Sanctum of Domination raid meta-achievement."
  },
  {
    id = 15491,
    reward = "Mount: Shimmering Aurelid",
    mountID = 1549,
    expansion = "Shadowlands",
    note = "Sepulcher of the First Ones raid meta-achievement."
  },
  {
    id = 15687,
    reward = "Mount: Jigglesworth Sr.",
    mountID = 1576,
    expansion = "Shadowlands",
    note = "Fated Shadowlands raids achievement."
  },

  -- Dragonflight
  {
    id = 19458,
    reward = "Mount: Taivan",
    mountID = 1825,
    expansion = "Dragonflight",
    note = "A World Awoken Dragonflight meta-achievement."
  },
  {
    id = 16295,
    reward = "Mount: Shellack",
    mountID = 1626,
    expansion = "Dragonflight",
    note = "Dragonflight mythic dungeon meta-achievement."
  },
  {
    id = 16355,
    reward = "Mount: Raging Magmammoth",
    mountID = 1644,
    expansion = "Dragonflight",
    note = "Vault of the Incarnates raid meta-achievement."
  },
  {
    id = 18251,
    reward = "Mount: Shadowflame Shalewing",
    mountID = 1734,
    expansion = "Dragonflight",
    source = "Raid Achievement",
    note = "Aberrus raid meta-achievement."
  },
  {
    id = 19349,
    reward = "Mount: Shadow Dusk Dreamsaber",
    mountID = 1814,
    expansion = "Dragonflight",
    source = "Raid Achievement",
    note = "Amirdrassil raid meta-achievement."
  },

  -- The War Within
  {
    id = 40438,
    reward = "Mount: Ivory Goliathus",
    mountID = 2230,
    expansion = "The War Within",
    source = "Delves Achievement",
    note = "The War Within delve meta-achievement."
  },
  {
    id = 40232,
    reward = "Mount: Shadowed Swarmite",
    mountID = 2180,
    expansion = "The War Within",
    source = "Raid Achievement",
    note = "Nerub-ar Palace raid meta-achievement."
  },
  {
    id = 41286,
    reward = "Mount: Junkmaestro's Magnetomech",
    mountID = 2313,
    expansion = "The War Within",
    source = "Raid Achievement",
    note = "Liberation of Undermine raid meta-achievement."
  },
  {
    id = 61566,
    reward = "Pet: Bubbles Model",
    expansion = "The War Within",
    source = "Dungeon Achievement",
    note = "The War Within dungeon meta-achievement added during Midnight."
  },

  -- Midnight
  {
    id = 61906,
    reward = "Mount: Giganto Manis",
    mountID = 2773,
    expansion = "Midnight",
    source = "Delves Achievement",
    note = "Midnight delve meta-achievement."
  },
  {
    id = 61380,
    reward = "Mount: Tenebrous Harrower",
    mountID = 2831,
    expansion = "Midnight",
    source = "Raid Achievement",
    note = "Midnight Season 1 raid meta-achievement."
  },
  {
    id = 61568,
    reward = "Dungeon meta-achievement",
    expansion = "Midnight",
    source = "Dungeon Achievement",
    note = "Midnight dungeon meta-achievement. Revisa la recompensa exacta en la ventana de logros si Blizzard la cambia."
  },
}

MountAtlasLocationGuide = {
  -- Central location guide.
  -- Per-mount fields still win: coordinates/respawn/macro/tomtom on a mount override these shared entries.
  -- coordinates are shown in the guide; waypointZone is the outdoor map used by TomTom.
  mounts = {
    [16] = {
      location = "Drathen, Midnight Fishing trainer",
      waypointZone = "Silvermoon City",
      coordinates = "44.7, 60.2",
      guideUrl = "https://www.wowhead.com/guide=32848/midnight-fishing-profession-overview-trainers-fish-lures-and-treasures",
      note = "Wowhead's Midnight Fishing guide places Drathen in Silvermoon City; this is the practical hub for Nether-Swept Drake fishing progression."
    },
    [236] = {
      location = "Duchess Mynx, The Shadow Vault",
      questStart = "Knights of the Ebon Blade quartermaster",
      waypointZone = "Icecrown",
      coordinates = "43.4, 20.5",
      guideUrl = "https://www.wowhead.com/npc=32538/duchess-mynx",
      note = "Requires a Death Knight and Exalted with Knights of the Ebon Blade."
    },
    [237] = {
      location = "Brunnhildar Village",
      questStart = "Gretta the Arbiter",
      waypointZone = "The Storm Peaks",
      coordinates = "50.8, 65.6",
      guideUrl = "https://www.wowhead.com/item=43962/reins-of-the-white-polar-bear",
      note = "Unlock the Brunnhildar Village daily quests and open Hyldnir Spoils."
    },
    [393] = {
      location = "Aeonaxx patrol route",
      waypointZone = "Deepholm",
      coordinates = "47.0, 57.4",
      routeWaypoints = {
        { waypointZone = "Deepholm", coordinates = "31.2, 42.6", label = "Aeonaxx patrol" },
        { waypointZone = "Deepholm", coordinates = "42.8, 58.4", label = "Aeonaxx patrol" },
        { waypointZone = "Deepholm", coordinates = "47.0, 57.4", label = "Aeonaxx patrol" },
        { waypointZone = "Deepholm", coordinates = "60.4, 26.2", label = "Aeonaxx patrol" },
        { waypointZone = "Deepholm", coordinates = "66.0, 64.4", label = "Aeonaxx patrol" }
      },
      guideUrl = "https://www.wowhead.com/npc=50062/aeonaxx",
      macro = "/target Aeonaxx",
      respawn = "Variable",
      note = "Rare spawn with a broad patrol route through Deepholm."
    },
    [400] = {
      location = "Dormus the Camel-Hoarder encounter",
      waypointZone = "Feralas",
      coordinates = "69.5, 73.2",
      guideUrl = "https://www.wowhead.com/npc=50245/dormus-the-camel-hoarder",
      macro = "/target Dormus the Camel-Hoarder",
      note = "You reach Dormus after clicking the correct Mysterious Camel Figurine in Uldum."
    },
    [420] = {
      location = "Poseidus patrol route",
      waypointZone = "Shimmering Expanse",
      coordinates = "45.0, 49.0",
      routeWaypoints = {
        { waypointZone = "Shimmering Expanse", coordinates = "39.8, 66.4", label = "Poseidus patrol" },
        { waypointZone = "Shimmering Expanse", coordinates = "45.0, 49.0", label = "Poseidus patrol" },
        { waypointZone = "Shimmering Expanse", coordinates = "58.2, 82.0", label = "Poseidus patrol" },
        { waypointZone = "Shimmering Expanse", coordinates = "66.4, 43.2", label = "Poseidus patrol" },
        { waypointZone = "Abyssal Depths", coordinates = "40.8, 74.8", label = "Poseidus patrol" }
      },
      guideUrl = "https://www.wowhead.com/npc=50005/poseidus",
      macro = "/target Poseidus",
      respawn = "Variable",
      note = "Rare spawn that patrols through Shimmering Expanse and parts of Abyssal Depths."
    },
    [448] = {
      location = "The Arboretum",
      questStart = "Order of the Cloud Serpent",
      waypointZone = "The Jade Forest",
      coordinates = "57.6, 45.0",
      questID = 30188,
      guideUrl = "https://www.wowhead.com/quest=30188/riding-the-skies",
      note = "Raise Order of the Cloud Serpent reputation and complete Riding the Skies."
    },
    [449] = {
      location = "Nat Pagle, Anglers Wharf",
      questStart = "The Anglers",
      waypointZone = "Krasarang Wilds",
      coordinates = "68.4, 43.4",
      guideUrl = "https://www.wowhead.com/npc=63721/nat-pagle",
      note = "Buy from Nat Pagle after reaching Exalted with The Anglers."
    },
    [471] = {
      location = "The Arboretum",
      questStart = "Order of the Cloud Serpent questline",
      waypointZone = "The Jade Forest",
      coordinates = "57.6, 45.0",
      guideUrl = "https://www.wowhead.com/guide/reputation/order-of-the-cloud-serpent-guide",
      note = "Complete the Order of the Cloud Serpent story at the Arboretum."
    },
    [476] = {
      location = "Mistweaver Xia",
      waypointZone = "Timeless Isle",
      coordinates = "43.1, 55.3",
      guideUrl = "https://www.wowhead.com/npc=118828/mistweaver-xia",
      note = "Mists of Pandaria Timewalking vendor confirmed by Wowhead comments and guide data."
    },
    [552] = {
      location = "Auzin",
      waypointZone = "Dalaran",
      coordinates = "50.4, 46.6",
      guideUrl = "https://www.wowhead.com/npc=98690/auzin",
      note = "Wrath Timewalking vendor confirmed by Wowhead."
    },
    [618] = {
      location = "Stormshield / Lunarfall Trading Post",
      waypointZone = "Stormshield",
      coordinates = "52.6, 44.0",
      routeWaypoints = {
        { waypointZone = "Stormshield", coordinates = "52.6, 44.0", label = "Maaria" },
        { waypointZone = "Lunarfall", coordinates = "33.6, 49.4", label = "Lunarfall Trading Post" }
      },
      guideUrl = "https://www.wowhead.com/item=116665/armored-irontusk",
      note = "Alliance source confirmed by Wowhead at Stormshield or the Lunarfall Trading Post."
    },
    [645] = {
      location = "Warspear / Frostwall Trading Post",
      waypointZone = "Warspear",
      coordinates = "51.6, 60.8",
      routeWaypoints = {
        { waypointZone = "Warspear", coordinates = "51.6, 60.8", label = "Warspear vendor" },
        { waypointZone = "Frostwall", coordinates = "58.6, 26.6", label = "Frostwall Trading Post" }
      },
      guideUrl = "https://www.wowhead.com/item=116782/ironside-warwolf",
      note = "Horde source confirmed by Wowhead at Warspear or the Frostwall Trading Post."
    },
    [778] = {
      location = "Cupri",
      waypointZone = "Shattrath City",
      coordinates = "54.6, 39.0",
      guideUrl = "https://www.wowhead.com/npc=98685/cupri",
      note = "Burning Crusade Timewalking vendor confirmed by Wowhead."
    },
    [797] = {
      location = "Entrada de The Nighthold",
      waypointZone = "Suramar",
      coordinates = "44.0, 60.0",
      routeWaypoints = {
        { waypointZone = "Suramar", coordinates = "46.0, 64.6", label = "Acceso exterior" },
        { waypointZone = "Suramar", coordinates = "44.0, 60.0", label = "Entrada de The Nighthold" }
      },
      guideUrl = "https://www.wowhead.com/item=137686/steelbound-harness",
      note = "Wowhead indica que Steelbound Harness se fabrica con Herreria y que la receta cae de Tichondrius en The Nighthold."
    },
    [854] = {
      location = "Ruta de Mounting Made Easy",
      waypointZone = "Stormheim",
      coordinates = "62.5, 23.8",
      routeWaypoints = {
        { waypointZone = "Stormheim", coordinates = "62.5, 23.8", label = "Start" },
        { waypointZone = "Stormheim", coordinates = "43.0, 37.0", label = "Mounting Made Easy" },
        { waypointZone = "Stormheim", coordinates = "31.6, 46.5", label = "Mounting Made Easy" },
        { waypointZone = "Stormheim", coordinates = "39.7, 47.3", label = "Mounting Made Easy" },
        { waypointZone = "Stormheim", coordinates = "42.8, 58.6", label = "Mounting Made Easy" },
        { waypointZone = "Stormheim", coordinates = "47.3, 61.2", label = "Mounting Made Easy" },
        { waypointZone = "Stormheim", coordinates = "48.3, 59.5", label = "Mounting Made Easy" },
        { waypointZone = "Stormheim", coordinates = "52.6, 57.2", label = "Mounting Made Easy" },
        { waypointZone = "Stormheim", coordinates = "52.7, 49.5", label = "Mounting Made Easy" },
        { waypointZone = "Stormheim", coordinates = "55.4, 46.7", label = "Mounting Made Easy end" }
      },
      guideUrl = "https://www.wowhead.com/item=129962/great-northern-elderhorn",
      note = "Ruta tomada de los /way de comentarios en Wowhead para Mounting Made Easy, asociada a Great Northern Elderhorn."
    },
    [838] = {
      location = "Kosumoth the Hungering",
      questStart = "Kosumoth orb secret",
      waypointZone = "Eye of Azshara",
      coordinates = "46.0, 49.0",
      guideUrl = "https://www.wowhead.com/npc=111573/kosumoth-the-hungering",
      respawn = "Active world quest",
      macro = "/target Kosumoth the Hungering",
      note = "Requires the orb secret before the world quest can reward the mount."
    },
    [982] = {
      location = "Ruta corta de pesca en Argus",
      waypointZone = "Krokuun",
      coordinates = "29.6, 67.1",
      routeWaypoints = {
        { waypointZone = "Krokuun", coordinates = "29.6, 67.1", label = "Pond Nettle fishing spot" },
        { waypointZone = "Krokuun", coordinates = "44.7, 64.2", label = "Pond Nettle fishing spot" },
        { waypointZone = "Antoran Wastes", coordinates = "71.1, 43.1", label = "Pond Nettle fishing spot" },
        { waypointZone = "Antoran Wastes", coordinates = "74.2, 48.4", label = "Pond Nettle fishing spot" }
      },
      guideUrl = "https://www.wowhead.com/item=152912/pond-nettle",
      note = "Puntos populares de pesca para Pond Nettle extraidos de comentarios con /way en Wowhead."
    },
    [986] = {
      location = "Ruta practica de farmeo de demonios",
      waypointZone = "Krokuun",
      coordinates = "60.0, 78.0",
      guideUrl = "https://www.wowhead.com/item=153041/bleakhoof-ruinstrider",
      note = "Wowhead recoge este punto de Krokuun como farmeo practico para ...And Chew Mana Buns y Bleakhoof Ruinstrider."
    },
    [1025] = {
      location = "Griftah, Lower City",
      questStart = "Talisman of True Treasure Tracking",
      waypointZone = "Shattrath City",
      coordinates = "65.6, 69.3",
      guideUrl = "https://www.wowhead.com/guide/the-hivemind-secret-mount-7668",
      note = "Wowhead inicia la cadena de The Hivemind en Griftah con la compra del talisman."
    },
    [1046] = {
      zone = "Class spellbook",
      note = "No tiene una ubicacion fisica en el mundo; Darkforge Ram se aprende como montura de Paladin Dark Iron Dwarf."
    },
    [1047] = {
      zone = "Class spellbook",
      note = "No tiene una ubicacion fisica en el mundo; Dawnforge Ram se aprende como montura de Paladin Lightforged Draenei."
    },
    [1166] = {
      location = "Ruta corta de pesca en aguas de BFA",
      waypointZone = "Tiragarde Sound",
      coordinates = "76.8, 24.5",
      routeWaypoints = {
        { waypointZone = "Tiragarde Sound", coordinates = "76.8, 24.5", label = "Tradewinds Market coast" },
        { waypointZone = "Zuldazar", coordinates = "57.9, 66.1", label = "Bay of Kings" },
        { waypointZone = "Zuldazar", coordinates = "41.6, 87.7", label = "Grand Bazaar coast" }
      },
      guideUrl = "https://www.wowhead.com/item=163131/great-sea-ray",
      note = "Puntos practicos de pesca en Battle for Azeroth recopilados desde comentarios de Wowhead para Great Sea Ray."
    },
    [1179] = {
      alliance = {
        location = "Tricky Nick, Hook Point",
        waypointZone = "Boralus",
        coordinates = "56.7, 46.3"
      },
      horde = {
        location = "Talutu, Grand Bazaar",
        waypointZone = "Zuldazar",
        coordinates = "48.6, 87.1"
      },
      guideUrl = "https://www.wowhead.com/npc=125879/talutu",
      note = "Wowhead sitúa a Talutu en Grand Bazaar y a Tricky Nick en Hook Point como vendors de Palehide Direhorn."
    },
    [1190] = {
      zone = "Reputation achievements",
      note = "No tiene una ubicacion fisica en el mundo; Pureheart Courser se obtiene al completar 100 Exalted Reputations."
    },
    [1191] = {
      zone = "Mount collection achievements",
      note = "No tiene una ubicacion fisica en el mundo; Frenzied Feltalon se obtiene como recompensa de coleccion por A Horde of Hoofbeats."
    },
    [1225] = {
      zone = "Class spellbook",
      note = "No tiene una ubicacion fisica en el mundo; Crusader's Direhorn se aprende como montura de Paladin Zandalari Troll."
    },
    [1242] = {
      location = "Tempra, vendor de Timewalking",
      waypointZone = "Ashran",
      coordinates = "37.1, 72.9",
      guideUrl = "https://www.wowhead.com/item=167894/beastlords-irontusk",
      note = "Comentarios de Wowhead situan a Tempra en Ashran para las recompensas de Warlords Timewalking."
    },
    [1243] = {
      location = "Kronnus, vendor de Timewalking",
      waypointZone = "Warspear",
      coordinates = "42.9, 54.8",
      guideUrl = "https://www.wowhead.com/item=167895/beastlords-warwolf",
      note = "Comentarios de Wowhead situan a Kronnus en Warspear para las recompensas de Warlords Timewalking."
    },
    [1285] = {
      location = "Historian Ma'di, Caverns of Time anniversary hub",
      waypointZone = "Tanaris",
      coordinates = "62.6, 50.4",
      routeWaypoints = {
        { waypointZone = "Tanaris", coordinates = "62.6, 50.4", label = "Caverns of Time entrance" },
        { waypointZone = "Tanaris", coordinates = "50.8, 41.2", label = "Historian Ma'di / Korrak's Revenge hub" }
      },
      guideUrl = "https://www.wowhead.com/npc=158061/historian-madi",
      note = "Wowhead situa a Historian Ma'di en el hub del aniversario en Caverns of Time; desde ahi se accede a Korrak's Revenge cuando el evento esta activo."
    },
    [1292] = {
      location = "Historian Ma'di, Caverns of Time anniversary hub",
      waypointZone = "Tanaris",
      coordinates = "62.6, 50.4",
      routeWaypoints = {
        { waypointZone = "Tanaris", coordinates = "62.6, 50.4", label = "Caverns of Time entrance" },
        { waypointZone = "Tanaris", coordinates = "50.8, 41.2", label = "Historian Ma'di / Korrak's Revenge hub" }
      },
      guideUrl = "https://www.wowhead.com/npc=158061/historian-madi",
      note = "Wowhead situa a Historian Ma'di en el hub del aniversario en Caverns of Time; desde ahi se accede a Korrak's Revenge cuando el evento esta activo."
    },
    [1521] = {
      location = "Aridormi, Legion Timewalking vendor",
      waypointZone = "Dalaran",
      coordinates = "68.4, 48.4",
      guideUrl = "https://www.wowhead.com/npc=180899/aridormi",
      note = "Wowhead situa a Aridormi en Dalaran para las recompensas de Legion Timewalking, incluida Val'sharah Hippogryph."
    },
    [1470] = {
      location = "Xydan, Bronze Enclave",
      waypointZone = "Valdrakken",
      coordinates = "81.4, 47.3",
      guideUrl = "https://www.wowhead.com/guide/world-events/dragonflight-timewalking-dungeons-rewards",
      note = "La guia de Dragonflight Timewalking en Wowhead situa a Xydan en Bronze Enclave, Valdrakken."
    },
    [1545] = {
      location = "Ohn'iri Springs",
      questStart = "Godoloto",
      waypointZone = "Ohn'ahran Plains",
      coordinates = "56.5, 73.3",
      guideUrl = "https://www.wowhead.com/search?q=Divine%20Kiss%20of%20Ohn%27ahra",
      note = "Special Maruuk Centaur questline; check renown and material requirements before going."
    },
    [1563] = {
      location = "Kalecgos, Vakthros",
      questStart = "Calling the Blue Dragons",
      waypointZone = "The Azure Span",
      coordinates = "39.4, 63.0",
      guideUrl = "https://www.wowhead.com/quest=66027/calling-the-blue-dragons",
      note = "El mapper de Wowhead situa el inicio y final de Calling the Blue Dragons en Kalecgos; al completarla recibes Highland Drake."
    },
    [1568] = {
      zone = "Class spellbook",
      note = "No tiene una ubicacion fisica en el mundo; Lightforged Ruinstrider se aprende como montura de Paladin Lightforged Draenei."
    },
    [2114] = {
      location = "Shadowlands meta-achievement",
      guideUrl = "https://www.wowhead.com/item=217612/zovaals-soul-eater",
      note = "No tiene un unico punto fisico en el mundo; Zovaal's Soul Eater se obtiene al completar el meta-achievement de Shadowlands."
    },
    [1588] = {
      location = "Ebyssian, Zaralek Cavern campaign hub",
      questStart = "Worst of the Worst",
      waypointZone = "Zaralek Cavern",
      coordinates = "53.6, 30.2",
      routeWaypoints = {
        { waypointZone = "Zaralek Cavern", coordinates = "53.6, 30.2", label = "Ebyssian" },
        { waypointZone = "Zaralek Cavern", coordinates = "56.8, 30.2", label = "Overseer Xymra" }
      },
      guideUrl = "https://www.wowhead.com/quest=74563/worst-of-the-worst",
      note = "El mapper de Wowhead situa a Ebyssian como inicio y final de Worst of the Worst y a Overseer Xymra como objetivo; al entregarla recibes Winding Slitherdrake."
    },
    [1589] = {
      location = "Lord Andestrasz, Ruby Lifeshrine",
      questStart = "Skyriding",
      waypointZone = "The Waking Shores",
      coordinates = "57.6, 66.8",
      routeWaypoints = {
        { waypointZone = "The Waking Shores", coordinates = "62.2, 73.0", label = "Alexstrasza the Life-Binder" },
        { waypointZone = "The Waking Shores", coordinates = "57.6, 66.8", label = "Lord Andestrasz" }
      },
      guideUrl = "https://www.wowhead.com/quest=68795/skyriding",
      note = "El mapper de Wowhead marca a Alexstrasza como inicio de Skyriding y a Lord Andestrasz como destino inmediato; tras hablar con el recibes Renewed Proto-Drake."
    },
    [1590] = {
      location = "Merithra, Ancient Bough",
      questStart = "Shady Sanctuary",
      waypointZone = "Ohn'ahran Plains",
      coordinates = "28.2, 57.6",
      routeWaypoints = {
        { waypointZone = "Ohn'ahran Plains", coordinates = "28.2, 57.6", label = "Merithra" },
        { waypointZone = "Ohn'ahran Plains", coordinates = "29.0, 55.2", label = "Guard-Captain Alowen" },
        { waypointZone = "Ohn'ahran Plains", coordinates = "29.8, 57.6", label = "Sariosa" },
        { waypointZone = "Ohn'ahran Plains", coordinates = "30.2, 55.6", label = "Sidra the Mender" },
        { waypointZone = "Ohn'ahran Plains", coordinates = "29.2, 56.4", label = "Aronus" },
        { waypointZone = "Ohn'ahran Plains", coordinates = "30.0, 60.2", label = "Viranikus" }
      },
      guideUrl = "https://www.wowhead.com/quest=70220/shady-sanctuary",
      note = "El mapper de Wowhead situa a Merithra como inicio y final de Shady Sanctuary y lista los NPCs requeridos, incluido Aronus para llegar a Viranikus; al completarla recibes Windborne Velocidrake."
    },
    [1591] = {
      location = "Nozdormu, Temporal Conflux",
      questStart = "Back to the Future",
      waypointZone = "Thaldraszus",
      coordinates = "60.0, 82.4",
      guideUrl = "https://www.wowhead.com/quest=66040/back-to-the-future",
      note = "El mapper de Wowhead situa el final de Back to the Future en Nozdormu, Temporal Conflux; la fase intermedia ocurre dentro de The Black Empire y termina otorgando Cliffside Wylderdrake."
    },
    [1619] = {
      location = "Forbidden Reach rare route",
      waypointZone = "The Forbidden Reach",
      coordinates = "74.4, 54.6",
      routeWaypoints = {
        { waypointZone = "The Forbidden Reach", coordinates = "42.7, 60.9", label = "Bonesifter Marwak" },
        { waypointZone = "The Forbidden Reach", coordinates = "37.0, 31.8", label = "Duzalgor entrance" },
        { waypointZone = "The Forbidden Reach", coordinates = "26.7, 41.4", label = "Gahz'raxes entrance" },
        { waypointZone = "The Forbidden Reach", coordinates = "44.7, 79.1", label = "Galakhad" },
        { waypointZone = "The Forbidden Reach", coordinates = "43.7, 90.7", label = "Grugoth the Hullcrusher" },
        { waypointZone = "The Forbidden Reach", coordinates = "41.3, 14.3", label = "Ishyra" },
        { waypointZone = "The Forbidden Reach", coordinates = "61.2, 58.1", label = "Lady Shaz'ra" },
        { waypointZone = "The Forbidden Reach", coordinates = "69.3, 46.2", label = "Mad-Eye Carrey entrance" },
        { waypointZone = "The Forbidden Reach", coordinates = "36.7, 11.8", label = "Ookbeard" },
        { waypointZone = "The Forbidden Reach", coordinates = "51.9, 59.7", label = "Pyrachniss entrance" },
        { waypointZone = "The Forbidden Reach", coordinates = "46.7, 19.2", label = "Reisa the Drowned entrance" },
        { waypointZone = "The Forbidden Reach", coordinates = "72.8, 67.5", label = "Veltrax" },
        { waypointZone = "The Forbidden Reach", coordinates = "74.4, 54.6", label = "Volcanakk entrance" },
        { waypointZone = "The Forbidden Reach", coordinates = "59.1, 49.7", label = "Vraken the Hunter entrance" },
        { waypointZone = "The Forbidden Reach", coordinates = "51.9, 59.7", label = "Warden Entrix entrance" },
        { waypointZone = "The Forbidden Reach", coordinates = "61.8, 30.0", label = "Wyrmslayer Angvardi" }
      },
      guideUrl = "https://www.wowhead.com/guide/forbidden-reach/overview",
      note = "La pagina del item en Wowhead lo lista como drop de rares de Forbidden Reach; los comentarios de la guia recopilan una ruta practica de rare spawns y entradas, incluida la de Volcanakk."
    },
    [1629] = {
      location = "Cueva de Worldbreaker Membership",
      questStart = "Dealer Vexil / Worldbreaker Membership",
      waypointZone = "The Waking Shores",
      coordinates = "34.7, 46.7",
      routeWaypoints = {
        { waypointZone = "The Waking Shores", coordinates = "32.2, 52.4", label = "Igys the Believer" },
        { waypointZone = "The Waking Shores", coordinates = "35.8, 48.0", label = "Entrada de la cueva" }
      },
      note = "Punto base de la cadena de Worldbreaker Membership para Scrappy Worldsnail."
    },
    [1639] = {
      location = "Campamento inicial de Lizi",
      questStart = "Lizi",
      waypointZone = "Ohn'ahran Plains",
      coordinates = "56.2, 77.1",
      note = "Inicio de la cadena de varios dias de Initiate's Day Out."
    },
    [1645] = {
      location = "Waking Dream route",
      waypointZone = "The Waking Shores",
      coordinates = "47.6, 44.4",
      routeWaypoints = {
        { waypointZone = "The Waking Shores", coordinates = "37.8, 73.4", label = "Waking Dream" },
        { waypointZone = "The Waking Shores", coordinates = "47.6, 44.4", label = "Waking Dream" },
        { waypointZone = "The Waking Shores", coordinates = "50.8, 36.0", label = "Waking Dream" },
        { waypointZone = "The Waking Shores", coordinates = "54.6, 23.6", label = "Waking Dream" },
        { waypointZone = "The Waking Shores", coordinates = "62.2, 37.8", label = "Waking Dream" },
        { waypointZone = "The Waking Shores", coordinates = "76.4, 46.5", label = "Waking Dream" }
      },
      guideUrl = "https://www.wowhead.com/item=192807/renewed-magmammoth",
      note = "La pagina del item en Wowhead lo marca como drop de Dreamsurges y sus comentarios fijan una ruta practica de Waking Dreams en The Waking Shores."
    },
    [1656] = {
      location = "Otto's Grotto",
      questStart = "Otto secret",
      waypointZone = "The Waking Shores",
      coordinates = "20.3, 39.8",
      routeWaypoints = {
        { waypointZone = "The Waking Shores", coordinates = "19.6, 36.5", label = "POI de Otto" }
      },
      note = "Secreto de pesca de Otto; requiere reputacion con Iskaara Tuskarr y objetos previos."
    },
    [1674] = {
      location = "Punto final de Temperamental Skyclaw",
      questStart = "Ruta de comida",
      waypointZone = "The Azure Span",
      coordinates = "19.0, 24.0",
      routeWaypoints = {
        { waypointZone = "The Azure Span", coordinates = "58.2, 43.5", label = "Comida para Skyclaw" },
        { waypointZone = "The Azure Span", coordinates = "23.1, 43.7", label = "Comida para Skyclaw" },
        { waypointZone = "The Azure Span", coordinates = "32.0, 44.0", label = "Comida para Skyclaw" }
      },
      note = "Colecciona la comida requerida y recorre los puntos del evento para esta montura."
    },
    [1710] = {
      location = "Xydan, Bronze Enclave",
      waypointZone = "Valdrakken",
      coordinates = "81.4, 47.3",
      guideUrl = "https://www.wowhead.com/item=210140/black-furred-bakar",
      note = "La pagina del item en Wowhead indica que Black-Furred Bakar se compra a Xydan en Valdrakken."
    },
    [1737] = {
      location = "Any Timewalking Vendor",
      waypointZone = "Tanaris",
      coordinates = "62.8, 50.2",
      routeWaypoints = {
        { waypointZone = "Tanaris", coordinates = "62.8, 50.2", label = "Bobadormu" },
        { waypointZone = "Stormwind City", coordinates = "56.0, 19.0", label = "Bobadormu" },
        { waypointZone = "Orgrimmar", coordinates = "52.8, 83.0", label = "Bobadormu" },
        { waypointZone = "Shattrath City", coordinates = "54.5, 39.0", label = "Cupri" },
        { waypointZone = "Dalaran", coordinates = "50.4, 46.6", label = "Auzin" },
        { waypointZone = "Timeless Isle", coordinates = "43.1, 55.3", label = "Mistweaver Xia" },
        { waypointZone = "Ashran", coordinates = "37.1, 72.9", label = "Tempra" },
        { waypointZone = "Warspear", coordinates = "42.9, 54.8", label = "Kronnus" },
        { waypointZone = "Boralus", coordinates = "70.8, 16.4", label = "Churbro" },
        { waypointZone = "Dazar'alor", coordinates = "46.0, 94.8", label = "Churbro" },
        { waypointZone = "Dalaran", coordinates = "68.4, 48.4", label = "Aridormi" }
      },
      guideUrl = "https://www.wowhead.com/item=205208/sandy-shalewing",
      note = "La pagina del item en Wowhead indica que Sandy Shalewing se compra con cualquier vendor de Timewalking."
    },
    [1830] = {
      location = "Merithra, Ancient Bough portal",
      questStart = "Emerald Welcome",
      waypointZone = "Ohn'ahran Plains",
      coordinates = "18.6, 51.8",
      routeWaypoints = {
        { waypointZone = "Ohn'ahran Plains", coordinates = "18.6, 51.8", label = "Merithra / Ancient Bough" },
        { waypointZone = "Emerald Dream", coordinates = "69.4, 54.0", label = "Merithra / Verdant Landing" }
      },
      guideUrl = "https://www.wowhead.com/quest=76318/emerald-welcome",
      note = "El mapper de Wowhead situa el inicio de Emerald Welcome junto al portal de Ancient Bough y el final con Merithra en Verdant Landing; al completarla recibes Flourishing Whimsydrake."
    },
    [1941] = {
      alliance = {
        location = "Kiera Torres, campamento del evento",
        waypointZone = "Elwynn Forest",
        coordinates = "32.2, 50.5",
        guideUrl = "https://www.wowhead.com/item=210973/heartseeker-mana-ray",
        note = "La pagina del item en Wowhead situa la version Alliance en Elwynn Forest."
      },
      horde = {
        location = "Lythianne Morningspear, campamento del evento",
        waypointZone = "Durotar",
        coordinates = "41.8, 17.2",
        guideUrl = "https://www.wowhead.com/item=210973/heartseeker-mana-ray",
        note = "La pagina del item en Wowhead situa la version Horde en Durotar."
      }
    },
    [2023] = {
      alliance = {
        location = "Daetan Swiftplume, campamento festivo",
        waypointZone = "Elwynn Forest",
        coordinates = "30.5, 90.8",
        guideUrl = "https://www.wowhead.com/npc=213665/daetan-swiftplume",
        note = "Wowhead situa a Daetan Swiftplume en Elwynn Forest para la version Alliance del daily de Noblegarden."
      },
      horde = {
        location = "Daetan Swiftplume, campamento festivo",
        waypointZone = "Durotar",
        coordinates = "44.5, 35.5",
        guideUrl = "https://www.wowhead.com/npc=218738/daetan-swiftplume",
        note = "Wowhead situa a Daetan Swiftplume en Durotar para la version Horde del daily de Noblegarden."
      }
    },
    [2144] = {
      location = "Delver's Headquarters",
      questStart = "Ship It! / Delves introduction",
      waypointZone = "Dornogal",
      coordinates = "47.6, 44.4",
      guideUrl = "https://www.wowhead.com/search?q=Delver%27s%20Dirigible%20Ship%20It",
      note = "Complete the Delves introduction until you receive the customizable mount."
    },
    [2222] = {
      location = "Tka'ktath",
      questStart = "Vial of Tka'ktath's Blood drop from Tka'ktath",
      waypointZone = "Azj-Kahet",
      coordinates = "62.8, 66.2",
      guideUrl = "https://www.wowhead.com/search?q=Siesbarg%20Tka%27ktath",
      macro = "/target Tka'ktath",
      note = "The questline and grind starts from Tka'ktath's rare drop."
    },
    [2496] = {
      location = "Stormwind vision clue route",
      waypointZone = "Vision of Stormwind",
      coordinates = "67.8, 73.3",
      routeWaypoints = {
        { waypointZone = "Vision of Stormwind", coordinates = "65.6, 71.6", label = "Ripped Note" },
        { waypointZone = "Vision of Stormwind", coordinates = "68.7, 73.3", label = "Ripped Note" },
        { waypointZone = "Vision of Stormwind", coordinates = "67.8, 73.3", label = "Bowl / gryphon trigger" }
      },
      guideUrl = "https://www.wowhead.com/item=235700/reins-of-the-void-scarred-gryphon",
      note = "Wowhead comments fix the two Ripped Notes and final bowl needed for the gryphon trigger inside Vision of Stormwind."
    },
    ["Arcanist's Manasaber"] = {
      location = "Shal'Aran cave entrance",
      questStart = "Oculeth / Fate of the Nightborne",
      waypointZone = "Suramar",
      coordinates = "34.8, 48.1",
      questID = 45372,
      guideUrl = "https://www.wowhead.com/quest=45372/fate-of-the-nightborne",
      note = "Complete Insurrection and the final Suramar chapter to claim the mount."
    },
    ["Archmage's Prismatic Disc"] = {
      location = "Deliverance Point",
      questStart = "Invoker Threadgold",
      waypointZone = "Broken Shore",
      coordinates = "44.5, 63.0",
      questID = 45844,
      guideUrl = "https://www.wowhead.com/guide/obtaining-legion-class-mounts-4944",
      note = "Mage class mount; requires Legionfall and class campaign progress."
    },
    ["Azure Cloud Serpent"] = {
      location = "The Arboretum",
      questStart = "Order of the Cloud Serpent",
      waypointZone = "The Jade Forest",
      coordinates = "57.6, 45.0",
      questID = 30188,
      guideUrl = "https://www.wowhead.com/quest=30188/riding-the-skies",
      note = "Raise Order of the Cloud Serpent reputation and complete Riding the Skies."
    },
    ["Azure Netherwing Drake"] = {
      location = "Netherwing Fields",
      questStart = "Mordenai",
      waypointZone = "Shadowmoon Valley",
      coordinates = "59.8, 58.6",
      guideUrl = "https://www.wowhead.com/faction=1015/netherwing",
      note = "Start the Netherwing chain with Mordenai, unlock dailies, and reach exalted."
    },
    ["Ban-Lu, Grandmaster's Companion"] = {
      location = "Deliverance Point",
      questStart = "Monk class mount starter",
      waypointZone = "Broken Shore",
      coordinates = "44.5, 63.0",
      guideUrl = "https://www.wowhead.com/guide/obtaining-legion-class-mounts-4944",
      note = "Monk class mount; the chain ends with Trial of Ban-Lu."
    },
    ["Battlelord's Bloodthirsty War Wyrm"] = {
      location = "Deliverance Point",
      questStart = "Warrior class mount starter",
      waypointZone = "Broken Shore",
      coordinates = "44.5, 63.0",
      guideUrl = "https://www.wowhead.com/guide/obtaining-legion-class-mounts-4944",
      note = "Warrior class mount; the chain ends with The Trial of Rage."
    },
    ["Swift Razzashi Raptor"] = {
      location = "Madam Goya, Black Market Auction House",
      waypointZone = "Silvermoon City",
      coordinates = "51.8, 48.4",
      note = "Legacy Zul'Gurub mount; currently obtained through the Black Market Auction House."
    },
    ["Swift Zulian Tiger"] = {
      location = "Madam Goya, Black Market Auction House",
      waypointZone = "Silvermoon City",
      coordinates = "51.8, 48.4",
      note = "Legacy Zul'Gurub mount; currently obtained through the Black Market Auction House."
    },
    [2965] = {
      location = "Talmar, Midnight Leatherworking trainer",
      waypointZone = "Silvermoon City",
      coordinates = "43.2, 55.8",
      guideUrl = "https://www.wowhead.com/guide=33141/midnight-leatherworking-profession-overview-trainer-locations-recipes-and-tools",
      note = "Wowhead's Midnight Leatherworking guide places Talmar in Silvermoon City; this is the practical trainer hub for Void-Corrupted Lynx crafting."
    },
    [3036] = {
      location = "Midsummer bonfire / Ahune holiday route",
      waypointZone = "Silvermoon City",
      coordinates = "48.6, 81.0",
      routeWaypoints = {
        { waypointZone = "Silvermoon City", coordinates = "48.6, 81.0", label = "Midsummer bonfire" },
        { waypointZone = "The Slave Pens", coordinates = "32.4, 50.6", label = "Ahune" }
      },
      guideUrl = "https://www.wowhead.com/item=275464/sun-festivals-painted-roc",
      note = "Wowhead's 2026 Midsummer guide gives the Silvermoon bonfire coordinates, and Ahune's NPC page pins the Slave Pens encounter used for this holiday mount."
    },
    ["Argent Crusade Tribute Chest"] = {
      location = "Argent Coliseum entrance",
      waypointZone = "Icecrown",
      coordinates = "74.7, 20.2",
      note = "El cofre estaba dentro de Trial of the Crusader; este waypoint te lleva al acceso del Coliseo."
    }
  },
  zones = {
    ["Stratholme"] = { location = "Entrada de servicio", waypointZone = "Eastern Plaguelands", coordinates = "43.7, 19.4" },
    ["Temple of Ahn'Qiraj"] = { location = "Entrada de banda", waypointZone = "Silithus", coordinates = "46.8, 7.5" },
    ["Sethekk Halls"] = { location = "Entrada de instancia", waypointZone = "Terokkar Forest", coordinates = "44.8, 65.6" },
    ["Magisters' Terrace"] = { location = "Entrada de instancia", waypointZone = "Isle of Quel'Danas", coordinates = "61.2, 30.9" },
    ["Magister's Terrace"] = { location = "Entrada de instancia", waypointZone = "Isle of Quel'Danas", coordinates = "61.2, 30.9" },
    ["The Culling of Stratholme"] = { location = "Caverns of Time", waypointZone = "Tanaris", coordinates = "64.2, 49.8" },
    ["Utgarde Pinnacle"] = { location = "Entrada de instancia", waypointZone = "Howling Fjord", coordinates = "57.3, 46.7" },
    ["The Stonecore"] = { location = "Entrada de instancia", waypointZone = "Deepholm", coordinates = "47.6, 52.0" },
    ["The Vortex Pinnacle"] = { location = "Entrada de instancia", waypointZone = "Uldum", coordinates = "76.7, 84.4" },
    ["Zul'Gurub"] = { location = "Entrada de instancia", waypointZone = "Northern Stranglethorn", coordinates = "72.1, 32.9" },
    ["Zul'Aman"] = { location = "Entrada de instancia", waypointZone = "Ghostlands", coordinates = "82.0, 64.3" },
    ["Karazhan"] = { location = "Entrada de banda", waypointZone = "Deadwind Pass", coordinates = "46.9, 75.6" },
    ["Return to Karazhan"] = { location = "Entrada de instancia", waypointZone = "Deadwind Pass", coordinates = "46.9, 75.6" },
    ["The Eye"] = { location = "Entrada de banda", waypointZone = "Netherstorm", coordinates = "73.6, 63.7" },
    ["Eye of Eternity"] = { location = "Entrada de banda", waypointZone = "Borean Tundra", coordinates = "27.5, 26.0" },
    ["The Obsidian Sanctum"] = { location = "Entrada de banda", waypointZone = "Dragonblight", coordinates = "60.0, 56.8" },
    ["Onyxia's Lair"] = { location = "Entrada de banda", waypointZone = "Dustwallow Marsh", coordinates = "52.0, 76.0" },
    ["Trial of the Crusader"] = { location = "Argent Coliseum", waypointZone = "Icecrown", coordinates = "74.7, 20.2" },
    ["Ulduar"] = { location = "Entrada de banda", waypointZone = "The Storm Peaks", coordinates = "41.6, 17.9" },
    ["Icecrown Citadel"] = { location = "Entrada de banda", waypointZone = "Icecrown", coordinates = "53.5, 85.5" },
    ["Throne of the Four Winds"] = { location = "Entrada de banda", waypointZone = "Uldum", coordinates = "38.4, 81.6" },
    ["Firelands"] = { location = "Entrada de banda", waypointZone = "Mount Hyjal", coordinates = "47.3, 78.0" },
    ["Dragon Soul"] = { location = "Caverns of Time", waypointZone = "Tanaris", coordinates = "64.2, 49.8" },
    ["Mogu'shan Vaults"] = { location = "Entrada de banda", waypointZone = "Kun-Lai Summit", coordinates = "59.6, 39.2" },
    ["Throne of Thunder"] = { location = "Entrada de banda", waypointZone = "Isle of Thunder", coordinates = "63.7, 32.3" },
    ["Siege of Orgrimmar"] = { location = "Entrada de banda", waypointZone = "Vale of Eternal Blossoms", coordinates = "72.2, 44.7" },
    ["Blackrock Depths"] = { location = "Entrada de instancia", waypointZone = "Searing Gorge", coordinates = "34.8, 84.2" },
    ["Blackrock Foundry"] = { location = "Entrada de banda", waypointZone = "Gorgrond", coordinates = "51.4, 28.7" },
    ["Hellfire Citadel"] = { location = "Entrada de banda", waypointZone = "Tanaan Jungle", coordinates = "45.6, 53.5" },
    ["The Nighthold"] = {
      location = "Entrada de banda",
      waypointZone = "Suramar",
      coordinates = "44.0, 60.0",
      routeWaypoints = {
        { waypointZone = "Suramar", coordinates = "46.0, 64.6", label = "Acceso exterior" },
        { waypointZone = "Suramar", coordinates = "44.0, 60.0", label = "Entrada de The Nighthold" }
      },
      guideUrl = "https://www.wowhead.com/guide/raid-entrances-of-legion-6034",
      note = "La entrada exterior del edificio esta en Suramar City; la instancia queda al fondo del corredor subterraneo."
    },
    ["Tomb of Sargeras"] = { location = "Entrada de banda", waypointZone = "Broken Shore", coordinates = "64.2, 21.2" },
    ["Antorus, the Burning Throne"] = { location = "Entrada de banda", waypointZone = "Antoran Wastes", coordinates = "54.6, 62.3" },
    ["Freehold"] = { location = "Entrada de instancia", waypointZone = "Tiragarde Sound", coordinates = "84.6, 78.6" },
    ["Kings' Rest"] = { location = "Entrada de instancia", waypointZone = "Zuldazar", coordinates = "37.7, 39.8" },
    ["The Underrot"] = { location = "Entrada de instancia", waypointZone = "Nazmir", coordinates = "51.9, 65.8" },
    ["Operation: Mechagon"] = { location = "Entrada de instancia", waypointZone = "Mechagon", coordinates = "72.4, 37.6" },
    ["Battle of Dazar'alor"] = { location = "Entrada de banda", waypointZone = "Zuldazar", coordinates = "43.6, 39.2" },
    ["Uldir"] = {
      location = "Entrada de banda",
      waypointZone = "Nazmir",
      coordinates = "54.0, 53.0",
      guideUrl = "https://www.wowhead.com/guide/dungeon-and-raid-entrances-8974",
      note = "Wowhead situa la entrada de Uldir en Nazmir."
    },
    ["The Eternal Palace"] = {
      location = "Entrada de banda",
      waypointZone = "Nazjatar",
      coordinates = "50.0, 12.0",
      guideUrl = "https://www.wowhead.com/guide/dungeon-and-raid-entrances-8974",
      note = "Wowhead situa la entrada de The Eternal Palace en Nazjatar."
    },
    ["Ny'alotha, the Waking City"] = { location = "Entrada de banda", waypointZone = "Vale of Eternal Blossoms", coordinates = "40.0, 46.0" },
    ["Horrific Visions"] = {
      location = "Titan Translocator, Magni's Encampment",
      waypointZone = "Silithus",
      coordinates = "43.0, 44.6",
      guideUrl = "https://www.wowhead.com/object=325722/titan-translocator",
      note = "Wowhead situa el Titan Translocator en Silithus como acceso a Chamber of Heart y a las Horrific Visions originales."
    },
    ["Battle for Azeroth dungeons"] = {
      alliance = {
        location = "Ruta de entradas de Glory of the Wartorn Hero",
        waypointZone = "Zuldazar",
        coordinates = "44.0, 39.0",
        routeWaypoints = {
          { waypointZone = "Zuldazar", coordinates = "44.0, 39.0", label = "Atal'Dazar" },
          { waypointZone = "Tiragarde Sound", coordinates = "85.0, 79.0", label = "Freehold" },
          { waypointZone = "Drustvar", coordinates = "34.0, 13.0", label = "Waycrest Manor" },
          { waypointZone = "Stormsong Valley", coordinates = "78.0, 24.0", label = "Shrine of the Storm" },
          { waypointZone = "Nazmir", coordinates = "52.0, 66.0", label = "The Underrot" },
          { waypointZone = "Vol'dun", coordinates = "52.0, 25.0", label = "Temple of Sethraliss" },
          { waypointZone = "Tol Dagor", coordinates = "39.0, 70.0", label = "Tol Dagor" },
          { waypointZone = "Zuldazar", coordinates = "40.0, 72.0", label = "The MOTHERLODE!!" },
          { waypointZone = "Tiragarde Sound", coordinates = "75.0, 23.0", label = "Siege of Boralus" },
          { waypointZone = "Zuldazar", coordinates = "38.0, 39.0", label = "King's Rest" }
        },
        guideUrl = "https://www.wowhead.com/achievement=12812/glory-of-the-wartorn-hero",
        note = "Ruta de las diez instancias usadas por Glory of the Wartorn Hero, con entradas verificadas en Wowhead."
      },
      horde = {
        location = "Ruta de entradas de Glory of the Wartorn Hero",
        waypointZone = "Zuldazar",
        coordinates = "44.0, 39.0",
        routeWaypoints = {
          { waypointZone = "Zuldazar", coordinates = "44.0, 39.0", label = "Atal'Dazar" },
          { waypointZone = "Tiragarde Sound", coordinates = "85.0, 79.0", label = "Freehold" },
          { waypointZone = "Drustvar", coordinates = "34.0, 13.0", label = "Waycrest Manor" },
          { waypointZone = "Stormsong Valley", coordinates = "78.0, 24.0", label = "Shrine of the Storm" },
          { waypointZone = "Nazmir", coordinates = "52.0, 66.0", label = "The Underrot" },
          { waypointZone = "Vol'dun", coordinates = "52.0, 25.0", label = "Temple of Sethraliss" },
          { waypointZone = "Tol Dagor", coordinates = "39.0, 70.0", label = "Tol Dagor" },
          { waypointZone = "Zuldazar", coordinates = "56.0, 60.0", label = "The MOTHERLODE!!" },
          { waypointZone = "Tiragarde Sound", coordinates = "88.0, 51.0", label = "Siege of Boralus" },
          { waypointZone = "Zuldazar", coordinates = "38.0, 39.0", label = "King's Rest" }
        },
        guideUrl = "https://www.wowhead.com/achievement=12812/glory-of-the-wartorn-hero",
        note = "Ruta de las diez instancias usadas por Glory of the Wartorn Hero, con entradas verificadas en Wowhead."
      }
    },
    ["Battle for Azeroth achievements"] = {
      alliance = {
        location = "Kiku, Snug Harbor Inn",
        waypointZone = "Boralus",
        coordinates = "74.0, 13.4",
        routeWaypoints = {
          { waypointZone = "Boralus", coordinates = "74.0, 13.4", label = "Kiku - BFA LFR" },
          { waypointZone = "Nazmir", coordinates = "54.0, 53.0", label = "Uldir" },
          { waypointZone = "Zuldazar", coordinates = "43.6, 39.2", label = "Battle of Dazar'alor" },
          { waypointZone = "Nazjatar", coordinates = "50.0, 12.0", label = "The Eternal Palace" },
          { waypointZone = "Vale of Eternal Blossoms", coordinates = "40.0, 46.0", label = "Ny'alotha, the Waking City" },
          { waypointZone = "Silithus", coordinates = "43.0, 44.6", label = "Horrific Visions" },
          { waypointZone = "Mechagon", coordinates = "73.7, 36.9", label = "Mechagon" },
          { waypointZone = "Nazjatar", coordinates = "37.8, 55.7", label = "Nazjatar" },
          { waypointZone = "Uldum", coordinates = "55.0, 68.6", label = "Uldum assault hub" },
          { waypointZone = "Boralus", coordinates = "67.5, 21.6", label = "Kul Tiras / Boralus" },
          { waypointZone = "Zuldazar", coordinates = "58.4, 44.4", label = "Zandalar / Great Seal" }
        },
        guideUrl = "https://www.wowhead.com/guide/achievements/jani-mount-a-farewell-to-arms-battle-for-azeroth-meta",
        note = "Ruta base del meta A Farewell to Arms usando el acceso LFR y los hubs principales que Wowhead destaca para el progreso de BFA."
      },
      horde = {
        location = "Eppu, Great Seal",
        waypointZone = "Dazar'alor",
        coordinates = "66.2, 32.2",
        routeWaypoints = {
          { waypointZone = "Dazar'alor", coordinates = "66.2, 32.2", label = "Eppu - BFA LFR" },
          { waypointZone = "Nazmir", coordinates = "54.0, 53.0", label = "Uldir" },
          { waypointZone = "Zuldazar", coordinates = "43.6, 39.2", label = "Battle of Dazar'alor" },
          { waypointZone = "Nazjatar", coordinates = "50.0, 12.0", label = "The Eternal Palace" },
          { waypointZone = "Vale of Eternal Blossoms", coordinates = "40.0, 46.0", label = "Ny'alotha, the Waking City" },
          { waypointZone = "Silithus", coordinates = "43.0, 44.6", label = "Horrific Visions" },
          { waypointZone = "Mechagon", coordinates = "73.7, 36.9", label = "Mechagon" },
          { waypointZone = "Nazjatar", coordinates = "37.8, 55.7", label = "Nazjatar" },
          { waypointZone = "Uldum", coordinates = "55.0, 68.6", label = "Uldum assault hub" },
          { waypointZone = "Boralus", coordinates = "67.5, 21.6", label = "Kul Tiras / Boralus" },
          { waypointZone = "Zuldazar", coordinates = "58.4, 44.4", label = "Zandalar / Great Seal" }
        },
        guideUrl = "https://www.wowhead.com/guide/achievements/jani-mount-a-farewell-to-arms-battle-for-azeroth-meta",
        note = "Ruta base del meta A Farewell to Arms usando el acceso LFR y los hubs principales que Wowhead destaca para el progreso de BFA."
      }
    },
    ["Allied Races"] = {
      alliance = {
        location = "Stormwind Embassy",
        waypointZone = "Stormwind City",
        coordinates = "52.0, 14.0",
        guideUrl = "https://www.wowhead.com/guide/stormwind-city-important-locations",
        note = "Wowhead situa Stormwind Embassy en 52,14 como punto de acceso para las Allied Races de la Alianza."
      },
      horde = {
        location = "Orgrimmar Embassy",
        waypointZone = "Orgrimmar",
        coordinates = "38.0, 80.0",
        guideUrl = "https://www.wowhead.com/guide/orgrimmar-important-locations",
        note = "Wowhead situa Orgrimmar Embassy en 38,80 como punto de acceso para las Allied Races de la Horda."
      }
    },
    ["Boralus"] = {
      location = "Harbormaster's Office",
      waypointZone = "Boralus",
      coordinates = "67.5, 21.6",
      routeWaypoints = {
        { waypointZone = "Boralus", coordinates = "67.5, 21.6", label = "Provisioner Fray" },
        { waypointZone = "Tiragarde Sound", coordinates = "74.1, 25.8", label = "7th Legion / war campaign" },
        { waypointZone = "Boralus", coordinates = "66.1, 32.3", label = "Island Expeditions" }
      },
      guideUrl = "https://www.wowhead.com/npc=135808/provisioner-fray",
      note = "Ruta base de Boralus para Proudmoore Admiralty, 7th Legion e Island Expeditions, con coordenadas verificadas en comentarios de Wowhead."
    },
    ["Kul Tiras"] = {
      location = "Boralus Harbor",
      waypointZone = "Boralus",
      coordinates = "67.5, 21.6",
      note = "Punto base practico para recompensas de historia y progreso general de Kul Tiras."
    },
    ["Zandalar"] = {
      location = "The Great Seal",
      waypointZone = "Zuldazar",
      coordinates = "58.4, 44.4",
      note = "Punto base practico para recompensas de historia y progreso general de Zandalar."
    },
    ["Zuldazar"] = {
      location = "Natal'hakata / Great Seal",
      waypointZone = "Zuldazar",
      coordinates = "58.4, 44.4",
      routeWaypoints = {
        { waypointZone = "Zuldazar", coordinates = "58.4, 44.4", label = "Natal'hakata" },
        { waypointZone = "Zuldazar", coordinates = "58.1, 62.7", label = "Honorbound / war campaign" },
        { waypointZone = "Zuldazar", coordinates = "70.6, 51.0", label = "Kua'fon questline" },
        { waypointZone = "Zuldazar", coordinates = "68.2, 41.7", label = "Torcali questline" }
      },
      guideUrl = "https://www.wowhead.com/npc=131287/natalhakata",
      note = "Ruta base de Zuldazar con vendors de reputacion y puntos practicos de monturas verificados en Wowhead."
    },
    ["Vol'dun"] = {
      location = "Hoarder Jena",
      waypointZone = "Vol'dun",
      coordinates = "56.7, 49.8",
      routeWaypoints = {
        { waypointZone = "Vol'dun", coordinates = "56.7, 49.8", label = "Hoarder Jena" },
        { waypointZone = "Vol'dun", coordinates = "42.5, 61.3", label = "Elusive Quickhoof" },
        { waypointZone = "Vol'dun", coordinates = "50.8, 86.1", label = "Elusive Quickhoof" }
      },
      guideUrl = "https://www.wowhead.com/npc=135804/hoarder-jena",
      note = "Ruta base de Vol'dun con el vendor de reputacion y puntos conocidos de Elusive Quickhoof en comentarios de Wowhead."
    },
    ["Nazmir"] = {
      location = "Provisioner Lija",
      waypointZone = "Nazmir",
      coordinates = "39.1, 79.5",
      routeWaypoints = {
        { waypointZone = "Nazmir", coordinates = "39.1, 79.5", label = "Provisioner Lija" },
        { waypointZone = "Nazmir", coordinates = "70.9, 56.5", label = "Gottum" }
      },
      guideUrl = "https://www.wowhead.com/npc=135459/provisioner-lija",
      note = "Ruta base de Nazmir con el vendor de reputacion y la cueva de Gottum, usando coordenadas de comentarios de Wowhead."
    },
    ["Stormsong Valley"] = {
      location = "Sister Lilyana",
      waypointZone = "Stormsong Valley",
      coordinates = "59.3, 69.4",
      routeWaypoints = {
        { waypointZone = "Stormsong Valley", coordinates = "59.3, 69.4", label = "Sister Lilyana" },
        { waypointZone = "Stormsong Valley", coordinates = "46.5, 36.1", label = "Adherent of the Abyss" }
      },
      guideUrl = "https://www.wowhead.com/npc=135800/sister-lilyana",
      note = "Ruta base de Stormsong Valley con el vendor de reputacion y el rare de Nazjatar Blood Serpent, verificados en Wowhead."
    },
    ["Drustvar"] = {
      location = "Quartermaster Alcorn",
      waypointZone = "Drustvar",
      coordinates = "37.8, 49.0",
      guideUrl = "https://www.wowhead.com/npc=135815/quartermaster-alcorn",
      note = "Ubicacion del vendor de Order of Embers verificada en comentarios de Wowhead."
    },
    ["Nazjatar"] = {
      location = "Mezzamere / Nazjatar vendors",
      waypointZone = "Nazjatar",
      coordinates = "37.8, 55.7",
      routeWaypoints = {
        { waypointZone = "Nazjatar", coordinates = "37.8, 55.7", label = "Artisan Itanu" },
        { waypointZone = "Nazjatar", coordinates = "39.1, 54.3", label = "Mrrl" },
        { waypointZone = "Nazjatar", coordinates = "58.7, 49.7", label = "Soundless" }
      },
      guideUrl = "https://www.wowhead.com/npc=153510/artisan-itanu",
      note = "Ruta base de Nazjatar con vendors de reputacion, Mrrl y el hotspot de Soundless, reunida de comentarios de Wowhead."
    },
    ["Mechagon"] = {
      location = "Stolen Royal Vendorbot / Rustbolt",
      waypointZone = "Mechagon",
      coordinates = "73.7, 36.9",
      routeWaypoints = {
        { waypointZone = "Mechagon", coordinates = "73.7, 36.9", label = "Stolen Royal Vendorbot" },
        { waypointZone = "Mechagon", coordinates = "72.4, 37.6", label = "Operation: Mechagon" },
        { waypointZone = "Mechagon", coordinates = "65.6, 78.5", label = "Rustfeather" },
        { waypointZone = "Mechagon", coordinates = "52.6, 41.4", label = "Arachnoid Harvester" }
      },
      guideUrl = "https://www.wowhead.com/npc=150716/stolen-royal-vendorbot",
      note = "Ruta base de Mechagon con vendor, entrada de Operation: Mechagon y rares clave, usando coordenadas verificadas en Wowhead."
    },
    ["Uldum"] = {
      location = "Ruta de Friendly Alpaca",
      waypointZone = "Uldum",
      coordinates = "55.0, 68.6",
      routeWaypoints = {
        { waypointZone = "Uldum", coordinates = "55.0, 68.6", label = "Friendly Alpaca" },
        { waypointZone = "Uldum", coordinates = "46.8, 47.8", label = "Friendly Alpaca" },
        { waypointZone = "Uldum", coordinates = "53.0, 18.9", label = "Friendly Alpaca" },
        { waypointZone = "Uldum", coordinates = "70.0, 39.0", label = "Friendly Alpaca" }
      },
      guideUrl = "https://www.wowhead.com/npc=162765/friendly-alpaca",
      note = "Ruta corta con puntos conocidos de Friendly Alpaca tomada de comentarios de Wowhead; tambien sirve como base practica para otras monturas de Uldum."
    },
    ["Warfront service medal vendor"] = {
      alliance = {
        location = "7th Legion vendor",
        waypointZone = "Tiragarde Sound",
        coordinates = "74.1, 25.8"
      },
      horde = {
        location = "Honorbound vendor",
        waypointZone = "Zuldazar",
        coordinates = "58.1, 62.7"
      },
      guideUrl = "https://www.wowhead.com/npc=135808/provisioner-fray",
      note = "Los comentarios de Wowhead en Provisioner Fray recopilan las coordenadas practicas de los hubs 7th Legion y Honorbound."
    },
    ["Island Expeditions"] = {
      alliance = {
        location = "Captain Klarisa, expedition hub",
        waypointZone = "Boralus",
        coordinates = "66.1, 32.3"
      },
      horde = {
        location = "Captain Zen'taga, expedition hub",
        waypointZone = "Dazar'alor",
        coordinates = "44.4, 94.4"
      },
      guideUrl = "https://www.wowhead.com/npc=148922/captain-klarisa",
      note = "Wowhead sitúa a Captain Klarisa y Captain Zen'taga junto al hub de Island Expeditions y al vendor de dubloons."
    },
    ["Battle for Azeroth war campaign"] = {
      alliance = {
        location = "7th Legion campaign hub",
        waypointZone = "Tiragarde Sound",
        coordinates = "74.1, 25.8"
      },
      horde = {
        location = "Honorbound campaign hub",
        waypointZone = "Zuldazar",
        coordinates = "58.1, 62.7"
      },
      guideUrl = "https://www.wowhead.com/npc=135808/provisioner-fray",
      note = "Hubs practicos de campaña usados para las recompensas de Two Sides to Every Tale."
    },
    ["Vale of Eternal Blossoms assault"] = {
      location = "Ruta corta de rares Mogu Assault",
      waypointZone = "Vale of Eternal Blossoms",
      coordinates = "13.1, 26.0",
      routeWaypoints = {
        { waypointZone = "Vale of Eternal Blossoms", coordinates = "13.1, 26.0", label = "Houndlord Ren" },
        { waypointZone = "Vale of Eternal Blossoms", coordinates = "34.1, 68.0", label = "Anh-De the Loyal" },
        { waypointZone = "Vale of Eternal Blossoms", coordinates = "36.6, 37.6", label = "Ha-Li route" },
        { waypointZone = "Vale of Eternal Blossoms", coordinates = "22.2, 24.6", label = "Rei Lun access" }
      },
      guideUrl = "https://www.wowhead.com/item=174649/rajani-warserpent",
      note = "Ruta base de rares del Mogu Assault compilada desde comentarios de Wowhead para varias monturas del parche 8.3."
    },
    ["Uldum assault"] = {
      location = "Ruta corta de rares 8.3",
      waypointZone = "Uldum",
      coordinates = "30.8, 49.7",
      routeWaypoints = {
        { waypointZone = "Uldum", coordinates = "30.8, 49.7", label = "Corpse Eater" },
        { waypointZone = "Uldum", coordinates = "68.6, 32.0", label = "Rotfeaster" },
        { waypointZone = "Uldum", coordinates = "73.2, 83.7", label = "Ishak of the Four Winds" }
      },
      guideUrl = "https://www.wowhead.com/npc=157146/rotfeaster",
      note = "Ruta base de rares de los asaltos de Uldum compilada desde comentarios de Wowhead."
    },
    ["Bastion"] = {
      location = "Ruta base de Shadowlands en Bastion",
      waypointZone = "Bastion",
      coordinates = "40.2, 55.1",
      routeWaypoints = {
        { waypointZone = "Bastion", coordinates = "40.2, 55.1", label = "The Necrotic Wake" },
        { waypointZone = "Bastion", coordinates = "58.0, 29.0", label = "Spires of Ascension" }
      },
      guideUrl = "https://www.wowhead.com/guide/dungeon-and-raid-entrances-8974",
      note = "Ruta base de Bastion con accesos fisicos confirmados por Wowhead. Varias monturas de la zona tambien dependen de rares, curia o vendors dentro de Bastion."
    },
    ["Maldraxxus"] = {
      location = "Ruta base de Shadowlands en Maldraxxus",
      waypointZone = "Maldraxxus",
      coordinates = "53.0, 53.0",
      routeWaypoints = {
        { waypointZone = "Maldraxxus", coordinates = "53.0, 53.0", label = "Theater of Pain" },
        { waypointZone = "Maldraxxus", coordinates = "59.0, 65.0", label = "Plaguefall" }
      },
      guideUrl = "https://www.wowhead.com/guide/dungeon-and-raid-entrances-8974",
      note = "Ruta base de Maldraxxus con accesos fisicos confirmados por Wowhead. Varias monturas de la zona tambien dependen de rares, renombre o vendors dentro de Maldraxxus."
    },
    ["Ardenweald"] = {
      location = "Ruta base de Shadowlands en Ardenweald",
      waypointZone = "Ardenweald",
      coordinates = "35.0, 54.0",
      routeWaypoints = {
        { waypointZone = "Ardenweald", coordinates = "35.0, 54.0", label = "Mists of Tirna Scithe" },
        { waypointZone = "Ardenweald", coordinates = "69.0, 66.0", label = "De Other Side" }
      },
      guideUrl = "https://www.wowhead.com/guide/dungeon-and-raid-entrances-8974",
      note = "Ruta base de Ardenweald con accesos fisicos confirmados por Wowhead. Varias monturas de la zona tambien dependen de rares, curia o reputacion dentro de Ardenweald."
    },
    ["Revendreth"] = {
      location = "Ruta base de Shadowlands en Revendreth",
      waypointZone = "Revendreth",
      coordinates = "46.0, 41.0",
      routeWaypoints = {
        { waypointZone = "Revendreth", coordinates = "46.0, 41.0", label = "Castle Nathria" },
        { waypointZone = "Revendreth", coordinates = "51.0, 30.0", label = "Sanguine Depths" },
        { waypointZone = "Revendreth", coordinates = "78.0, 49.0", label = "Halls of Atonement" }
      },
      guideUrl = "https://www.wowhead.com/guide/dungeon-and-raid-entrances-8974",
      note = "Ruta base de Revendreth con accesos fisicos confirmados por Wowhead. Varias monturas de la zona tambien dependen de rares, curia o vendors dentro de Revendreth."
    },
    ["The Maw"] = {
      location = "Entrada de Sanctum of Domination",
      waypointZone = "The Maw",
      coordinates = "69.7, 32.6",
      routeWaypoints = {
        { waypointZone = "The Maw", coordinates = "69.7, 32.6", label = "Sanctum of Domination" }
      },
      guideUrl = "https://www.wowhead.com/guide/dungeon-and-raid-entrances-8974",
      note = "Punto fisico confirmado por Wowhead dentro de The Maw. Las monturas de The Maw tambien pueden venir de secretos, asaltos y eventos repartidos por la zona."
    },
    ["Korthia"] = {
      location = "Ruta fina de Korthia",
      waypointZone = "Korthia",
      coordinates = "63.4, 23.4",
      routeWaypoints = {
        { waypointZone = "Korthia", coordinates = "63.4, 23.4", label = "Duchess Mynx / Death's Advance" },
        { waypointZone = "Korthia", coordinates = "61.4, 21.8", label = "Archivist Roh-Suir / Archivists' Codex" },
        { waypointZone = "Korthia", coordinates = "42.4, 33.2", label = "Darkmaul" },
        { waypointZone = "Korthia", coordinates = "25.4, 51.0", label = "Dusklight Matriarch" }
      },
      guideUrl = "https://www.wowhead.com/npc=179321/duchess-mynx",
      note = "Ruta base de Korthia afinada con Wowhead para los vendors, rares y reputaciones mas usados por las monturas de la zona."
    },
    ["Zereth Mortis"] = {
      location = "Entrada de Sepulcher of the First Ones",
      waypointZone = "Zereth Mortis",
      coordinates = "80.6, 53.4",
      routeWaypoints = {
        { waypointZone = "Zereth Mortis", coordinates = "80.6, 53.4", label = "Sepulcher of the First Ones" }
      },
      guideUrl = "https://www.wowhead.com/guide/dungeon-and-raid-entrances-8974",
      note = "Punto fisico confirmado por Wowhead dentro de Zereth Mortis. Varias monturas de la zona tambien dependen de Protoform Synthesis, reputacion o rares."
    },
    ["Torghast"] = {
      location = "Torghast, Tower of the Damned",
      guideUrl = "https://www.wowhead.com/guide/guide-to-torghast-in-shadowlands-wings-torments-anima-legendaries",
      note = "Wowhead confirma que Torghast se encuentra en el corazon de The Maw, pero las paginas consultadas no exponen un /way exterior estable para fijar un waypoint exacto sin inventarlo."
    },
    ["Shadowlands dungeons"] = {
      location = "Ruta de entradas de calabozos de Shadowlands",
      waypointZone = "Bastion",
      coordinates = "40.2, 55.1",
      routeWaypoints = {
        { waypointZone = "Bastion", coordinates = "40.2, 55.1", label = "The Necrotic Wake" },
        { waypointZone = "Bastion", coordinates = "58.0, 29.0", label = "Spires of Ascension" },
        { waypointZone = "Maldraxxus", coordinates = "59.0, 65.0", label = "Plaguefall" },
        { waypointZone = "Maldraxxus", coordinates = "53.0, 53.0", label = "Theater of Pain" },
        { waypointZone = "Ardenweald", coordinates = "69.0, 66.0", label = "De Other Side" },
        { waypointZone = "Ardenweald", coordinates = "35.0, 54.0", label = "Mists of Tirna Scithe" },
        { waypointZone = "Revendreth", coordinates = "78.0, 49.0", label = "Halls of Atonement" },
        { waypointZone = "Revendreth", coordinates = "51.0, 30.0", label = "Sanguine Depths" },
        { waypointZone = "Oribos", coordinates = "35.8, 69.4", label = "Tazavesh, the Veiled Market" }
      },
      guideUrl = "https://www.wowhead.com/guide/dungeon-and-raid-entrances-8974",
      note = "Entradas fisicas de los calabozos de Shadowlands confirmadas por Wowhead."
    },
    ["Shadowlands raids"] = {
      location = "Ruta de entradas de bandas de Shadowlands",
      waypointZone = "Revendreth",
      coordinates = "46.0, 41.0",
      routeWaypoints = {
        { waypointZone = "Revendreth", coordinates = "46.0, 41.0", label = "Castle Nathria" },
        { waypointZone = "The Maw", coordinates = "69.7, 32.6", label = "Sanctum of Domination" },
        { waypointZone = "Zereth Mortis", coordinates = "80.6, 53.4", label = "Sepulcher of the First Ones" }
      },
      guideUrl = "https://www.wowhead.com/guide/dungeon-and-raid-entrances-8974",
      note = "Entradas fisicas de las bandas de Shadowlands confirmadas por Wowhead."
    },
    ["Castle Nathria"] = {
      location = "Entrada de banda",
      waypointZone = "Revendreth",
      coordinates = "46.0, 41.0",
      guideUrl = "https://www.wowhead.com/guide/dungeon-and-raid-entrances-8974"
    },
    ["Spires of Ascension"] = {
      location = "Entrada de instancia",
      waypointZone = "Bastion",
      coordinates = "58.0, 29.0",
      guideUrl = "https://www.wowhead.com/guide/dungeon-and-raid-entrances-8974"
    },
    ["Plaguefall"] = {
      location = "Entrada de instancia",
      waypointZone = "Maldraxxus",
      coordinates = "59.0, 65.0",
      guideUrl = "https://www.wowhead.com/guide/dungeon-and-raid-entrances-8974"
    },
    ["Theater of Pain"] = {
      location = "Entrada de instancia",
      waypointZone = "Maldraxxus",
      coordinates = "53.0, 53.0",
      guideUrl = "https://www.wowhead.com/guide/dungeon-and-raid-entrances-8974"
    },
    ["De Other Side"] = {
      location = "Entrada de instancia",
      waypointZone = "Ardenweald",
      coordinates = "69.0, 66.0",
      guideUrl = "https://www.wowhead.com/guide/dungeon-and-raid-entrances-8974"
    },
    ["Mists of Tirna Scithe"] = {
      location = "Entrada de instancia",
      waypointZone = "Ardenweald",
      coordinates = "35.0, 54.0",
      guideUrl = "https://www.wowhead.com/guide/dungeon-and-raid-entrances-8974"
    },
    ["Halls of Atonement"] = {
      location = "Entrada de instancia",
      waypointZone = "Revendreth",
      coordinates = "78.0, 49.0",
      guideUrl = "https://www.wowhead.com/guide/dungeon-and-raid-entrances-8974"
    },
    ["Sanguine Depths"] = {
      location = "Entrada de instancia",
      waypointZone = "Revendreth",
      coordinates = "51.0, 30.0",
      guideUrl = "https://www.wowhead.com/guide/dungeon-and-raid-entrances-8974"
    },
    ["Covenant Adventures"] = {
      location = "Ruta de santuarios de curia",
      waypointZone = "Ardenweald",
      coordinates = "48.4, 50.4",
      routeWaypoints = {
        { waypointZone = "Ardenweald", coordinates = "48.4, 50.4", label = "Heart of the Forest" },
        { waypointZone = "Bastion", coordinates = "67.4, 15.0", label = "Elysian Hold" },
        { waypointZone = "Maldraxxus", coordinates = "51.4, 40.6", label = "Seat of the Primus" },
        { waypointZone = "Revendreth", coordinates = "53.4, 24.4", label = "Sinfall" }
      },
      note = "No existe una sola mesa de Adventures universal; esta ruta lleva a los cuatro santuarios de curia usados por las monturas de covenant Adventures."
    },
    ["Shadowlands achievements"] = {
      location = "Logros de Shadowlands",
      note = "Recompensa de logro o meta-logro. No hay un unico punto fisico en el mundo para reclamarla."
    },
    ["Mythic+"] = {
      location = "Timelost Saddle vendor",
      waypointZone = "Dornogal",
      coordinates = "53.8, 39.0",
      routeWaypoints = {
        { waypointZone = "Dornogal", coordinates = "53.8, 39.0", label = "Dornogal vendor" },
        { waypointZone = "Valdrakken", coordinates = "53.0, 56.8", label = "Valdrakken vendor" },
        { waypointZone = "Silvermoon City", coordinates = "42.2, 58.4", label = "Silvermoon City vendor" }
      },
      guideUrl = "https://www.wowhead.com/item=182717/sintouched-deathwalker",
      note = "Las paginas de los Deathwalker en Wowhead muestran las ubicaciones activas del sistema Timelost Saddle en Dornogal, Valdrakken y Silvermoon City."
    },
    ["Protoform Synthesis"] = {
      location = "Protoform Repository",
      waypointZone = "Zereth Mortis",
      coordinates = "68.5, 30.1",
      routeWaypoints = {
        { waypointZone = "Zereth Mortis", coordinates = "68.5, 30.1", label = "Protoform Repository entrance" }
      },
      guideUrl = "https://www.wowhead.com/guide/protoform-synthesis-crafting-system-mounts-pets-zereth-mortis",
      note = "Wowhead situa la forja de monturas de Protoform Synthesis en el Protoform Repository de Zereth Mortis."
    },
    ["Timewalking"] = {
      location = "Vendor de Timewalking",
      note = "El vendor cambia segun el evento de Timewalking activo. Las monturas con waypoint exacto usan entradas individuales; las demas quedan como referencia generica."
    },
    ["Doomwalker"] = {
      location = "Caverns of Time anniversary hub",
      waypointZone = "Tanaris",
      coordinates = "62.6, 50.4",
      routeWaypoints = {
        { waypointZone = "Tanaris", coordinates = "62.6, 50.4", label = "Caverns of Time entrance" },
        { waypointZone = "Tanaris", coordinates = "50.8, 41.2", label = "Anniversary hub / Doomwalker area" }
      },
      guideUrl = "https://www.wowhead.com/guide/world-of-warcraft-anniversary-celebration-event-guide-5846",
      note = "Punto practico del evento de aniversario para las monturas que dependen de Doomwalker."
    },
    ["WoW Anniversary"] = {
      location = "Caverns of Time anniversary hub",
      waypointZone = "Tanaris",
      coordinates = "62.6, 50.4",
      routeWaypoints = {
        { waypointZone = "Tanaris", coordinates = "62.6, 50.4", label = "Caverns of Time entrance" },
        { waypointZone = "Tanaris", coordinates = "50.8, 41.2", label = "Anniversary hub" }
      },
      guideUrl = "https://www.wowhead.com/guide/world-of-warcraft-anniversary-celebration-event-guide-5846",
      note = "Punto base del evento de aniversario de WoW."
    },
    ["The Necrotic Wake"] = { location = "Entrada de instancia", waypointZone = "Bastion", coordinates = "40.2, 55.1" },
    ["Tazavesh, the Veiled Market"] = { location = "Entrada de instancia", waypointZone = "Oribos", coordinates = "35.8, 69.4" },
    ["Sanctum of Domination"] = { location = "Entrada de banda", waypointZone = "The Maw", coordinates = "69.7, 32.6" },
    ["Sepulcher of the First Ones"] = { location = "Entrada de banda", waypointZone = "Zereth Mortis", coordinates = "80.6, 53.4" },
    ["Dragon Isles"] = {
      location = "Hub principal de Dragonflight",
      note = "Punto base para logros, campana y recompensas generales de Dragonflight. La pasada fina separara vendors y subzonas exactas cuando haga falta."
    },
    ["The Waking Shores"] = {
      location = "Zona base de Dragonflight",
      note = "Referencia general para fuentes repartidas por The Waking Shores. La coordenada exacta de cada fuente queda para la pasada fina."
    },
    ["The Azure Span"] = {
      location = "Hub de Iskaara",
      note = "Referencia base para renombre y recompensas ligadas a Iskaara Tuskarr en The Azure Span. La coordenada exacta queda para la pasada fina."
    },
    ["Iskaara"] = {
      location = "Poblado de Iskaara",
      note = "Referencia base para intercambios y vendors de Iskaara. La coordenada exacta del NPC queda para la pasada fina."
    },
    ["Zaralek Cavern"] = {
      location = "Loamm",
      waypointZone = "Zaralek Cavern",
      coordinates = "58.1, 53.8",
      note = "Hub practico de Zaralek Cavern en Loamm para renombre, eventos y vendors."
    },
    ["Emerald Dream"] = {
      location = "Central Encampment",
      waypointZone = "Emerald Dream",
      coordinates = "50.2, 61.8",
      note = "Hub practico del Emerald Dream para Dream Wardens, Dream Infusion y varias actividades."
    },
    ["Dragonflight dungeons"] = {
      location = "Meta de mazmorras de Dragonflight",
      note = "Logro compartido entre varias instancias. La pasada fina puede separar rutas exactas por dungeon si hace falta."
    },
    ["Dragon Isles storms"] = {
      location = "Evento rotativo de tormentas",
      note = "Las tormentas rotan por varias zonas de Dragonflight; la pasada fina dejara puntos exactos por rotacion o vendor cuando aplique."
    },
    ["Dreamsurge zones"] = {
      location = "Evento rotativo de Dreamsurges",
      note = "Las Dreamsurges cambian de zona dentro de Dragonflight; la pasada fina puede fijar el vendor o la zona activa segun la fuente."
    },
    ["Gilneas"] = {
      location = "Hub de Gilneas Reclamation",
      note = "Referencia base para la cadena Reclaiming Gilneas. La coordenada exacta del tramo final queda para la pasada fina."
    },
    ["Love is in the Air"] = {
      location = "Apothecary Hummel / cola de Shadowfang Keep",
      waypointZone = "Silverpine Forest",
      coordinates = "44.8, 67.8",
      note = "Punto fisico practico para las monturas de caja o drop de Love is in the Air."
    },
    ["Hallow's End"] = {
      location = "Headless Horseman / acceso a Scarlet Monastery",
      waypointZone = "Tirisfal Glades",
      coordinates = "82.5, 32.9",
      note = "Referencia fisica del evento para la montura del Loot-Filled Pumpkin."
    },
    ["Lunar Festival"] = {
      location = "Valadar Starsong",
      waypointZone = "Moonglade",
      coordinates = "54.0, 35.0",
      note = "Vendedor principal del Lunar Festival segun Wowhead."
    },
    ["Timewalking"] = {
      location = "Any Timewalking Vendor",
      waypointZone = "Tanaris",
      coordinates = "62.8, 50.2",
      routeWaypoints = {
        { waypointZone = "Tanaris", coordinates = "62.8, 50.2", label = "Bobadormu" },
        { waypointZone = "Stormwind City", coordinates = "56.0, 19.0", label = "Bobadormu" },
        { waypointZone = "Orgrimmar", coordinates = "52.8, 83.0", label = "Bobadormu" },
        { waypointZone = "Shattrath City", coordinates = "54.5, 39.0", label = "Cupri" },
        { waypointZone = "Dalaran", coordinates = "50.4, 46.6", label = "Auzin" },
        { waypointZone = "Timeless Isle", coordinates = "43.1, 55.3", label = "Mistweaver Xia" },
        { waypointZone = "Ashran", coordinates = "37.1, 72.9", label = "Tempra" },
        { waypointZone = "Warspear", coordinates = "42.9, 54.8", label = "Kronnus" },
        { waypointZone = "Boralus", coordinates = "70.8, 16.4", label = "Churbro" },
        { waypointZone = "Dazar'alor", coordinates = "46.0, 94.8", label = "Churbro" },
        { waypointZone = "Dalaran (Broken Isles)", coordinates = "68.4, 48.4", label = "Aridormi" },
        { waypointZone = "Valdrakken", coordinates = "81.4, 47.3", label = "Xydan" }
      },
      note = "Ruta compartida para monturas vendidas por cualquier vendor activo de Timewalking."
    },
    ["Noblegarden"] = {
      location = "Evento de temporada",
      note = "Evento distribuido entre varias capitales; la pasada fina puede separar capitales concretas si hace falta."
    },
    ["Mount collection achievements"] = {
      location = "Logros de coleccion",
      note = "Recompensa automatica por logros de coleccion; no tiene un vendedor o punto fisico unico."
    },
    ["Dawn of the Infinite"] = { location = "Entrada de instancia", waypointZone = "Thaldraszus", coordinates = "61.2, 84.4" },
    ["Amirdrassil, the Dream's Hope"] = { location = "Entrada de banda", waypointZone = "Emerald Dream", coordinates = "27.5, 31.6" },
    ["Vault of the Incarnates"] = { location = "Entrada de banda", waypointZone = "Thaldraszus", coordinates = "73.1, 55.7" },
    ["Aberrus"] = { location = "Entrada de banda", waypointZone = "Zaralek Cavern", coordinates = "48.5, 11.9" },
    ["Aberrus, the Shadowed Crucible"] = { location = "Entrada de banda", waypointZone = "Zaralek Cavern", coordinates = "48.5, 11.9" },
    ["The Stonevault"] = { location = "Entrada de instancia", waypointZone = "The Ringing Deeps", coordinates = "46.8, 9.4" },
    ["Darkflame Cleft"] = { location = "Entrada de instancia", waypointZone = "The Ringing Deeps", coordinates = "59.5, 21.8" },
    ["Nerub-ar Palace"] = { location = "Entrada de banda", waypointZone = "Azj-Kahet", coordinates = "35.1, 77.9" },
    ["Liberation of Undermine"] = { location = "Entrada de banda", waypointZone = "Undermine", coordinates = "42.0, 52.0" },
    ["Khaz Algar"] = { location = "Delver's Headquarters", waypointZone = "Dornogal", coordinates = "47.6, 44.4" },
    ["Khaz Algar Delves"] = { location = "Delver's Headquarters", waypointZone = "Dornogal", coordinates = "47.6, 44.4" },
    ["Dornogal"] = { location = "Delver's Headquarters", waypointZone = "Dornogal", coordinates = "47.6, 44.4" },
    ["Isle of Dorn"] = { location = "Cendvin, Cinderbrew Meadery", waypointZone = "Isle of Dorn", coordinates = "74.4, 45.2" },
    ["The Ringing Deeps"] = { location = "Waxmonger Squick, Gundargaz", waypointZone = "The Ringing Deeps", coordinates = "47.4, 32.8" },
    ["Gundargaz"] = { location = "Waxmonger Squick", waypointZone = "The Ringing Deeps", coordinates = "47.4, 32.8" },
    ["Hallowfall"] = { location = "Auralia Steelstrike, Mereldar", waypointZone = "Hallowfall", coordinates = "42.4, 55.0" },
    ["Azj-Kahet"] = { location = "Weaver's Lair", waypointZone = "Azj-Kahet", coordinates = "56.9, 47.0" },
    ["The Weaver's Lair"] = { location = "Flight master / hub", waypointZone = "Azj-Kahet", coordinates = "56.9, 47.0" },
    ["Undermine"] = { location = "Smaks Topskimmer", waypointZone = "Undermine", coordinates = "43.8, 50.8" },
    ["Entrepreneur Inc."] = { location = "Skedgit Cinderbangs", waypointZone = "Undermine", coordinates = "43.2, 82.8" },
    ["Siren Isle"] = { location = "Soweezi", waypointZone = "Siren Isle", coordinates = "69.9, 48.6" },
    ["K'aresh"] = { location = "Zo'turu", waypointZone = "K'aresh", coordinates = "42.0, 22.1" },
    ["Manaforge Omega"] = { location = "Entrada de banda", waypointZone = "K'aresh", coordinates = "17.4, 15.7" },
    ["Horrific Visions Revisited"] = {
      location = "Torie",
      waypointZone = "Dornogal",
      coordinates = "34.4, 68.5",
      note = "Punto base de Torie en Dornogal para recompensas y seguimiento del evento."
    },
    ["Rated PvP"] = {
      alliance = { location = "Hall of Champions PvP hub", waypointZone = "Stormwind City", coordinates = "76.8, 65.4" },
      horde = { location = "Hall of Legends PvP hub", waypointZone = "Orgrimmar", coordinates = "41.8, 73.0" }
    },
    ["Silvermoon City"] = { location = "Hub de Midnight", waypointZone = "Silvermoon City", coordinates = "52.6, 78.0" },
    ["Silvermoon"] = {
      location = "Hub de Silvermoon City",
      waypointZone = "Silvermoon City",
      coordinates = "52.6, 78.0",
      note = "Alias practico para contenido legado o curado que aun usa Silvermoon en lugar de Silvermoon City."
    },
    ["Quel'Thalas"] = {
      location = "Hub de Midnight, Silvermoon City",
      waypointZone = "Silvermoon City",
      coordinates = "52.1, 77.7",
      note = "Punto base practico para vendedores, logros y progreso general de Midnight."
    },
    ["Midnight Prey"] = {
      location = "Construct V'anore",
      waypointZone = "Silvermoon City",
      coordinates = "55.7, 65.9",
      note = "Punto practico para Preyseeker's Journey y Midnight Prey."
    },
    ["Eversong Woods"] = {
      location = "Ruta de rares de Midnight",
      waypointZone = "Eversong Woods",
      coordinates = "51.9, 73.8",
      routeWaypoints = {
        { waypointZone = "Eversong Woods", coordinates = "45.0, 78.3", label = "Harried Hawkstrider" },
        { waypointZone = "Eversong Woods", coordinates = "51.9, 73.8", label = "Warden of Weeds" },
        { waypointZone = "Eversong Woods", coordinates = "54.7, 60.2", label = "Overfester Hydra" },
        { waypointZone = "Eversong Woods", coordinates = "44.9, 38.6", label = "Dame Bloodshed" },
        { waypointZone = "Eversong Woods", coordinates = "34.8, 21.0", label = "Waverly" }
      },
      note = "Ruta breve de rares con drops compartidos para las monturas de Eversong Woods."
    },
    ["Harandar"] = { location = "Hub de Hara'ti", waypointZone = "Harandar", coordinates = "52.3, 53.7" },
    ["Voidstorm"] = {
      location = "Quartermaster de The Singularity",
      waypointZone = "Voidstorm",
      coordinates = "52.6, 72.9",
      note = "Punto base para renombre y vendors de Voidstorm."
    },
    ["Midnight Delves"] = {
      location = "Valeera Sanguinar & Telemancer Astrandis",
      waypointZone = "Silvermoon City",
      coordinates = "52.1, 77.7",
      note = "Hub principal de Delves de Midnight en Silvermoon City."
    },
    ["Midnight Dungeons"] = {
      location = "Windrunner Spire",
      waypointZone = "Ghostlands",
      coordinates = "13.0, 55.0",
      note = "Punto practico para las mazmorras de Midnight; la referencia exacta de toda la rotacion queda para la pasada final."
    },
    ["Windrunner's Spire"] = { location = "Entrada de instancia", waypointZone = "Ghostlands", coordinates = "13.0, 55.0" },
    ["Midnight Raids"] = {
      location = "March on Quel'Danas staging point",
      waypointZone = "Isle of Quel'Danas",
      coordinates = "40.0, 45.0",
      note = "Punto base practico para el contenido de banda de Midnight; las entradas exactas de todas las bandas quedan para la pasada final."
    },
    ["Shadowfang Keep"] = { location = "Entrada de evento", waypointZone = "Silverpine Forest", coordinates = "44.8, 67.8" },
    ["Scarlet Monastery"] = { location = "Entrada de evento", waypointZone = "Tirisfal Glades", coordinates = "82.5, 32.9" },
  },

  bosses = {
    ["Katie Stokx"] = { location = "Vendedora de caballos", waypointZone = "Stormwind City", coordinates = "77.0, 67.8" },
    ["Ogunaro Wolfrunner"] = { location = "Vendedor de lobos", waypointZone = "Orgrimmar", coordinates = "61.6, 35.6" },
    ["Veron Amberstill"] = { location = "Rancho Amberstill", waypointZone = "Dun Morogh", coordinates = "70.6, 48.9" },
    ["Milli Featherwhistle"] = { location = "Deposito de Steelgrill", waypointZone = "Dun Morogh", coordinates = "56.2, 46.4" },
    ["Harb Clawhoof"] = { location = "Vendedor de kodos", waypointZone = "Mulgore", coordinates = "47.5, 58.5" },
    ["Zachariah Post"] = { location = "Vendedor de caballos esqueleticos", waypointZone = "Tirisfal Glades", coordinates = "61.8, 51.8" },
    ["Zjolnir"] = { location = "Vendedor de raptores", waypointZone = "Durotar", coordinates = "55.2, 75.6" },
    ["Lelanai"] = { location = "Vendedora de sables", waypointZone = "Darnassus", coordinates = "38.3, 15.7" },
    ["The Scarab Gong"] = { location = "Entrada de Ahn'Qiraj", waypointZone = "Silithus", coordinates = "46.8, 7.5", note = "Ubicacion legacy del evento de apertura de Ahn'Qiraj." },
    ["Scarab Gong"] = { location = "Entrada de Ahn'Qiraj", waypointZone = "Silithus", coordinates = "46.8, 7.5", note = "Alias del Scarab Gong para waypoints." },
    ["Alliance PvP mount vendor"] = { location = "Teniente Karter, Sala de los Campeones", waypointZone = "Stormwind City", coordinates = "76.2, 65.6" },
    ["Horde PvP mount vendor"] = { location = "Raider Bork, Sala de las Leyendas", waypointZone = "Orgrimmar", coordinates = "41.6, 72.6" },
    ["Stormpike Guard / Alterac Valley vendor"] = { location = "Thanthaldis Snowgleam", waypointZone = "Hillsbrad Foothills", coordinates = "44.3, 46.5" },
    ["Frostwolf Clan / Alterac Valley vendor"] = { location = "Jekyll Flandring", waypointZone = "Hillsbrad Foothills", coordinates = "58.1, 33.5" },
    ["Mor'vek"] = { location = "Refugio de Mor'vek", waypointZone = "Un'Goro Crater", coordinates = "71.6, 73.6" },
    ["Wintersaber Trainers"] = { location = "Rivern Frostwind", waypointZone = "Winterspring", coordinates = "49.9, 9.8" },
    ["Rivern Frostwind"] = { location = "Entrenador de sables de invierno", waypointZone = "Winterspring", coordinates = "49.9, 9.8" },
    ["Black Market Auction House"] = { location = "Madam Goya", waypointZone = "Silvermoon City", coordinates = "51.8, 48.4" },
    ["Torallius the Pack Handler"] = { location = "Vendedor de elekks", waypointZone = "The Exodar", coordinates = "81.5, 51.4" },
    ["Winaestra"] = { location = "Vendedora de halcones zancudos", waypointZone = "Silvermoon City", coordinates = "67.1, 66.1" },
    ["Brunn Flamebeard"] = { location = "Vendedor de grifos, Bastion Martillo Salvaje", waypointZone = "Shadowmoon Valley", coordinates = "37.6, 56.0" },
    ["Dama Wildmane"] = { location = "Vendedora de jinetes del viento, Aldea Sombraluna", waypointZone = "Shadowmoon Valley", coordinates = "29.0, 29.4" },
    ["Fedryen Swiftspear"] = { location = "Intendente de la Expedicion Cenarion, Refugio Cenarion", waypointZone = "Zangarmarsh", coordinates = "79.3, 63.7" },
    ["Trader Narasu / Provisioner Nasela"] = {
      alliance = { location = "Trader Narasu, Telaar", waypointZone = "Nagrand", coordinates = "54.6, 75.0" },
      horde = { location = "Provisioner Nasela, Garadar", waypointZone = "Nagrand", coordinates = "53.5, 37.0" }
    },
    ["Drake Dealer Hurlunk"] = { location = "Vendedor de dracos, Arrecife del Ala Abisal", waypointZone = "Shadowmoon Valley", coordinates = "65.6, 85.9" },
    ["Grella"] = { location = "Intendente de la Guardia del Cielo, Alto Velo", waypointZone = "Terokkar Forest", coordinates = "64.3, 66.2" },
    ["Aldraan / Coreiel"] = {
      alliance = { location = "Aldraan, intendente de Halaa", waypointZone = "Nagrand", coordinates = "42.8, 42.6" },
      horde = { location = "Coreiel, intendente de Halaa", waypointZone = "Nagrand", coordinates = "42.8, 42.6" }
    },
    ["Engineering"] = {
      alliance = { location = "Entrenador de Ingenieria de Terrallende, Bastion Martillo Salvaje", waypointZone = "Shadowmoon Valley", coordinates = "36.6, 55.0" },
      horde = { location = "Entrenador de Ingenieria de Terrallende, Aldea Sombraluna", waypointZone = "Shadowmoon Valley", coordinates = "29.2, 28.6" }
    },
    ["Brewfest"] = {
      alliance = { location = "Campamento de la Fiesta de la Cerveza", waypointZone = "Dun Morogh", coordinates = "55.1, 37.8" },
      horde = { location = "Campamento de la Fiesta de la Cerveza", waypointZone = "Durotar", coordinates = "41.6, 17.8" }
    },
    ["Tol Barad quartermaster"] = {
      alliance = { location = "Quartermaster Brazie, campamento de Baradin's Wardens", waypointZone = "Tol Barad Peninsula", coordinates = "72.5, 62.6" },
      horde = { location = "Pogg, campamento de Hellscream's Reach", waypointZone = "Tol Barad Peninsula", coordinates = "54.5, 80.7" }
    },
    ["Quartermaster Brazie"] = { location = "Campamento de Baradin's Wardens", waypointZone = "Tol Barad Peninsula", coordinates = "72.5, 62.6" },
    ["Pogg"] = { location = "Campamento de Hellscream's Reach", waypointZone = "Tol Barad Peninsula", coordinates = "54.5, 80.7" },
    ["Blacksmith Abasi"] = { location = "Ramkahen", waypointZone = "Uldum", coordinates = "54.0, 33.2" },
    ["Poseidus"] = {
      location = "Ruta de patrulla",
      waypointZone = "Shimmering Expanse",
      coordinates = "45.0, 49.0",
      macro = "/target Poseidus",
      respawn = "Variable"
    },
    ["Aeonaxx"] = {
      location = "Ruta de patrulla",
      waypointZone = "Deepholm",
      coordinates = "47.0, 57.4",
      macro = "/target Aeonaxx",
      respawn = "Variable"
    },
    ["Dormus the Camel-Hoarder"] = { location = "Encuentro de Dormus", waypointZone = "Feralas", coordinates = "69.5, 73.2", macro = "/target Dormus the Camel-Hoarder" },
    ["Worgen racial mount vendor"] = { location = "Astrid Langstrump, manejadora de mountain horses", waypointZone = "Stormwind City", coordinates = "52.6, 8.2" },
    ["Goblin racial mount vendor"] = { location = "Kall Worthaton, vendedor de trikes", waypointZone = "Orgrimmar", coordinates = "36.2, 86.6" },
    ["Guild Vendor"] = {
      alliance = { location = "Riha, vendedora de hermandad", waypointZone = "Shattrath City", coordinates = "58.5, 46.5" },
      horde = { location = "Goram, vendedor de hermandad", waypointZone = "Orgrimmar", coordinates = "48.4, 75.6" }
    },
    ["The Abyssal Ride"] = {
      location = "Moanah Stormhoof, Shallow's End",
      waypointZone = "Kelp'thar Forest",
      coordinates = "46.0, 46.2",
      questID = 25371,
      guideUrl = "https://www.wowhead.com/quest=25371/the-abyssal-ride",
      note = "Progress the Vashj'ir intro until Moanah Stormhoof offers The Abyssal Ride."
    },
    ["Vicious Saddle"] = {
      alliance = { location = "Necrolord Sipe, Hall of Champions", waypointZone = "Stormwind City", coordinates = "76.8, 65.4" },
      horde = { location = "Deathguard Netharian, Hall of Legends", waypointZone = "Orgrimmar", coordinates = "41.8, 73.0" }
    },
    ["Rated PvP"] = {
      alliance = { location = "Hall of Champions PvP hub", waypointZone = "Stormwind City", coordinates = "76.8, 65.4" },
      horde = { location = "Hall of Legends PvP hub", waypointZone = "Orgrimmar", coordinates = "41.8, 73.0" }
    },
    ["Prestige reward"] = {
      alliance = { location = "Hall of Champions legacy PvP hub", waypointZone = "Stormwind City", coordinates = "76.8, 65.4", note = "Punto practico de PvP legacy en Alliance para recompensas de Prestige de Legion." },
      horde = { location = "Hall of Legends legacy PvP hub", waypointZone = "Orgrimmar", coordinates = "41.8, 73.0", note = "Punto practico de PvP legacy en Horde para recompensas de Prestige de Legion." }
    },
    ["Honor reward"] = {
      alliance = { location = "Hall of Champions legacy PvP hub", waypointZone = "Stormwind City", coordinates = "76.8, 65.4", note = "Punto practico de PvP legacy en Alliance para recompensas de Honor / Prestige." },
      horde = { location = "Hall of Legends legacy PvP hub", waypointZone = "Orgrimmar", coordinates = "41.8, 73.0", note = "Punto practico de PvP legacy en Horde para recompensas de Honor / Prestige." }
    },
    ["Love is in the Air vendor"] = {
      alliance = { location = "Lovely Merchant, distrito comercial", waypointZone = "Stormwind City", coordinates = "62.4, 75.4" },
      horde = { location = "Lovely Merchant, Valle de la Fuerza", waypointZone = "Orgrimmar", coordinates = "52.8, 77.0" }
    },
    ["Love is in the Air"] = { location = "Apothecary Hummel / cola de Shadowfang Keep", waypointZone = "Silverpine Forest", coordinates = "44.8, 67.8" },
    ["Hallow's End"] = { location = "Headless Horseman / acceso a Scarlet Monastery", waypointZone = "Tirisfal Glades", coordinates = "82.5, 32.9" },
    ["Lunar Festival"] = { location = "Valadar Starsong", waypointZone = "Moonglade", coordinates = "54.0, 35.0" },
    ["Timewalking vendor"] = {
      location = "Any Timewalking Vendor",
      waypointZone = "Tanaris",
      coordinates = "62.8, 50.2",
      routeWaypoints = {
        { waypointZone = "Tanaris", coordinates = "62.8, 50.2", label = "Bobadormu" },
        { waypointZone = "Stormwind City", coordinates = "56.0, 19.0", label = "Bobadormu" },
        { waypointZone = "Orgrimmar", coordinates = "52.8, 83.0", label = "Bobadormu" },
        { waypointZone = "Shattrath City", coordinates = "54.5, 39.0", label = "Cupri" },
        { waypointZone = "Dalaran", coordinates = "50.4, 46.6", label = "Auzin" },
        { waypointZone = "Timeless Isle", coordinates = "43.1, 55.3", label = "Mistweaver Xia" },
        { waypointZone = "Ashran", coordinates = "37.1, 72.9", label = "Tempra" },
        { waypointZone = "Warspear", coordinates = "42.9, 54.8", label = "Kronnus" },
        { waypointZone = "Boralus", coordinates = "70.8, 16.4", label = "Churbro" },
        { waypointZone = "Dazar'alor", coordinates = "46.0, 94.8", label = "Churbro" },
        { waypointZone = "Dalaran (Broken Isles)", coordinates = "68.4, 48.4", label = "Aridormi" },
        { waypointZone = "Valdrakken", coordinates = "81.4, 47.3", label = "Xydan" }
      },
      note = "Ruta compartida para monturas vendidas por cualquier vendor activo de Timewalking."
    },
    ["Horrific Visions Revisited vendor"] = {
      location = "Torie",
      waypointZone = "Dornogal",
      coordinates = "34.4, 68.5",
      guideUrl = "https://www.wowhead.com/npc=238138/torie",
      note = "Wowhead situa a Torie en Dornogal como vendedor del relanzamiento de Horrific Visions."
    },
    ["Noblegarden vendor"] = {
      alliance = { location = "Noblegarden Vendor, campamento festivo", waypointZone = "Dun Morogh", coordinates = "54.0, 50.8" },
      horde = { location = "Noblegarden Merchant, campamento festivo", waypointZone = "Durotar", coordinates = "52.2, 41.4" }
    },
    ["Darkmoon Faire vendor"] = { location = "Lhara, premios de mascotas y monturas", waypointZone = "Darkmoon Island", coordinates = "48.4, 69.6" },
    ["Cielstrasza"] = { location = "Intendente del Acuerdo del Reposo del Dragon, Templo del Reposo del Dragon", waypointZone = "Dragonblight", coordinates = "59.8, 53.0" },
    ["Lillehoff"] = { location = "Intendente de los Hijos de Hodir, Dun Niffelem", waypointZone = "The Storm Peaks", coordinates = "66.0, 61.5" },
    ["Geen"] = { location = "Intendente de los Oraculos, Canope de Hablasvias", waypointZone = "Sholazar Basin", coordinates = "54.5, 56.2" },
    ["Mei Francis"] = { location = "Magical Menagerie", waypointZone = "Dalaran", coordinates = "58.0, 42.6" },
    ["Wintergrasp Quartermaster"] = {
      alliance = { location = "Knight Dameron, Fortaleza de Conquista del Invierno", waypointZone = "Wintergrasp", coordinates = "51.5, 17.5" },
      horde = { location = "Stone Guard Mukar, Fortaleza de Conquista del Invierno", waypointZone = "Wintergrasp", coordinates = "51.5, 17.5" }
    },
    ["Stormwind Quartermaster"] = { location = "Corporal Arthur Flew, pabellon de Ventormenta del Torneo Argenta", waypointZone = "Icecrown", coordinates = "76.4, 19.2" },
    ["Darnassus Quartermaster"] = { location = "Rook Hawkfist, pabellon de Darnassus del Torneo Argenta", waypointZone = "Icecrown", coordinates = "76.2, 19.2" },
    ["Ironforge Quartermaster"] = { location = "Derrick Brindlebeard, pabellon de Forjaz del Torneo Argenta", waypointZone = "Icecrown", coordinates = "76.5, 19.4" },
    ["Gnomeregan Quartermaster"] = { location = "Rillie Spindlenut, pabellon de Gnomeregan del Torneo Argenta", waypointZone = "Icecrown", coordinates = "76.4, 19.5" },
    ["Exodar Quartermaster"] = { location = "Irisee, pabellon del Exodar del Torneo Argenta", waypointZone = "Icecrown", coordinates = "76.2, 19.2" },
    ["Orgrimmar Quartermaster"] = { location = "Freka Bloodaxe, pabellon de Orgrimmar del Torneo Argenta", waypointZone = "Icecrown", coordinates = "76.4, 24.2" },
    ["Darkspear Quartermaster"] = { location = "Champion Uru'zin, Cuenca del Honor", waypointZone = "Orgrimmar", coordinates = "50.0, 58.4" },
    ["Thunder Bluff Quartermaster"] = { location = "Doru Thunderhorn, pabellon de Cima del Trueno del Torneo Argenta", waypointZone = "Icecrown", coordinates = "76.2, 24.5" },
    ["Undercity Quartermaster"] = { location = "Eliza Killian, pabellon de Entranas del Torneo Argenta", waypointZone = "Icecrown", coordinates = "76.4, 24.0" },
    ["Silvermoon Quartermaster"] = { location = "Trellis Morningsun, pabellon de Lunargenta del Torneo Argenta", waypointZone = "Icecrown", coordinates = "76.2, 23.8" },
    ["The Silver Covenant"] = { location = "Hiren Loresong, pabellon del Pacto de Plata", waypointZone = "Icecrown", coordinates = "76.2, 19.5" },
    ["The Sunreavers"] = { location = "Vasarin Redmorn, pabellon de los Atracasol", waypointZone = "Icecrown", coordinates = "76.2, 24.0" },
    ["Dame Evniki Kapsalis"] = { location = "Pabellon de los Cruzados", waypointZone = "Icecrown", coordinates = "69.5, 23.2" },
    ["Knights of the Ebon Blade"] = { location = "Duchess Mynx, La Camara de las Sombras", waypointZone = "Icecrown", coordinates = "43.4, 20.5" },
    ["Uncle Bigpocket"] = {
      location = "Grummle Bazaar",
      waypointZone = "Kun-Lai Summit",
      coordinates = "65.4, 61.6",
      guideUrl = "https://www.wowhead.com/npc=64518/uncle-bigpocket",
      note = "Vendor confirmed by Wowhead at the Grummle Bazaar in Kun-Lai Summit."
    },
    ["Jaluu the Generous"] = { location = "Golden Lotus quartermaster", waypointZone = "Vale of Eternal Blossoms", coordinates = "63.0, 22.2" },
    ["San Redscale"] = { location = "The Arboretum", waypointZone = "The Jade Forest", coordinates = "56.6, 44.4" },
    ["Rushi the Fox"] = { location = "Shado-Pan quartermaster", waypointZone = "Townlong Steppes", coordinates = "48.8, 70.4" },
    ["Gina Mudclaw"] = { location = "Halfhill", waypointZone = "Valley of the Four Winds", coordinates = "52.2, 48.6" },
    ["Agent Malley"] = { location = "Lion's Landing", waypointZone = "Krasarang Wilds", coordinates = "89.4, 33.4" },
    ["Ongrom Black Tooth"] = { location = "Domination Point", waypointZone = "Krasarang Wilds", coordinates = "9.6, 51.0" },
    ["Operation: Shieldwall campaign"] = { location = "Lion's Landing", waypointZone = "Krasarang Wilds", coordinates = "89.4, 33.4" },
    ["Dominance Offensive campaign"] = { location = "Domination Point", waypointZone = "Krasarang Wilds", coordinates = "9.6, 51.0" },
    ["Hiren Loresong"] = { location = "Kirin Tor Offensive quartermaster", waypointZone = "Isle of Thunder", coordinates = "34.8, 90.0" },
    ["Vasarin Redmorn"] = { location = "Sunreaver Onslaught quartermaster", waypointZone = "Isle of Thunder", coordinates = "28.2, 51.6" },
    ["Sage Whiteheart / Sage Lotusbloom"] = {
      alliance = { location = "Sage Whiteheart, Shrine of Seven Stars", waypointZone = "Vale of Eternal Blossoms", coordinates = "84.6, 63.4" },
      horde = { location = "Sage Lotusbloom, Shrine of Two Moons", waypointZone = "Vale of Eternal Blossoms", coordinates = "62.6, 23.2" }
    },
    ["Ambersmith Zikk"] = { location = "Klaxxi quartermaster", waypointZone = "Dread Wastes", coordinates = "55.0, 35.4" },
    ["Tan Shin Tiao"] = { location = "Seat of Knowledge", waypointZone = "Vale of Eternal Blossoms", coordinates = "82.2, 29.4" },
    ["Mistweaver Ku"] = { location = "Celestial Court", waypointZone = "Timeless Isle", coordinates = "42.8, 54.4" },
    ["Speaker Gulan"] = { location = "Bloody Coins vendor", waypointZone = "Timeless Isle", coordinates = "74.6, 44.4" },
    ["Kai Featherfall"] = {
      location = "Phoenix Egg Trader",
      waypointZone = "Vale of Eternal Blossoms",
      coordinates = "82.2, 34.0",
      guideUrl = "https://www.wowhead.com/npc=66973/kai-featherfall",
      note = "Legacy Pandaria Challenge Mode reward NPC confirmed by Wowhead."
    },
    ["Brawler's Guild"] = {
      alliance = {
        location = "Bizmo's Brawlpub",
        waypointZone = "Deeprun Tram",
        coordinates = "62.6, 33.4",
        routeWaypoints = {
          { waypointZone = "Deeprun Tram", coordinates = "61.6, 33.0", label = "Bizmo's Brawlpub" },
          { waypointZone = "Deeprun Tram", coordinates = "62.6, 33.4", label = "Bizmo's Brawlpub" },
          { waypointZone = "Deeprun Tram", coordinates = "63.2, 34.2", label = "Bizmo's Brawlpub" }
        },
        guideUrl = "https://www.wowhead.com/zone=2257/bizmos-brawlpub",
        note = "Alliance Brawler's Guild area confirmed on the Deeprun Tram submap in Wowhead."
      },
      horde = {
        location = "Brawl'gar Arena",
        waypointZone = "Brawl'gar Arena",
        coordinates = "58.8, 77.0",
        routeWaypoints = {
          { waypointZone = "Brawl'gar Arena", coordinates = "57.0, 75.4", label = "Brawl'gar Arena" },
          { waypointZone = "Brawl'gar Arena", coordinates = "58.8, 77.0", label = "Brawl'gar Arena" },
          { waypointZone = "Brawl'gar Arena", coordinates = "59.4, 76.2", label = "Brawl'gar Arena" }
        },
        guideUrl = "https://www.wowhead.com/zone=6298/brawlgar-arena",
        note = "Horde Brawler's Guild area confirmed on the Brawl'gar Arena submap in Wowhead."
      }
    },
    ["A Large Pile of Giant Dinosaur Bones"] = {
      location = "Ku'ma, western cave",
      waypointZone = "Isle of Giants",
      coordinates = "32.4, 54.4",
      questID = 32617,
      guideUrl = "https://www.wowhead.com/quest=32617/a-mountain-of-giant-dinosaur-bones",
      note = "Turn in 9,999 Giant Dinosaur Bones to Ku'ma on the Isle of Giants."
    },
    ["Primal Egg"] = {
      location = "Isle of Giants farming route",
      waypointZone = "Isle of Giants",
      coordinates = "32.4, 74.4",
      routeWaypoints = {
        { waypointZone = "Isle of Giants", coordinates = "32.6, 78.4", label = "Primal Egg farm" },
        { waypointZone = "Isle of Giants", coordinates = "32.4, 74.4", label = "Primal Egg farm" },
        { waypointZone = "Isle of Giants", coordinates = "25.4, 49.2", label = "Primal Egg farm" },
        { waypointZone = "Isle of Giants", coordinates = "22.4, 59.4", label = "Primal Egg farm" },
        { waypointZone = "Isle of Giants", coordinates = "42.4, 55.8", label = "Primal Egg farm" }
      },
      guideUrl = "https://www.wowhead.com/item=94295/primal-egg",
      note = "Farm Isle of Giants elites and hatch the egg after the long incubation timer."
    },
    ["Zandalari Warbringers"] = {
      location = "Pandaria patrol route",
      waypointZone = "Kun-Lai Summit",
      coordinates = "75.0, 67.4",
      routeWaypoints = {
        { waypointZone = "The Jade Forest", coordinates = "52.4, 18.8", label = "Warbringer patrol" },
        { waypointZone = "Kun-Lai Summit", coordinates = "75.0, 67.4", label = "Warbringer patrol" },
        { waypointZone = "Townlong Steppes", coordinates = "36.4, 85.4", label = "Warbringer patrol" },
        { waypointZone = "Krasarang Wilds", coordinates = "38.4, 67.0", label = "Warbringer patrol" },
        { waypointZone = "Dread Wastes", coordinates = "47.2, 61.0", label = "Warbringer patrol" }
      },
      macro = "/target Zandalari Warbringer",
      respawn = "Variable",
      guideUrl = "https://www.wowhead.com/npc=69769/zandalari-warbringer",
      note = "Check the five Pandaria spawn zones until you find an active Zandalari Warbringer."
    },
    ["Pandaren racial mount vendor"] = {
      alliance = { location = "Old Whitenose, dragon turtle vendor", waypointZone = "Stormwind City", coordinates = "67.4, 18.4" },
      horde = { location = "Turtlemaster Odai, dragon turtle vendor", waypointZone = "Orgrimmar", coordinates = "69.4, 41.2" }
    },
    ["Sha of Anger"] = { location = "Punto de aparicion", waypointZone = "Kun-Lai Summit", coordinates = "54.4, 63.2", respawn = "10-20 min", macro = "/target Sha of Anger" },
    ["Galleon"] = { location = "Punto de aparicion", waypointZone = "Valley of the Four Winds", coordinates = "71.6, 64.4", respawn = "10-20 min", macro = "/target Galleon" },
    ["Nalak"] = { location = "Punto de aparicion", waypointZone = "Isle of Thunder", coordinates = "60.5, 37.3", respawn = "10-20 min", macro = "/target Nalak" },
    ["Oondasta"] = { location = "Punto de aparicion", waypointZone = "Isle of Giants", coordinates = "50.6, 54.4", respawn = "10-20 min", macro = "/target Oondasta" },
    ["Alani"] = { location = "Ruta de patrulla", waypointZone = "Vale of Eternal Blossoms", coordinates = "34.6, 58.0", respawn = "Variable", macro = "/target Alani" },
    ["Huolon"] = { location = "Punto de aparicion", waypointZone = "Timeless Isle", coordinates = "66.1, 58.9", respawn = "30-60 min", macro = "/target Huolon" },
    ["Rukhmar"] = { location = "Punto de aparicion", waypointZone = "Spires of Arak", coordinates = "37.0, 39.0", respawn = "15 min", macro = "/target Rukhmar" },
    ["Nok-Karosh"] = { location = "Punto de aparicion", waypointZone = "Frostfire Ridge", coordinates = "13.1, 50.8", respawn = "Variable", macro = "/target Nok-Karosh" },
    ["Trader Araanda / Trader Darakk"] = {
      alliance = { location = "Trader Araanda, Local Supplies", waypointZone = "Lunarfall", coordinates = "30.0, 34.4" },
      horde = { location = "Trader Darakk, Local Supplies", waypointZone = "Frostwall", coordinates = "40.8, 55.8" }
    },
    ["Vindicator Nuurem"] = { location = "Council of Exarchs quartermaster", waypointZone = "Stormshield", coordinates = "46.4, 76.2" },
    ["Beska Redtusk"] = { location = "Frostwolf Orcs quartermaster", waypointZone = "Warspear", coordinates = "53.6, 62.0" },
    ["Shadow-Sage Brakoss / Ravenspeaker Skeega"] = {
      alliance = { location = "Shadow-Sage Brakoss, Arakkoa Outcasts quartermaster", waypointZone = "Stormshield", coordinates = "44.8, 75.0" },
      horde = { location = "Ravenspeaker Skeega, Arakkoa Outcasts quartermaster", waypointZone = "Warspear", coordinates = "53.2, 60.0" }
    },
    ["Gazrix Gearlock / Mimi Wizzlebub"] = {
      alliance = { location = "Gazrix Gearlock, Steamwheedle quartermaster", waypointZone = "Stormshield", coordinates = "43.2, 77.4" },
      horde = { location = "Mimi Wizzlebub, Steamwheedle quartermaster", waypointZone = "Warspear", coordinates = "53.8, 60.8" }
    },
    ["Z'tenga the Walker"] = { location = "Saberstalkers quartermaster", waypointZone = "Tanaan Jungle", coordinates = "55.2, 74.8" },
    ["Ravenspeaker Thelnaas / Vindicator Krethos"] = {
      alliance = { location = "Vindicator Krethos, Hand of the Prophet quartermaster", waypointZone = "Tanaan Jungle", coordinates = "58.4, 60.4" },
      horde = { location = "Ravenspeaker Thelnaas, Vol'jin's Headhunters quartermaster", waypointZone = "Tanaan Jungle", coordinates = "57.8, 59.4" }
    },
    ["Dawn-Seeker Krisek"] = { location = "Order of the Awakened quartermaster", waypointZone = "Tanaan Jungle", coordinates = "57.8, 59.4" },
    ["Nat Pagle"] = {
      alliance = { location = "Nat Pagle, Fishing Shack", waypointZone = "Lunarfall", coordinates = "53.4, 14.0" },
      horde = { location = "Nat Pagle, Fishing Shack", waypointZone = "Frostwall", coordinates = "38.2, 72.0" }
    },
    ["Rattling Iron Cage"] = {
      location = "Hellbane rare route",
      waypointZone = "Tanaan Jungle",
      coordinates = "47.0, 52.0",
      routeWaypoints = {
        { waypointZone = "Tanaan Jungle", coordinates = "47.0, 52.0", label = "Doomroller" },
        { waypointZone = "Tanaan Jungle", coordinates = "15.0, 63.0", label = "Terrorfist" },
        { waypointZone = "Tanaan Jungle", coordinates = "32.0, 73.0", label = "Vengeance" },
        { waypointZone = "Tanaan Jungle", coordinates = "24.0, 40.0", label = "Deathtalon" }
      },
      guideUrl = "https://www.wowhead.com/item=128025/rattling-iron-cage",
      note = "The Rattling Iron Cage drops from the four Hellbane rares in Tanaan Jungle."
    },
    ["Garrison Stables"] = {
      alliance = { location = "Keegan Firebeard, Stables", waypointZone = "Lunarfall", coordinates = "71.0, 72.4" },
      horde = { location = "Tormak the Scarred, Stables", waypointZone = "Frostwall", coordinates = "62.2, 35.0" }
    },
    ["Ashran PvP vendor"] = {
      alliance = { location = "Stormshield PvP quartermasters", waypointZone = "Stormshield", coordinates = "54.8, 18.8" },
      horde = { location = "Warspear PvP quartermasters", waypointZone = "Warspear", coordinates = "49.0, 57.2" }
    },
    ["Gorok"] = { location = "Punto de aparicion", waypointZone = "Frostfire Ridge", coordinates = "22.4, 66.0", respawn = "Variable", macro = "/target Gorok" },
    ["Nakk the Thunderer"] = { location = "Punto de aparicion", waypointZone = "Nagrand (Draenor)", coordinates = "50.0, 34.2", respawn = "Variable", macro = "/target Nakk the Thunderer" },
    ["Luk'hok"] = { location = "Punto de aparicion", waypointZone = "Nagrand (Draenor)", coordinates = "66.2, 44.0", respawn = "Variable", macro = "/target Luk'hok" },
    ["Poundfist"] = { location = "Punto de aparicion", waypointZone = "Gorgrond", coordinates = "42.0, 25.0", respawn = "Variable", macro = "/target Poundfist" },
    ["Silthide"] = { location = "Punto de aparicion", waypointZone = "Talador", coordinates = "55.0, 81.2", respawn = "Variable", macro = "/target Silthide" },
    ["Pathrunner"] = { location = "Punto de aparicion", waypointZone = "Shadowmoon Valley (Draenor)", coordinates = "38.6, 37.0", respawn = "Variable", macro = "/target Pathrunner" },
    ["Warlord Noktyn"] = {
      location = "Ruta de aparicion",
      waypointZone = "Ashran",
      coordinates = "48.0, 26.0",
      routeWaypoints = {
        { waypointZone = "Ashran", coordinates = "46.4, 21.6", label = "Warlord Noktyn spawn" },
        { waypointZone = "Ashran", coordinates = "47.8, 28.8", label = "Warlord Noktyn spawn" },
        { waypointZone = "Ashran", coordinates = "48.0, 26.0", label = "Warlord Noktyn spawn" }
      },
      respawn = "Variable",
      macro = "/target Warlord Noktyn"
    },
    ["Ephemeral Crystal"] = {
      location = "Ruta corta de cristales",
      waypointZone = "Azsuna",
      coordinates = "29.9, 26.5",
      routeWaypoints = {
        { waypointZone = "Azsuna", coordinates = "29.9, 26.5", label = "Ephemeral Crystal" },
        { waypointZone = "Azsuna", coordinates = "34.5, 35.7", label = "Ephemeral Crystal" },
        { waypointZone = "Azsuna", coordinates = "38.6, 9.3", label = "Ephemeral Crystal" },
        { waypointZone = "Azsuna", coordinates = "44.2, 17.4", label = "Ephemeral Crystal" },
        { waypointZone = "Azsuna", coordinates = "47.0, 49.0", label = "Ephemeral Crystal" },
        { waypointZone = "Azsuna", coordinates = "49.2, 24.1", label = "Ephemeral Crystal" },
        { waypointZone = "Azsuna", coordinates = "50.0, 7.7", label = "Ephemeral Crystal" },
        { waypointZone = "Azsuna", coordinates = "50.1, 23.4", label = "Ephemeral Crystal" },
        { waypointZone = "Azsuna", coordinates = "51.4, 37.6", label = "Ephemeral Crystal" },
        { waypointZone = "Azsuna", coordinates = "52.9, 35.9", label = "Ephemeral Crystal" },
        { waypointZone = "Azsuna", coordinates = "54.6, 52.5", label = "Ephemeral Crystal" },
        { waypointZone = "Azsuna", coordinates = "55.7, 25.4", label = "Ephemeral Crystal" },
        { waypointZone = "Azsuna", coordinates = "58.4, 41.7", label = "Ephemeral Crystal" },
        { waypointZone = "Azsuna", coordinates = "59.8, 44.0", label = "Ephemeral Crystal" },
        { waypointZone = "Azsuna", coordinates = "61.1, 30.4", label = "Ephemeral Crystal" },
        { waypointZone = "Azsuna", coordinates = "64.0, 53.0", label = "Ephemeral Crystal" },
        { waypointZone = "Azsuna", coordinates = "65.4, 29.5", label = "Ephemeral Crystal" },
        { waypointZone = "Azsuna", coordinates = "67.0, 51.9", label = "Ephemeral Crystal" },
        { waypointZone = "Azsuna", coordinates = "68.2, 24.0", label = "Ephemeral Crystal" },
        { waypointZone = "Azsuna", coordinates = "49.0, 58.7", label = "Oceanus Cove southwest entrance" },
        { waypointZone = "Azsuna", coordinates = "48.0, 50.9", label = "Oceanus Cove north entrance" },
        { waypointZone = "Azsuna", coordinates = "50.7, 58.9", label = "Oceanus Cove southeast entrance" },
        { waypointZone = "Azsuna", coordinates = "47.9, 24.8", label = "Leyhollow Cave entrance" }
      },
      guideUrl = "https://www.wowhead.com/guide/reins-of-the-long-forgotten-hippogryph-mount",
      respawn = "2-8 h",
      note = "Ruta base verificada en Wowhead para Long-Forgotten Hippogryph; Oceanus Cove usa un mapa interno, por eso se marcan sus accesos exteriores."
    },
    ["Death Knight class hall campaign"] = {
      location = "Deliverance Point",
      questStart = "Death Knight class mount starter",
      waypointZone = "Broken Shore",
      coordinates = "44.5, 63.0",
      guideUrl = "https://www.wowhead.com/guide/obtaining-legion-class-mounts-4944",
      note = "Completa la campana de clase, Breaching the Tomb y la cadena final de montura."
    },
    ["Paladin class hall campaign"] = {
      location = "Deliverance Point",
      questStart = "Paladin class mount starter",
      waypointZone = "Broken Shore",
      coordinates = "44.5, 63.0",
      guideUrl = "https://www.wowhead.com/guide/obtaining-legion-class-mounts-4944",
      note = "Punto inicial de la cadena para las variantes de Highlord's Charger."
    },
    ["Rogue class hall campaign"] = {
      location = "Deliverance Point",
      questStart = "Rogue class mount starter",
      waypointZone = "Broken Shore",
      coordinates = "44.5, 63.0",
      guideUrl = "https://www.wowhead.com/guide/obtaining-legion-class-mounts-4944",
      note = "Punto inicial de la cadena para las variantes de Shadowblade's Omen."
    },
    ["Monk class hall campaign"] = {
      location = "Deliverance Point",
      questStart = "Monk class mount starter",
      waypointZone = "Broken Shore",
      coordinates = "44.5, 63.0",
      guideUrl = "https://www.wowhead.com/guide/obtaining-legion-class-mounts-4944",
      note = "Completa la campana de clase, Breaching the Tomb y la cadena final de montura."
    },
    ["Warrior class hall campaign"] = {
      location = "Deliverance Point",
      questStart = "Warrior class mount starter",
      waypointZone = "Broken Shore",
      coordinates = "44.5, 63.0",
      guideUrl = "https://www.wowhead.com/guide/obtaining-legion-class-mounts-4944",
      note = "Completa la campana de clase, Breaching the Tomb y la cadena final de montura."
    },
    ["Shaman class hall campaign"] = {
      location = "Deliverance Point",
      questStart = "Shaman class mount starter",
      waypointZone = "Broken Shore",
      coordinates = "44.5, 63.0",
      guideUrl = "https://www.wowhead.com/guide/obtaining-legion-class-mounts-4944",
      note = "Completa la campana de clase, Breaching the Tomb y la cadena final de montura."
    },
    ["Hunter class hall campaign"] = {
      location = "Deliverance Point",
      questStart = "Hunter class mount starter",
      waypointZone = "Broken Shore",
      coordinates = "44.5, 63.0",
      guideUrl = "https://www.wowhead.com/guide/obtaining-legion-class-mounts-4944",
      note = "Punto inicial de la cadena para las variantes de Wolfhawk."
    },
    ["Warlock class hall campaign"] = {
      location = "Deliverance Point",
      questStart = "Warlock class mount starter",
      waypointZone = "Broken Shore",
      coordinates = "44.5, 63.0",
      guideUrl = "https://www.wowhead.com/guide/obtaining-legion-class-mounts-4944",
      note = "Punto inicial de la cadena para las variantes de Wrathsteed."
    },
    ["Priest class hall campaign"] = {
      location = "Deliverance Point",
      questStart = "Priest class mount starter",
      waypointZone = "Broken Shore",
      coordinates = "44.5, 63.0",
      guideUrl = "https://www.wowhead.com/guide/obtaining-legion-class-mounts-4944",
      note = "Completa la campana de clase, Breaching the Tomb y la cadena final de montura."
    },
    ["Mage class hall campaign"] = {
      location = "Deliverance Point",
      questStart = "Mage class mount starter",
      waypointZone = "Broken Shore",
      coordinates = "44.5, 63.0",
      guideUrl = "https://www.wowhead.com/guide/obtaining-legion-class-mounts-4944",
      note = "Completa la campana de clase, Breaching the Tomb y la cadena final de montura."
    },
    ["Demon Hunter class hall campaign"] = {
      location = "Deliverance Point",
      questStart = "Demon Hunter class mount starter",
      waypointZone = "Broken Shore",
      coordinates = "44.5, 63.0",
      guideUrl = "https://www.wowhead.com/guide/obtaining-legion-class-mounts-4944",
      note = "Completa la campana de clase, Breaching the Tomb y la cadena final de montura."
    },
    ["A Tour of Towers"] = {
      location = "Deliverance Point",
      waypointZone = "Broken Shore",
      coordinates = "44.5, 63.0",
      guideUrl = "https://www.wowhead.com/guide/mage-tower-legion-timewalking-rewards-t20-recolor-transmog-fel-werebear",
      note = "Punto de acceso practico al Mage Tower en Broken Shore para completar A Tour of Towers y conseguir Soaring Spelltome."
    },
    ["Farondis Chest"] = {
      location = "Veridis Fallon, Court of Farondis",
      waypointZone = "Azsuna",
      coordinates = "46.8, 41.4",
      guideUrl = "https://www.wowhead.com/npc=107376/veridis-fallon",
      note = "Wowhead marca a Veridis Fallon en Azsuna; aqui se reclama la reputacion de Court of Farondis y su paragon cache."
    },
    ["Dreamweaver Cache"] = {
      location = "Sylvia Hartshorn, Dreamweavers",
      waypointZone = "Val'sharah",
      coordinates = "54.6, 73.2",
      guideUrl = "https://www.wowhead.com/npc=106901/sylvia-hartshorn",
      note = "Wowhead marca a Sylvia Hartshorn en Val'sharah; aqui se reclama la reputacion de Dreamweavers y su paragon cache."
    },
    ["Highmountain Supplies"] = {
      location = "Ransa Greyfeather, Highmountain Tribe",
      waypointZone = "Highmountain",
      coordinates = "38.4, 45.8",
      guideUrl = "https://www.wowhead.com/npc=106902/ransa-greyfeather",
      note = "Wowhead marca a Ransa Greyfeather en Thunder Totem; aqui se reclama la reputacion de Highmountain Tribe y su paragon cache."
    },
    ["Valarjar Strongbox"] = {
      location = "Quartermaster Durnolf, Skyhold",
      waypointZone = "Skyhold",
      coordinates = "56.0, 25.8",
      guideUrl = "https://www.wowhead.com/npc=112392/quartermaster-durnolf",
      note = "Wowhead marca a Quartermaster Durnolf en Skyhold; aqui se reclama la reputacion de Valarjar y su paragon cache."
    },
    ["Nightfallen Cache"] = {
      location = "First Arcanist Thalyssra, Shal'Aran",
      waypointZone = "Suramar",
      coordinates = "36.8, 46.6",
      guideUrl = "https://www.wowhead.com/npc=97140/first-arcanist-thalyssra",
      note = "Wowhead marca a First Arcanist Thalyssra en Shal'Aran; este es el hub practico para la reputacion de The Nightfallen y su paragon cache."
    },
    ["Kosumoth the Hungering"] = { location = "World quest", waypointZone = "Eye of Azshara", coordinates = "46.0, 49.0", respawn = "World quest activa", macro = "/target Kosumoth the Hungering" },
    ["Xur'ios"] = { location = "Vaultkeeper of the Void", waypointZone = "Dalaran (Broken Isles)", coordinates = "48.6, 14.2" },
    ["The Mad Merchant"] = { location = "The Wonderworks", waypointZone = "Dalaran (Broken Isles)", coordinates = "43.2, 46.6" },
    ["Underbelly Tycoon"] = {
      location = "Acceso a The Underbelly",
      waypointZone = "Dalaran (Broken Isles)",
      coordinates = "60.2, 48.3",
      note = "Punto de entrada al inframundo de Dalaran para Ratstallion."
    },
    ["Conjurer Margoss"] = {
      location = "Acceso a The Underbelly",
      waypointZone = "Dalaran (Broken Isles)",
      coordinates = "60.2, 48.3",
      guideUrl = "https://www.wowhead.com/npc=108825/conjurer-margoss",
      note = "Wowhead confirma que los Swirling Whorl para Emblem of Margoss estan alrededor de la Black Market Auction House en The Underbelly; usa el emblema para teletransportarte al vendor."
    },
    ["Volpin the Elusive"] = {
      location = "Entrada a Shal'Aran",
      waypointZone = "Suramar",
      coordinates = "35.1, 47.5",
      note = "Punto de inicio practico para la cadena de Llothien Prowler."
    },
    ["Bloodgazer Hatchling"] = {
      location = "Orphaned Bloodgazer",
      waypointZone = "Azsuna",
      coordinates = "35.5, 7.5",
      routeWaypoints = {
        { waypointZone = "Azsuna", coordinates = "35.6, 5.7", label = "Bloodgazer Matriarch" },
        { waypointZone = "Azsuna", coordinates = "35.5, 7.5", label = "Orphaned Bloodgazer" },
        { waypointZone = "Azsuna", coordinates = "47.2, 41.4", label = "Nalysse Dawnsorrow" }
      },
      guideUrl = "https://www.wowhead.com/item=137577/predatory-bloodgazer",
      note = "Mata a Bloodgazer Matriarch, recoge el orphan y dale Azsunian Grapes para iniciar la cadena de montura."
    },
    ["Snowfeather Hatchling"] = {
      location = "Orphaned Snowfeather",
      waypointZone = "Highmountain",
      coordinates = "32.5, 28.2",
      routeWaypoints = {
        { waypointZone = "Highmountain", coordinates = "35.1, 21.9", label = "Snowfeather Matriarch" },
        { waypointZone = "Highmountain", coordinates = "32.5, 28.2", label = "Orphaned Snowfeather" },
        { waypointZone = "Highmountain", coordinates = "29.8, 40.0", label = "Marius Felbane" }
      },
      guideUrl = "https://www.wowhead.com/item=137578/snowfeather-hunter",
      note = "Mata a Snowfeather Matriarch, recoge el orphan y dale Smoked Elderhorn para iniciar la cadena de montura."
    },
    ["Direbeak Hatchling"] = {
      location = "Orphaned Direbeak",
      waypointZone = "Stormheim",
      coordinates = "79.8, 69.6",
      routeWaypoints = {
        { waypointZone = "Stormheim", coordinates = "79.0, 76.0", label = "Direbeak Matriarch" },
        { waypointZone = "Stormheim", coordinates = "79.8, 69.6", label = "Orphaned Direbeak" },
        { waypointZone = "Stormheim", coordinates = "71.6, 60.6", label = "Steward Dayton" }
      },
      guideUrl = "https://www.wowhead.com/item=137579/brilliant-direbeak",
      note = "Mata a Direbeak Matriarch, recoge el orphan y dale Pungent Vrykul Gamalost para iniciar la cadena de montura."
    },
    ["Sharptalon Hatchling"] = {
      location = "Orphaned Sharptalon",
      waypointZone = "Val'sharah",
      coordinates = "47.0, 10.5",
      routeWaypoints = {
        { waypointZone = "Val'sharah", coordinates = "48.0, 9.8", label = "Sharptalon Matriarch" },
        { waypointZone = "Val'sharah", coordinates = "47.0, 10.5", label = "Orphaned Sharptalon" },
        { waypointZone = "Dalaran (Broken Isles)", coordinates = "52.6, 34.4", label = "Fialla Sweetberry" }
      },
      guideUrl = "https://www.wowhead.com/item=137580/viridian-sharptalon",
      note = "Mata a Sharptalon Matriarch, recoge el orphan y dale Dried Bilberries para iniciar la cadena de montura."
    },
    ["Talon's Vengeance"] = {
      location = "Trinket, Sylvan Falls",
      waypointZone = "Highmountain",
      coordinates = "32.4, 66.8",
      guideUrl = "https://www.wowhead.com/item=142369/ivory-hawkstrider",
      note = "Presenta cualquier falcosaur mount terminada ante Aviana en Sylvan Falls y luego compra Ivory Hawkstrider a Trinket al llegar a Exalted."
    },
    ["Toraan the Revered"] = {
      location = "Vindicaar, emisario de Argussian Reach",
      waypointZone = "Krokuun",
      coordinates = "68.1, 57.0"
    },
    ["Vindicator Jaelaana"] = {
      location = "Vindicaar, emisaria de Army of the Light",
      waypointZone = "Krokuun",
      coordinates = "43.3, 74.0"
    },
    ["Gleaming Footlocker"] = {
      location = "Vindicaar, cache de Army of the Light",
      waypointZone = "Krokuun",
      coordinates = "43.3, 74.0",
      note = "La cache de parangon se recoge con la emisaria de Army of the Light."
    },
    ["Skreeg the Devourer"] = {
      location = "Punto de aparicion",
      waypointZone = "Mac'Aree",
      coordinates = "49.8, 9.3",
      respawn = "Variable",
      macro = "/target Skreeg the Devourer"
    },
    ["Blistermaw"] = {
      location = "Punto de aparicion",
      waypointZone = "Antoran Wastes",
      coordinates = "61.8, 36.9",
      respawn = "Variable",
      macro = "/target Blistermaw"
    },
    ["Vrax'thul"] = {
      location = "Punto de aparicion",
      waypointZone = "Antoran Wastes",
      coordinates = "53.0, 36.0",
      respawn = "Variable",
      macro = "/target Vrax'thul"
    },
    ["Houndmaster Kerrax"] = {
      location = "Punto de aparicion",
      waypointZone = "Antoran Wastes",
      coordinates = "64.0, 21.8",
      respawn = "Variable",
      macro = "/target Houndmaster Kerrax"
    },
    ["Fel-Spotted Egg"] = {
      location = "Ruta corta de rares",
      waypointZone = "Antoran Wastes",
      coordinates = "64.3, 48.2",
      routeWaypoints = {
        { waypointZone = "Antoran Wastes", coordinates = "64.3, 48.2", label = "Varga" },
        { waypointZone = "Mac'Aree", coordinates = "38.6, 55.6", label = "Kaara the Pale" },
        { waypointZone = "Mac'Aree", coordinates = "43.8, 48.2", label = "Sabuul" },
        { waypointZone = "Krokuun", coordinates = "70.8, 33.4", label = "Naroua" }
      },
      guideUrl = "https://www.wowhead.com/item=153190/fel-spotted-egg",
      note = "Ruta base con cuatro rares populares de Wowhead para farmear Fel-Spotted Egg y las cuatro Mana Rays."
    },
    ["Darkmoon Faire"] = {
      location = "Lhara",
      waypointZone = "Darkmoon Island",
      coordinates = "48.4, 69.6",
      note = "Vendor principal para Darkwater Skate y Darkmoon Dirigible."
    },
    ["Legion Archaeology biweekly quest"] = {
      location = "Spirit of Eche'ro, Highmountain",
      waypointZone = "Highmountain",
      coordinates = "64.6, 50.5",
      guideUrl = "https://www.wowhead.com/npc=103730/spirit-of-echero",
      note = "Wowhead vincula Spirit of Eche'ro al quest arqueologico Laying to Rest; este waypoint lleva al espiritu en Highmountain cuando la mision esta activa."
    },
    ["Page riddle secret"] = {
      location = "Ruta abreviada de paginas",
      waypointZone = "Dalaran (Broken Isles)",
      coordinates = "48.8, 42.0",
      routeWaypoints = {
        { waypointZone = "Dalaran (Broken Isles)", coordinates = "48.8, 42.0", label = "Page 9" },
        { waypointZone = "Duskwood", coordinates = "49.2, 34.0", label = "Page 78" },
        { waypointZone = "Uldum", coordinates = "70.4, 78.0", label = "Page 655" },
        { waypointZone = "Kun-Lai Summit", coordinates = "34.6, 50.8", label = "Page 2351" },
        { waypointZone = "Uldum", coordinates = "76.4, 53.6", label = "Page 5555" },
        { waypointZone = "Deadwind Pass", coordinates = "30.4, 27.4", label = "Gift of the Mind-Seekers" }
      },
      guideUrl = "https://www.wowhead.com/guide/riddlers-mind-worm-secret-mount",
      note = "Ruta principal de paginas y del regalo final para Riddler's Mind-Worm, resumida desde los /way de Wowhead."
    },
    ["Endless Halls secret"] = {
      location = "Ruta abreviada del secreto",
      waypointZone = "Dalaran (Broken Isles)",
      coordinates = "48.5, 57.5",
      routeWaypoints = {
        { waypointZone = "Dalaran (Broken Isles)", coordinates = "48.5, 57.5", label = "Curiosities and Moore - First Note" },
        { waypointZone = "The Storm Peaks", coordinates = "41.2, 21.7", label = "Ulduar Entrance - Second Note" },
        { waypointZone = "Silithus", coordinates = "46.8, 7.5", label = "AQ40 Entrance - Third Note" },
        { waypointZone = "Deepholm", coordinates = "58.2, 25.5", label = "Crumbling Depths Entrance" },
        { waypointZone = "Deepholm", coordinates = "63.8, 22.5", label = "Dark Fissure - Fourth Note" },
        { waypointZone = "Dun Morogh", coordinates = "31.0, 37.4", label = "Gnomeregan Entrance - Fifth Note" },
        { waypointZone = "Val'sharah", coordinates = "66.5, 36.0", label = "Val'sharah House - Sixth Note" },
        { waypointZone = "Kun-Lai Summit", coordinates = "53.3, 49.3", label = "Urn of Ashes - Seventh Note" },
        { waypointZone = "Deadwind Pass", coordinates = "39.8, 73.6", label = "Forgotten Crypt - Lucid Nightmare" }
      },
      guideUrl = "https://www.wowhead.com/guide/lucid-nightmare-secret-mount",
      note = "Ruta principal del secreto de Lucid Nightmare basada en los /way de Wowhead; el tramo del Endless Halls sigue dentro de la instancia."
    },
    ["Glory of the Legion Hero"] = {
      location = "Ruta de entradas de mazmorras",
      waypointZone = "Dalaran",
      coordinates = "66.0, 68.0",
      routeWaypoints = {
        { waypointZone = "Dalaran", coordinates = "66.0, 68.0", label = "Violet Hold" },
        { waypointZone = "Highmountain", coordinates = "50.0, 68.0", label = "Neltharion's Lair" },
        { waypointZone = "Stormheim", coordinates = "68.0, 66.0", label = "Halls of Valor" },
        { waypointZone = "Stormheim", coordinates = "53.0, 47.0", label = "Maw of Souls" },
        { waypointZone = "Val'sharah", coordinates = "59.0, 31.0", label = "Darkheart Thicket" },
        { waypointZone = "Val'sharah", coordinates = "39.0, 53.0", label = "Black Rook Hold" },
        { waypointZone = "Azsuna", coordinates = "62.0, 41.0", label = "Eye of Azshara" },
        { waypointZone = "Azsuna", coordinates = "48.0, 83.0", label = "Vault of the Wardens" },
        { waypointZone = "Suramar", coordinates = "51.0, 65.0", label = "Court of Stars" },
        { waypointZone = "Suramar", coordinates = "51.0, 65.0", label = "The Arcway" }
      },
      guideUrl = "https://www.wowhead.com/guide/dungeon-and-raid-entrances-8974",
      note = "Ruta de las 10 entradas necesarias para Glory of the Legion Hero, usando las coordenadas de entradas de mazmorras publicadas por Wowhead."
    },
    ["Glory of the Legion Raider"] = {
      location = "Ruta de bandas base",
      waypointZone = "Val'sharah",
      coordinates = "57.0, 40.0",
      routeWaypoints = {
        { waypointZone = "Val'sharah", coordinates = "57.0, 40.0", label = "The Emerald Nightmare" },
        { waypointZone = "Suramar", coordinates = "46.0, 64.6", label = "Acceso exterior de The Nighthold" },
        { waypointZone = "Suramar", coordinates = "44.0, 60.0", label = "The Nighthold" }
      },
      guideUrl = "https://www.wowhead.com/guide/dungeon-and-raid-entrances-8974",
      note = "Ruta base para las dos bandas requeridas por Glory of the Legion Raider, con entradas verificadas en Wowhead."
    },
    ["Wrangler Kravos"] = { location = "Punto de aparicion", waypointZone = "Mac'Aree", coordinates = "55.6, 59.0", respawn = "Variable", macro = "/target Wrangler Kravos" },
    ["Venorn"] = { location = "Punto de aparicion", waypointZone = "Mac'Aree", coordinates = "66.4, 54.0", respawn = "Variable", macro = "/target Venorn" },
    ["Kua'fon questline"] = {
      location = "Huevo de Kua'fon",
      waypointZone = "Zuldazar",
      coordinates = "70.6, 51.0",
      note = "Punto de inicio para la cadena diaria de Kua'fon."
    },
    ["Torcali questline"] = {
      location = "Inicio de Child of Torcali",
      waypointZone = "Zuldazar",
      coordinates = "68.2, 41.7",
      note = "Punto de inicio para la cadena diaria de Child of Torcali."
    },
    ["Adherent of the Abyss"] = {
      location = "Punto de invocacion",
      waypointZone = "Stormsong Valley",
      coordinates = "46.5, 36.1",
      respawn = "Requiere Abyssal Fragment",
      macro = "/target Adherent of the Abyss",
      note = "Usa Abyssal Fragments para invocar al rare."
    },
    ["Soundless"] = { location = "Punto de aparicion", waypointZone = "Nazjatar", coordinates = "58.7, 49.7", respawn = "2-8 h", macro = "/target Soundless" },
    ["Arachnoid Harvester"] = { location = "Punto de aparicion", waypointZone = "Mechagon", coordinates = "52.6, 41.4", respawn = "Variable", macro = "/target Arachnoid Harvester" },
    ["Rustfeather"] = { location = "Punto de aparicion", waypointZone = "Mechagon", coordinates = "65.6, 78.5", respawn = "Variable", macro = "/target Rustfeather" },
    ["Battle for Azeroth Pathfinder, Part Two"] = {
      location = "Ruta base de Pathfinder Part Two",
      waypointZone = "Boralus",
      coordinates = "67.5, 21.6",
      routeWaypoints = {
        { waypointZone = "Boralus", coordinates = "67.5, 21.6", label = "Kul Tiras / Boralus" },
        { waypointZone = "Zuldazar", coordinates = "58.4, 44.4", label = "Zandalar / Great Seal" },
        { waypointZone = "Nazjatar", coordinates = "37.8, 55.7", label = "Nazjatar" },
        { waypointZone = "Mechagon", coordinates = "73.7, 36.9", label = "Mechagon" }
      },
      guideUrl = "https://www.wowhead.com/achievement=13250/battle-for-azeroth-pathfinder-part-two",
      note = "Ruta base hacia las cuatro zonas necesarias para Battle for Azeroth Pathfinder, Part Two."
    },
    ["Battle for Azeroth Keystone Master: Season Four"] = {
      location = "Timelost Saddle vendor",
      waypointZone = "Dornogal",
      coordinates = "53.8, 39.0",
      routeWaypoints = {
        { waypointZone = "Dornogal", coordinates = "53.8, 39.0", label = "Dornogal vendor" },
        { waypointZone = "Valdrakken", coordinates = "53.0, 56.8", label = "Valdrakken vendor" },
        { waypointZone = "Silvermoon City", coordinates = "42.2, 58.4", label = "Silvermoon City vendor" }
      },
      guideUrl = "https://www.wowhead.com/item=174836/awakened-mindborer",
      note = "La pagina del item en Wowhead confirma vendor locations activas en Dornogal, Valdrakken y Silvermoon City."
    },
    ["Aithlyn"] = {
      location = "Heart of the Forest",
      waypointZone = "Ardenweald",
      coordinates = "48.4, 50.4",
      guideUrl = "https://www.wowhead.com/npc=158556/aithlyn",
      note = "Wowhead situa a Aithlyn en Heart of the Forest, Ardenweald."
    },
    ["Master Clerk Salorn"] = {
      location = "Ardenweald quartermaster area",
      waypointZone = "Ardenweald",
      coordinates = "43.0, 47.0",
      guideUrl = "https://www.wowhead.com/npc=163714/master-clerk-salorn",
      note = "Coordenadas verificadas en la pagina de Wowhead de Master Clerk Salorn."
    },
    ["Spindlenose"] = {
      location = "Night Fae covenant vendor",
      waypointZone = "Ardenweald",
      coordinates = "59.4, 52.8",
      guideUrl = "https://www.wowhead.com/npc=162447/spindlenose",
      note = "Coordenadas verificadas en la pagina de Wowhead de Spindlenose."
    },
    ["Elwyn"] = {
      location = "Heart of the Forest",
      waypointZone = "Ardenweald",
      coordinates = "59.2, 34.6",
      guideUrl = "https://www.wowhead.com/npc=174914/elwyn",
      note = "Wowhead situa a Elwyn en Heart of the Forest."
    },
    ["The Wild Hunt paragon cache"] = {
      location = "Aithlyn, Heart of the Forest",
      waypointZone = "Ardenweald",
      coordinates = "48.4, 50.4",
      guideUrl = "https://www.wowhead.com/npc=158556/aithlyn",
      note = "Punto practico del quartermaster de The Wild Hunt para la reputacion y su cache paragon."
    },
    ["Night Fae Renown"] = {
      location = "Heart of the Forest",
      waypointZone = "Ardenweald",
      coordinates = "48.4, 50.4",
      guideUrl = "https://www.wowhead.com/npc=158556/aithlyn",
      note = "Hub practico de Night Fae en Heart of the Forest para recompensas de renown."
    },
    ["Night Fae campaign"] = {
      location = "Heart of the Forest",
      waypointZone = "Ardenweald",
      coordinates = "48.4, 50.4",
      guideUrl = "https://www.wowhead.com/npc=158556/aithlyn",
      note = "Hub practico de Night Fae en Heart of the Forest para progreso de campana."
    },
    ["Night Fae covenant feature"] = {
      location = "Heart of the Forest",
      waypointZone = "Ardenweald",
      coordinates = "48.4, 50.4",
      guideUrl = "https://www.wowhead.com/npc=158556/aithlyn",
      note = "Hub practico de Night Fae en Heart of the Forest para recompensas de funciones de curia."
    },
    ["Adjutant Nikos"] = {
      location = "The Ascended quartermaster area",
      waypointZone = "Bastion",
      coordinates = "52.2, 47.0",
      guideUrl = "https://www.wowhead.com/npc=160470/adjutant-nikos",
      note = "Coordenadas verificadas en la pagina de Wowhead de Adjutant Nikos."
    },
    ["Adjutant Galos"] = {
      location = "Elysian Hold",
      waypointZone = "Bastion",
      coordinates = "67.4, 15.0",
      guideUrl = "https://www.wowhead.com/npc=174937/adjutant-galos",
      note = "Wowhead situa a Adjutant Galos en Elysian Hold, Bastion."
    },
    ["Kyrian Renown"] = {
      location = "Elysian Hold",
      waypointZone = "Bastion",
      coordinates = "67.4, 15.0",
      guideUrl = "https://www.wowhead.com/npc=174937/adjutant-galos",
      note = "Hub practico de Kyrian en Elysian Hold para recompensas de renown."
    },
    ["Kyrian campaign"] = {
      location = "Elysian Hold",
      waypointZone = "Bastion",
      coordinates = "67.4, 15.0",
      guideUrl = "https://www.wowhead.com/npc=174937/adjutant-galos",
      note = "Hub practico de Kyrian en Elysian Hold para progreso de campana."
    },
    ["Kyrian covenant feature"] = {
      location = "Elysian Hold",
      waypointZone = "Bastion",
      coordinates = "67.4, 15.0",
      guideUrl = "https://www.wowhead.com/npc=174937/adjutant-galos",
      note = "Hub practico de Kyrian en Elysian Hold para recompensas de funciones de curia."
    },
    ["Nalcorn Talsen"] = {
      location = "Maldraxxus quartermaster area",
      waypointZone = "Maldraxxus",
      coordinates = "50.6, 53.4",
      guideUrl = "https://www.wowhead.com/npc=173003/nalcorn-talsen",
      note = "Coordenadas verificadas en la pagina de Wowhead de Nalcorn Talsen."
    },
    ["Su Zettai"] = {
      location = "Seat of the Primus",
      waypointZone = "Maldraxxus",
      coordinates = "51.4, 40.6",
      guideUrl = "https://www.wowhead.com/npc=172176/su-zettai",
      note = "Wowhead situa a Su Zettai en Seat of the Primus."
    },
    ["The Undying Army paragon cache"] = {
      location = "Nalcorn Talsen",
      waypointZone = "Maldraxxus",
      coordinates = "50.6, 53.4",
      guideUrl = "https://www.wowhead.com/npc=173003/nalcorn-talsen",
      note = "Punto practico del quartermaster de The Undying Army para la reputacion y su cache paragon."
    },
    ["Necrolord Renown"] = {
      location = "Seat of the Primus",
      waypointZone = "Maldraxxus",
      coordinates = "51.4, 40.6",
      guideUrl = "https://www.wowhead.com/npc=172176/su-zettai",
      note = "Hub practico de Necrolord en Seat of the Primus para recompensas de renown."
    },
    ["Necrolord campaign"] = {
      location = "Seat of the Primus",
      waypointZone = "Maldraxxus",
      coordinates = "51.4, 40.6",
      guideUrl = "https://www.wowhead.com/npc=172176/su-zettai",
      note = "Hub practico de Necrolord en Seat of the Primus para progreso de campana."
    },
    ["Necrolord covenant feature"] = {
      location = "Seat of the Primus",
      waypointZone = "Maldraxxus",
      coordinates = "51.4, 40.6",
      guideUrl = "https://www.wowhead.com/npc=172176/su-zettai",
      note = "Hub practico de Necrolord en Seat of the Primus para recompensas de funciones de curia."
    },
    ["Mistress Mihaela"] = {
      location = "Court of Harvesters quartermaster area",
      waypointZone = "Revendreth",
      coordinates = "61.4, 63.8",
      guideUrl = "https://www.wowhead.com/npc=156822/mistress-mihaela",
      note = "Coordenadas verificadas en la pagina de Wowhead de Mistress Mihaela."
    },
    ["Chachi the Artiste"] = {
      location = "Sinfall",
      waypointZone = "Revendreth",
      coordinates = "53.4, 24.4",
      guideUrl = "https://www.wowhead.com/npc=174710/chachi-the-artiste",
      note = "Wowhead situa a Chachi the Artiste en Sinfall."
    },
    ["Venthyr Renown"] = {
      location = "Sinfall",
      waypointZone = "Revendreth",
      coordinates = "53.4, 24.4",
      guideUrl = "https://www.wowhead.com/npc=174710/chachi-the-artiste",
      note = "Hub practico de Venthyr en Sinfall para recompensas de renown."
    },
    ["Venthyr campaign"] = {
      location = "Sinfall",
      waypointZone = "Revendreth",
      coordinates = "53.4, 24.4",
      guideUrl = "https://www.wowhead.com/npc=174710/chachi-the-artiste",
      note = "Hub practico de Venthyr en Sinfall para progreso de campana."
    },
    ["Venthyr covenant feature"] = {
      location = "Sinfall",
      waypointZone = "Revendreth",
      coordinates = "53.4, 24.4",
      guideUrl = "https://www.wowhead.com/npc=174710/chachi-the-artiste",
      note = "Hub practico de Venthyr en Sinfall para recompensas de funciones de curia."
    },
    ["Duchess Mynx"] = {
      location = "Death's Advance quartermaster",
      waypointZone = "Korthia",
      coordinates = "63.4, 23.4",
      guideUrl = "https://www.wowhead.com/npc=179321/duchess-mynx",
      note = "Coordenadas verificadas en la pagina de Wowhead de Duchess Mynx."
    },
    ["Archivist Roh-Suir"] = {
      location = "Archivists' Codex quartermaster",
      waypointZone = "Korthia",
      coordinates = "61.4, 21.8",
      guideUrl = "https://www.wowhead.com/npc=178257/archivist-roh-suir",
      note = "Coordenadas verificadas en la pagina de Wowhead de Archivist Roh-Suir."
    },
    ["Death's Advance paragon cache"] = {
      location = "Duchess Mynx",
      waypointZone = "Korthia",
      coordinates = "63.4, 23.4",
      guideUrl = "https://www.wowhead.com/npc=179321/duchess-mynx",
      note = "Punto practico de Death's Advance para la reputacion y su cache paragon."
    },
    ["The Archivists' Codex paragon cache"] = {
      location = "Archivist Roh-Suir",
      waypointZone = "Korthia",
      coordinates = "61.4, 21.8",
      guideUrl = "https://www.wowhead.com/npc=178257/archivist-roh-suir",
      note = "Punto practico de Archivists' Codex para la reputacion y su cache paragon."
    },
    ["Darkmaul"] = {
      location = "Punto de aparicion",
      waypointZone = "Korthia",
      coordinates = "42.4, 33.2",
      guideUrl = "https://www.wowhead.com/npc=180063/darkmaul",
      macro = "/target Darkmaul",
      note = "Coordenadas verificadas en la pagina de Wowhead de Darkmaul."
    },
    ["Dusklight Matriarch"] = {
      location = "Punto de aparicion",
      waypointZone = "Korthia",
      coordinates = "25.4, 51.0",
      guideUrl = "https://www.wowhead.com/npc=179871/dusklight-matriarch",
      macro = "/target Dusklight Matriarch",
      note = "Coordenadas verificadas en la pagina de Wowhead de Dusklight Matriarch."
    },
    ["Breaking the Chains"] = {
      location = "Korthia hub",
      waypointZone = "Korthia",
      coordinates = "63.4, 23.4",
      guideUrl = "https://www.wowhead.com/achievement=15035/breaking-the-chains",
      note = "Meta-achievement de Korthia; este punto sirve como hub practico para la mayoria de sus objetivos."
    },
    ["Vilo"] = {
      location = "The Enlightened quartermaster",
      waypointZone = "Zereth Mortis",
      coordinates = "34.8, 64.2",
      guideUrl = "https://www.wowhead.com/npc=182257/vilo",
      note = "Coordenadas verificadas en la pagina de Wowhead de Vilo."
    },
    ["Shadowlands Keystone Master: Season One"] = {
      location = "Timelost Saddle vendor",
      waypointZone = "Dornogal",
      coordinates = "53.8, 39.0",
      routeWaypoints = {
        { waypointZone = "Dornogal", coordinates = "53.8, 39.0", label = "Dornogal vendor" },
        { waypointZone = "Valdrakken", coordinates = "53.0, 56.8", label = "Valdrakken vendor" },
        { waypointZone = "Silvermoon City", coordinates = "42.2, 58.4", label = "Silvermoon City vendor" }
      },
      guideUrl = "https://www.wowhead.com/item=182717/sintouched-deathwalker",
      note = "La pagina del item en Wowhead muestra las ubicaciones activas del sistema Timelost Saddle."
    },
    ["Shadowlands Keystone Master: Season Two"] = {
      location = "Timelost Saddle vendor",
      waypointZone = "Dornogal",
      coordinates = "53.8, 39.0",
      routeWaypoints = {
        { waypointZone = "Dornogal", coordinates = "53.8, 39.0", label = "Dornogal vendor" },
        { waypointZone = "Valdrakken", coordinates = "53.0, 56.8", label = "Valdrakken vendor" },
        { waypointZone = "Silvermoon City", coordinates = "42.2, 58.4", label = "Silvermoon City vendor" }
      },
      guideUrl = "https://www.wowhead.com/item=192557/restoration-deathwalker",
      note = "La pagina del item en Wowhead muestra las ubicaciones activas del sistema Timelost Saddle."
    },
    ["Shadowlands Keystone Master: Season Three"] = {
      location = "Timelost Saddle vendor",
      waypointZone = "Dornogal",
      coordinates = "53.8, 39.0",
      routeWaypoints = {
        { waypointZone = "Dornogal", coordinates = "53.8, 39.0", label = "Dornogal vendor" },
        { waypointZone = "Valdrakken", coordinates = "53.0, 56.8", label = "Valdrakken vendor" },
        { waypointZone = "Silvermoon City", coordinates = "42.2, 58.4", label = "Silvermoon City vendor" }
      },
      guideUrl = "https://www.wowhead.com/item=187682/wastewarped-deathwalker",
      note = "La pagina del item en Wowhead muestra las ubicaciones activas del sistema Timelost Saddle."
    },
    ["Shadowlands Keystone Master: Season Four"] = {
      location = "Timelost Saddle vendor",
      waypointZone = "Dornogal",
      coordinates = "53.8, 39.0",
      routeWaypoints = {
        { waypointZone = "Dornogal", coordinates = "53.8, 39.0", label = "Dornogal vendor" },
        { waypointZone = "Valdrakken", coordinates = "53.0, 56.8", label = "Valdrakken vendor" },
        { waypointZone = "Silvermoon City", coordinates = "42.2, 58.4", label = "Silvermoon City vendor" }
      },
      guideUrl = "https://www.wowhead.com/item=187525/soultwisted-deathwalker",
      note = "La pagina del item en Wowhead muestra las ubicaciones activas del sistema Timelost Saddle."
    },
    ["Conqueror of Azeroth"] = {
      alliance = {
        location = "Thaumaturge Vashreen",
        waypointZone = "Boralus",
        coordinates = "71.6, 13.6",
        guideUrl = "https://www.wowhead.com/item=163577/conquerors-scythemaw",
        note = "Comentarios de Wowhead indican que Conqueror's Scythemaw llega por correo de Thaumaturge Vashreen tras completar Conqueror of Azeroth."
      },
      horde = {
        location = "Thaumaturge Vashreen",
        waypointZone = "Dazar'alor",
        coordinates = "54.0, 88.4",
        guideUrl = "https://www.wowhead.com/item=163577/conquerors-scythemaw",
        note = "Comentarios de Wowhead indican que Conqueror's Scythemaw llega por correo de Thaumaturge Vashreen tras completar Conqueror of Azeroth."
      }
    },
    ["Provisioner Fray"] = {
      location = "Harbormaster's Office",
      waypointZone = "Boralus",
      coordinates = "67.5, 21.6",
      guideUrl = "https://www.wowhead.com/npc=135808/provisioner-fray",
      note = "Comentarios de Wowhead fijan a Provisioner Fray en 67.5, 21.6 dentro de la Harbormaster's Office de Boralus."
    },
    ["Hoarder Jena"] = {
      location = "Vulpera Hideaway",
      waypointZone = "Vol'dun",
      coordinates = "56.7, 49.8",
      guideUrl = "https://www.wowhead.com/npc=135804/hoarder-jena",
      note = "Coordenadas verificadas en la recopilacion de comments de Wowhead para los vendors de reputacion de BFA."
    },
    ["Provisioner Lija"] = {
      location = "Zul'jan Ruins",
      waypointZone = "Nazmir",
      coordinates = "39.1, 79.5",
      guideUrl = "https://www.wowhead.com/npc=135459/provisioner-lija",
      note = "Coordenadas verificadas en la recopilacion de comments de Wowhead para los vendors de reputacion de BFA."
    },
    ["Natal'hakata"] = {
      location = "The Great Seal",
      waypointZone = "Zuldazar",
      coordinates = "58.4, 44.4",
      guideUrl = "https://www.wowhead.com/npc=131287/natalhakata",
      note = "Coordenadas verificadas en la recopilacion de comments de Wowhead para los vendors de reputacion de BFA."
    },
    ["Sister Lilyana"] = {
      location = "Brennadam",
      waypointZone = "Stormsong Valley",
      coordinates = "59.3, 69.4",
      guideUrl = "https://www.wowhead.com/npc=135800/sister-lilyana",
      note = "Coordenadas verificadas en la recopilacion de comments de Wowhead para los vendors de reputacion de BFA."
    },
    ["Quartermaster Alcorn"] = {
      location = "Arom's Stand",
      waypointZone = "Drustvar",
      coordinates = "37.8, 49.0",
      guideUrl = "https://www.wowhead.com/npc=135815/quartermaster-alcorn",
      note = "Coordenadas verificadas en la recopilacion de comments de Wowhead para los vendors de reputacion de BFA."
    },
    ["Artisan Itanu"] = {
      location = "Mezzamere inn building",
      waypointZone = "Nazjatar",
      coordinates = "37.8, 55.7",
      guideUrl = "https://www.wowhead.com/npc=153510/artisan-itanu",
      note = "Comentarios de Wowhead sitúan a Artisan Itanu dentro del edificio de la posada de Mezzamere."
    },
    ["Gottum"] = {
      location = "Cueva de The Frogmarsh",
      waypointZone = "Nazmir",
      coordinates = "70.9, 56.5",
      routeWaypoints = {
        { waypointZone = "Nazmir", coordinates = "71.2, 55.3", label = "Entrada de la cueva" },
        { waypointZone = "Nazmir", coordinates = "70.9, 56.5", label = "Gottum" }
      },
      guideUrl = "https://www.wowhead.com/npc=148810/gottum",
      note = "Comentarios de Wowhead verifican la cueva de Gottum y su acceso en The Frogmarsh."
    },
    ["Mrrl"] = {
      location = "Mezzamere",
      waypointZone = "Nazjatar",
      coordinates = "39.1, 54.3",
      guideUrl = "https://www.wowhead.com/npc=152084/mrrl",
      note = "Comentarios de Wowhead sitúan a Mrrl en Mezzamere para la cadena secreta del mount vendor."
    },
    ["Stolen Royal Vendorbot"] = {
      location = "Rustbolt, junto al portal de Operation: Mechagon",
      waypointZone = "Mechagon",
      coordinates = "73.7, 36.9",
      guideUrl = "https://www.wowhead.com/npc=150716/stolen-royal-vendorbot",
      note = "Wowhead sitúa al vendor en Rustbolt, pegado al portal de Operation: Mechagon."
    },
    ["Friendly alpaca"] = {
      location = "Ruta de spawn de Friendly Alpaca",
      waypointZone = "Uldum",
      coordinates = "55.0, 68.6",
      routeWaypoints = {
        { waypointZone = "Uldum", coordinates = "55.0, 68.6", label = "Friendly Alpaca" },
        { waypointZone = "Uldum", coordinates = "46.8, 47.8", label = "Friendly Alpaca" },
        { waypointZone = "Uldum", coordinates = "53.0, 18.9", label = "Friendly Alpaca" },
        { waypointZone = "Uldum", coordinates = "70.0, 39.0", label = "Friendly Alpaca" }
      },
      guideUrl = "https://www.wowhead.com/npc=162765/friendly-alpaca",
      note = "Ruta corta de puntos de spawn tomada de comentarios de Wowhead para Springfur Alpaca."
    },
    ["Elusive Quickhoof"] = {
      location = "Ruta de spawn de Elusive Quickhoof",
      waypointZone = "Vol'dun",
      coordinates = "42.5, 61.3",
      routeWaypoints = {
        { waypointZone = "Vol'dun", coordinates = "42.5, 61.3", label = "Elusive Quickhoof" },
        { waypointZone = "Vol'dun", coordinates = "50.8, 86.1", label = "Elusive Quickhoof" },
        { waypointZone = "Vol'dun", coordinates = "55.5, 67.5", label = "Elusive Quickhoof" }
      },
      guideUrl = "https://www.wowhead.com/npc=162681/elusive-quickhoof",
      note = "Ruta breve reunida de comentarios de Wowhead para las posiciones conocidas de Elusive Quickhoof."
    },
    ["Frightened Kodo"] = {
      location = "Ruta corta de spawn",
      waypointZone = "Darkshore",
      coordinates = "43.8, 67.5",
      routeWaypoints = {
        { waypointZone = "Darkshore", coordinates = "41.3, 65.5", label = "Frightened Kodo" },
        { waypointZone = "Darkshore", coordinates = "43.8, 67.5", label = "Frightened Kodo" },
        { waypointZone = "Darkshore", coordinates = "44.0, 66.0", label = "Frightened Kodo" }
      },
      guideUrl = "https://www.wowhead.com/npc=148790/frightened-kodo",
      note = "Puntos de spawn reunidos de comentarios de Wowhead para Frightened Kodo."
    },
    ["Dunegorger Kraulok"] = { location = "Punto de aparicion", waypointZone = "Vol'dun", coordinates = "44.6, 55.5", respawn = "Jefe del mundo activo", macro = "/target Dunegorger Kraulok" },
    ["Doomrider Helgrim"] = { location = "Punto de aparicion", waypointZone = "Arathi Highlands", coordinates = "53.8, 58.2", respawn = "Variable", macro = "/target Doomrider Helgrim" },
    ["Knight-Captain Aldrin"] = { location = "Punto de aparicion", waypointZone = "Arathi Highlands", coordinates = "49.0, 40.0", respawn = "Variable", macro = "/target Knight-Captain Aldrin" },
    ["Beastrider Kama"] = { location = "Punto de aparicion", waypointZone = "Arathi Highlands", coordinates = "65.3, 70.6", respawn = "Variable", macro = "/target Beastrider Kama" },
    ["Nimar the Slayer"] = { location = "Punto de aparicion", waypointZone = "Arathi Highlands", coordinates = "67.5, 61.0", respawn = "Variable", macro = "/target Nimar the Slayer" },
    ["Overseer Krix"] = { location = "Punto de aparicion", waypointZone = "Arathi Highlands", coordinates = "27.4, 55.8", respawn = "Variable", macro = "/target Overseer Krix" },
    ["Skullripper"] = { location = "Punto de aparicion", waypointZone = "Arathi Highlands", coordinates = "56.8, 45.1", respawn = "Variable", macro = "/target Skullripper" },
    ["Blackpaw"] = { location = "Punto de aparicion", waypointZone = "Darkshore", coordinates = "49.7, 24.9", respawn = "Variable", macro = "/target Blackpaw" },
    ["Moxo the Beheader"] = { location = "Punto de aparicion", waypointZone = "Darkshore", coordinates = "67.0, 18.8", respawn = "Variable", macro = "/target Moxo the Beheader" },
    ["Croz Bloodrage"] = { location = "Punto de aparicion", waypointZone = "Darkshore", coordinates = "50.6, 32.6", respawn = "Variable", macro = "/target Croz Bloodrage" },
    ["Alash'anir"] = { location = "Punto de aparicion", waypointZone = "Darkshore", coordinates = "56.5, 30.8", respawn = "Variable", macro = "/target Alash'anir" },
    ["Houndlord Ren"] = {
      location = "Mogu Assault route",
      waypointZone = "Vale of Eternal Blossoms",
      coordinates = "13.1, 26.0",
      guideUrl = "https://www.wowhead.com/npc=157160/houndlord-ren",
      note = "Comentarios de Wowhead sitúan a Houndlord Ren en el extremo noreste de su ruta del Mogu Assault."
    },
    ["Anh-De the Loyal"] = {
      location = "Mogu Assault route",
      waypointZone = "Vale of Eternal Blossoms",
      coordinates = "34.1, 68.0",
      guideUrl = "https://www.wowhead.com/npc=157466/anh-de-the-loyal",
      note = "Coordenadas del rare tomadas de comentarios de Wowhead del bloque de monturas del parche 8.3."
    },
    ["Ishak of the Four Winds"] = {
      location = "Uldum assault route",
      waypointZone = "Uldum",
      coordinates = "73.2, 83.7",
      guideUrl = "https://www.wowhead.com/npc=157134/ishak-of-the-four-winds",
      note = "Coordenadas del rare tomadas de comentarios de Wowhead del bloque de monturas del parche 8.3."
    },
    ["Corpse Eater"] = {
      location = "Uldum assault route",
      waypointZone = "Uldum",
      coordinates = "30.8, 49.7",
      guideUrl = "https://www.wowhead.com/npc=162147/corpse-eater",
      note = "Coordenadas del rare tomadas de comentarios de Wowhead del bloque de monturas del parche 8.3."
    },
    ["Rotfeaster"] = {
      location = "Obelisk of the Stars",
      waypointZone = "Uldum",
      coordinates = "68.6, 32.0",
      guideUrl = "https://www.wowhead.com/npc=157146/rotfeaster",
      note = "Comentarios de Wowhead sitúan a Rotfeaster cerca del Obelisk of the Stars."
    },
    ["Fallen Charger"] = { location = "Ruta inicial", waypointZone = "The Maw", coordinates = "27.2, 48.4", respawn = "1-2 h", macro = "/target Fallen Charger" },
    ["Humon'gozz"] = { location = "Hongo humedo", waypointZone = "Ardenweald", coordinates = "32.4, 30.2", respawn = "Requiere item", macro = "/target Humon'gozz" },
    ["Dead Blanchy"] = { location = "Punto de aparicion", waypointZone = "Revendreth", coordinates = "63.1, 43.1", respawn = "Variable", macro = "/target Dead Blanchy", note = "Lleva los objetos requeridos durante varios dias." },
    ["Famu the Infinite"] = { location = "Punto de aparicion", waypointZone = "Revendreth", coordinates = "62.5, 47.2", respawn = "Variable", macro = "/target Famu the Infinite" },
    ["Hopecrusher"] = { location = "Punto de aparicion", waypointZone = "Revendreth", coordinates = "52.1, 51.8", respawn = "Variable", macro = "/target Hopecrusher" },
    ["Sundancer"] = { location = "Punto de aparicion", waypointZone = "Bastion", coordinates = "61.0, 79.3", respawn = "Variable", macro = "/target Sundancer", note = "Usa un Skystrider Glider para iniciar el encuentro." },
    ["Vesper of the Silver Wind"] = { location = "Tesoro", waypointZone = "Bastion", coordinates = "36.0, 26.5", note = "Reune los Anima Crystal Shards y abre el cofre." },
    ["Nerissa Heartless"] = { location = "Punto de aparicion", waypointZone = "Maldraxxus", coordinates = "66.0, 35.3", respawn = "Variable", macro = "/target Nerissa Heartless" },
    ["Gieger"] = { location = "Punto de aparicion", waypointZone = "Maldraxxus", coordinates = "31.5, 35.3", respawn = "Variable", macro = "/target Gieger" },
    ["Warbringer Mal'Korak"] = { location = "Punto de aparicion", waypointZone = "Maldraxxus", coordinates = "33.7, 80.2", respawn = "Variable", macro = "/target Warbringer Mal'Korak" },
    ["Sabriel the Bonecleaver"] = { location = "Punto de aparicion", waypointZone = "Maldraxxus", coordinates = "49.1, 44.6", respawn = "Variable", macro = "/target Sabriel the Bonecleaver" },
    ["Gormtamer Tizo"] = { location = "Punto de aparicion", waypointZone = "Ardenweald", coordinates = "27.6, 49.1", respawn = "Variable", macro = "/target Gormtamer Tizo" },
    ["Night Mare"] = { location = "Punto de aparicion", waypointZone = "Ardenweald", coordinates = "58.4, 48.8", respawn = "Variable", macro = "/target Night Mare" },
    ["Konthrogz the Obliterator"] = { location = "Punto de aparicion", waypointZone = "Korthia", coordinates = "52.2, 22.1", respawn = "Variable", macro = "/target Konthrogz the Obliterator" },
    ["Malbog"] = { location = "Punto de aparicion", waypointZone = "Korthia", coordinates = "45.4, 30.3", respawn = "Variable", macro = "/target Malbog" },
    ["Maelie"] = { location = "Punto de aparicion", waypointZone = "Korthia", coordinates = "41.1, 39.9", respawn = "Variable", macro = "/target Maelie", note = "Encuentrala en varios dias para completar la cadena final." },
    ["Stygian Stonecrusher"] = { location = "Punto de aparicion", waypointZone = "Korthia", coordinates = "45.7, 80.3", respawn = "Variable", macro = "/target Stygian Stonecrusher" },
    ["Escaped Wilderling"] = { location = "Punto de aparicion", waypointZone = "Korthia", coordinates = "31.8, 38.4", respawn = "Variable", macro = "/target Escaped Wilderling", note = "Rare de Korthia ligado a Night Fae." },
    ["Wild Worldcracker"] = { location = "Punto de aparicion", waypointZone = "Korthia", coordinates = "56.9, 32.4", respawn = "Variable", macro = "/target Wild Worldcracker", note = "Rare de Korthia ligado a Kyrian." },
    ["Fleshwing"] = { location = "Punto de aparicion", waypointZone = "Korthia", coordinates = "59.9, 43.8", respawn = "Variable", macro = "/target Fleshwing" },
    ["Reliwik the Defiant"] = { location = "Punto de aparicion", waypointZone = "Korthia", coordinates = "56.6, 65.0", respawn = "Variable", macro = "/target Reliwik the Defiant" },
    ["Hirukon"] = { location = "Punto de aparicion", waypointZone = "Zereth Mortis", coordinates = "52.4, 75.5", respawn = "Variable", macro = "/target Hirukon", note = "Necesita el cebo adecuado para invocarlo." },
    ["Breezebiter"] = { location = "Punto de aparicion", waypointZone = "The Azure Span", coordinates = "29.6, 46.3", respawn = "Variable", macro = "/target Breezebiter" },
    ["Zenet Avis"] = { location = "Ruta de vuelo", waypointZone = "Ohn'ahran Plains", coordinates = "31.4, 63.0", respawn = "2-8 h", macro = "/target Zenet Avis" },
    ["Empowered Snail"] = { location = "Lava", waypointZone = "The Waking Shores", coordinates = "71.2, 25.4", respawn = "Requiere Empty Magma Shell", macro = "/target Empowered Snail" },
    ["Dragonscale Expedition"] = {
      location = "Cataloger Jakes, Dragonscale Basecamp",
      waypointZone = "The Waking Shores",
      coordinates = "47.0, 82.5",
      guideUrl = "https://www.wowhead.com/npc=189226/cataloger-jakes",
      note = "Wowhead situa a Cataloger Jakes en la tienda principal de Dragonscale Basecamp."
    },
    ["Iskaara Tuskarr"] = {
      location = "Murik, Iskaara",
      waypointZone = "The Azure Span",
      coordinates = "13.0, 49.2",
      guideUrl = "https://www.wowhead.com/npc=193006/murik",
      note = "Wowhead situa a Murik como vendor principal de Iskaara Tuskarr en Iskaara."
    },
    ["Tattukiaka"] = {
      location = "Tattukiaka, Iskaara",
      waypointZone = "The Azure Span",
      coordinates = "14.0, 49.6",
      guideUrl = "https://www.wowhead.com/npc=199448/tattukiaka",
      note = "Wowhead situa a Tattukiaka en Iskaara para los intercambios de ottuk."
    },
    ["Dracthyr mount vendor"] = {
      location = "Tethalash, Valdrakken",
      waypointZone = "Valdrakken",
      coordinates = "25.5, 33.6",
      routeWaypoints = {
        { waypointZone = "Valdrakken", coordinates = "25.5, 33.6", label = "Tethalash" },
        { waypointZone = "The Forbidden Reach", coordinates = "45.2, 61.2", label = "Treysh" }
      },
      guideUrl = "https://www.wowhead.com/item=198809/armored-vorquin-leystrider",
      note = "Las paginas de item de los Vorquin en Wowhead listan a Tethalash en Valdrakken y a Treysh en The Forbidden Reach."
    },
    ["Grand Hunts"] = {
      location = "Hunt Instructor Basku",
      waypointZone = "Ohn'ahran Plains",
      coordinates = "64.0, 41.0",
      routeWaypoints = {
        { waypointZone = "Ohn'ahran Plains", coordinates = "81.1, 50.0", label = "Eastern Ohn'ahran Plains Hunt" },
        { waypointZone = "Ohn'ahran Plains", coordinates = "81.9, 17.3", label = "Northern Ohn'ahran Plains Hunt" },
        { waypointZone = "Ohn'ahran Plains", coordinates = "61.7, 53.0", label = "Western Ohn'ahran Plains Hunt" },
        { waypointZone = "Thaldraszus", coordinates = "50.8, 46.6", label = "Northern Thaldraszus Hunt" },
        { waypointZone = "Thaldraszus", coordinates = "34.6, 66.6", label = "Southern Thaldraszus Hunt" },
        { waypointZone = "The Waking Shores", coordinates = "69.7, 68.4", label = "Eastern Waking Shores Hunt" },
        { waypointZone = "The Waking Shores", coordinates = "42.8, 80.6", label = "Northern Waking Shores Hunt" },
        { waypointZone = "The Waking Shores", coordinates = "25.3, 88.6", label = "Southern Waking Shores Hunt" },
        { waypointZone = "The Azure Span", coordinates = "69.7, 26.1", label = "Eastern Azure Span Hunt" },
        { waypointZone = "The Azure Span", coordinates = "68.8, 53.1", label = "Southern Azure Span Hunt" },
        { waypointZone = "The Azure Span", coordinates = "36.9, 36.0", label = "Western Azure Span Hunt" }
      },
      guideUrl = "https://www.wowhead.com/item=192791/plainswalker-bearer",
      note = "Comentarios de Wowhead fijan a Basku como hub y listan las once rotaciones de Grand Hunt donde cae Grand Hunt Spoils."
    },
    ["Gilneas Reclamation"] = {
      alliance = {
        location = "Greyguard Elite, portales de Valdrakken",
        waypointZone = "Valdrakken",
        coordinates = "59.1, 42.5",
        guideUrl = "https://www.wowhead.com/npc=212899/greyguard-elite",
        note = "Wowhead situa al Greyguard Elite junto a los portales de Valdrakken para iniciar la cadena Alliance."
      },
      horde = {
        location = "Deathguard Elite, portales de Valdrakken",
        waypointZone = "Valdrakken",
        coordinates = "56.4, 39.5",
        guideUrl = "https://www.wowhead.com/npc=212916/deathguard-elite",
        note = "Wowhead situa al Deathguard Elite junto a los portales de Valdrakken para iniciar la cadena Horde."
      }
    },
    ["Storykeeper Ashekh"] = { location = "Renown Envoy, Morqut Village", waypointZone = "The Forbidden Reach", coordinates = "34.3, 60.0" },
    ["Treysh"] = { location = "Quartermaster, Morqut Village", waypointZone = "The Forbidden Reach", coordinates = "35.6, 59.5" },
    ["Mythressa"] = { location = "Apprentice Primal Researcher", waypointZone = "Valdrakken", coordinates = "38.1, 37.7" },
    ["Briggul"] = { location = "Snail Trainer", waypointZone = "Zaralek Cavern", coordinates = "44.3, 79.9", note = "Cadena para Big Slick in the City." },
    ["Saccratros"] = { location = "Coveted Bauble Exchange, Loamm", waypointZone = "Zaralek Cavern", coordinates = "55.9, 55.4" },
    ["Ponzo"] = { location = "Barterer Extraordinaire, Loamm", waypointZone = "Zaralek Cavern", coordinates = "58.1, 53.8" },
    ["Karokta"] = { location = "Punto de aparicion", waypointZone = "Zaralek Cavern", coordinates = "59.6, 39.5", respawn = "Variable", macro = "/target Karokta" },
    ["Celestine of the Harvest"] = {
      location = "Dreamsurge vendor",
      waypointZone = "The Azure Span",
      coordinates = "45.6, 39.8",
      routeWaypoints = {
        { waypointZone = "The Azure Span", coordinates = "45.6, 39.8", label = "Azure Span Dreamsurge" },
        { waypointZone = "Thaldraszus", coordinates = "51.2, 43.2", label = "Thaldraszus Dreamsurge" },
        { waypointZone = "The Waking Shores", coordinates = "58.4, 67.8", label = "Waking Shores Dreamsurge" },
        { waypointZone = "Ohn'ahran Plains", coordinates = "64.2, 41.4", label = "Ohn'ahran Plains Dreamsurge" }
      },
      guideUrl = "https://www.wowhead.com/npc=210608/celestine-of-the-harvest",
      note = "Wowhead muestra a Celestine moviendose entre las cuatro zonas posibles de Dreamsurge."
    },
    ["Seething Orbs"] = {
      location = "Seething Cache, Zaqali Caldera",
      waypointZone = "Zaralek Cavern",
      coordinates = "32.3, 39.4",
      routeWaypoints = {
        { waypointZone = "Zaralek Cavern", coordinates = "28.8, 55.3", label = "Seething Orb" },
        { waypointZone = "Zaralek Cavern", coordinates = "30.0, 48.0", label = "Seething Orb" },
        { waypointZone = "Zaralek Cavern", coordinates = "34.4, 45.7", label = "Seething Orb" },
        { waypointZone = "Zaralek Cavern", coordinates = "37.6, 46.7", label = "Seething Orb" },
        { waypointZone = "Zaralek Cavern", coordinates = "32.3, 39.4", label = "Seething Cache" }
      },
      guideUrl = "https://www.wowhead.com/item=192779/seething-slug",
      note = "Comentarios de Wowhead situan los orbs y el cache final en Zaqali Caldera, Zaralek Cavern."
    },
    ["Dragonwrath questline"] = {
      location = "Portal to the Veiled Ossuary",
      waypointZone = "The Azure Span",
      coordinates = "39.4, 63.0",
      guideUrl = "https://www.wowhead.com/object=386045/portal-to-the-veiled-ossuary",
      note = "Wowhead situa el acceso al Veiled Ossuary en The Azure Span para la cadena Blue Dragonflight que acaba otorgando Tarecgosa's Visage."
    },
    ["Elianna"] = { location = "Dream Infuser", waypointZone = "Emerald Dream", coordinates = "50.2, 61.8" },
    ["Azerothian Archives"] = { location = "Provisioner Aristta", waypointZone = "Thaldraszus", coordinates = "61.4, 31.4", note = "Puesto principal de Azerothian Archives." },
    ["Azerothian Archives secret"] = { location = "Provisioner Aristta", waypointZone = "Thaldraszus", coordinates = "61.4, 31.4", note = "Puesto principal de Azerothian Archives." },
    ["Obsidian Citadel"] = { location = "Acceso al area", waypointZone = "The Waking Shores", coordinates = "23.4, 43.8" },
    ["Zskera Vaults"] = { location = "Entrada", waypointZone = "The Forbidden Reach", coordinates = "28.3, 68.0" },
    ["Time Rifts"] = { location = "Tyrhold Reservoir", waypointZone = "Thaldraszus", coordinates = "50.7, 55.7" },
    ["Emerald Bounty"] = { location = "Dreamseed soil", waypointZone = "Emerald Dream", coordinates = "46.4, 40.5", note = "Actividad con varios puntos activos en el Emerald Dream." },
    ["Alunira"] = { location = "Punto de aparicion", waypointZone = "Isle of Dorn", coordinates = "45.2, 67.8", respawn = "30-60 min", macro = "/target Alunira" },
    ["Beledar's Spawn"] = { location = "Punto de aparicion", waypointZone = "Hallowfall", coordinates = "25.6, 57.4", respawn = "Cuando Beledar cambia", macro = "/target Beledar's Spawn" },
    ["Waxmonger Squick"] = { location = "Vendedor", waypointZone = "The Ringing Deeps", coordinates = "47.4, 32.8" },
    ["Auditor Balwurz"] = { location = "Foundation Hall", waypointZone = "Dornogal", coordinates = "39.2, 24.4" },
    ["Cendvin"] = { location = "Cinderbrew Meadery", waypointZone = "Isle of Dorn", coordinates = "74.4, 45.2" },
    ["Auralia Steelstrike"] = { location = "Mereldar", waypointZone = "Hallowfall", coordinates = "42.4, 55.0" },
    ["The Severed Threads"] = { location = "Hub de renombre", waypointZone = "Azj-Kahet", coordinates = "56.8, 39.5", note = "Puesto de renombre confirmado en The Weaver's Lair." },
    ["Lady Vinazian"] = { location = "Puesto de renombre", waypointZone = "Azj-Kahet", coordinates = "56.8, 39.5", note = "Puesto de renombre confirmado en The Weaver's Lair." },
    ["Smaks Topskimmer"] = { location = "The Incontinental Hotel", waypointZone = "Undermine", coordinates = "43.8, 50.8" },
    ["The Cartels of Undermine"] = { location = "Smaks Topskimmer", waypointZone = "Undermine", coordinates = "43.8, 50.8" },
    ["Rocco Razzboom"] = { location = "The Scrapshop", waypointZone = "Undermine", coordinates = "39.2, 22.2" },
    ["Ando the Gat"] = { location = "Entrada de Liberation of Undermine", waypointZone = "Undermine", coordinates = "42.0, 52.0", note = "Vendedor dentro de la banda; este waypoint lleva a la entrada." },
    ["Gallagio Loyalty Rewards Club"] = { location = "Entrada de Liberation of Undermine", waypointZone = "Undermine", coordinates = "42.0, 52.0", note = "Renombre de la banda; el vendor esta dentro." },
    ["Lars Bronsmaelt"] = { location = "Hallowfall", waypointZone = "Hallowfall", coordinates = "28.3, 56.2" },
    ["Soweezi"] = { location = "Campamento base", waypointZone = "Siren Isle", coordinates = "69.9, 48.6" },
    ["Skedgit Cinderbangs"] = { location = "Entrepreneur Inc.", waypointZone = "Undermine", coordinates = "43.2, 82.8" },
    ["Steamwheedle Cartel"] = { location = "Lab Assistant Laszly", waypointZone = "Undermine", coordinates = "27.2, 72.5" },
    ["Blackwater Cartel"] = { location = "Boatswain Hardee", waypointZone = "Undermine", coordinates = "63.4, 16.8" },
    ["Venture Company"] = { location = "Shredz the Scrapper", waypointZone = "Undermine", coordinates = "53.3, 72.7" },
    ["Darkfuse Solutions"] = { location = "Sitch Lowdown", waypointZone = "Undermine", coordinates = "30.8, 38.9" },
    ["Steamwheedle Cartel paragon cache"] = { location = "Lab Assistant Laszly", waypointZone = "Undermine", coordinates = "27.2, 72.5" },
    ["Blackwater Cartel paragon cache"] = { location = "Boatswain Hardee", waypointZone = "Undermine", coordinates = "63.4, 16.8" },
    ["Bilgewater Cartel paragon cache"] = { location = "Rocco Razzboom", waypointZone = "Undermine", coordinates = "39.2, 22.2" },
    ["Venture Company paragon cache"] = { location = "Shredz the Scrapper", waypointZone = "Undermine", coordinates = "53.3, 72.7" },
    ["The Cartels of Undermine paragon cache"] = { location = "Smaks Topskimmer", waypointZone = "Undermine", coordinates = "43.8, 50.8" },
    ["K'aresh Trust"] = { location = "Om'sirik, Tazavesh", waypointZone = "Tazavesh, the Veiled Market", coordinates = "40.3, 29.4" },
    ["K'aresh vendor"] = { location = "Ta'sam, Tazavesh", waypointZone = "Tazavesh, the Veiled Market", coordinates = "43.2, 34.8" },
    ["Manaforge Vandals"] = { location = "Zo'turu", waypointZone = "K'aresh", coordinates = "42.0, 22.1" },
    ["Dimensius, the All-Devouring"] = { location = "Entrada de Manaforge Omega", waypointZone = "K'aresh", coordinates = "17.4, 15.7" },
    ["Ol' Mole Rufus"] = { location = "Lurker of the Deeps", waypointZone = "The Ringing Deeps", coordinates = "56.7, 76.7", respawn = "Variable", macro = "/target Lurker of the Deeps" },
    ["Darkfuse Precipitant"] = { location = "Punto de aparicion", waypointZone = "Undermine", coordinates = "40.5, 91.6", respawn = "Variable", macro = "/target Darkfuse Precipitant" },
    ["The Gobfather"] = { location = "Punto de aparicion", waypointZone = "Undermine", coordinates = "49.6, 17.2", respawn = "Variable", macro = "/target The Gobfather" },
    ["Sthaarbs"] = { location = "Punto de aparicion", waypointZone = "K'aresh", coordinates = "74.0, 32.5", respawn = "Variable", macro = "/target Sthaarbs" },
    ["Thrayir secret"] = { location = "Final del secreto", waypointZone = "Siren Isle", coordinates = "72.5, 61.3" },
    ["Prey: Nightmare Mode III"] = {
      location = "Construct V'anore, hub de Midnight Prey",
      waypointZone = "Silvermoon City",
      coordinates = "55.7, 65.9",
      note = "Punto practico para Preyseeker's Journey y Midnight Prey."
    },
    ["Let Me Solo Him: Nullaeus"] = {
      location = "Valeera Sanguinar & Telemancer Astrandis",
      waypointZone = "Silvermoon City",
      coordinates = "52.1, 77.7",
      note = "Hub principal de Delves de Midnight; la entrada exterior exacta de Torment's Rise queda para la pasada final."
    },
    ["Restless Heart"] = { location = "Entrada de Windrunner Spire", waypointZone = "Ghostlands", coordinates = "13.0, 55.0" },
    ["Telemancer Astrandis"] = { location = "Hub de Delves", waypointZone = "Silvermoon City", coordinates = "52.4, 78.9" },
    ["Naleidea Rivergleam"] = { location = "Vendor de Delves", waypointZone = "Silvermoon City", coordinates = "52.7, 78.0" },
    ["Construct V'anore"] = { location = "Hub de Prey", waypointZone = "Silvermoon City", coordinates = "55.7, 65.9" },
    ["Sergeant Vornin"] = {
      location = "Upper deck del Bazaar",
      waypointZone = "Silvermoon City",
      coordinates = "48.6, 50.6"
    },
    ["Gamesmaster Fleurian"] = {
      location = "Falconwing Square",
      waypointZone = "Silvermoon City",
      coordinates = "31.6, 76.7"
    },
    ["Mothkeeper Wew'tam"] = { location = "Vendor de Harandar", waypointZone = "Harandar", coordinates = "49.3, 54.3" },
    ["Kuri"] = {
      location = "Intercambio de Skyshards",
      waypointZone = "Harandar",
      coordinates = "66.2, 25.5",
      note = "Entrega 500 Mysterious Skyshards tras completar Legend of Aln'sharan."
    },
    ["Echo of Aln'sharan"] = {
      location = "Rare invocado",
      waypointZone = "Harandar",
      coordinates = "75.0, 29.9",
      note = "Punto donde aparece el rare despues de entregar los Skyshards a Kuri."
    },
    ["Peculiar Cauldron"] = { location = "Tesoro", waypointZone = "Harandar", coordinates = "40.6, 28.0" },
    ["Sporespawned Cache"] = { location = "Tesoro", waypointZone = "Harandar", coordinates = "46.7, 67.8" },
    ["Thraxadar"] = {
      location = "Quartermaster de Slayer's Duellum",
      waypointZone = "Masters' Perch",
      coordinates = "39.3, 81.1"
    },
    ["Void Researcher Anomander"] = {
      location = "Quartermaster de The Singularity",
      waypointZone = "Voidstorm",
      coordinates = "52.6, 72.9"
    },
    ["Kifaan"] = {
      location = "Greater Void Portal hacia Naigtal",
      waypointZone = "Voidstorm",
      coordinates = "51.4, 71.3",
      note = "Kifaan vende estas monturas dentro de Naigtal; este waypoint marca el portal de acceso confirmado por Wowhead."
    },
    ["Harandar zone drop"] = {
      location = "Ruta de rares compartidos",
      waypointZone = "Harandar",
      coordinates = "51.2, 45.4",
      routeWaypoints = {
        { waypointZone = "Harandar", coordinates = "51.2, 45.4", label = "Rhazul" },
        { waypointZone = "Harandar", coordinates = "59.9, 46.8", label = "Queen Lashtongue" },
        { waypointZone = "Harandar", coordinates = "68.7, 40.7", label = "Chironex" },
        { waypointZone = "Harandar", coordinates = "69.2, 59.9", label = "Ha'kalawe" },
        { waypointZone = "Harandar", coordinates = "46.0, 31.3", label = "Mindrot" }
      },
      note = "Ruta breve de rares con drops compartidos para Harandar."
    },
    ["Eversong Woods zone drop"] = {
      location = "Ruta de rares compartidos",
      waypointZone = "Eversong Woods",
      coordinates = "51.9, 73.8",
      routeWaypoints = {
        { waypointZone = "Eversong Woods", coordinates = "45.0, 78.3", label = "Harried Hawkstrider" },
        { waypointZone = "Eversong Woods", coordinates = "51.9, 73.8", label = "Warden of Weeds" },
        { waypointZone = "Eversong Woods", coordinates = "54.7, 60.2", label = "Overfester Hydra" },
        { waypointZone = "Eversong Woods", coordinates = "44.9, 38.6", label = "Dame Bloodshed" },
        { waypointZone = "Eversong Woods", coordinates = "34.8, 21.0", label = "Waverly" }
      },
      note = "Ruta breve de rares con drops compartidos para Eversong Woods."
    },
    ["Amani renown"] = {
      location = "Hub de Amani'zar",
      waypointZone = "Zul'Aman",
      coordinates = "45.4, 66.0",
      note = "Puesto principal de renombre dentro de Zul'Aman."
    },
    ["Honored Warrior's Cache"] = { location = "Tesoro", waypointZone = "Zul'Aman", coordinates = "46.8, 81.9" },
    ["Abandoned Ritual Skull"] = { location = "Tesoro", waypointZone = "Zul'Aman", coordinates = "44.7, 44.1" },
    ["Zul'Aman zone drop"] = {
      location = "Ruta de rares compartidos",
      waypointZone = "Zul'Aman",
      coordinates = "34.4, 33.1",
      routeWaypoints = {
        { waypointZone = "Zul'Aman", coordinates = "34.4, 33.1", label = "Necrohexxer Raz'ka" },
        { waypointZone = "Zul'Aman", coordinates = "30.5, 44.6", label = "Spinefrill" },
        { waypointZone = "Zul'Aman", coordinates = "46.3, 51.1", label = "Oophaga" },
        { waypointZone = "Zul'Aman", coordinates = "47.8, 34.2", label = "Tiny Vermin" },
        { waypointZone = "Zul'Aman", coordinates = "51.9, 72.9", label = "Skullcrusher Harak" }
      },
      note = "Ruta breve de rares con drops compartidos para Zul'Aman."
    },
    ["Final Clutch of Predaxas"] = { location = "Tesoro", waypointZone = "Voidstorm", coordinates = "49.9, 79.4" },
    ["Silvermoon renown"] = { location = "Quartermaster de Silvermoon Court", waypointZone = "Eversong Woods", coordinates = "43.5, 47.4" },
    ["Voidstorm renown"] = { location = "Quartermaster de The Singularity", waypointZone = "Voidstorm", coordinates = "52.6, 72.9" },
    ["Voidstorm zone drop"] = {
      location = "Ruta de rares compartidos",
      waypointZone = "Voidstorm",
      coordinates = "29.5, 50.1",
      routeWaypoints = {
        { waypointZone = "Voidstorm", coordinates = "29.5, 50.1", label = "Sundereth the Caller" },
        { waypointZone = "Voidstorm", coordinates = "34.1, 82.0", label = "Territorial Voidscythe" },
        { waypointZone = "Voidstorm", coordinates = "43.7, 51.5", label = "Screammaxa the Matriarch" },
        { waypointZone = "Voidstorm", coordinates = "54.0, 62.7", label = "Far'thana the Mad" },
        { waypointZone = "Voidstorm", coordinates = "55.7, 79.5", label = "Queen o' War" }
      },
      note = "Ruta breve de rares con drops compartidos para Voidstorm."
    },
    ["Apothecary Hummel"] = { location = "Evento", waypointZone = "Silverpine Forest", coordinates = "44.8, 67.8", respawn = "Evento activo" },
    ["Headless Horseman"] = { location = "Evento", waypointZone = "Tirisfal Glades", coordinates = "82.5, 32.9", respawn = "Evento activo" },
    ["Coren Direbrew"] = { location = "Evento", waypointZone = "Searing Gorge", coordinates = "34.8, 84.2", respawn = "Evento activo" },
    ["Timed chest"] = {
      location = "Evento cronometrado",
      waypointZone = "Ghostlands",
      coordinates = "82.0, 64.3",
      note = "El cofre estaba dentro de Zul'Aman; este waypoint te lleva a la entrada de la instancia."
    },
  }
}

MountAtlasDisabledExpansions = {}

MountAtlasAutoCatalog = {
  enabled = true,
  includeExternal = false
}

-- Trading Post mounts keep their original journal source in some client builds.
-- Spell IDs provide a stable way to keep every past rotation in one category.
MountAtlasTradingPostSpellIDs = {
  [30174] = true,
  [49322] = true,
  [74856] = true,
  [75614] = true,
  [75973] = true,
  [107203] = true,
  [107516] = true,
  [107517] = true,
  [163024] = true,
  [171840] = true,
  [171847] = true,
  [272770] = true,
  [302361] = true,
  [302362] = true,
  [349943] = true,
  [359380] = true,
  [366647] = true,
  [366789] = true,
  [366790] = true,
  [366962] = true,
  [367826] = true,
  [368126] = true,
  [411565] = true,
  [412088] = true,
  [414986] = true,
  [417245] = true,
  [419345] = true,
  [424601] = true,
  [427435] = true,
  [428005] = true,
  [428062] = true,
  [431357] = true,
  [431359] = true,
  [431360] = true,
  [432558] = true,
  [432562] = true,
  [433281] = true,
  [447413] = true,
  [448851] = true,
  [449126] = true,
  [449140] = true,
  [457650] = true,
  [457654] = true,
  [459193] = true,
  [472487] = true,
  [473861] = true,
  [1217341] = true,
  [1217342] = true,
  [1217965] = true,
  [1217994] = true,
  [1218012] = true,
  [1218069] = true,
  [1219705] = true,
  [1226511] = true,
  [1226740] = true,
  [1226855] = true,
  [1235756] = true,
  [1235803] = true,
  [1235817] = true,
  [1235819] = true,
  [1240003] = true,
  [1244261] = true,
  [1245205] = true,
  [1245358] = true,
  [1245359] = true,
  [1245370] = true,
  [1248309] = true,
  [1251680] = true,
  [1251690] = true,
  [1266248] = true,
  [1266579] = true,
  [1266993] = true,
  [1269273] = true,
  [1270522] = true,
  [1270523] = true,
  [1282275] = true,
  [1282276] = true,
  [1283908] = true,
  [1283910] = true
}

for _, mount in ipairs(MountAtlasMounts or {}) do
  local spellID = tonumber(mount.spellID or mount.mountSpellID or mount.spell)

  if spellID and MountAtlasTradingPostSpellIDs[spellID] then
    mount.source = "Trading Post"
    mount.expansion = "Trading Post"
    mount.specialCategory = "tradingpost"
  end
end

local function MountAtlasBuildDisabledMountIDs(...)
  local disabledMountIDs = {}

  for listIndex = 1, select("#", ...) do
    local list = select(listIndex, ...)

    for _, entry in ipairs(list or {}) do
      if entry.expansion
        and MountAtlasDisabledExpansions[entry.expansion]
        and entry.mountID
        and entry.mountID ~= 0 then
        disabledMountIDs[entry.mountID] = true
      end
    end
  end

  return disabledMountIDs
end

local function MountAtlasFilterDisabledExpansions(list)
  local filtered = {}

  for _, entry in ipairs(list or {}) do
    if not (entry.expansion and MountAtlasDisabledExpansions[entry.expansion]) then
      table.insert(filtered, entry)
    end
  end

  return filtered
end

MountAtlasDisabledMountIDs = MountAtlasBuildDisabledMountIDs(MountAtlasMounts, MountAtlasAchievements)
MountAtlasMounts = MountAtlasFilterDisabledExpansions(MountAtlasMounts)
MountAtlasAchievements = MountAtlasFilterDisabledExpansions(MountAtlasAchievements)
