So... it works?

I significantly dumbed down the list of requirements by not storing a NavigationPath for each tab. In reality this is fine, because you won't be able to switch tabs mid-stack anyway, as the tabs go away in favor of contextual actions.

Once I did that, I wasn't managing the interaction of the tab view struct and navigator class well, so the former couldn't tell when the latter was updating things.

Both tapping back and long pressing it to go back to the root view works, which is exciting. The pathing is definitely not correct, but at least this is a new problem!

Next milestone

Next we have to figure out the pathing issue, then figure out populating contextual actions.