@GreenTyr I've started down that road.
My attempt at this is still in its infancy however this is how I am approaching it:
I started out with a with a standard array based on a Pokemon's evolution type: Single Stage, Two-Stage, Three-Stage, Baby, Legendary, and Mythical (like Mew or Celebi. They're legendary but not necessarily powerful), as well as giving it a base XP value to buy up those stats or get extra attacks upon catching of the pokemon. I distribute the characteristics of the assigned array based on the pokemon.
Essentially, each of the examples above are an archetype.
It's been a side project, so I haven't done much but I eventually plan to make a full list of attacks and give them various qualities and stats, and even give an XP cost so players can spend XP for a pokemon to learn them. I will even plan on allowing evolution to be an XP cost.