The current AI API is insufficient for AI other than the simple mechanism currently in place. If it wasn't taking so long to track down everything needed, I'd build this myself and tie in the V8 Javascript engine for AI... I've worked with it already, it's C++ and easy to embed. Here's what I think would be fairly ideal for an API, something like this (*already exists):
- get list of units*
- get attributes of unit (type, location, health, etc.)*
- get field of view, of all units* (but need know what's in any map cell)
- get field of view of unit (individual unit's field of view, also what's in any map cell)
- get list of actions* (but this is freaking complicated--I still haven't properly deciphered it)
- get attributes of each command type issuable to a unit (range, damage, type of damage, etc..)
- ability group units
Also--would love to be able to change alliances mid-game under giving conditions or perhaps, at least at the end so your ally can turn on you.