Add CoAClassSpecData.lua (copied from coa-db/data) and wire
GetPlayerCoARole() into TankMode so CoA tokens resolve TANK/HEALER/DAMAGER
from their active spec instead of defaulting to DAMAGER.
- CoAClassSpecData.lua: defines CoAClassSpec keyed by UnitClass token,
loaded in .toc before Core.xml/Modules.xml
- GetPlayerCoARole(): pcall-guarded helper that calls
SpecializationUtil.GetActiveSpecialization() (1-based index) to look up
the current spec in CoAClassSpec[token].specs; TANK > HEALER > DAMAGER
precedence when a spec carries multiple roles; returns nil for vanilla
classes so the existing IsTank/IsHealer path is unchanged
- mod:Update(): try GetPlayerCoARole() first; fall through to vanilla
logic only when nil (vanilla class or unresolvable spec)
- Re-evaluation on spec change already covered: PLAYER_TALENT_UPDATE
fires on both spec and talent changes, driving mod:Update()
luac -p: TankMode.lua OK, CoAClassSpecData.lua OK