Why not define this upfront in `__init__`? Looking at the world code, it looks like more stuff could break (attributes are defined in functions everywhere).

Having those in `__init__` could also serve as documentation on which of those attributes can be considered public/private.