My own approach also is absolutely iterative, I am changing the design as I go, i.e. moving Nasal code from the XML dialog to the map.nas module etc. and copying/pasting and customizing things as needed.
All my design changes were based on refactoring the existing design and supporting additional use-cases.
BTW: I suggest not to review the merge request with the intention of merging it "as it" currently - just to look at the code from a design point of view, I have more changes here, and would rather push them first before you really want to review the code in order to commit it.
This is especially because my modified code is doing more than Stuart's original dialog, in that it shows multiple airports and also a navaid layer - which doesn't necessarily belong there, it was just intended to be a "proof of concept" - but this can now be easily disabled by removing a bunch of lines from an XML file that instantiates the map procedurally
Thus, I'd like to ask you not to start modifying the code until we have agreed on how to proceed, to avoid any wasted effort.
From my point of view, it would be great to just get feedback where we agree/disagree, so that I can provide a cleaned-up (and down-stripped) version to port Stuart's current dialog to the generalized design, so that all of us can work on different dialogs/instruments, and just implement workhorses as part of the underlying map.nas module.