------------------------------
-- Reagent Data Data Tables --
------------------------------

-----------------
-- Professions --
-----------------

-- Reagent Data: Alchemy
ReagentData['alchemy'] = ReagentData_Flatten({
     ReagentData['vial'],
     ReagentData['herb'],
     ReagentData['oil']['blackmouth'],
     ReagentData['oil']['fire'],
     ReagentData['oil']['shadow'],
     ReagentData['oil']['stonescale'],
     ReagentData['alchemyfish'],
     ReagentData['cookingfish']['deviate'],
     ReagentData['potion']['minorhealing'],
     ReagentData['monster']['discoloredworgheart'],
     ReagentData['monster']['sharpclaw'],
     ReagentData['monster']['largefang'],
     ReagentData['monster']['largevenomsac'],
     ReagentData['monster']['smallflamesac'],
     ReagentData['monster']['volatilerum'],
     ReagentData['monster']['scaleofonyxia'],
     ReagentData['ore']['mithril'],
     ReagentData['ore']['thorium'],
     ReagentData['bar']['iron'],
     ReagentData['bar']['mithril'],
     ReagentData['bar']['thorium'],
     ReagentData['gem']['blackvitriol'],
     ReagentData['gem']['arcanecrystal'],
     ReagentData['dye']['purple'],
     ReagentData['dust']['dream'],
     ReagentData['element']['air'],
     ReagentData['element']['earth'],
     ReagentData['element']['fire'],
     ReagentData['element']['water'],
     ReagentData['element']['ichorofundeath'],
     ReagentData['element']['heartoffire'],
     ReagentData['element']['essenceofair'],
     ReagentData['element']['essenceofearth'],
     ReagentData['element']['essenceoffire'],
     ReagentData['element']['essenceofwater'],
     ReagentData['element']['essenceofundeath'],
     ReagentData['element']['livingessence'],
     ReagentData['element']['heartofthewild'],
     ReagentData['other']['philosophersstone'],
});

-- Reagent Data: Blacksmithing
ReagentData['blacksmithing'] = ReagentData_Flatten({
     ReagentData['bar'],
     ReagentData['stone'],
     ReagentData['grinding'],
     ReagentData['other']['frozenrune'],
     ReagentData['flux']['weak'],
     ReagentData['flux']['strong'],
     ReagentData['cloth']['linen'],
     ReagentData['cloth']['wool'],
     ReagentData['cloth']['silk'],
     ReagentData['cloth']['mageweave'],
     ReagentData['cloth']['rune'],
     ReagentData['leather']['light'],
     ReagentData['leather']['medium'],
     ReagentData['leather']['heavy'],
     ReagentData['leather']['thick'],
     ReagentData['leather']['rugged'],
     ReagentData['leather']['enchanted'],
     ReagentData['leather']['core'],
     ReagentData['ore']['smallobsidianshard'],
     ReagentData['ore']['largeobsidianshard'],
     ReagentData['gem']['malachite'],
     ReagentData['gem']['tigerseye'],
     ReagentData['gem']['shadow'],
     ReagentData['gem']['mossagate'],
     ReagentData['gem']['lessermoonstone'],
     ReagentData['gem']['citrine'],
     ReagentData['gem']['jade'],
     ReagentData['gem']['aquamarine'],
     ReagentData['gem']['starruby'],
     ReagentData['gem']['bluesapphire'],
     ReagentData['gem']['blackdiamond'],
     ReagentData['gem']['hugeemerald'],
     ReagentData['gem']['largeopal'],
     ReagentData['gem']['azerothiandiamond'],
     ReagentData['gem']['souldarite'],
     ReagentData['gem']['bloodofthemountain'],
     ReagentData['pearl']['smalllustrous'],
     ReagentData['pearl']['iridescent'],
     ReagentData['pearl']['black'],
     ReagentData['other']['bluepowercrystal'],
     ReagentData['other']['greenpowercrystal'],
     ReagentData['other']['redpowercrystal'],
     ReagentData['other']['yellowpowercrystal'],
     ReagentData['thread']['fine'],
     ReagentData['dye']['green'],
     ReagentData['shard']['nexuscrystal'],
     ReagentData['potion']['swiftness'],
     ReagentData['potion']['elixirofogresstrength'],
     ReagentData['potion']['lesserinvisibility'],
     ReagentData['potion']['flaskofsupremepower'],
     ReagentData['potion']['flaskofthetitans'],
     ReagentData['element']['air'],
     ReagentData['element']['earth'],
     ReagentData['element']['fire'],
     ReagentData['element']['water'],
     ReagentData['element']['coreofearth'],
     ReagentData['element']['heartoffire'],
     ReagentData['element']['breathofwind'],
     ReagentData['element']['livingessence'],
     ReagentData['element']['ichorofundeath'],
     ReagentData['element']['essenceofearth'],
     ReagentData['element']['essenceoffire'],
     ReagentData['element']['essenceofwater'],
     ReagentData['element']['essenceofundeath'],
     ReagentData['oil']['shadow'],
     ReagentData['oil']['frost'],
     ReagentData['herb']['wildvine'],
     ReagentData['herb']['bloodvine'],
     ReagentData['monster']['demonicrune'],
     ReagentData['monster']['powerfulmojo'],
     ReagentData['monster']['largefang'],
     ReagentData['monster']['sharpclaw'],
     ReagentData['monster']['wickedclaw'],
     ReagentData['monster']['righteousorb'],
     ReagentData['monster']['fierycore'],
     ReagentData['monster']['lavacore'],
     ReagentData['monster']['guardianstone'],
     ReagentData['monster']['sulfuroningot'],
     ReagentData['monster']['darkrune'],
     ReagentData['monster']['skinofshadow'],
     ReagentData['feather']['jetblack'],
     ReagentData['armor']['greenleather'],
     ReagentData['armor']['guardiangloves'],
});

-- Reagent Data: Cooking
ReagentData['cooking'] = ReagentData_Flatten({
     ReagentData['monster']['chunkofboarmeat'],
     ReagentData['monster']['stringywolfmeat'],
     ReagentData['monster']['meatybatwing'],
     ReagentData['monster']['smallegg'],
     ReagentData['monster']['smallspiderleg'],
     ReagentData['monster']['scorpidstinger'],
     ReagentData['monster']['cragboarrib'],
     ReagentData['monster']['kodomeat'],
     ReagentData['monster']['bearmeat'],
     ReagentData['monster']['clammeat'],
     ReagentData['monster']['coyotemeat'],
     ReagentData['monster']['goretuskliver'],
     ReagentData['monster']['softfrenzyflesh'],
     ReagentData['monster']['giantclammeat'],
     ReagentData['monster']['stridermeat'],
     ReagentData['monster']['boarintestines'],
     ReagentData['monster']['spiderichor'],
     ReagentData['monster']['stringyvulturemeat'],
     ReagentData['monster']['murloceye'],
     ReagentData['monster']['goretusksnout'],
     ReagentData['monster']['crawlermeat'],
     ReagentData['monster']['crocoliskmeat'],
     ReagentData['monster']['boarribs'],
     ReagentData['monster']['crawlerclaw'],
     ReagentData['monster']['clawmeat'],
     ReagentData['monster']['digrat'],
     ReagentData['monster']['murlocfin'],
     ReagentData['monster']['crispspidermeat'],
     ReagentData['monster']['whitespidermeat'],
     ReagentData['monster']['toughcondormeat'],
     ReagentData['monster']['thunderlizardtail'],
     ReagentData['monster']['leanwolfflank'],
     ReagentData['monster']['gooeyspiderleg'],
     ReagentData['monster']['bigbearmeat'],
     ReagentData['monster']['stagmeat'],
     ReagentData['monster']['tendercrocoliskmeat'],
     ReagentData['monster']['tenderwolfmeat'],
     ReagentData['monster']['tangyclammeat'],
     ReagentData['monster']['raptoregg'],
     ReagentData['monster']['lionmeat'],
     ReagentData['monster']['buzzardwing'],
     ReagentData['monster']['raptorflesh'],
     ReagentData['monster']['mysterymeat'],
     ReagentData['monster']['tigermeat'],
     ReagentData['monster']['redwolfmeat'],
     ReagentData['monster']['heavykodomeat'],
     ReagentData['monster']['smallflamesac'],
     ReagentData['monster']['zestyclammeat'],
     ReagentData['monster']['giantegg'],
     ReagentData['monster']['tendercrabmeat'],
     ReagentData['monster']['sandwormmeat'],
     ReagentData['monster']['chimaeroktenderloin'],
     ReagentData['cookingfish'],
     ReagentData['spice'],
     ReagentData['drink'],
     ReagentData['food']['shinyredapple'],
     ReagentData['herb']['swifthistle'],
     ReagentData['herb']['goldthorn'],
});

-- Reagent Data: Enchanting
ReagentData['enchanting'] = ReagentData_Flatten({
     ReagentData['rod'],
     ReagentData['dust'],
     ReagentData['essence'],
     ReagentData['shard'],
     ReagentData['wood'],
     ReagentData['vial'],
     ReagentData['monster']['largefang'],
     ReagentData['monster']['righteousorb'],
     ReagentData['monster']['larvalacid'],
     ReagentData['monster']['guardianstone'],
     ReagentData['scale']['greenwhelp'],
     ReagentData['gem']['shadow'],
     ReagentData['gem']['blackdiamond'],
     ReagentData['reagent']['stranglethornseed'],
     ReagentData['pearl']['black'],
     ReagentData['pearl']['iridescent'],
     ReagentData['pearl']['golden'],
     ReagentData['gem']['aquamarine'],
     ReagentData['gem']['bloodofthemountain'],
     ReagentData['oil']['blackmouth'],
     ReagentData['oil']['fire'],
     ReagentData['oil']['frost'],
     ReagentData['potion']['elixirofdemonslaying'],
     ReagentData['ore']['iron'],
     ReagentData['bar']['truesilver'],
     ReagentData['bar']['thorium'],
     ReagentData['herb']['firebloom'],
     ReagentData['herb']['purplelotus'],
     ReagentData['herb']['blacklotus'],
     ReagentData['herb']['kingsblood'],
     ReagentData['herb']['wildvine'],
     ReagentData['herb']['sungrass'],
     ReagentData['herb']['icecap'],
     ReagentData['herb']['wintersbite'],
     ReagentData['leather']['rugged'],
     ReagentData['element']['earth'],
     ReagentData['element']['fire'],
     ReagentData['element']['heartoffire'],
     ReagentData['element']['coreofearth'],
     ReagentData['element']['globeofwater'],
     ReagentData['element']['breathofwind'],
     ReagentData['element']['ichorofundeath'],
     ReagentData['element']['essenceoffire'],
     ReagentData['element']['essenceofwater'],
     ReagentData['element']['essenceofair'],
     ReagentData['element']['essenceofearth'],
     ReagentData['element']['essenceofundeath'],
     ReagentData['element']['livingessence'],
});

