Not to necro the thread, but I had a realization about this. I did something similar with the Ravnica guild backgrounds. When chosen, they add a specific set of spells to your overall spell list. Am I crazy, or could this code do the trick as well? It certainly works when added as part of a background.
Code:
<thing id="ab5CGGRAzSpl" name="Azorius Spellcasting" description="Azorius spellcasters blah blah blah" compset="Ability">
<tag group="Helper" tag="ShowSpec" name="Show Spec" abbrev="Show Spec"/>
<tag group="ClsAllowSp" tag="sp5CFriend"/>
<tag group="ClsAllowSp" tag="spMessage"/>
<tag group="ClsAllowSp" tag="spCommand"/>
<tag group="ClsAllowSp" tag="sp5CEnsnaS"/>
<tag group="ClsAllowSp" tag="spArcaLock"/>
<tag group="ClsAllowSp" tag="spCalmEmot"/>
<tag group="ClsAllowSp" tag="spHoldPers"/>
<tag group="ClsAllowSp" tag="spClairvoy"/>
<tag group="ClsAllowSp" tag="sp5CCounte"/>
<tag group="ClsAllowSp" tag="sp5CCompul"/>
<tag group="ClsAllowSp" tag="spDivinati"/>
<tag group="ClsAllowSp" tag="spDomiPers"/>
<tag group="AbilFunc" tag="Background"/>
<eval phase="First">foreach pick in hero from Class
perform eachpick.pushtags[ClsAllowSp.?]
nexteach</eval>
</thing>
You'd need to modify the eval script to be specific to that class. Other than that, it seems sensical.