some discussion on steam before: https://steamcommunity.com/workshop/discussions/18446744073709551615/5514142341086719313/?appid=379210&tscn=1686799055
Some of implementation can be refer with debug tools, though not so easy to read all of them; but some more can not found in wiki for now
The base struct I suppose is:
Main -> listen to init event and register a button on main menu(for ex. under "multi player", as a individual row group)
Here: which obj should I use to access and modify the menu
When click the button, create and jump to a new empty screen, with some UI components
Here: How screen and change works. I guess it should use ui/screen/ScreenManager, but not found which instance should I reuse here. And exit to main menu should use which one
Functional as a simple excel.
Read default language file as base, lang file loaded by other mods for compared ones, create a copy and edit/import/export in-game.
Here: Can lang instance edit in-game and loaded without re-start the game?
Do not sure if can give message preview as test case without actually start a game, reuse the game's test case if have.





tbh to me it sounds needlessly complex to try to replicate the current functionality with a singleton controlling the lifecycle of each menu and preventing the menu from being duplicated