SpaceObjectMembership

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: ObjectId
  • space_id: ObjectId
  • role: str
  • validity: JsonMap
  • metadata: 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:

Ometeotl

A Python library to build complex multi-agent simulations, wargames, and AI-driven strategies