local ADDON, ns = ...

ns.CompletionMountItemDB = ns.CompletionMountItemDB or {}
local DB = ns.CompletionMountItemDB

-- Generated from raid/dungeon loot itemIDs cross-referenced against
-- ItemSparse.12.0.7.67808.csv and Mount.12.0.7.67808.csv.
-- The primary goal is systematic itemID-first coverage for loot-table mount tokens,
-- with a very small fallback layer for edge cases where item text is not specific enough.
DB.byItemID = {
  [13335] = { itemName = "Deathcharger's Reins", name = "Rivendare's Deathcharger", spellID = 17481, mountID = 69, itemDescription = "Teaches you how to summon Rivendare's steed.", sourceText = "|cFFFFD200Drop:|r Lord Aurius Rivendare|n|cFFFFD200Location:|r Stratholme", sourceType = 0 },
  [30480] = { itemName = "Fiery Warhorse's Reins", name = "Fiery Warhorse", spellID = 36702, mountID = 168, itemDescription = "Teaches you how to summon Attumen the Huntsman's steed.", sourceText = "|cFFFFD200Drop: |rAttumen the Huntsman|n|cFFFFD200Location:|r Karazhan", sourceType = 0 },
  [32458] = { itemName = "Ashes of Al'ar", name = "Ashes of Al'ar", spellID = 40192, mountID = 183, itemDescription = "Teaches you how to summon this mount.  This is a flying mount.", sourceText = "|cFFFFD200Drop: |rKael'thas Sunstrider|n|cFFFFD200Location: |rThe Eye, Tempest Keep", sourceType = 0 },
  [32768] = { itemName = "Reins of the Raven Lord", name = "Raven Lord", spellID = 41252, mountID = 185, itemDescription = "Teaches you how to summon this mount.", sourceText = "|cFFFFD200Drop:|r Anzu|n|cFFFFD200Zone: |rSethekk Halls (Heroic)", sourceType = 0 },
  [35513] = { itemName = "Swift White Hawkstrider", name = "Swift White Hawkstrider", spellID = 46628, mountID = 213, itemDescription = "Teaches you how to summon this mount.", sourceText = "|cFFFFD200Drop: |rKael'thas Sunstrider|n|cFFFFD200Zone: |rMagisters' Terrace", sourceType = 0 },
  [43952] = { itemName = "Reins of the Azure Drake", name = "Azure Drake", spellID = 59567, mountID = 246, itemDescription = "Teaches you how to summon this mount.  This is a flying mount.", sourceText = "|cFFFFD200Drop:|r Alexstrasza's Gift|n|cFFFFD200Location:|r Eye of Eternity", sourceType = 0 },
  [43953] = { itemName = "Reins of the Blue Drake", name = "Blue Drake", spellID = 59568, mountID = 247, itemDescription = "Teaches you how to summon this mount.  This is a flying mount.", sourceText = "|cFFFFD200Drop:|r Alexstrasza's Gift|n|cFFFFD200Location:|r Eye of Eternity", sourceType = 0 },
  [43954] = { itemName = "Reins of the Twilight Drake", name = "Twilight Drake", spellID = 59571, mountID = 250, itemDescription = "Teaches you how to summon this mount.  This is a flying mount.", sourceText = "|cFFFFD200Drop:|r Sartharion|n|cFFFFD200Location:|r The Obsidian Sanctum", sourceType = 0 },
  [43986] = { itemName = "Reins of the Black Drake", name = "Black Drake", spellID = 59650, mountID = 253, itemDescription = "Teaches you how to summon this mount.  This is a flying mount.", sourceText = "|cFFFFD200Drop:|r Sartharion", sourceType = 0 },
  [44083] = { itemName = "Reins of the Grand Black War Mammoth", name = "Grand Black War Mammoth", spellID = 61467, mountID = 287, itemDescription = "Teaches you how to summon this three-person mount.", sourceText = "|cFFFFD200Drop: |rBoss Drop|n|cFFFFD200Location: |rVault of Archavon", sourceType = 0 },
  [44151] = { itemName = "Reins of the Blue Proto-Drake", name = "Blue Proto-Drake", spellID = 59996, mountID = 264, itemDescription = "Teaches you how to summon this mount.  This is a flying mount.", sourceText = "|cFFFFD200Drop: |rSkadi the Ruthless|n|cFFFFD200Zone: |rUtgarde Pinnacle", sourceType = 0 },
  [45693] = { itemName = "Mimiron's Head", name = "Mimiron's Head", spellID = 63796, mountID = 304, itemDescription = "Teaches you how to summon this mount.  This is a flying mount.", sourceText = "|cFFFFD200Drop:|r Yogg-Saron|n|cFFFFD200Location:|r Ulduar", sourceType = 0 },
  [49636] = { itemName = "Reins of the Onyxian Drake", name = "Onyxian Drake", spellID = 69395, mountID = 349, itemDescription = "Teaches you how to summon this mount.  This is a flying mount.", sourceText = "|cFFFFD200Drop: |rOnyxia|n|cFFFFD200Zone: |rOnyxia's Lair", sourceType = 0 },
  [50818] = { itemName = "Invincible's Reins", name = "Invincible", spellID = 72286, mountID = 363, itemDescription = "Teaches you how to summon this mount.  This mount changes depending on your Riding skill and location.", sourceText = "|cFFFFD200Drop: |rThe Lich King|n|cFFFFD200Zone: |rIcecrown Citadel", sourceType = 0 },
  [63040] = { itemName = "Reins of the Drake of the North Wind", name = "Drake of the North Wind", spellID = 88742, mountID = 395, itemDescription = "Teaches you how to summon this mount.  This is a flying mount.", sourceText = "|cFFFFD200Drop: |rAltairus|n|cFFFFD200Zone: |rThe Vortex Pinnacle", sourceType = 0 },
  [63041] = { itemName = "Reins of the Drake of the South Wind", name = "Drake of the South Wind", spellID = 88744, mountID = 396, itemDescription = "Teaches you how to summon this mount.  This is a flying mount.", sourceText = "|cFFFFD200Drop: |rAl'Akir|n|cFFFFD200Zone: |rThrone of the Four Winds", sourceType = 0 },
  [63043] = { itemName = "Reins of the Vitreous Stone Drake", name = "Vitreous Stone Drake", spellID = 88746, mountID = 397, itemDescription = "Teaches you how to summon this mount.  This is a flying mount.", sourceText = "|cFFFFD200Drop: |rSlabhide|n|cFFFFD200Zone: |rThe Stonecore", sourceType = 0 },
  [68823] = { itemName = "Armored Razzashi Raptor", name = "Armored Razzashi Raptor", spellID = 96491, mountID = 410, itemDescription = "Teaches you how to summon this mount.", sourceText = "|cFFFFD200Drop: |rBloodlord Mandokir|n|cFFFFD200Zone: |rZul'Gurub", sourceType = 0 },
  [68824] = { itemName = "Swift Zulian Panther", name = "Swift Zulian Panther", spellID = 96499, mountID = 411, itemDescription = "Teaches you how to summon this mount.", sourceText = "|cFFFFD200Drop: |rHigh Priestess Kilnara|n|cFFFFD200Zone: |rZul'Gurub", sourceType = 0 },
  [69224] = { itemName = "Smoldering Egg of Millagazor", name = "Pureblood Fire Hawk", spellID = 97493, mountID = 415, itemDescription = "Teaches you how to summon a Pureblood Fire Hawk mount.  This is a flying mount.", sourceText = "|cFFFFD200Drop: |rRagnaros|n|cFFFFD200Zone: |rFirelands", sourceType = 0 },
  [71665] = { itemName = "Flametalon of Alysrazor", name = "Flametalon of Alysrazor", spellID = 101542, mountID = 425, itemDescription = "Teaches you how to summon this mount.", sourceText = "|cFFFFD200Drop: |rAlysrazor|n|cFFFFD200Zone: |rFirelands", sourceType = 0 },
  [77067] = { itemName = "Reins of the Blazing Drake", name = "Blazing Drake", spellID = 107842, mountID = 442, itemDescription = "Teaches you how to summon a Blazing Drake mount.  This is a flying mount.", sourceText = "|cFFFFD200Drop:|r Elementium Fragment|n|cFFFFD200Location:|r Dragon Soul", sourceType = 0 },
  [77069] = { itemName = "Life-Binder's Handmaiden", name = "Life-Binder's Handmaiden", spellID = 107845, mountID = 444, itemDescription = "Teaches you how to summon a Life-Binder's Handmaiden.  This is a flying mount.", sourceText = "|cFFFFD200Drop:|r Elementium Fragment|n|cFFFFD200Location:|r Dragon Soul|n|n", sourceType = 0 },
  [78919] = { itemName = "Experiment 12-B", name = "Experiment 12-B", spellID = 110039, mountID = 445, itemDescription = "Teaches you how to summon this mount.  This is a flying mount.", sourceText = "|cFFFFD200Drop:|r Lesser Cache of the Aspects|n|cFFFFD200Location:|r Dragon Soul|n", sourceType = 0 },
  [87771] = { itemName = "Reins of the Heavenly Onyx Cloud Serpent", name = "Heavenly Onyx Cloud Serpent", spellID = 127158, mountID = 473, itemDescription = "Teaches you how to summon this mount.", sourceText = "|cFFFFD200Drop:|r Sha of Anger|n|cFFFFD200Location:|r Kun-Lai Summit", sourceType = 0 },
  [87777] = { itemName = "Reins of the Astral Cloud Serpent", name = "Astral Cloud Serpent", spellID = 127170, mountID = 478, itemDescription = "Teaches you how to summon this mount.", sourceText = "|cFFFFD200Drop:|r Cache of Pure Energy", sourceType = 0 },
  [89783] = { itemName = "Son of Galleon's Saddle", name = "Son of Galleon", spellID = 130965, mountID = 515, itemDescription = "Teaches you how to summon this mount." },
  [93666] = { itemName = "Spawn of Horridon", name = "Spawn of Horridon", spellID = 136471, mountID = 531, itemDescription = "Teaches you how to summon this mount.", sourceText = "|cFFFFD200Drop: |rHorridon|n|cFFFFD200Zone: |rThrone of Thunder", sourceType = 0 },
  [94228] = { itemName = "Reins of the Cobalt Primordial Direhorn", name = "Cobalt Primordial Direhorn", spellID = 138423, mountID = 533, itemDescription = "Teaches you how to summon this mount.", sourceText = "|cFFFFD200Drop:|r Oondasta|n|cFFFFD200Location:|r Isle of Giants", sourceType = 0 },
  [95057] = { itemName = "Reins of the Thundering Cobalt Cloud Serpent", name = "Thundering Cobalt Cloud Serpent", spellID = 139442, mountID = 542, itemDescription = "Teaches you how to summon this mount.", sourceText = "|cFFFFD200Drop:|r Nalak|n|cFFFFD200Location:|r Isle of Thunder|n", sourceType = 0 },
  [95059] = { itemName = "Clutch of Ji-Kun", name = "Clutch of Ji-Kun", spellID = 139448, mountID = 543, itemDescription = "Teaches you how to summon this mount.  This is a flying mount.", sourceText = "|cFFFFD200Drop: |rJi-Kun|n|cFFFFD200Zone: |rThrone of Thunder", sourceType = 0 },
  [104253] = { itemName = "Kor'kron Juggernaut", name = "Kor'kron Juggernaut", spellID = 148417, mountID = 559, itemDescription = "Teaches you how to summon a Kor'kron Juggernaut.  This is a ground mount.", sourceText = "|cFFFFD200Drop: |rGarrosh Hellscream|n|cFFFFD200Location:|r Siege of Orgrimmar", sourceType = 0 },
  [116660] = { itemName = "Ironhoof Destroyer", name = "Ironhoof Destroyer", spellID = 171621, mountID = 613, itemDescription = "Teaches you how to summon this mount.", sourceText = "|cFFFFD200Drop:|r Blackhand|n|cFFFFD200Location:|r Blackrock Foundry (Mythic)", sourceType = 0 },
  [116771] = { itemName = "Solar Spirehawk", name = "Solar Spirehawk", spellID = 171828, mountID = 634, itemDescription = "Teaches you how to summon this mount.", sourceText = "|cFFFFD200Drop:|r Rukhmar|n", sourceType = 0 },
  [123890] = { itemName = "Felsteel Annihilator", name = "Felsteel Annihilator", spellID = 182912, mountID = 751, itemDescription = "Teaches you how to summon this mount. This mount changes depending on your Riding skill and location.", sourceText = "|cFFFFD200Drop: |rArchimonde|n|cFFFFD200Location:|r Hellfire Citadel|n|cFFFFD200Difficulty:|r Mythic|n", sourceType = 0 },
  [137574] = { itemName = "Living Infernal Core", name = "Felblaze Infernal", spellID = 213134, mountID = 791, itemDescription = "Teaches you how to summon a rideable Felblaze Infernal.", sourceText = "|cFFFFD200Drop:|r Gul'dan|n|cFFFFD200Zone:|r The Nighthold|n", sourceType = 0 },
  [137575] = { itemName = "Fiendish Hellfire Core", name = "Hellfire Infernal", spellID = 171827, mountID = 633, itemDescription = "Teaches you how to summon a rideable Hellfire Infernal.", sourceText = "|cFFFFD200Drop:|r Gul'dan (Mythic)|n|cFFFFD200Zone:|r The Nighthold", sourceType = 0 },
  [143643] = { itemName = "Abyss Worm", name = "Abyss Worm", spellID = 232519, mountID = 899, itemDescription = "Teaches you how to summon this mount. This is a flying mount.", sourceText = "|cFFFFD200Drop: |r Mistress Sassz'ine|n|cFFFFD200Location:|r Tomb of Sargeras", sourceType = 0 },
  [152789] = { itemName = "Shackled Ur'zul", name = "Shackled Ur'zul", spellID = 243651, mountID = 954, itemDescription = "Teaches you how to summon this mount. This is a flying mount.", sourceText = "|cFFFFD200Drop:|r Argus the Unmaker (Mythic)|n", sourceType = 0 },
  [152816] = { itemName = "Antoran Charhound", name = "Antoran Charhound", spellID = 253088, mountID = 971, itemDescription = "Teaches you how to summon this mount. This is a flying mount.", sourceText = "|cFFFFD200Drop: |rShatug|n|cFFFFD200Zone: |rAntorus, the Burning Throne", sourceType = 0 },
  [159921] = { itemName = "Mummified Raptor Skull", name = "Tomb Stalker", spellID = 266058, mountID = 1040, itemDescription = "Teaches you how to resurrect and summon this mount." },
  [160829] = { itemName = "Underrot Crawg Harness", name = "Underrot Crawg", spellID = 273541, mountID = 1053, itemDescription = "Teaches you how to summon an Underrot Crawg.", sourceText = "|cFFFFD200Drop: |rUnbound Abomination|n|cFFFFD200Zone: |rThe Underrot (Mythic)|n|n|cFFFFD200Treasure: |rChallenger's Cache|n|cFFFFD200Zone: |rThe Underrot", sourceType = 0 },
  [166518] = { itemName = "G.M.O.D.", name = "G.M.O.D.", spellID = 289083, mountID = 1217, itemDescription = "Teaches you how to summon this mount.", sourceText = "|cFFFFD200Drop:|r High Tinker Mekkatorque|n|cFFFFD200Zone:|r Battle of Dazar'alor", sourceType = 0 },
  [166705] = { itemName = "Glacial Tidestorm", name = "Glacial Tidestorm", spellID = 289555, mountID = 1219, itemDescription = "Teaches you how to summon this mount.", sourceText = "|cFFFFD200Drop:|r Jaina Proudmoore (Mythic)|n|cFFFFD200Zone:|r Battle of Dazar'alor", sourceType = 0 },
  [168826] = { itemName = "Mechagon Peacekeeper", name = "Mechagon Peacekeeper", spellID = 299158, mountID = 1252, itemDescription = "Teaches you how to summon this mount.", sourceText = "|cFFFFD200Drop: |rHK-8 Aerial Oppression Unit|n|cFFFFD200Zone: |rOperation: Mechagon (Mythic)", sourceType = 0 },
  [174842] = { itemName = "Slightly Damp Pile of Fur", name = "Mollie", spellID = 298367, mountID = 1250, itemDescription = "Teaches you how to summon this mount." },
  [174872] = { itemName = "Ny'alotha Allseer", name = "Ny'alotha Allseer", spellID = 308814, mountID = 1293, itemDescription = "Teaches you how to summon this mount.", sourceText = "|cFFFFD200Drop:|r N'Zoth the Corruptor|n|cFFFFD200Zone:|r Ny'alotha, the Waking City|n|cFFFFD200Difficulty:|r Mythic", sourceType = 0 },
  [186638] = { itemName = "Cartel Master's Gearglider", name = "Cartel Master's Gearglider", spellID = 353263, mountID = 1481, itemDescription = "Teaches you how to summon this mount.", sourceText = "|cFFFFD200Drop:|r So'leah|n|cFFFFD200Zone:|r Tazavesh, the Veiled Market|n", sourceType = 0 },
  [186642] = { itemName = "Vengeance's Reins", name = "Vengeance", spellID = 351195, mountID = 1471, itemDescription = "Teaches you how to summon this mount.", sourceText = "|cFFFFD200Drop:|r Lady Sylvanas Windrunner|n|cFFFFD200Zone:|r Sanctum of Domination|n|cFFFFD200Difficulty:|r Mythic", sourceType = 6 },
  [186656] = { itemName = "Sanctum Gloomcharger's Reins", name = "Sanctum Gloomcharger", spellID = 354351, mountID = 1500, itemDescription = "Teaches you how to summon this mount.", sourceText = "|cFFFFD200Drop:|r The Nine|n|cFFFFD200Zone:|r Sanctum of Domination", sourceType = 0 },
  [190768] = { itemName = "Fractal Cypher of the Zereth Overseer", name = "Zereth Overseer", spellID = 368158, mountID = 1587, itemDescription = "Teaches you how to summon this mount." },
  [210061] = { itemName = "Reins of Anu'relos, Flame's Guidance", name = "Anu'relos, Flame's Guidance", spellID = 424484, mountID = 1818, itemDescription = "Teaches you how to summon this mount.", sourceText = "|cFFFFD200Drop: |rFyrakk|n|cFFFFD200Zone: |rAmirdrassil, the Dream's Hope (Mythic)", sourceType = 0 },
  [224147] = { itemName = "Reins of the Sureki Skyrazor", name = "Sureki Skyrazor", spellID = 451486, mountID = 2219, itemDescription = "Teaches you how to summon this mount.  This mount changes depending on your Riding skill and location.", sourceText = "|cFFFFD200Drop: |rQueen Ansurek|n|cFFFFD200Zone: |rNerub-ar Palace", sourceType = 0 },
  [224151] = { itemName = "Reins of the Ascendant Skyrazor", name = "Ascendant Skyrazor", spellID = 451491, mountID = 2223, itemDescription = "Teaches you how to summon this mount.  This mount changes depending on your Riding skill and location.", sourceText = "|cFFFFD200Drop: |rQueen Ansurek|n|cFFFFD200Zone: |rNerub-ar Palace (Mythic)", sourceType = 0 },
  [225548] = { itemName = "Wick's Lead", name = "Wick", spellID = 449264, mountID = 2204, itemDescription = "Teaches you how to summon this mount." },
  [235626] = { itemName = "Keys to the Big G", name = "The Big G", spellID = 1217760, mountID = 2487, itemDescription = "Teaches you how to summon this mount.  This mount changes depending on your Riding skill and location.", sourceText = "|cFFFFD200Drop: |rChrome King Gallywix|n|cFFFFD200Zone: |rLiberation of Undermine (Mythic)|n", sourceType = 3 },
  [236960] = { itemName = "Prototype A.S.M.R.", name = "Prototype A.S.M.R.", spellID = 1221155, mountID = 2507, itemDescription = "Teaches you how to summon this mount. This mount changes depending on your Riding skill and location.", sourceText = "|cFFFFD200Drop: |rChrome King Gallywix|n|cFFFFD200Zone: |rLiberation of Undermine", sourceType = 0 },
  [243061] = { itemName = "Unbound Star-Eater", name = "Unbound Star-Eater", spellID = 1234573, mountID = 2569, itemDescription = "Teaches you how to summon this mount. This mount changes depending on your Riding skill and location.", sourceText = "|cFFFFD200Drop: |rDimensius, the All-Devouring|n|cFFFFD200Zone: |rManaforge Omega (Mythic)|n", sourceType = 3 },
  [246590] = { itemName = "Ashes of Belo'ren", name = "Ashes of Belo'ren", spellID = 1242904, mountID = 2607, itemDescription = "Teaches you how to summon this mount.  This mount changes depending on your Riding skill and location.", sourceText = "|cFFFFD200Drop: |rMidnight Falls|n|cFFFFD200Location: |rMarch on Quel'Danas (Mythic)", sourceType = 0 },
  [260231] = { itemName = "Lucent Hawkstrider", name = "Lucent Hawkstrider", spellID = 1265784, mountID = 2817, itemDescription = "Teaches you how to summon this mount.", sourceText = "|cFFFFD200Drop:|r Degentrius|n|cFFFFD200Zone:|r Magister's Terrace (Mythic)|n|n|cFFFFD200Drop:|r Challenger's Cache|n|cFFFFD200Zone:|r Magister's Terrace", sourceType = 0 },
  [262914] = { itemName = "Spectral Hawkstrider", name = "Spectral Hawkstrider", spellID = 1263635, mountID = 2805, itemDescription = "Teaches you how to summon this mount.", sourceText = "|cFFFFD200Drop:|r The Restless Heart|n|cFFFFD200Zone:|r Windrunner Spire (Mythic)|n|n|cFFFFD200Drop:|r Challenger's Cache|n|cFFFFD200Zone:|r Windrunner Spire", sourceType = 0 },
}

function DB.Get(itemID)
  itemID = tonumber(itemID)
  return itemID and DB.byItemID and DB.byItemID[itemID] or nil
end
