Actually - now that I think about itâŚ
I know how to do pretty much exactly what you want, including some crazy stuff⌠even in the upcoming patch. Heck, you could even generate a âmapâ (like, an ASCII image) that you store in the userâs profile. Then, in the campaign file, it has only a single mission - but after that mission is declared in the campaign, it reads this file from the profile folder, which says 'hereâs a map, we are at X,Y", and based on what is there, loads a specific map (one generic, or a small palette of them, etc).
Once the game starts, it populates the map as needed (and you can change the background and stuff from lua) - and when loading a save, the mapâs internal state says âwe were at X,Yâ - so if you win or decide to leave, itâll update the X,Y in the playerâs profile, and continue.
Lots of details to lock down - but I think itâd work fairy well actually. With a bit of effort you could even make a custom campaign button that loaded and displayed that map, where youâd been, enabling clicks for where you want to go, etc⌠The UI handling would just update the userâs XY data in the profile, and load the base mission again - causing it to âjumpâ.