I’m quite late to the party. Sincere apologies.
A simple way to switch from 2D (which can be the default) to nD would be awesome. By n, I mean 2.5, and 3 (and community might come by with weird n = 1, 1.5 or 4). It might not be sensible to support 3D always, but flipping a switch to turn 2D off and 2.5D or 3D on would be a god-sent.
It might be not be possible but I would like some approach similar to how ROS Control allows addition and removal of resources and then allows selection of control system based on free resources. This would allow people to swap between different types of maps (2 different 2D maps for different conditions or 1 2D map for exhibition and a 2.5D map for rest of the building) and thus different kinds of planners and localization (or SLAM) modules. The swapping time would require either both navigation stacks to work together during transition period and come to consensus or the robot has to come to stand still.
The inspiration for this comes from node lifetimes in ROS2.
Also, on a separate note, I expect the Navigation stack would have to use matrix multiplication somewhere or the other. Can Eigen/Boost math libraries be used(or provide compile time option to choose the preferred version) instead of rolling a new math library?