All right...you asked for suggestions, so I've got some. Be warned, this is something specific. I don't know if it will have relevance to anyone else's projects, though I believe so.
First of all, some explaining is in order. I've been looking for ways to make the game more like the show. In that, I decided that the obvious place to start was the core of the game experience...the battle system. This means making some major changes to the battle engine itself. Since you've already built a framework, I thought I'd bounce some of what I would need to be done off you.
+ Ability to call up a command menu on the opponent's "turn"...by which I mean after their move is declared, but before the effect is applied.
+ Multiple battle menus called by variable.
+ Ability to define and call up multiple "versions" of a move (like how Secret Power changes by terrain, or Curse working differently for ghosts).
While there are a number of possible uses for these functions, it is my intent to use them to create a two-phase battle system, in which pokemon have not only an attacking turn, but also a defense turn. Of course, and so you don't think my request selfish, there are other ways it could be used as well. For example, multiple move versions could be used to make HM moves always the right type for the pokemon they're taught to (such as Fly becoming Dragon-Type for certain pokemon, or Flash changing to Fire for some users). The multiple battle menus and off-turn call systems might be used to make a battle in which a Trainer must be talked to during the fight.
Of course, it could be that some of this could be better accomplished through the creation of a utility. If you believe so, then I heartily thank you for your time, and apologize that my input has not been helpful.