Whether to open the save or the load dialog should not be dependent on a singleton neither on "if a game is started".
Things like loading a game while another game is running becomes possible.
The singleton Engine.IsGameStarted is now only called at one place. We might remove it in a future diff.
If the caller provides an object with a savedGameData attribute (which isn't fallsy) the save dialog is opened, otherwise the load dialog is opened.
Is this ok or should the caller explicitly have to provide a operation attribute which is checked for === "Load" and === "Save"?