krinn suggested me to help on this project, I've been reading through it.
As for getting more information about airports via the API, now that you soon can't trust hard coded values anymore, I here just give an idea of what I have in my wish-list: (that I also think could be possible to implement) Some of these might not be possible with the current NewGRF Spec. In that case we AI authors will have to work with the NewGRF people to find a solution.
AIAirport.GetHoldingQueueLength(airport_tile) // Get the number of aircrafts that are waiting to land on the airport
AIAirport.GetNumberOfRunways(airport_type) // Gets the number of runways that a given airport type have
AIAirport.GetNumberOfHelicopterLandingPlaces(airport_type) // Gets the number of places where helicopters can start and land
AIAirport.GetNumberOfLoadingBays(airport_type) // Gets the number of loading bays for aircrafts of a given airport type.
Isn't it possible to rewrite AIAirport.GetNumberOfRunways(airport_type) to AIAirport.GetNumberOfRunways(airport_type, airplane_type), to take care for small, large and helis? I read about the problems with NewGRF airplanes unknown to the airport, but can't NewGRF airport programmers write AirplaneType_UNKNOWN (or whatever it is) to allow (or deny) 'other' aircrafts to land?
(You'll notice that I'm trying to get my head around the abstractions... so I might ask silly questions