diff --git a/src/pages/docs/liveobjects/concepts/operations.mdx b/src/pages/docs/liveobjects/concepts/operations.mdx index d27ec18187..226c0a541c 100644 --- a/src/pages/docs/liveobjects/concepts/operations.mdx +++ b/src/pages/docs/liveobjects/concepts/operations.mdx @@ -329,16 +329,27 @@ The `operation` field of an `ObjectMessage` contains an `ObjectOperation` with t |----------|-------------| | **action** | The operation action. One of: `'map.create'`, `'map.set'`, `'map.remove'`, `'counter.create'`, `'counter.inc'`, or `'object.delete'` | | **objectId** | The ID of the object the operation was applied to | -| **mapCreate** | Present for `'map.create'` operations. Defines the initial value of the map object with `semantics` (conflict-resolution strategy) and `entries` (initial key-value pairs) | -| **mapSet** | Present for `'map.set'` operations. Contains `key` (the key that was set) and `value` (an `ObjectData` representing the value assigned to the key) | +| **mapCreate** | Present for `'map.create'` operations. Defines the initial value of the map object with `semantics` (conflict-resolution strategy, one of: `'lww'`) and `entries` (initial key-value pairs as a record of [`ObjectsMapEntry`](#objects-map-entry) objects) | +| **mapSet** | Present for `'map.set'` operations. Contains `key` (the key that was set) and `value` (an [`ObjectData`](#object-data) representing the value assigned to the key) | | **mapRemove** | Present for `'map.remove'` operations. Contains `key` (the key that was removed) | | **counterCreate** | Present for `'counter.create'` operations. Defines the initial value of the counter object with `count` (initial counter value) | | **counterInc** | Present for `'counter.inc'` operations. Contains `number` (the value added to the counter) | | **objectDelete** | Present for `'object.delete'` operations. Empty object with no operation-specific data | -#### ObjectData +#### ObjectsMapEntry -The `value` field in `mapSet` is an `ObjectData` object that represents the value assigned to a map key. Exactly one property is set, indicating the type of data: +An `ObjectsMapEntry` describes a value at a specific key in a map object. It has the following properties: + +| Property | Description | +|----------|-------------| +| **tombstone** | Indicates whether the map entry has been removed | +| **timeserial** | The `serial` value of the last operation applied to the map entry | +| **serialTimestamp** | A timestamp derived from the `timeserial` field. Present only if `tombstone` is `true` | +| **data** | An [`ObjectData`](#object-data) representing the value associated with this map entry | + +#### ObjectData + +An `ObjectData` object represents a value assigned to a map key. It is used as the `value` in `mapSet` operations and as the `data` in each [`ObjectsMapEntry`](#objects-map-entry) within `mapCreate.entries`. Exactly one property is set, indicating the type of data: | Property | Description | |----------|-------------|