Another question (won't you be glad when the c++ code is published and I'll only have to ask half as often!):
The revelation spell checks for invisible units by looking for promos (PROMOTION_HIDDEN, PROMOTION_INVISIBLE), etc... But it looks like in addition to those promos, there's also an Invisible tag on units, frex: <Invisible>INVISIBLE_ANIMAL</Invisible>. That doesn't seem to be handled with promos, so when I copied the code for revelation, it doesn't detect that that spider is supposed to be included as an invisible/hidden unit (this may have something to do with the caster being a ranger UU, or it may not).
Is there a getHasInvisibility(INVISIBILITY_TYPE) or similar function? More generally, I don't suppose there's any reference that simply has the name and function prototypes of all the available python functions so I can stop asking?