Abilities are incredibly diverse. Even if we were to try and group them together in some heirarchy the way to group them would still be subjective and ought to be left to the dev using the library. Engines may differ, especially when people (like me!) are interested in thinking up more spinoff-oriented fangames that still want to take advantage of the huge amount of pokedex data the game offers them. Pokemon Tower Defense has no end-of-turn.
@iTeruri Would you be fine with just extending the Ability class with a function working the same way that your proposed Effect class would do? The meaning of "effect" in your example would be to serve some active purpose "in engine" rather than just containing data to be read. It seems to me that having it as part of the library would go against modularity it's aiming for. From what I gather the OP wants to do is create something that leaves both the ends (what it's used for) and the means (how it's used for that) up to the dev.