Core Object Model
Containers
A Container MUST contain:
- one or more Streams
- MAY contain Events
- MAY contain Metadata objects
ASCII diagram:
Container
├── Streams[]
│ └── Samples[]
├── Events[]
└── Metadata[]
Streams
A Stream MUST:
- declare exactly one Modality
- contain ordered Samples
- include a unique
stream_id
ASCII visualization:
Stream (SkeletalPose)
Sample 0 ── t=33.1ms
Sample 1 ── t=50.3ms
Sample 2 ── t=66.6ms
Samples
Each Sample MUST include:
- at least one timestamp
- payload matching the Modality schema
Example:
{
"timestamp": { "t_system": 38932922 },
"joints": [...]
}
Events
Events live at the Container level.
ASCII:
EventPoint("left-hand-grasp-start")
timestamp → 103.2ms
refs → [left_hand_pose_stream]
Cross-References
All references MUST resolve strictly.
Timeline Policy
No global timeline policy required.
Invariants
- Streams carry one modality.
- Samples always have timestamps.
- Events live at container-level.
- All references resolve strictly.