Sketching game rule structure

This is a sketch of the direction I'd like the game logic to go. It's just the first steps, but it should be clear how to proceed from here. After the game logic is implemented, it will still need to be hooked up to the view.