Game state ideasJaws can ship with some premade game states, for example a EditState(). EditState() would call draw() on the previous game state, jaws.previousGameState, but skip update(), effectively pausing the game. Then it implements its own edit-logic in its own update(). Or a PopupState() could call draw/update on the previous game state but then draw a semi-transparent layover with some messages/options. Many interesting possibilities open up with good game state separation.
Controlling the game flowGame states are used to control the game flow. We start out in the welcome menu: jaws.start(MenuState). The gamer chooses "Start": jaws.switchGameState(PlayState) When he dies we'll switch back to MenuState, or maybe HighScoreState. It's very possible we could reuse the HighScoreState for our next game.