::Creating an ability system is quite complex. There are many ways to go about doing it, and a lot of the finer considerations will depend on how you want your ability system to work.
Personally, I will create a ScriptableObject for abilities, the same way we have a scriptable object for weapons. The first thing I will look at is whether it is practical to make the Ability a subclass of Item (paired with AbilityData), the same way Weapon subclasses Item. The difference between Weapon and Ability is that weapons are “passive” effects, in the sense that they activate by themselves; whereas abilities only activate when you click on a button (either in the UI, or on the keyboard). Otherwise, like weapons, they also have cooldowns and different stats.
For the dash ability, I would create an ability that adds a buff to the character. That buff will cause the character to dash towards a certain location for a short duration.
If you are not in a rush, you can consider waiting for Part 23, because I will be covering how to create a buff / debuff system for the player and enemies. Your ability system will work better if it is built on top of this buff / debuff system.