Abstract Entity
Creates a new instance with the zero version and cleared lifecycle flags.
When this constructor is called, the entity ID must be set before any other interactions with the instance.
Creates new instance with the passed ID.
Creates a new instance with the passed ID and default entity state obtained from the passed function.
Parameters
id
the ID of the new entity
default State
the function to obtain new entity state