-- Reagent Data: Engineering
ReagentData['engineering'] = ReagentData_Flatten({
     ReagentData['bar'],
     ReagentData['stone'],
     ReagentData['powder'],
     ReagentData['part'],
     ReagentData['flux']['weak'],
     ReagentData['cloth']['linen'],
     ReagentData['cloth']['wool'],
     ReagentData['cloth']['silk'],
     ReagentData['cloth']['mageweave'],
     ReagentData['cloth']['rune'],
     ReagentData['bolt']['mageweave'],
     ReagentData['gem']['malachite'],
     ReagentData['gem']['tigerseye'],
     ReagentData['gem']['mossagate'],
     ReagentData['gem']['shadow'],
     ReagentData['gem']['lessermoonstone'],
     ReagentData['gem']['jade'],
     ReagentData['gem']['citrine'],
     ReagentData['gem']['aquamarine'],
     ReagentData['gem']['starruby'],
     ReagentData['gem']['bluesapphire'],
     ReagentData['gem']['largeopal'],
     ReagentData['gem']['hugeemerald'],
     ReagentData['gem']['azerothiandiamond'],
     ReagentData['gem']['souldarite'],
     ReagentData['pearl']['blue'],
     ReagentData['monster']['smallflamesac'],
     ReagentData['vendorother']['nightcrawlers'],
     ReagentData['monster']['flaskofoil'],
     ReagentData['monster']['flaskofmojo'],
     ReagentData['monster']['powerfulmojo'],
     ReagentData['monster']['fierycore'],
     ReagentData['monster']['lavacore'],
     ReagentData['spidersilk']['thick'],
     ReagentData['spidersilk']['shadow'],
     ReagentData['spidersilk']['ironweb'],
     ReagentData['herb']['icecap'],
     ReagentData['herb']['wildvine'],
     ReagentData['herb']['bloodvine'],
     ReagentData['leather']['light'],
     ReagentData['leather']['medium'],
     ReagentData['leather']['heavy'],
     ReagentData['leather']['thick'],
     ReagentData['leather']['rugged'],
     ReagentData['leather']['enchanted'],
     ReagentData['element']['air'],
     ReagentData['element']['earth'],
     ReagentData['element']['fire'],
     ReagentData['element']['heartoffire'],
     ReagentData['element']['coreofearth'],
     ReagentData['element']['heartofthewild'],
     ReagentData['element']['livingessence'],
     ReagentData['element']['essenceofearth'],
     ReagentData['element']['essenceoffire'],
     ReagentData['element']['essenceofair'],
     ReagentData['element']['essenceofundeath'],
     ReagentData['element']['essenceofwater'],
     ReagentData['element']['ichorofundeath'],
     ReagentData['drink']['refreshingspringwater'],
     ReagentData['oil']['frost'],
     ReagentData['oil']['goblinrocketfuel'],
     ReagentData['salt']['deeprock'],
     ReagentData['potion']['catseyeelixir'],
     ReagentData['other']['snowball'],
     ReagentData['armor']['greentintedgoggles'],
     ReagentData['armor']['flyingtigergoggles'],
     ReagentData['armor']['firegoggles'],
     ReagentData['armor']['duskybelt'],
     ReagentData['armor']['blackmageweaveboots'],
     ReagentData['armor']['goblinconstructionhelmet'],
     ReagentData['armor']['spellpowergogglesxtreme'],
});

-- Reagent Data: First Aid
ReagentData['firstaid'] = ReagentData_Flatten({
     ReagentData['cloth']['linen'],
     ReagentData['cloth']['wool'],
     ReagentData['cloth']['silk'],
     ReagentData['cloth']['mageweave'],
     ReagentData['cloth']['rune'],
     ReagentData['monster']['smallvenomsac'],
     ReagentData['monster']['largevenomsac'],
     ReagentData['monster']['hugevenomsac'],
});

-- Reagent Data: Leatherworking
ReagentData['leatherworking'] = ReagentData_Flatten({
     ReagentData['leather'],
     ReagentData['hide'],
     ReagentData['scale'],
     ReagentData['salt'],
     ReagentData['thread'],
     ReagentData['other']['frozenrune'],
     ReagentData['dye']['bleach'],
     ReagentData['dye']['gray'],
     ReagentData['dye']['green'],
     ReagentData['dye']['black'],
     ReagentData['potion']['elixirofminoragility'],
     ReagentData['potion']['elixirofdefense'],
     ReagentData['potion']['elixirofwisdom'],
     ReagentData['potion']['elixiroflesseragility'],
     ReagentData['potion']['swiftness'],
     ReagentData['potion']['greatrage'],
     ReagentData['potion']['elixirofgreaterdefense'],
     ReagentData['potion']['elixirofagility'],
     ReagentData['oil']['shadow'],
     ReagentData['cloth']['fel'],
     ReagentData['cloth']['mageweave'],
     ReagentData['cloth']['moon'],
     ReagentData['cloth']['rune'],
     ReagentData['bolt']['wool'],
     ReagentData['bolt']['silk'],
     ReagentData['bolt']['rune'],
     ReagentData['monster']['slimymurlocscale'],
     ReagentData['monster']['thickmurlocscale'],
     ReagentData['monster']['flaskofmojo'],
     ReagentData['monster']['flaskofbigmojo'],
     ReagentData['monster']['powerfulmojo'],
     ReagentData['monster']['largefang'],
     ReagentData['monster']['coarsegorillahair'],
     ReagentData['monster']['wickedclaw'],
     ReagentData['monster']['luckycharm'],
     ReagentData['monster']['brilliantchromaticscale'],
     ReagentData['monster']['fierycore'],
     ReagentData['monster']['lavacore'],
     ReagentData['monster']['guardianstone'],
     ReagentData['monster']['larvalacid'],
     ReagentData['monster']['skinofshadow'],
     ReagentData['monster']['ogretannin'],
     ReagentData['monster']['scaleofonyxia'],
     ReagentData['monster']['righteousorb'],
     ReagentData['monster']['silithidchitin'],
     ReagentData['monster']['heavysilithidcarapace'],
     ReagentData['monster']['lightsilithidcarapace'],
     ReagentData['feather']['longtail'],
     ReagentData['feather']['iron'],
     ReagentData['feather']['jetblack'],
     ReagentData['spidersilk']['silk'],
     ReagentData['spidersilk']['thick'],
     ReagentData['spidersilk']['ironweb'],
     ReagentData['pearl']['smalllustrous'],
     ReagentData['pearl']['iridescent'],
     ReagentData['pearl']['black'],
     ReagentData['gem']['shadow'],
     ReagentData['gem']['jade'],
     ReagentData['gem']['citrine'],
     ReagentData['gem']['mossagate'],
     ReagentData['gem']['blackdiamond'],
     ReagentData['herb']['kingsblood'],
     ReagentData['herb']['wildvine'],
     ReagentData['herb']['bloodvine'],
     ReagentData['element']['earth'],
     ReagentData['element']['water'],
     ReagentData['element']['globeofwater'],
     ReagentData['element']['coreofearth'],
     ReagentData['element']['heartoffire'],
     ReagentData['element']['livingessence'],
     ReagentData['element']['essenceoffire'],
     ReagentData['element']['essenceofwater'],
     ReagentData['element']['essenceofair'],
     ReagentData['element']['essenceofearth'],
     ReagentData['armor']['ironbuckle'],
     ReagentData['armor']['fineleathertunic'],
     ReagentData['armor']['fineleatherbelt'],
     ReagentData['armor']['fineleathergloves'],
     ReagentData['armor']['cinderclothcloak'],
});

