All pointer reads/writes are sandboxed. The game state is a power of two number of bytes (64MB right now, might have to bump this up as people make more complex games), so we can use masking to quickly clamp any pointer to the sandbox by computing `game_state_base + (<pointer> & (game_state_size-1))` before doing the access. That masking makes sure you can't access anything outside the game state, but you can corrupt your own game state if you'd like!