Here is an example
1) Link to an AbilityBonusOption from the unittype
2) The AbilityBonus links to a spelldef
In the <unittype> container, you can add
<SelectedAbilityBonusOption>IceBlast</SelectedAbilityBonusOption>
this links to an <abilitybonusoption> container that looks like this
<AbilityBonus InternalName="IceBlastAbility">
<AbilityBonusOption InternalName = "IceBlast">
<DisplayName>Ice Blast</DisplayName>
<Description>This unit is able blast an enemy unit with ice, causing them to lose their next turn and take 5 damage.</Description>
<Icon>IceBolt.png</Icon>
<GameModifier InternalName="DrowningStrike">
<ModType>Unit</ModType>
<Attribute>UnlockCombatAbility</Attribute>
<StrVal>IceBlast</StrVal>
</GameModifier>
</AbilityBonusOption>
</AbilityBonus>
the gamemodifier, as you see, using the attribute UnlockCombatAbility, links to a spell called Iceblast, that is defined in a <spelldef> container that looks like this
<SpellDef InternalName="IceBlast">
<DisplayName>Ice Blast</DisplayName>
<Description>Target enemy blasted with frigid ice, dealing 5 damage and causing them to lose their next turn.</Description>
<Image>WaterCrystal_Medallion.png</Image>
<IconFG>IceBolt.png</IconFG>
<IconColor>32,45,243</IconColor>
<Range>-1</Range>
<SoundFX>Spell_FreezeGroup_01</SoundFX>
<ManaCost>3.0</ManaCost>
<SpellLevel>1</SpellLevel>
<SpellType>Tactical</SpellType>
<SpellClass>Offensive</SpellClass>
<SpellTargetType>EnemyUnit</SpellTargetType>
<IsSpecialAbility>1</IsSpecialAbility>
<GameModifier InternalName="HurricaneMoveModifier">
<ModType>TacticalUnit</ModType>
<Attribute>ChanceToMoveTargetToRandomTile</Attribute>
<Value>1</Value>
</GameModifier>
<GameModifier InternalName="HurricaneDamageModifier">
<ModType>Unit</ModType>
<Attribute>CurHealth</Attribute>
<Value>-5</Value>
</GameModifier>
<GameModifier InternalName="MaulModifier">
<ModType>TacticalUnit</ModType>
<Attribute>ChanceToLoseNextTurn</Attribute>
<Value>1</Value>
<PerTurn>0</PerTurn>
<Duration>2</Duration>
</GameModifier>
<SpellDefEffect>
<EffectName>Ice_Bolt</EffectName>
<LocalPosition>0,0,0</LocalPosition>
<EffectScale>0.50</EffectScale>
<EffectDelay>0.0</EffectDelay>
<SnapToTerrain>1</SnapToTerrain>
</SpellDefEffect>
</SpellDef>