The interface is only able to read the gamestate, and this is enforced by the code systems we have.
The function to get write access to the game state is not compiled into the interface module, so through using the "proper" functions you cannot get write access to data unless you start const casting things at which point all bets are off and you should feel bad anyway.Out of curiosity, how do you enforce this? If another system wants to get data from the game state, can it just read that data directly? If so, assuming you're passing by reference, could the outside system then (inadvertently, perhaps) write directly into the game state?
The function to get write access to the game state is not compiled into the interface module, so through using the "proper" functions you cannot get write access to data unless you start const casting things at which point all bets are off and you should feel bad anyway.
So its super hard to do accidental writes to the game state from the interface module.
Yeah it uses the read only function to get a read only version of the game state so it can get read access to everythingInteresting! If the interface wants to fetch and display some state variable (e.g. character gold, or something), what's the official way to get it? Does the state module expose safe getter functions that return read-only versions of the various parts of the game state?