Yeah, I think it's definitely worth implementing a true "restart current app" type thing to ease re-initialization.
It would be trivially easy for me to pass along the relevant config info (just write/load the settings to/from a file).
I think you might be able to implement it today using playdate.file.run. Basically you make the first step of your app to be load a pdz for the actual game. If you specified an explicit context var for `_G` for the pdz I think you could subsequently re-run playdate.file.run again with a clean context and the first global context would get garbage collected away.
Mostly it's been a learning experience reminding me global variables and variables created at lua import are the devil (unless they are effectively `<const>`). Especially in something like Lua where it's easy to hold onto stale references forever.