- Rename `retro-gamer create` to `retro-gamer init` with positional
args (GAME OUTPUT) instead of --game/--output flags
- Add [tool.retro-gamer].factory = "module:attr" to declare the game
factory function from pyproject.toml instead of relying on a
hard-coded create_game attribute
- Remove extras_size from user-facing config; it is now measured
automatically from a sample observation and never declared
- Update docs throughout: create→init, runs/→training/, add factory
field documentation, clarify [model] vs [training] hyperparameter
sections, remove stale version-history explanations
- Bump version to 0.3.0; require retro-games>=2.5.0
Lets a game define how its state becomes an observation as a plain
Python function (module:attr), used identically by GameEnvironment
(training) and TrainedPolicy (inference) instead of two independently
maintained encoding paths. Removes the egocentric/egocentric_player/
egocentric_radius flags — cropping is now something an
observation_function does itself by calling egocentric_board(), and
extras_size is discovered from one sampled observation instead of
being configured via observe_state_sizes.