SplitByCategory() guessed herb/ore from display-name keywords written
for the original 5-entry Northrend pool. Outland/Classic ore uses
'Deposit' not 'Vein', and most herb names match no keyword, so both
buckets came back empty for almost every v2 zone and the code silently
fell back to the unsplit pool (confirmed live in Hellfire Peninsula).
Replace the keyword guess with a static ID->category lookup table built
from the DB-verified entry IDs in docs/zone-specific-resources-spec.md.
The old keyword check is retained only as a fallback for entries not in
the table.
SplitByCategory() guesses herb/ore purely from keywords in the
display name (lotus/clover/thorn/bloom for herb, vein for ore) --
written for the original 5-entry Northrend default pool, never
updated for the ~70 entries the v2 zone-resources feature (PR #5)
introduced. Confirmed live in Hellfire Peninsula: none of its 4
resources (Felweed, Dreaming Glory, Fel Iron Deposit, Adamantite
Deposit) match any keyword, so both herb and ore buckets come back
empty and every zone silently falls back to the unsplit pool --
breaking the intended herb/ore alternation for the large majority of
the 57 configured zones.
Spec provides the full herb/ore classification for every entry ID
already verified against the live DB when the zone pool was built,
so this can be implemented as a static ID lookup instead of
continuing to patch an ever-fragile keyword list.