-- Reagent Data: Tailoring
ReagentData['tailoring'] = ReagentData_Flatten({
     ReagentData['cloth'],
     ReagentData['bolt'],
     ReagentData['thread'],
     ReagentData['dye'],
     ReagentData['spidersilk'],
     ReagentData['other']['frozenrune'],
     ReagentData['leather']['light'],
     ReagentData['leather']['medium'],
     ReagentData['leather']['heavy'],
     ReagentData['leather']['thick'],
     ReagentData['leather']['rugged'],
     ReagentData['leather']['enchanted'],
     ReagentData['leather']['core'],
     ReagentData['pearl']['smalllustrous'],
     ReagentData['pearl']['iridescent'],
     ReagentData['pearl']['black'],
     ReagentData['pearl']['golden'],
     ReagentData['gem']['citrine'],
     ReagentData['gem']['jade'],
     ReagentData['gem']['starruby'],
     ReagentData['gem']['hugeemerald'],
     ReagentData['gem']['azerothiandiamond'],
     ReagentData['herb']['wildvine'],
     ReagentData['herb']['purplelotus'],
     ReagentData['herb']['morrowgrain'],
     ReagentData['herb']['bloodvine'],
     ReagentData['potion']['elixirofwisdom'],
     ReagentData['potion']['shadowprotection'],
     ReagentData['potion']['healing'],
     ReagentData['potion']['mana'],
     ReagentData['oil']['shadow'],
     ReagentData['oil']['fire'],
     ReagentData['oil']['frost'],
     ReagentData['bar']['arcanite'],
     ReagentData['bar']['gold'],
     ReagentData['bar']['truesilver'],
     ReagentData['monster']['nagascale'],
     ReagentData['monster']['demonicrune'],
     ReagentData['monster']['fierycore'],
     ReagentData['monster']['lavacore'],
     ReagentData['monster']['guardianstone'],
     ReagentData['monster']['ogretannin'],
     ReagentData['monster']['righteousorb'],
     ReagentData['monster']['darkrune'],
     ReagentData['feather']['longelegant'],
     ReagentData['essence']['greatereternal'],
     ReagentData['dust']['vision'],
     ReagentData['dust']['dream'],
     ReagentData['element']['earth'],
     ReagentData['element']['water'],
     ReagentData['element']['fire'],
     ReagentData['element']['air'],
     ReagentData['element']['globeofwater'],
     ReagentData['element']['heartoffire'],
     ReagentData['element']['heartofthewild'],
     ReagentData['element']['essenceofearth'],
     ReagentData['element']['essenceofwater'],
     ReagentData['element']['essenceoffire'],
     ReagentData['element']['essenceofair'],
     ReagentData['element']['essenceofundeath'],
     ReagentData['element']['livingessence'],
     ReagentData['shard']['largebrilliant'],
     ReagentData['armor']['ironbuckle'],
});

