Dependign how tight your model - codeintegration is, you could use the file format to recognise trigger events that cause animations.
(on the fly pseudo)
Like
when (anyShipArrives() && anyShipArrivesParent()==this)
anim_1.start(60)
runway.flash_light(true,5,60)
i.e. when a ship arrives, do the following stuff
open doors (1) for 60 secs
flash lights on for 60 secs at 5 sec intervals
If you can set sub-objects as seprate child classes, you have a lot more potential to give them unique operations, or type - specific stuff. (better abstraction).
Of copurse, it's not really like pof format, so you'd maybe have to initialise models through a wrapper class, that defines type, stats, child subobjects and their animations, effects - taking some of that data from the relevant tbl.
If you store animations as keyframes, you could use parameters to delay, and then reverse the animation.
EDIT;
Actually, i just realised how self evident & vague most of that was. :doh:
but I'd definately suggest allowing percentage animation - i.e. rotating 50 degrees.