What do you think about following ...
The airports have the threefold classification in demand today: domestic, longhaul, shorthaul. Should this be kept as a baseline in the future too?
Meaning that you cannot fly longhaul from an airport that has in real life only 100% domestic demand for example? I have done some number crunching and this would reduce the need of calculations (number of possible route pairs) quite heavily. But on the other hand it may limit the whole idea of the free demand too much - when you for example cannot start to fly domestic services to some airport that in real life gets only for example shorthaul intl. traffic.
So perhaps the three-level classification could be expanded somehow to provide a bit of user freedom .. but how to do that maintaining the realism and without needing to manually go through the airport data.
(with the present dom/intl/long traffic allocation in place there are about 1 000 000 different airport pair route combination possibilities that techniclly can have some demand)
When speaking of airports, airport needs to have some facilities for international flights, such as customs office, passport/visa/immigration control facility. If the airport does not have it, no international flights should be allowed.
As far as international airports not allowed domestic flights - my guess is that there are only handful of those, and could be flagged manually. But it would put some airports at a disadvantage (for example Narita). If a pax wants to fly to a small Japanese city, there would be no way to transfer at NRT (where in real life, a passenger could take a train from NRT to HND).
As far as domestic only airports, if I take one - Savannah, Georgia (SAV), there are no international flights, but the demand square around SAV would have some international demand. So as far as the cominations, there would really be a huge number of combinations from square to square. Instead of that, the square to square demand could be a formula based on some stored parameters of the demand square, and would not have to be coded (or stored) as a set of combinations.
So if a square around SAV has certain demand magnitude, and LHR has a demand magniture, the system would on the fly calculate the SAV-LHR demand.
As far as combinations to consider, the system should perhaps calculate only the ones that are "connected" by scheduled flights.