3 See [Opaque data type](https://en.wikipedia.org/wiki/Opaque_data_type) first.
7 - [level](../src/game/level.h)
8 - [player](../src/game/level/player.h)
13 - One translation unit per entity
14 - Entity stores its state in an opaque forward declared struct
15 - Constructors are `create_<entity-name>` or `create_<entity-name>_from_<resource-name>` (for example `create_level_from_file`)
16 - Single destructor with name `destroy_<entity-name>`
17 - Regular methods are `<entity-name>_<method-suffix>` (for example `player_render`)