Referenceable objects can be referenced by other objects without creating duplicates when serializing/deserializing.
The canonical example is a component referencing an entity.
Deserializing the component should not create a new entity when the entity property of the component is deserialized.
Instead, when the component is serialized, a reference to the entity should be serialized out.
When the component is deserialized, the reference should be resolved and the property should be set to the instance of the entity.
Base class for referenceable objects.
Remarks
Referenceable objects can be referenced by other objects without creating duplicates when serializing/deserializing. The canonical example is a component referencing an entity. Deserializing the component should not create a new entity when the entity property of the component is deserialized. Instead, when the component is serialized, a reference to the entity should be serialized out. When the component is deserialized, the reference should be resolved and the property should be set to the instance of the entity.