Component system
We use components to avoid having to copypaste code, while also not running into inheritance issues that class systems have.
(classes are still used, but mainly to have pre-configured classes already containing components that are correctly linked to each other)