Zones
Radar sees people, not furniture. Zones tell Cymo what each part of the room means.
What a zone is
A zone is a named area of a room, such as a bed, a sofa or a door, with an id like zone_bed. You draw it once in the dashboard or set it with PUT /v1/rooms/{room}/zones, as a polygon in metres in the room's coordinate frame. From then on, every person in the snapshot carries the zone_ids they are in. Zones may overlap, so a person can be in several at once.
Zone types
Each zone has a type, such as bed, bathroom or doorway. The type tells Cymo how to read time spent there: time in a bed zone can become a sleep session, and actually getting out of bed is a bed.exited event.
Revisions
Zones carry a revision. Send the one you read as expected_revision when you replace them; if someone changed the zones in the meantime you get 409 revision_conflict instead of overwriting their work. Events record the zone_revision they were measured against.
Why zones instead of object events
Cymo cannot see a bed, so it reports facts it can measure, a person entering or leaving an area, and your zones give those facts meaning. The same two events cover someone reaching the front door or a worker leaving their desk.