-------------------
-- Gather Skills --
-------------------

-- Reagent Data: Fishing
ReagentData['fishing'] = ReagentData_Flatten({
     ReagentData['alchemyfish'],
     ReagentData['cookingfish'],
});

-- Reagent Data: Herbalism
ReagentData['herbalism'] = ReagentData['herb'];

-- Reagent Data: Mining
ReagentData['mining'] = ReagentData_Flatten({
     ReagentData['ore'],
     ReagentData['stone'],
     ReagentData['gem'],
});

-- Reagent Data: Skinning
ReagentData['skinning'] = ReagentData_Flatten({
     ReagentData['leather'],
     ReagentData['scale'],
     ReagentData['hide']['light'],
     ReagentData['hide']['medium'],
     ReagentData['hide']['heavy'],
     ReagentData['hide']['thick'],
     ReagentData['hide']['rugged'],
     ReagentData['hide']['raptor'],
     ReagentData['hide']['shadowcat'],
     ReagentData['hide']['thickwolf'],
});

-----------------------
-- Other Item Groups --
-----------------------

-- Reagent Data: Rogue Poison Reagents
ReagentData['poisonreagent'] = ReagentData_Flatten({
     ReagentData['vial'],
     ReagentData['poisoningredient'],
     ReagentData['herb']['fadeleaf'],
});

-- Reagent Data: Vendor Item Groups
ReagentData['vendor'] = ReagentData_Flatten({
     ReagentData['drink'],
     ReagentData['dye'],
     ReagentData['flux'],
     ReagentData['food'],
     ReagentData['poisoningredient'],
     ReagentData['salt'],
     ReagentData['spice'],
     ReagentData['thread'],
     ReagentData['vendorother'],
     ReagentData['vial'],
     ReagentData['wood'],
     ReagentData['part']['heavystock'],
     ReagentData['part']['blankparchment'],
     ReagentData['part']['engineersink'],
});

-- Reagent Data: Monster Drops
ReagentData['monsterdrops'] = ReagentData_Flatten({
     ReagentData['monster'],
     ReagentData['feather'],
     ReagentData['spidersilk'],
     ReagentData['pearl'],
     ReagentData['scale']['deviate'],
});

-- Reagent Data: Spell Reagents
ReagentData['spellreagents'] = {
    [ReagentData["classes"]["druid"]] = {
        ReagentData['reagent']['mapleseed'],
        ReagentData['reagent']['stranglethornseed'],
        ReagentData['reagent']['ashwoodseed'],
        ReagentData['reagent']['hornbeamseed'],
        ReagentData['reagent']['ironwoodseed'],
        ReagentData['reagent']['wildberries'],
        ReagentData['reagent']['wildthornroot'],
    };
    [ReagentData["classes"]["mage"]] = {
        ReagentData['reagent']['lightfeather'],
        ReagentData['reagent']['runeofteleportation'],
        ReagentData['reagent']['runeofportals'],
        ReagentData['reagent']['arcanepowder'],
    };
    [ReagentData["classes"]["paladin"]] = {
        ReagentData['reagent']['symbolofdivinity'],
    };
    [ReagentData["classes"]["priest"]] = {
        ReagentData['reagent']['lightfeather'],
        ReagentData['reagent']['holycandle'],
        ReagentData['reagent']['sacredcandle'],
    };
    [ReagentData["classes"]["rogue"]] = {
        ReagentData['reagent']['flashpowder'],
        ReagentData['reagent']['blindingpowder'],
    };
    [ReagentData["classes"]["shaman"]] = {
        ReagentData['reagent']['shinyfishscales'],
        ReagentData['reagent']['fishoil'],
        ReagentData['reagent']['ankh'],
    };
    [ReagentData["classes"]["warlock"]] = {
        ReagentData['reagent']['infernalstone'],
        ReagentData['reagent']['demonicfigurine'],
        ReagentData['reagent']['soulshard'],
    };
};