It could either mimic value semantic (i.e. on const Handle does not allow to modify the Entity) or have reference semantic (const Handle only means the handle cannot be assigned to reference a different Entity).
The matter may be complicated by the fact we have two levels of mutation on a logical Entity.
- Existing components' values mutation
- adding/removing components (removing all components == erasing the Entity itself)
It could either mimic value semantic (i.e. on const Handle does not allow to modify the Entity) or have reference semantic (const Handle only means the handle cannot be assigned to reference a different Entity).
The matter may be complicated by the fact we have two levels of mutation on a logical Entity.