Components:
- Managed by systems, self-contained as much as possible
- May have references to components in other systems that they're dependent on (eg a sprite might want a position, though it may accept any vector (shared or unshared) for that position)
- Generally take those references in their constructor
- Generally designed to have a nice oop-y method interface, rather than be "just" data - eg
sprite:set_frame(fx, fy)
,animation:reset()
etc
Systems:
- Do stuff with their set of components