Some random thoughts, just brainstorming, nothing structured yet
Attribute type list
SpriteName is mandatory and internal
SkillName is mandatory
Cooldown is mandatory
Radius is not - If not present, the skill affects the player
Cost is not - Can be free
Dmg is not
Each skill has a "level", that is an internal property
Start at level 1
Child level is (average of parents) + 1
Skill is a list of attributes
Number of optional attributes is 2 + Floor(Level / 5) (mandatory attributes are always present)
Attribute
Type (from attribute list)
Mandatory?
Constraints on value
Is the attribute a bonus or a malus (e.g. cost)
What is the minimum skill level to have this attribute?
How is the attribute value computed?
Graphical special effect? The global skill effect needs to be different from the icon of the skill, and could even be composed of all the effects of the attributes
Global skill generation
Global check to ensure that the skill is within a certain range of "usefulness"? E.g. check that it isn't a god skill, or that is isn't some worthless trash
Some random thoughts, just brainstorming, nothing structured yet
Attribute type list
Each skill has a "level", that is an internal property
Skill is a list of attributes
Attribute
Global skill generation