The dynamic airport lights thing sounds cool, but the aesthetics would be ruined without actual light fixtures to have the lights appear from. So we'd have to add the option to add light fixtures fixtures and so we don't unnecessarily create fixtures for more airports than we have to the mission maker would need to insert an argument with an array of the airport id's he wants to be lit up.
As for the the lighting system you described, where the lights move forward as the player approaches, a pilot needs to see as much of the runway ahead as possible. If a pilot truly needs the lights to land and they are not just being used to look pretty then we must assume he has no night vision, so with that in mind how can a pilot who is on final approach make the decision to land, do a touch and go, perform a go around, or execute a missed approach when he has no visual representation of where the boundaries of the runway ahead are? Suppose there is a burned out plane wreck or other vehicle sitting in the middle of the runway 400m in front where you are touching down, by the time you saw it you would be going to slow to pull up and too fast to stop. With the lights going from end to end you can see any obstruction that might cause an accident well in advance.
Spooner, I'm having trouble adjusting your template to create the lights first then use the while loop to illuminate them. What I'd like to do for the double lights is illuminate two rows at once and then move on to the next two. So row 1 and 2 would be lit then sleep then row 3 and 4. Using this two row method we can cut the time it takes for the lights to reach the end from nearly three seconds to just over one thereby helping the pilot by refreshing his visual reference at a faster pace (it also looks amazing like this, feels more like a real airport lighting system), or we can increase performance by upping the sleep time by two fold. Similarly, we could use an odds and evens scheme for a single light configuration where the odds were lit up until the lights reached the end and then the lights start over using the even rows, again this would make for faster pace and better performance.
This is the array I've been using to play with your template:
_lightIDs = [
[471613],
[471614],
[471397, 471572],
[471399, 471573],
[471404, 471579],
[471405, 471581],
[471408, 471585],
[471411, 471590],
[471412, 471592],
[471413, 471595],
[471416, 471599],
[471423, 471605],
[471427, 471608],
[471434],
[471437],
[471438],
[471439],
[471443],
[471447],
[471450, 471620],
[471451, 471628],
[471455, 471633],
[471456, 471634],
[471461, 471638],
[471463, 471644],
[471467, 471647],
[471471, 471651],
[471473, 471654],
[471477, 471661],
[471487, 471664],
[471490, 471665],
[471495, 471666],
[471499, 471667],
[471500, 471668],
[471503, 471670],
[471504, 471675],
[471505, 471676],
[471506, 471678],
[471511, 471686],
[471515],
[471517],
[471518],
[471521, 471700],
[471522, 471701],
[471527, 471706],
[471528, 471710],
[471532, 471715],
[471534, 471717],
[471539, 471722],
[471540, 471725],
[471541, 471726],
[471546, 471729],
[471553, 471732],
[471557, 471733],
[471561, 471734],
[471568, 471736],
[471570]
];