* DEV-1761: Clean up Ruleset interface (#115)
* remove legacy ruleset types and simplify ruleset interface
* remove unnecessary settings argument from Ruleset interface
* decouple rules.Settings from client API and store settings as strings
* DEV 1761: Add new BoardState and Point fields (#117)
* add Point.TTL, Point.Value, GameState and PointState to BoardState
* allow maps to access BoardState.GameState,PointState
* add PreUpdateBoard and refactor snail_mode with it
* fix bug where an extra turn was printed to the console
* fix formatting
* fix lint errors
Co-authored-by: JonathanArns <jonathan.arns@googlemail.com>
Refactor rulesets into smaller composable operations
In order to mix up the functionality from different rulesets like Solo, Royale, etc. the code in these classes needs to be broken up into small functions that can be composed in a pipeline to make a custom game mode.
* move snake API structs into a new client package
* add customizations to snake objects
* refactor and add support for passing snake customizations in games