Source:
Local role: Canonical object-to-space membership record.
Big-picture role: Placement primitive used by SpaceObjectGraph, World, and perceived by PerceivedMembership.
Inheritance:
- dataclass
Parameters and fields:
object_id: ObjectIdspace_id: ObjectIdrole: strvalidity: JsonMapmetadata: JsonMap
Methods:
to_dict(...)from_dict(...)__deepcopy__(...)
Example:
from ometeotl_core.model.spaces import SpaceObjectMembership
membership = SpaceObjectMembership(
object_id="actor-1",
space_id="zone-1",
role="occupies",
validity={"from": 0},
metadata={"confirmed": True},
)
data = membership.to_dict()
m2 = SpaceObjectMembership.from_dict(data)
# Typically added through World.place_object or SpaceObjectGraph.add_object_membership
See also:
