Add concept of owner to entities and components
The owner can be another component or entity. When the owner is removed from the system, all owned components are removed as well.
Entities and components created manually by the programmer do not have any owner, and so their lifetime is left to the programmer.
If a task adds entities or components to another entity, those new items are owned by the triggering component (i.e.
ParticleSystem owns its automatically generated
Additionally, there should be a
@Required annotation that can be applied to ComponentData definitions. When a component is added, any required components are added as well, with the new component as an owner. This makes it easy to specify most dependencies between components.