The game object is already starting to get unwieldy. The game object is doing a few different things: it's holding some data for historical purposes (rounds, mission results, proposals) which will later be queried by the user interface layer. It is also maintaining "current" state information (currentRound) and it is responsible for progressing the game.
Redesign game object to separate historical data and game progression. Clean up the API so all game interactions go through some GameDriver. Currently, Game provides some interactions (Game.propose()) but then some interactions are done with other domain objects (proposal.setVotes()).
The game object is already starting to get unwieldy. The game object is doing a few different things: it's holding some data for historical purposes (rounds, mission results, proposals) which will later be queried by the user interface layer. It is also maintaining "current" state information (currentRound) and it is responsible for progressing the game.
Redesign game object to separate historical data and game progression. Clean up the API so all game interactions go through some GameDriver. Currently, Game provides some interactions (Game.propose()) but then some interactions are done with other domain objects (proposal.setVotes()).