> For clean Markdown of any page, append .md to the page URL.
> For a complete documentation index, see https://docs.nvidia.com/dsx-exchange/llms.txt.
> For full documentation content, see https://docs.nvidia.com/dsx-exchange/llms-full.txt.
> For AI client integration (Claude Code, Cursor, etc.), connect to the MCP server at https://docs.nvidia.com/dsx-exchange/_mcp/server.

# Messages

## Point Value

Live value message. Payload envelope is identical for all point types.
The semantic meaning of `value` is determined by the corresponding
metadata message.

### Payload

| Name        | Type           | Required | Description                                                                                  |
| ----------- | -------------- | -------- | -------------------------------------------------------------------------------------------- |
| `value`     | number or null | Yes      | Live reading for the point (float). May be null when the BMS has no valid reading available. |
| `timestamp` | integer        | Yes      | Unix timestamp in epoch milliseconds (source event time).                                    |
| `quality`   | integer        | Yes      | `1` = good quality. Any other integer indicates value is not trustworthy                     |

***

## Rack RackLiquidSupplyTemperature Metadata

### Payload

| Name               | Type   | Required | Description                                     |
| ------------------ | ------ | -------- | ----------------------------------------------- |
| `objectType`       | string | Yes      | Values: `Rack`                                  |
| `pointType`        | string | Yes      | Values: `RackLiquidSupplyTemperature`           |
| `rackLocationName` | string | Yes      | Human-readable rack name as defined by the BMS. |
| `rackLocationId`   | string | Yes      | Stable unique identifier for the rack.          |
| `engUnit`          | string | Yes      | Values: `C`                                     |

***

## Rack RackLiquidReturnTemperature Metadata

### Payload

| Name               | Type   | Required | Description                                     |
| ------------------ | ------ | -------- | ----------------------------------------------- |
| `objectType`       | string | Yes      | Values: `Rack`                                  |
| `pointType`        | string | Yes      | Values: `RackLiquidReturnTemperature`           |
| `rackLocationName` | string | Yes      | Human-readable rack name as defined by the BMS. |
| `rackLocationId`   | string | Yes      | Stable unique identifier for the rack.          |
| `engUnit`          | string | Yes      | Values: `C`                                     |

***

## Rack RackLiquidFlow Metadata

### Payload

| Name               | Type   | Required | Description                                     |
| ------------------ | ------ | -------- | ----------------------------------------------- |
| `objectType`       | string | Yes      | Values: `Rack`                                  |
| `pointType`        | string | Yes      | Values: `RackLiquidFlow`                        |
| `rackLocationName` | string | Yes      | Human-readable rack name as defined by the BMS. |
| `rackLocationId`   | string | Yes      | Stable unique identifier for the rack.          |
| `engUnit`          | string | Yes      | Values: `LPM`                                   |

***

## Rack RackLiquidDifferentialPressure Metadata

### Payload

| Name               | Type   | Required | Description                                     |
| ------------------ | ------ | -------- | ----------------------------------------------- |
| `objectType`       | string | Yes      | Values: `Rack`                                  |
| `pointType`        | string | Yes      | Values: `RackLiquidDifferentialPressure`        |
| `rackLocationName` | string | Yes      | Human-readable rack name as defined by the BMS. |
| `rackLocationId`   | string | Yes      | Stable unique identifier for the rack.          |
| `engUnit`          | string | Yes      | Values: `kPa`                                   |

***

## Rack RackControlValvePosition Metadata

### Payload

| Name               | Type   | Required | Description                                     |
| ------------------ | ------ | -------- | ----------------------------------------------- |
| `objectType`       | string | Yes      | Values: `Rack`                                  |
| `pointType`        | string | Yes      | Values: `RackControlValvePosition`              |
| `rackLocationName` | string | Yes      | Human-readable rack name as defined by the BMS. |
| `rackLocationId`   | string | Yes      | Stable unique identifier for the rack.          |
| `engUnit`          | string | Yes      | Values: `%`                                     |

***

## Rack RackPower Metadata

### Payload

| Name               | Type   | Required | Description                                     |
| ------------------ | ------ | -------- | ----------------------------------------------- |
| `objectType`       | string | Yes      | Values: `Rack`                                  |
| `pointType`        | string | Yes      | Values: `RackPower`                             |
| `rackLocationName` | string | Yes      | Human-readable rack name as defined by the BMS. |
| `rackLocationId`   | string | Yes      | Stable unique identifier for the rack.          |
| `engUnit`          | string | Yes      | Values: `kW`                                    |

***

## Rack RackLeakDetect Metadata

### Payload

| Name               | Type                            | Required | Description                                     |
| ------------------ | ------------------------------- | -------- | ----------------------------------------------- |
| `objectType`       | string                          | Yes      | Values: `Rack`                                  |
| `pointType`        | string                          | Yes      | Values: `RackLeakDetect`                        |
| `rackLocationName` | string                          | Yes      | Human-readable rack name as defined by the BMS. |
| `rackLocationId`   | string                          | Yes      | Stable unique identifier for the rack.          |
| `stateText`        | array\&lt;map\&lt;string, any>> | Yes      | State label mapping for leak detection.         |

***

## Rack RackLeakSensorFault Metadata

### Payload

| Name               | Type                            | Required | Description                                       |
| ------------------ | ------------------------------- | -------- | ------------------------------------------------- |
| `objectType`       | string                          | Yes      | Values: `Rack`                                    |
| `pointType`        | string                          | Yes      | Values: `RackLeakSensorFault`                     |
| `rackLocationName` | string                          | Yes      | Human-readable rack name as defined by the BMS.   |
| `rackLocationId`   | string                          | Yes      | Stable unique identifier for the rack.            |
| `stateText`        | array\&lt;map\&lt;string, any>> | Yes      | State label mapping for leak sensor fault status. |

***

## Rack RackLiquidIsolationStatus Metadata

### Payload

| Name               | Type                            | Required | Description                                      |
| ------------------ | ------------------------------- | -------- | ------------------------------------------------ |
| `objectType`       | string                          | Yes      | Values: `Rack`                                   |
| `pointType`        | string                          | Yes      | Values: `RackLiquidIsolationStatus`              |
| `rackLocationName` | string                          | Yes      | Human-readable rack name as defined by the BMS.  |
| `rackLocationId`   | string                          | Yes      | Stable unique identifier for the rack.           |
| `stateText`        | array\&lt;map\&lt;string, any>> | Yes      | State label mapping for liquid isolation status. |

***

## Rack RackElectricalIsolationStatus Metadata

### Payload

| Name               | Type                            | Required | Description                                          |
| ------------------ | ------------------------------- | -------- | ---------------------------------------------------- |
| `objectType`       | string                          | Yes      | Values: `Rack`                                       |
| `pointType`        | string                          | Yes      | Values: `RackElectricalIsolationStatus`              |
| `rackLocationName` | string                          | Yes      | Human-readable rack name as defined by the BMS.      |
| `rackLocationId`   | string                          | Yes      | Stable unique identifier for the rack.               |
| `stateText`        | array\&lt;map\&lt;string, any>> | Yes      | State label mapping for electrical isolation status. |

***

## Rack RackLeakDetectTray Metadata

### Payload

| Name               | Type                            | Required | Description                                                   |
| ------------------ | ------------------------------- | -------- | ------------------------------------------------------------- |
| `objectType`       | string                          | Yes      | Values: `Rack`                                                |
| `pointType`        | string                          | Yes      | Values: `RackLeakDetectTray`                                  |
| `rackLocationName` | string                          | Yes      | Human-readable rack name as defined by the BMS.               |
| `rackLocationId`   | string                          | Yes      | Stable unique identifier for the rack.                        |
| `integration`      | string                          | Yes      | Integration identifier responsible for publishing this value. |
| `stateText`        | array\&lt;map\&lt;string, any>> | Yes      | State label mapping for tray leak detection.                  |

***

## Rack RackLiquidIsolationRequest Metadata

### Payload

| Name               | Type                            | Required | Description                                                   |
| ------------------ | ------------------------------- | -------- | ------------------------------------------------------------- |
| `objectType`       | string                          | Yes      | Values: `Rack`                                                |
| `pointType`        | string                          | Yes      | Values: `RackLiquidIsolationRequest`                          |
| `rackLocationName` | string                          | Yes      | Human-readable rack name as defined by the BMS.               |
| `rackLocationId`   | string                          | Yes      | Stable unique identifier for the rack.                        |
| `integration`      | string                          | Yes      | Integration identifier responsible for publishing this value. |
| `stateText`        | array\&lt;map\&lt;string, any>> | Yes      | State label mapping for liquid isolation request.             |

***

## Rack RackElectricalIsolationRequest Metadata

### Payload

| Name               | Type                            | Required | Description                                                   |
| ------------------ | ------------------------------- | -------- | ------------------------------------------------------------- |
| `objectType`       | string                          | Yes      | Values: `Rack`                                                |
| `pointType`        | string                          | Yes      | Values: `RackElectricalIsolationRequest`                      |
| `rackLocationName` | string                          | Yes      | Human-readable rack name as defined by the BMS.               |
| `rackLocationId`   | string                          | Yes      | Stable unique identifier for the rack.                        |
| `integration`      | string                          | Yes      | Integration identifier responsible for publishing this value. |
| `stateText`        | array\&lt;map\&lt;string, any>> | Yes      | State label mapping for electrical isolation request.         |

***

## PowerMeter Voltage Metadata

### Payload

| Name         | Type              | Required | Description                                               |
| ------------ | ----------------- | -------- | --------------------------------------------------------- |
| `objectType` | string            | Yes      | Values: `PowerMeter`                                      |
| `pointType`  | string            | Yes      | Values: `Voltage`                                         |
| `objectName` | string            | Yes      | Human-readable name of the electrical device.             |
| `objectId`   | string            | Yes      | Stable unique identifier for the electrical device.       |
| `servesId`   | array\&lt;string> | Yes      | List of objectIds of entities served by this power meter. |
| `engUnit`    | string            | Yes      |                                                           |

***

## PowerMeter PowerFactor Metadata

### Payload

| Name         | Type              | Required | Description                                               |
| ------------ | ----------------- | -------- | --------------------------------------------------------- |
| `objectType` | string            | Yes      | Values: `PowerMeter`                                      |
| `pointType`  | string            | Yes      | Values: `PowerFactor`                                     |
| `objectName` | string            | Yes      | Human-readable name of the electrical device.             |
| `objectId`   | string            | Yes      | Stable unique identifier for the electrical device.       |
| `servesId`   | array\&lt;string> | Yes      | List of objectIds of entities served by this power meter. |

***

## PowerMeter Frequency Metadata

### Payload

| Name         | Type              | Required | Description                                               |
| ------------ | ----------------- | -------- | --------------------------------------------------------- |
| `objectType` | string            | Yes      | Values: `PowerMeter`                                      |
| `pointType`  | string            | Yes      | Values: `Frequency`                                       |
| `objectName` | string            | Yes      | Human-readable name of the electrical device.             |
| `objectId`   | string            | Yes      | Stable unique identifier for the electrical device.       |
| `servesId`   | array\&lt;string> | Yes      | List of objectIds of entities served by this power meter. |
| `engUnit`    | string            | Yes      |                                                           |

***

## PowerMeter ApparentPower Metadata

### Payload

| Name         | Type              | Required | Description                                               |
| ------------ | ----------------- | -------- | --------------------------------------------------------- |
| `objectType` | string            | Yes      | Values: `PowerMeter`                                      |
| `pointType`  | string            | Yes      | Values: `ApparentPower`                                   |
| `objectName` | string            | Yes      | Human-readable name of the electrical device.             |
| `objectId`   | string            | Yes      | Stable unique identifier for the electrical device.       |
| `servesId`   | array\&lt;string> | Yes      | List of objectIds of entities served by this power meter. |
| `engUnit`    | string            | Yes      |                                                           |

***

## PowerMeter ActivePower Metadata

### Payload

| Name         | Type              | Required | Description                                               |
| ------------ | ----------------- | -------- | --------------------------------------------------------- |
| `objectType` | string            | Yes      | Values: `PowerMeter`                                      |
| `pointType`  | string            | Yes      | Values: `ActivePower`                                     |
| `objectName` | string            | Yes      | Human-readable name of the electrical device.             |
| `objectId`   | string            | Yes      | Stable unique identifier for the electrical device.       |
| `servesId`   | array\&lt;string> | Yes      | List of objectIds of entities served by this power meter. |
| `engUnit`    | string            | Yes      |                                                           |

***

## PowerMeter Current Metadata

### Payload

| Name         | Type              | Required | Description                                               |
| ------------ | ----------------- | -------- | --------------------------------------------------------- |
| `objectType` | string            | Yes      | Values: `PowerMeter`                                      |
| `pointType`  | string            | Yes      | Values: `Current`                                         |
| `objectName` | string            | Yes      | Human-readable name of the electrical device.             |
| `objectId`   | string            | Yes      | Stable unique identifier for the electrical device.       |
| `servesId`   | array\&lt;string> | Yes      | List of objectIds of entities served by this power meter. |
| `engUnit`    | string            | Yes      |                                                           |

***

## PowerMeter CurrentLimit Metadata

### Payload

| Name         | Type              | Required | Description                                               |
| ------------ | ----------------- | -------- | --------------------------------------------------------- |
| `objectType` | string            | Yes      | Values: `PowerMeter`                                      |
| `pointType`  | string            | Yes      | Values: `CurrentLimit`                                    |
| `objectName` | string            | Yes      | Human-readable name of the electrical device.             |
| `objectId`   | string            | Yes      | Stable unique identifier for the electrical device.       |
| `servesId`   | array\&lt;string> | Yes      | List of objectIds of entities served by this power meter. |
| `engUnit`    | string            | Yes      |                                                           |

***

## PowerMeter PhaseCurrent Metadata

### Payload

| Name         | Type              | Required | Description                                                                                                                                                           |
| ------------ | ----------------- | -------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| `objectType` | string            | Yes      | Values: `PowerMeter`                                                                                                                                                  |
| `pointType`  | string            | Yes      | Values: `PhaseCurrent`                                                                                                                                                |
| `objectName` | string            | Yes      | Human-readable name of the electrical device.                                                                                                                         |
| `objectId`   | string            | Yes      | Stable unique identifier for the electrical device.                                                                                                                   |
| `servesId`   | array\&lt;string> | Yes      | List of objectIds of entities served by this power meter.                                                                                                             |
| `engUnit`    | string            | Yes      |                                                                                                                                                                       |
| `phase`      | string            | Yes      | Electrical phase identifier. Letter form (A/B/C) and numeric form (1/2/3) are both accepted to align with publisher conventions. Values: `A`, `B`, `C`, `1`, `2`, `3` |

***

## LiquidTemperature Metadata

### Payload

Optional fields common to all generic equipment metadata, regardless of identifier mode.

### Object Mode

* `objectName` and `objectId` are **required**.
* `servesId` is **optional** in Named-object mode.
* `associateId` must **not** be present.

Incompatible with `EquipmentAssociateMode` — validators enforce this via
the parent `oneOf`.

| Name         | Type              | Required | Description                                                                                                                                                         |
| ------------ | ----------------- | -------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| `objectName` | string            | Yes      | Human-readable equipment name.                                                                                                                                      |
| `objectId`   | string            | Yes      | Stable unique identifier for the equipment.                                                                                                                         |
| `servesId`   | array\&lt;string> | No       | Optional list of objectIds of entities this equipment serves. Only valid in Named-object mode. Only valid in Named-object mode — must not appear in Associate mode. |

### Associate Mode

* `associateId` is **required**.
* `objectName`, `objectId`, and `servesId` must **not** be present.

Incompatible with `EquipmentNamedObjectMode` — validators enforce this
via the parent `oneOf`.

| Name          | Type   | Required | Description                          |
| ------------- | ------ | -------- | ------------------------------------ |
| `associateId` | string | Yes      | Identifier of the associated entity. |

***

## LiquidDifferentialPressure Metadata

### Payload

Measurement fields for LiquidDifferentialPressure. Typical engUnit: kPa. The identifier (named-object XOR associate) and measurement (engUnit XOR stateText) constraints are independent and enforced by EquipmentMeasurementModeBase.

### Requires a non-empty engUnit string (mutually exclusive with stateText).

| Name      | Type   | Required | Description                           |
| --------- | ------ | -------- | ------------------------------------- |
| `engUnit` | string | Yes      | Engineering unit for the measurement. |

### Required for state/status/alarm points that carry no engineering unit.

| Name        | Type                            | Required | Description                                                                                                                                         |
| ----------- | ------------------------------- | -------- | --------------------------------------------------------------------------------------------------------------------------------------------------- |
| `stateText` | array\&lt;map\&lt;string, any>> | Yes      | State label mapping. Each entry maps a numeric state value to its human-readable label (e.g., `[{value: 0, text: "Off"}, {value: 1, text: "On"}]`). |

***

## LiquidFlow Metadata

### Payload

Measurement fields for LiquidFlow. Typical engUnit: LPM. The identifier (named-object XOR associate) and measurement (engUnit XOR stateText) constraints are independent and enforced by EquipmentMeasurementModeBase.

### Requires a non-empty engUnit string (mutually exclusive with stateText).

| Name      | Type   | Required | Description                           |
| --------- | ------ | -------- | ------------------------------------- |
| `engUnit` | string | Yes      | Engineering unit for the measurement. |

### Required for state/status/alarm points that carry no engineering unit.

| Name        | Type                            | Required | Description                                                                                                                                         |
| ----------- | ------------------------------- | -------- | --------------------------------------------------------------------------------------------------------------------------------------------------- |
| `stateText` | array\&lt;map\&lt;string, any>> | Yes      | State label mapping. Each entry maps a numeric state value to its human-readable label (e.g., `[{value: 0, text: "Off"}, {value: 1, text: "On"}]`). |

***

## LiquidPressure Metadata

### Payload

Measurement fields for LiquidPressure. Typical engUnit: kPa. The identifier (named-object XOR associate) and measurement (engUnit XOR stateText) constraints are independent and enforced by EquipmentMeasurementModeBase.

### Requires a non-empty engUnit string (mutually exclusive with stateText).

| Name      | Type   | Required | Description                           |
| --------- | ------ | -------- | ------------------------------------- |
| `engUnit` | string | Yes      | Engineering unit for the measurement. |

### Required for state/status/alarm points that carry no engineering unit.

| Name        | Type                            | Required | Description                                                                                                                                         |
| ----------- | ------------------------------- | -------- | --------------------------------------------------------------------------------------------------------------------------------------------------- |
| `stateText` | array\&lt;map\&lt;string, any>> | Yes      | State label mapping. Each entry maps a numeric state value to its human-readable label (e.g., `[{value: 0, text: "Off"}, {value: 1, text: "On"}]`). |

***

## Status Metadata

### Payload

Optional fields common to all generic equipment metadata, regardless of identifier mode.

### Object Mode

* `objectName` and `objectId` are **required**.
* `servesId` is **optional** in Named-object mode.
* `associateId` must **not** be present.

Incompatible with `EquipmentAssociateMode` — validators enforce this via
the parent `oneOf`.

| Name         | Type              | Required | Description                                                                                                                                                         |
| ------------ | ----------------- | -------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| `objectName` | string            | Yes      | Human-readable equipment name.                                                                                                                                      |
| `objectId`   | string            | Yes      | Stable unique identifier for the equipment.                                                                                                                         |
| `servesId`   | array\&lt;string> | No       | Optional list of objectIds of entities this equipment serves. Only valid in Named-object mode. Only valid in Named-object mode — must not appear in Associate mode. |

### Associate Mode

* `associateId` is **required**.
* `objectName`, `objectId`, and `servesId` must **not** be present.

Incompatible with `EquipmentNamedObjectMode` — validators enforce this
via the parent `oneOf`.

| Name          | Type   | Required | Description                          |
| ------------- | ------ | -------- | ------------------------------------ |
| `associateId` | string | Yes      | Identifier of the associated entity. |

***

## Available Metadata

### Payload

Optional fields common to all generic equipment metadata, regardless of identifier mode.

### Object Mode

* `objectName` and `objectId` are **required**.
* `servesId` is **optional** in Named-object mode.
* `associateId` must **not** be present.

Incompatible with `EquipmentAssociateMode` — validators enforce this via
the parent `oneOf`.

| Name         | Type              | Required | Description                                                                                                                                                         |
| ------------ | ----------------- | -------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| `objectName` | string            | Yes      | Human-readable equipment name.                                                                                                                                      |
| `objectId`   | string            | Yes      | Stable unique identifier for the equipment.                                                                                                                         |
| `servesId`   | array\&lt;string> | No       | Optional list of objectIds of entities this equipment serves. Only valid in Named-object mode. Only valid in Named-object mode — must not appear in Associate mode. |

### Associate Mode

* `associateId` is **required**.
* `objectName`, `objectId`, and `servesId` must **not** be present.

Incompatible with `EquipmentNamedObjectMode` — validators enforce this
via the parent `oneOf`.

| Name          | Type   | Required | Description                          |
| ------------- | ------ | -------- | ------------------------------------ |
| `associateId` | string | Yes      | Identifier of the associated entity. |

***

## ValvePosition Metadata

### Payload

Measurement fields for ValvePosition. Typical engUnit: %. The identifier (named-object XOR associate) and measurement (engUnit XOR stateText) constraints are independent and enforced by EquipmentMeasurementModeBase.

### Requires a non-empty engUnit string (mutually exclusive with stateText).

| Name      | Type   | Required | Description                           |
| --------- | ------ | -------- | ------------------------------------- |
| `engUnit` | string | Yes      | Engineering unit for the measurement. |

### Required for state/status/alarm points that carry no engineering unit.

| Name        | Type                            | Required | Description                                                                                                                                         |
| ----------- | ------------------------------- | -------- | --------------------------------------------------------------------------------------------------------------------------------------------------- |
| `stateText` | array\&lt;map\&lt;string, any>> | Yes      | State label mapping. Each entry maps a numeric state value to its human-readable label (e.g., `[{value: 0, text: "Off"}, {value: 1, text: "On"}]`). |

***

## PumpSpeed Metadata

### Payload

Measurement fields for PumpSpeed. Typical engUnit: RPM. The identifier (named-object XOR associate) and measurement (engUnit XOR stateText) constraints are independent and enforced by EquipmentMeasurementModeBase.

### Requires a non-empty engUnit string (mutually exclusive with stateText).

| Name      | Type   | Required | Description                           |
| --------- | ------ | -------- | ------------------------------------- |
| `engUnit` | string | Yes      | Engineering unit for the measurement. |

### Required for state/status/alarm points that carry no engineering unit.

| Name        | Type                            | Required | Description                                                                                                                                         |
| ----------- | ------------------------------- | -------- | --------------------------------------------------------------------------------------------------------------------------------------------------- |
| `stateText` | array\&lt;map\&lt;string, any>> | Yes      | State label mapping. Each entry maps a numeric state value to its human-readable label (e.g., `[{value: 0, text: "Off"}, {value: 1, text: "On"}]`). |

***

## FanSpeed Metadata

### Payload

Measurement fields for FanSpeed. Typical engUnit: RPM. The identifier (named-object XOR associate) and measurement (engUnit XOR stateText) constraints are independent and enforced by EquipmentMeasurementModeBase.

### Requires a non-empty engUnit string (mutually exclusive with stateText).

| Name      | Type   | Required | Description                           |
| --------- | ------ | -------- | ------------------------------------- |
| `engUnit` | string | Yes      | Engineering unit for the measurement. |

### Required for state/status/alarm points that carry no engineering unit.

| Name        | Type                            | Required | Description                                                                                                                                         |
| ----------- | ------------------------------- | -------- | --------------------------------------------------------------------------------------------------------------------------------------------------- |
| `stateText` | array\&lt;map\&lt;string, any>> | Yes      | State label mapping. Each entry maps a numeric state value to its human-readable label (e.g., `[{value: 0, text: "Off"}, {value: 1, text: "On"}]`). |

***

## DamperPosition Metadata

### Payload

Measurement fields for DamperPosition. Typical engUnit: %. The identifier (named-object XOR associate) and measurement (engUnit XOR stateText) constraints are independent and enforced by EquipmentMeasurementModeBase.

### Requires a non-empty engUnit string (mutually exclusive with stateText).

| Name      | Type   | Required | Description                           |
| --------- | ------ | -------- | ------------------------------------- |
| `engUnit` | string | Yes      | Engineering unit for the measurement. |

### Required for state/status/alarm points that carry no engineering unit.

| Name        | Type                            | Required | Description                                                                                                                                         |
| ----------- | ------------------------------- | -------- | --------------------------------------------------------------------------------------------------------------------------------------------------- |
| `stateText` | array\&lt;map\&lt;string, any>> | Yes      | State label mapping. Each entry maps a numeric state value to its human-readable label (e.g., `[{value: 0, text: "Off"}, {value: 1, text: "On"}]`). |

***

## AirTemperature Metadata

### Payload

Optional fields common to all generic equipment metadata, regardless of identifier mode.

### Object Mode

* `objectName` and `objectId` are **required**.
* `servesId` is **optional** in Named-object mode.
* `associateId` must **not** be present.

Incompatible with `EquipmentAssociateMode` — validators enforce this via
the parent `oneOf`.

| Name         | Type              | Required | Description                                                                                                                                                         |
| ------------ | ----------------- | -------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| `objectName` | string            | Yes      | Human-readable equipment name.                                                                                                                                      |
| `objectId`   | string            | Yes      | Stable unique identifier for the equipment.                                                                                                                         |
| `servesId`   | array\&lt;string> | No       | Optional list of objectIds of entities this equipment serves. Only valid in Named-object mode. Only valid in Named-object mode — must not appear in Associate mode. |

### Associate Mode

* `associateId` is **required**.
* `objectName`, `objectId`, and `servesId` must **not** be present.

Incompatible with `EquipmentNamedObjectMode` — validators enforce this
via the parent `oneOf`.

| Name          | Type   | Required | Description                          |
| ------------- | ------ | -------- | ------------------------------------ |
| `associateId` | string | Yes      | Identifier of the associated entity. |

***

## AirDifferentialPressure Metadata

### Payload

Measurement fields for AirDifferentialPressure. Typical engUnit: Pa. The identifier (named-object XOR associate) and measurement (engUnit XOR stateText) constraints are independent and enforced by EquipmentMeasurementModeBase.

### Requires a non-empty engUnit string (mutually exclusive with stateText).

| Name      | Type   | Required | Description                           |
| --------- | ------ | -------- | ------------------------------------- |
| `engUnit` | string | Yes      | Engineering unit for the measurement. |

### Required for state/status/alarm points that carry no engineering unit.

| Name        | Type                            | Required | Description                                                                                                                                         |
| ----------- | ------------------------------- | -------- | --------------------------------------------------------------------------------------------------------------------------------------------------- |
| `stateText` | array\&lt;map\&lt;string, any>> | Yes      | State label mapping. Each entry maps a numeric state value to its human-readable label (e.g., `[{value: 0, text: "Off"}, {value: 1, text: "On"}]`). |

***

## AirFlow Metadata

### Payload

Measurement fields for AirFlow. Typical engUnit: CFM. The identifier (named-object XOR associate) and measurement (engUnit XOR stateText) constraints are independent and enforced by EquipmentMeasurementModeBase.

### Requires a non-empty engUnit string (mutually exclusive with stateText).

| Name      | Type   | Required | Description                           |
| --------- | ------ | -------- | ------------------------------------- |
| `engUnit` | string | Yes      | Engineering unit for the measurement. |

### Required for state/status/alarm points that carry no engineering unit.

| Name        | Type                            | Required | Description                                                                                                                                         |
| ----------- | ------------------------------- | -------- | --------------------------------------------------------------------------------------------------------------------------------------------------- |
| `stateText` | array\&lt;map\&lt;string, any>> | Yes      | State label mapping. Each entry maps a numeric state value to its human-readable label (e.g., `[{value: 0, text: "Off"}, {value: 1, text: "On"}]`). |

***

## AirPressure Metadata

### Payload

Measurement fields for AirPressure. Typical engUnit: Pa. The identifier (named-object XOR associate) and measurement (engUnit XOR stateText) constraints are independent and enforced by EquipmentMeasurementModeBase.

### Requires a non-empty engUnit string (mutually exclusive with stateText).

| Name      | Type   | Required | Description                           |
| --------- | ------ | -------- | ------------------------------------- |
| `engUnit` | string | Yes      | Engineering unit for the measurement. |

### Required for state/status/alarm points that carry no engineering unit.

| Name        | Type                            | Required | Description                                                                                                                                         |
| ----------- | ------------------------------- | -------- | --------------------------------------------------------------------------------------------------------------------------------------------------- |
| `stateText` | array\&lt;map\&lt;string, any>> | Yes      | State label mapping. Each entry maps a numeric state value to its human-readable label (e.g., `[{value: 0, text: "Off"}, {value: 1, text: "On"}]`). |

***

## CDU LiquidTemperatureSpRequest Metadata

### Payload

Setpoint request written by an integration (e.g., MEPAI) to a CDU. BMS publishes metadata; the integration publishes the value to respective value topic namespace identified by `integration`

### Object Mode

* `objectName` and `objectId` are **required**.
* `servesId` is **optional** in Named-object mode.
* `associateId` must **not** be present.

Incompatible with `EquipmentAssociateMode` — validators enforce this via
the parent `oneOf`.

| Name         | Type              | Required | Description                                                                                                                                                         |
| ------------ | ----------------- | -------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| `objectName` | string            | Yes      | Human-readable equipment name.                                                                                                                                      |
| `objectId`   | string            | Yes      | Stable unique identifier for the equipment.                                                                                                                         |
| `servesId`   | array\&lt;string> | No       | Optional list of objectIds of entities this equipment serves. Only valid in Named-object mode. Only valid in Named-object mode — must not appear in Associate mode. |

### Associate Mode

* `associateId` is **required**.
* `objectName`, `objectId`, and `servesId` must **not** be present.

Incompatible with `EquipmentNamedObjectMode` — validators enforce this
via the parent `oneOf`.

| Name          | Type   | Required | Description                          |
| ------------- | ------ | -------- | ------------------------------------ |
| `associateId` | string | Yes      | Identifier of the associated entity. |

***

## Sound Metadata

### Payload

Optional fields common to all generic equipment metadata, regardless of identifier mode.

### Object Mode

* `objectName` and `objectId` are **required**.
* `servesId` is **optional** in Named-object mode.
* `associateId` must **not** be present.

Incompatible with `EquipmentAssociateMode` — validators enforce this via
the parent `oneOf`.

| Name         | Type              | Required | Description                                                                                                                                                         |
| ------------ | ----------------- | -------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| `objectName` | string            | Yes      | Human-readable equipment name.                                                                                                                                      |
| `objectId`   | string            | Yes      | Stable unique identifier for the equipment.                                                                                                                         |
| `servesId`   | array\&lt;string> | No       | Optional list of objectIds of entities this equipment serves. Only valid in Named-object mode. Only valid in Named-object mode — must not appear in Associate mode. |

### Associate Mode

* `associateId` is **required**.
* `objectName`, `objectId`, and `servesId` must **not** be present.

Incompatible with `EquipmentNamedObjectMode` — validators enforce this
via the parent `oneOf`.

| Name          | Type   | Required | Description                          |
| ------------- | ------ | -------- | ------------------------------------ |
| `associateId` | string | Yes      | Identifier of the associated entity. |

***

## HeartbeatTimestampBms Metadata

### Payload

| Name         | Type   | Required | Description                                                                                    |
| ------------ | ------ | -------- | ---------------------------------------------------------------------------------------------- |
| `objectType` | string | Yes      | Canonical object type. Matches the objectType MQTT topic segment.                              |
| `pointType`  | string | Yes      | Values: `HeartbeatTimestampBms`                                                                |
| `objectName` | string | Yes      | Human-readable name of the BMS publishing this heartbeat.                                      |
| `objectId`   | string | Yes      | Stable identifier for the BMS publishing this heartbeat (e.g., `"BMS"`). One instance per BMS. |
| `scope`      | string | No       | Identifies which MQTT topics this heartbeat covers.                                            |

***

## HeartbeatEchoBms Metadata

### Payload

| Name         | Type   | Required | Description                                                                                                                                                           |
| ------------ | ------ | -------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| `objectType` | string | Yes      | Canonical object type. Matches the objectType MQTT topic segment.                                                                                                     |
| `pointType`  | string | Yes      | Values: `HeartbeatEchoBms`                                                                                                                                            |
| `objectName` | string | Yes      | Human-readable name of the integration whose timestamp is being echoed.                                                                                               |
| `objectId`   | string | Yes      | Stable identifier of the integration whose timestamp is being echoed (e.g., `"MEPAI1"`). Matches that integration's `integration` metadata value on its other points. |
| `scope`      | string | No       | Optional. Identifies which BMS MQTT-client/topic namespace this echo is associated with.                                                                              |

***

## HeartbeatTimestampIntegration Metadata

### Payload

| Name          | Type   | Required | Description                                                                                                                                                                              |
| ------------- | ------ | -------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| `objectType`  | string | Yes      | Canonical object type. Matches the objectType MQTT topic segment.                                                                                                                        |
| `pointType`   | string | Yes      | Values: `HeartbeatTimestampIntegration`                                                                                                                                                  |
| `integration` | string | Yes      | Integration identifier.                                                                                                                                                                  |
| `objectName`  | string | Yes      | Human-readable name of the integration publishing this heartbeat.                                                                                                                        |
| `objectId`    | string | Yes      | Stable identifier of the integration publishing this heartbeat (e.g., `"MEPAI1"`). By convention, matches the `integration` metadata value used by this integration on its other points. |

***

## HeartbeatEchoIntegration Metadata

### Payload

| Name          | Type   | Required | Description                                                                   |
| ------------- | ------ | -------- | ----------------------------------------------------------------------------- |
| `objectType`  | string | Yes      | Canonical object type. Matches the objectType MQTT topic segment.             |
| `pointType`   | string | Yes      | Values: `HeartbeatEchoIntegration`                                            |
| `integration` | string | Yes      | Integration identifier.                                                       |
| `objectName`  | string | Yes      | Human-readable name of the BMS whose timestamp is being echoed.               |
| `objectId`    | string | Yes      | Stable identifier of the BMS whose timestamp is being echoed (e.g., `"BMS"`). |

***

## System Status Metadata

### Payload

Optional fields common to all generic equipment metadata, regardless of identifier mode.

### Object Mode

* `objectName` and `objectId` are **required**.
* `servesId` is **optional** in Named-object mode.
* `associateId` must **not** be present.

Incompatible with `EquipmentAssociateMode` — validators enforce this via
the parent `oneOf`.

| Name         | Type              | Required | Description                                                                                                                                                         |
| ------------ | ----------------- | -------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| `objectName` | string            | Yes      | Human-readable equipment name.                                                                                                                                      |
| `objectId`   | string            | Yes      | Stable unique identifier for the equipment.                                                                                                                         |
| `servesId`   | array\&lt;string> | No       | Optional list of objectIds of entities this equipment serves. Only valid in Named-object mode. Only valid in Named-object mode — must not appear in Associate mode. |

### Associate Mode

* `associateId` is **required**.
* `objectName`, `objectId`, and `servesId` must **not** be present.

Incompatible with `EquipmentNamedObjectMode` — validators enforce this
via the parent `oneOf`.

| Name          | Type   | Required | Description                          |
| ------------- | ------ | -------- | ------------------------------------ |
| `associateId` | string | Yes      | Identifier of the associated entity. |

***

## System Available Metadata

### Payload

Optional fields common to all generic equipment metadata, regardless of identifier mode.

### Object Mode

* `objectName` and `objectId` are **required**.
* `servesId` is **optional** in Named-object mode.
* `associateId` must **not** be present.

Incompatible with `EquipmentAssociateMode` — validators enforce this via
the parent `oneOf`.

| Name         | Type              | Required | Description                                                                                                                                                         |
| ------------ | ----------------- | -------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| `objectName` | string            | Yes      | Human-readable equipment name.                                                                                                                                      |
| `objectId`   | string            | Yes      | Stable unique identifier for the equipment.                                                                                                                         |
| `servesId`   | array\&lt;string> | No       | Optional list of objectIds of entities this equipment serves. Only valid in Named-object mode. Only valid in Named-object mode — must not appear in Associate mode. |

### Associate Mode

* `associateId` is **required**.
* `objectName`, `objectId`, and `servesId` must **not** be present.

Incompatible with `EquipmentNamedObjectMode` — validators enforce this
via the parent `oneOf`.

| Name          | Type   | Required | Description                          |
| ------------- | ------ | -------- | ------------------------------------ |
| `associateId` | string | Yes      | Identifier of the associated entity. |

***

## BESS Status Metadata

### Payload

Optional fields common to all generic equipment metadata, regardless of identifier mode.

### Object Mode

* `objectName` and `objectId` are **required**.
* `servesId` is **optional** in Named-object mode.
* `associateId` must **not** be present.

Incompatible with `EquipmentAssociateMode` — validators enforce this via
the parent `oneOf`.

| Name         | Type              | Required | Description                                                                                                                                                         |
| ------------ | ----------------- | -------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| `objectName` | string            | Yes      | Human-readable equipment name.                                                                                                                                      |
| `objectId`   | string            | Yes      | Stable unique identifier for the equipment.                                                                                                                         |
| `servesId`   | array\&lt;string> | No       | Optional list of objectIds of entities this equipment serves. Only valid in Named-object mode. Only valid in Named-object mode — must not appear in Associate mode. |

### Associate Mode

* `associateId` is **required**.
* `objectName`, `objectId`, and `servesId` must **not** be present.

Incompatible with `EquipmentNamedObjectMode` — validators enforce this
via the parent `oneOf`.

| Name          | Type   | Required | Description                          |
| ------------- | ------ | -------- | ------------------------------------ |
| `associateId` | string | Yes      | Identifier of the associated entity. |

***

## BESS Available Metadata

### Payload

Optional fields common to all generic equipment metadata, regardless of identifier mode.

### Object Mode

* `objectName` and `objectId` are **required**.
* `servesId` is **optional** in Named-object mode.
* `associateId` must **not** be present.

Incompatible with `EquipmentAssociateMode` — validators enforce this via
the parent `oneOf`.

| Name         | Type              | Required | Description                                                                                                                                                         |
| ------------ | ----------------- | -------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| `objectName` | string            | Yes      | Human-readable equipment name.                                                                                                                                      |
| `objectId`   | string            | Yes      | Stable unique identifier for the equipment.                                                                                                                         |
| `servesId`   | array\&lt;string> | No       | Optional list of objectIds of entities this equipment serves. Only valid in Named-object mode. Only valid in Named-object mode — must not appear in Associate mode. |

### Associate Mode

* `associateId` is **required**.
* `objectName`, `objectId`, and `servesId` must **not** be present.

Incompatible with `EquipmentNamedObjectMode` — validators enforce this
via the parent `oneOf`.

| Name          | Type   | Required | Description                          |
| ------------- | ------ | -------- | ------------------------------------ |
| `associateId` | string | Yes      | Identifier of the associated entity. |

***

## UPS Status Metadata

### Payload

Optional fields common to all generic equipment metadata, regardless of identifier mode.

### Object Mode

* `objectName` and `objectId` are **required**.
* `servesId` is **optional** in Named-object mode.
* `associateId` must **not** be present.

Incompatible with `EquipmentAssociateMode` — validators enforce this via
the parent `oneOf`.

| Name         | Type              | Required | Description                                                                                                                                                         |
| ------------ | ----------------- | -------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| `objectName` | string            | Yes      | Human-readable equipment name.                                                                                                                                      |
| `objectId`   | string            | Yes      | Stable unique identifier for the equipment.                                                                                                                         |
| `servesId`   | array\&lt;string> | No       | Optional list of objectIds of entities this equipment serves. Only valid in Named-object mode. Only valid in Named-object mode — must not appear in Associate mode. |

### Associate Mode

* `associateId` is **required**.
* `objectName`, `objectId`, and `servesId` must **not** be present.

Incompatible with `EquipmentNamedObjectMode` — validators enforce this
via the parent `oneOf`.

| Name          | Type   | Required | Description                          |
| ------------- | ------ | -------- | ------------------------------------ |
| `associateId` | string | Yes      | Identifier of the associated entity. |

***

## UPS Available Metadata

### Payload

Optional fields common to all generic equipment metadata, regardless of identifier mode.

### Object Mode

* `objectName` and `objectId` are **required**.
* `servesId` is **optional** in Named-object mode.
* `associateId` must **not** be present.

Incompatible with `EquipmentAssociateMode` — validators enforce this via
the parent `oneOf`.

| Name         | Type              | Required | Description                                                                                                                                                         |
| ------------ | ----------------- | -------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| `objectName` | string            | Yes      | Human-readable equipment name.                                                                                                                                      |
| `objectId`   | string            | Yes      | Stable unique identifier for the equipment.                                                                                                                         |
| `servesId`   | array\&lt;string> | No       | Optional list of objectIds of entities this equipment serves. Only valid in Named-object mode. Only valid in Named-object mode — must not appear in Associate mode. |

### Associate Mode

* `associateId` is **required**.
* `objectName`, `objectId`, and `servesId` must **not** be present.

Incompatible with `EquipmentNamedObjectMode` — validators enforce this
via the parent `oneOf`.

| Name          | Type   | Required | Description                          |
| ------------- | ------ | -------- | ------------------------------------ |
| `associateId` | string | Yes      | Identifier of the associated entity. |

***

## ATS Status Metadata

### Payload

Optional fields common to all generic equipment metadata, regardless of identifier mode.

### Object Mode

* `objectName` and `objectId` are **required**.
* `servesId` is **optional** in Named-object mode.
* `associateId` must **not** be present.

Incompatible with `EquipmentAssociateMode` — validators enforce this via
the parent `oneOf`.

| Name         | Type              | Required | Description                                                                                                                                                         |
| ------------ | ----------------- | -------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| `objectName` | string            | Yes      | Human-readable equipment name.                                                                                                                                      |
| `objectId`   | string            | Yes      | Stable unique identifier for the equipment.                                                                                                                         |
| `servesId`   | array\&lt;string> | No       | Optional list of objectIds of entities this equipment serves. Only valid in Named-object mode. Only valid in Named-object mode — must not appear in Associate mode. |

### Associate Mode

* `associateId` is **required**.
* `objectName`, `objectId`, and `servesId` must **not** be present.

Incompatible with `EquipmentNamedObjectMode` — validators enforce this
via the parent `oneOf`.

| Name          | Type   | Required | Description                          |
| ------------- | ------ | -------- | ------------------------------------ |
| `associateId` | string | Yes      | Identifier of the associated entity. |

***

## ATS Available Metadata

### Payload

Optional fields common to all generic equipment metadata, regardless of identifier mode.

### Object Mode

* `objectName` and `objectId` are **required**.
* `servesId` is **optional** in Named-object mode.
* `associateId` must **not** be present.

Incompatible with `EquipmentAssociateMode` — validators enforce this via
the parent `oneOf`.

| Name         | Type              | Required | Description                                                                                                                                                         |
| ------------ | ----------------- | -------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| `objectName` | string            | Yes      | Human-readable equipment name.                                                                                                                                      |
| `objectId`   | string            | Yes      | Stable unique identifier for the equipment.                                                                                                                         |
| `servesId`   | array\&lt;string> | No       | Optional list of objectIds of entities this equipment serves. Only valid in Named-object mode. Only valid in Named-object mode — must not appear in Associate mode. |

### Associate Mode

* `associateId` is **required**.
* `objectName`, `objectId`, and `servesId` must **not** be present.

Incompatible with `EquipmentNamedObjectMode` — validators enforce this
via the parent `oneOf`.

| Name          | Type   | Required | Description                          |
| ------------- | ------ | -------- | ------------------------------------ |
| `associateId` | string | Yes      | Identifier of the associated entity. |

***

## Generator Status Metadata

### Payload

Optional fields common to all generic equipment metadata, regardless of identifier mode.

### Object Mode

* `objectName` and `objectId` are **required**.
* `servesId` is **optional** in Named-object mode.
* `associateId` must **not** be present.

Incompatible with `EquipmentAssociateMode` — validators enforce this via
the parent `oneOf`.

| Name         | Type              | Required | Description                                                                                                                                                         |
| ------------ | ----------------- | -------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| `objectName` | string            | Yes      | Human-readable equipment name.                                                                                                                                      |
| `objectId`   | string            | Yes      | Stable unique identifier for the equipment.                                                                                                                         |
| `servesId`   | array\&lt;string> | No       | Optional list of objectIds of entities this equipment serves. Only valid in Named-object mode. Only valid in Named-object mode — must not appear in Associate mode. |

### Associate Mode

* `associateId` is **required**.
* `objectName`, `objectId`, and `servesId` must **not** be present.

Incompatible with `EquipmentNamedObjectMode` — validators enforce this
via the parent `oneOf`.

| Name          | Type   | Required | Description                          |
| ------------- | ------ | -------- | ------------------------------------ |
| `associateId` | string | Yes      | Identifier of the associated entity. |

***

## Generator Available Metadata

### Payload

Optional fields common to all generic equipment metadata, regardless of identifier mode.

### Object Mode

* `objectName` and `objectId` are **required**.
* `servesId` is **optional** in Named-object mode.
* `associateId` must **not** be present.

Incompatible with `EquipmentAssociateMode` — validators enforce this via
the parent `oneOf`.

| Name         | Type              | Required | Description                                                                                                                                                         |
| ------------ | ----------------- | -------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| `objectName` | string            | Yes      | Human-readable equipment name.                                                                                                                                      |
| `objectId`   | string            | Yes      | Stable unique identifier for the equipment.                                                                                                                         |
| `servesId`   | array\&lt;string> | No       | Optional list of objectIds of entities this equipment serves. Only valid in Named-object mode. Only valid in Named-object mode — must not appear in Associate mode. |

### Associate Mode

* `associateId` is **required**.
* `objectName`, `objectId`, and `servesId` must **not** be present.

Incompatible with `EquipmentNamedObjectMode` — validators enforce this
via the parent `oneOf`.

| Name          | Type   | Required | Description                          |
| ------------- | ------ | -------- | ------------------------------------ |
| `associateId` | string | Yes      | Identifier of the associated entity. |

***

## Shunt Status Metadata

### Payload

Optional fields common to all generic equipment metadata, regardless of identifier mode.

### Object Mode

* `objectName` and `objectId` are **required**.
* `servesId` is **optional** in Named-object mode.
* `associateId` must **not** be present.

Incompatible with `EquipmentAssociateMode` — validators enforce this via
the parent `oneOf`.

| Name         | Type              | Required | Description                                                                                                                                                         |
| ------------ | ----------------- | -------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| `objectName` | string            | Yes      | Human-readable equipment name.                                                                                                                                      |
| `objectId`   | string            | Yes      | Stable unique identifier for the equipment.                                                                                                                         |
| `servesId`   | array\&lt;string> | No       | Optional list of objectIds of entities this equipment serves. Only valid in Named-object mode. Only valid in Named-object mode — must not appear in Associate mode. |

### Associate Mode

* `associateId` is **required**.
* `objectName`, `objectId`, and `servesId` must **not** be present.

Incompatible with `EquipmentNamedObjectMode` — validators enforce this
via the parent `oneOf`.

| Name          | Type   | Required | Description                          |
| ------------- | ------ | -------- | ------------------------------------ |
| `associateId` | string | Yes      | Identifier of the associated entity. |

***

## Shunt Available Metadata

### Payload

Optional fields common to all generic equipment metadata, regardless of identifier mode.

### Object Mode

* `objectName` and `objectId` are **required**.
* `servesId` is **optional** in Named-object mode.
* `associateId` must **not** be present.

Incompatible with `EquipmentAssociateMode` — validators enforce this via
the parent `oneOf`.

| Name         | Type              | Required | Description                                                                                                                                                         |
| ------------ | ----------------- | -------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| `objectName` | string            | Yes      | Human-readable equipment name.                                                                                                                                      |
| `objectId`   | string            | Yes      | Stable unique identifier for the equipment.                                                                                                                         |
| `servesId`   | array\&lt;string> | No       | Optional list of objectIds of entities this equipment serves. Only valid in Named-object mode. Only valid in Named-object mode — must not appear in Associate mode. |

### Associate Mode

* `associateId` is **required**.
* `objectName`, `objectId`, and `servesId` must **not** be present.

Incompatible with `EquipmentNamedObjectMode` — validators enforce this
via the parent `oneOf`.

| Name          | Type   | Required | Description                          |
| ------------- | ------ | -------- | ------------------------------------ |
| `associateId` | string | Yes      | Identifier of the associated entity. |

***

## Breaker Status Metadata

### Payload

Optional fields common to all generic equipment metadata, regardless of identifier mode.

### Object Mode

* `objectName` and `objectId` are **required**.
* `servesId` is **optional** in Named-object mode.
* `associateId` must **not** be present.

Incompatible with `EquipmentAssociateMode` — validators enforce this via
the parent `oneOf`.

| Name         | Type              | Required | Description                                                                                                                                                         |
| ------------ | ----------------- | -------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| `objectName` | string            | Yes      | Human-readable equipment name.                                                                                                                                      |
| `objectId`   | string            | Yes      | Stable unique identifier for the equipment.                                                                                                                         |
| `servesId`   | array\&lt;string> | No       | Optional list of objectIds of entities this equipment serves. Only valid in Named-object mode. Only valid in Named-object mode — must not appear in Associate mode. |

### Associate Mode

* `associateId` is **required**.
* `objectName`, `objectId`, and `servesId` must **not** be present.

Incompatible with `EquipmentNamedObjectMode` — validators enforce this
via the parent `oneOf`.

| Name          | Type   | Required | Description                          |
| ------------- | ------ | -------- | ------------------------------------ |
| `associateId` | string | Yes      | Identifier of the associated entity. |

***

## Breaker Available Metadata

### Payload

Optional fields common to all generic equipment metadata, regardless of identifier mode.

### Object Mode

* `objectName` and `objectId` are **required**.
* `servesId` is **optional** in Named-object mode.
* `associateId` must **not** be present.

Incompatible with `EquipmentAssociateMode` — validators enforce this via
the parent `oneOf`.

| Name         | Type              | Required | Description                                                                                                                                                         |
| ------------ | ----------------- | -------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| `objectName` | string            | Yes      | Human-readable equipment name.                                                                                                                                      |
| `objectId`   | string            | Yes      | Stable unique identifier for the equipment.                                                                                                                         |
| `servesId`   | array\&lt;string> | No       | Optional list of objectIds of entities this equipment serves. Only valid in Named-object mode. Only valid in Named-object mode — must not appear in Associate mode. |

### Associate Mode

* `associateId` is **required**.
* `objectName`, `objectId`, and `servesId` must **not** be present.

Incompatible with `EquipmentNamedObjectMode` — validators enforce this
via the parent `oneOf`.

| Name          | Type   | Required | Description                          |
| ------------- | ------ | -------- | ------------------------------------ |
| `associateId` | string | Yes      | Identifier of the associated entity. |

***

## Valve ValvePosition Metadata

### Payload

Measurement fields for ValvePosition. Typical engUnit: %. The identifier (named-object XOR associate) and measurement (engUnit XOR stateText) constraints are independent and enforced by EquipmentMeasurementModeBase.

### Requires a non-empty engUnit string (mutually exclusive with stateText).

| Name      | Type   | Required | Description                           |
| --------- | ------ | -------- | ------------------------------------- |
| `engUnit` | string | Yes      | Engineering unit for the measurement. |

### Required for state/status/alarm points that carry no engineering unit.

| Name        | Type                            | Required | Description                                                                                                                                         |
| ----------- | ------------------------------- | -------- | --------------------------------------------------------------------------------------------------------------------------------------------------- |
| `stateText` | array\&lt;map\&lt;string, any>> | Yes      | State label mapping. Each entry maps a numeric state value to its human-readable label (e.g., `[{value: 0, text: "Off"}, {value: 1, text: "On"}]`). |

***

## Pump PumpSpeed Metadata

### Payload

Measurement fields for PumpSpeed. Typical engUnit: RPM. The identifier (named-object XOR associate) and measurement (engUnit XOR stateText) constraints are independent and enforced by EquipmentMeasurementModeBase.

### Requires a non-empty engUnit string (mutually exclusive with stateText).

| Name      | Type   | Required | Description                           |
| --------- | ------ | -------- | ------------------------------------- |
| `engUnit` | string | Yes      | Engineering unit for the measurement. |

### Required for state/status/alarm points that carry no engineering unit.

| Name        | Type                            | Required | Description                                                                                                                                         |
| ----------- | ------------------------------- | -------- | --------------------------------------------------------------------------------------------------------------------------------------------------- |
| `stateText` | array\&lt;map\&lt;string, any>> | Yes      | State label mapping. Each entry maps a numeric state value to its human-readable label (e.g., `[{value: 0, text: "Off"}, {value: 1, text: "On"}]`). |

***

## Fan FanSpeed Metadata

### Payload

Measurement fields for FanSpeed. Typical engUnit: RPM. The identifier (named-object XOR associate) and measurement (engUnit XOR stateText) constraints are independent and enforced by EquipmentMeasurementModeBase.

### Requires a non-empty engUnit string (mutually exclusive with stateText).

| Name      | Type   | Required | Description                           |
| --------- | ------ | -------- | ------------------------------------- |
| `engUnit` | string | Yes      | Engineering unit for the measurement. |

### Required for state/status/alarm points that carry no engineering unit.

| Name        | Type                            | Required | Description                                                                                                                                         |
| ----------- | ------------------------------- | -------- | --------------------------------------------------------------------------------------------------------------------------------------------------- |
| `stateText` | array\&lt;map\&lt;string, any>> | Yes      | State label mapping. Each entry maps a numeric state value to its human-readable label (e.g., `[{value: 0, text: "Off"}, {value: 1, text: "On"}]`). |

***

## Damper DamperPosition Metadata

### Payload

Measurement fields for DamperPosition. Typical engUnit: %. The identifier (named-object XOR associate) and measurement (engUnit XOR stateText) constraints are independent and enforced by EquipmentMeasurementModeBase.

### Requires a non-empty engUnit string (mutually exclusive with stateText).

| Name      | Type   | Required | Description                           |
| --------- | ------ | -------- | ------------------------------------- |
| `engUnit` | string | Yes      | Engineering unit for the measurement. |

### Required for state/status/alarm points that carry no engineering unit.

| Name        | Type                            | Required | Description                                                                                                                                         |
| ----------- | ------------------------------- | -------- | --------------------------------------------------------------------------------------------------------------------------------------------------- |
| `stateText` | array\&lt;map\&lt;string, any>> | Yes      | State label mapping. Each entry maps a numeric state value to its human-readable label (e.g., `[{value: 0, text: "Off"}, {value: 1, text: "On"}]`). |

***

## Sensor LiquidTemperature Metadata

### Payload

Optional fields common to all generic equipment metadata, regardless of identifier mode.

### Object Mode

* `objectName` and `objectId` are **required**.
* `servesId` is **optional** in Named-object mode.
* `associateId` must **not** be present.

Incompatible with `EquipmentAssociateMode` — validators enforce this via
the parent `oneOf`.

| Name         | Type              | Required | Description                                                                                                                                                         |
| ------------ | ----------------- | -------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| `objectName` | string            | Yes      | Human-readable equipment name.                                                                                                                                      |
| `objectId`   | string            | Yes      | Stable unique identifier for the equipment.                                                                                                                         |
| `servesId`   | array\&lt;string> | No       | Optional list of objectIds of entities this equipment serves. Only valid in Named-object mode. Only valid in Named-object mode — must not appear in Associate mode. |

### Associate Mode

* `associateId` is **required**.
* `objectName`, `objectId`, and `servesId` must **not** be present.

Incompatible with `EquipmentNamedObjectMode` — validators enforce this
via the parent `oneOf`.

| Name          | Type   | Required | Description                          |
| ------------- | ------ | -------- | ------------------------------------ |
| `associateId` | string | Yes      | Identifier of the associated entity. |

***

## Sensor LiquidDifferentialPressure Metadata

### Payload

Measurement fields for LiquidDifferentialPressure. Typical engUnit: kPa. The identifier (named-object XOR associate) and measurement (engUnit XOR stateText) constraints are independent and enforced by EquipmentMeasurementModeBase.

### Requires a non-empty engUnit string (mutually exclusive with stateText).

| Name      | Type   | Required | Description                           |
| --------- | ------ | -------- | ------------------------------------- |
| `engUnit` | string | Yes      | Engineering unit for the measurement. |

### Required for state/status/alarm points that carry no engineering unit.

| Name        | Type                            | Required | Description                                                                                                                                         |
| ----------- | ------------------------------- | -------- | --------------------------------------------------------------------------------------------------------------------------------------------------- |
| `stateText` | array\&lt;map\&lt;string, any>> | Yes      | State label mapping. Each entry maps a numeric state value to its human-readable label (e.g., `[{value: 0, text: "Off"}, {value: 1, text: "On"}]`). |

***

## Sensor LiquidFlow Metadata

### Payload

Measurement fields for LiquidFlow. Typical engUnit: LPM. The identifier (named-object XOR associate) and measurement (engUnit XOR stateText) constraints are independent and enforced by EquipmentMeasurementModeBase.

### Requires a non-empty engUnit string (mutually exclusive with stateText).

| Name      | Type   | Required | Description                           |
| --------- | ------ | -------- | ------------------------------------- |
| `engUnit` | string | Yes      | Engineering unit for the measurement. |

### Required for state/status/alarm points that carry no engineering unit.

| Name        | Type                            | Required | Description                                                                                                                                         |
| ----------- | ------------------------------- | -------- | --------------------------------------------------------------------------------------------------------------------------------------------------- |
| `stateText` | array\&lt;map\&lt;string, any>> | Yes      | State label mapping. Each entry maps a numeric state value to its human-readable label (e.g., `[{value: 0, text: "Off"}, {value: 1, text: "On"}]`). |

***

## Sensor LiquidPressure Metadata

### Payload

Measurement fields for LiquidPressure. Typical engUnit: kPa. The identifier (named-object XOR associate) and measurement (engUnit XOR stateText) constraints are independent and enforced by EquipmentMeasurementModeBase.

### Requires a non-empty engUnit string (mutually exclusive with stateText).

| Name      | Type   | Required | Description                           |
| --------- | ------ | -------- | ------------------------------------- |
| `engUnit` | string | Yes      | Engineering unit for the measurement. |

### Required for state/status/alarm points that carry no engineering unit.

| Name        | Type                            | Required | Description                                                                                                                                         |
| ----------- | ------------------------------- | -------- | --------------------------------------------------------------------------------------------------------------------------------------------------- |
| `stateText` | array\&lt;map\&lt;string, any>> | Yes      | State label mapping. Each entry maps a numeric state value to its human-readable label (e.g., `[{value: 0, text: "Off"}, {value: 1, text: "On"}]`). |

***

## Sensor AirTemperature Metadata

### Payload

Optional fields common to all generic equipment metadata, regardless of identifier mode.

### Object Mode

* `objectName` and `objectId` are **required**.
* `servesId` is **optional** in Named-object mode.
* `associateId` must **not** be present.

Incompatible with `EquipmentAssociateMode` — validators enforce this via
the parent `oneOf`.

| Name         | Type              | Required | Description                                                                                                                                                         |
| ------------ | ----------------- | -------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| `objectName` | string            | Yes      | Human-readable equipment name.                                                                                                                                      |
| `objectId`   | string            | Yes      | Stable unique identifier for the equipment.                                                                                                                         |
| `servesId`   | array\&lt;string> | No       | Optional list of objectIds of entities this equipment serves. Only valid in Named-object mode. Only valid in Named-object mode — must not appear in Associate mode. |

### Associate Mode

* `associateId` is **required**.
* `objectName`, `objectId`, and `servesId` must **not** be present.

Incompatible with `EquipmentNamedObjectMode` — validators enforce this
via the parent `oneOf`.

| Name          | Type   | Required | Description                          |
| ------------- | ------ | -------- | ------------------------------------ |
| `associateId` | string | Yes      | Identifier of the associated entity. |

***

## Sensor AirDifferentialPressure Metadata

### Payload

Measurement fields for AirDifferentialPressure. Typical engUnit: Pa. The identifier (named-object XOR associate) and measurement (engUnit XOR stateText) constraints are independent and enforced by EquipmentMeasurementModeBase.

### Requires a non-empty engUnit string (mutually exclusive with stateText).

| Name      | Type   | Required | Description                           |
| --------- | ------ | -------- | ------------------------------------- |
| `engUnit` | string | Yes      | Engineering unit for the measurement. |

### Required for state/status/alarm points that carry no engineering unit.

| Name        | Type                            | Required | Description                                                                                                                                         |
| ----------- | ------------------------------- | -------- | --------------------------------------------------------------------------------------------------------------------------------------------------- |
| `stateText` | array\&lt;map\&lt;string, any>> | Yes      | State label mapping. Each entry maps a numeric state value to its human-readable label (e.g., `[{value: 0, text: "Off"}, {value: 1, text: "On"}]`). |

***

## Sensor AirFlow Metadata

### Payload

Measurement fields for AirFlow. Typical engUnit: CFM. The identifier (named-object XOR associate) and measurement (engUnit XOR stateText) constraints are independent and enforced by EquipmentMeasurementModeBase.

### Requires a non-empty engUnit string (mutually exclusive with stateText).

| Name      | Type   | Required | Description                           |
| --------- | ------ | -------- | ------------------------------------- |
| `engUnit` | string | Yes      | Engineering unit for the measurement. |

### Required for state/status/alarm points that carry no engineering unit.

| Name        | Type                            | Required | Description                                                                                                                                         |
| ----------- | ------------------------------- | -------- | --------------------------------------------------------------------------------------------------------------------------------------------------- |
| `stateText` | array\&lt;map\&lt;string, any>> | Yes      | State label mapping. Each entry maps a numeric state value to its human-readable label (e.g., `[{value: 0, text: "Off"}, {value: 1, text: "On"}]`). |

***

## Sensor AirPressure Metadata

### Payload

Measurement fields for AirPressure. Typical engUnit: Pa. The identifier (named-object XOR associate) and measurement (engUnit XOR stateText) constraints are independent and enforced by EquipmentMeasurementModeBase.

### Requires a non-empty engUnit string (mutually exclusive with stateText).

| Name      | Type   | Required | Description                           |
| --------- | ------ | -------- | ------------------------------------- |
| `engUnit` | string | Yes      | Engineering unit for the measurement. |

### Required for state/status/alarm points that carry no engineering unit.

| Name        | Type                            | Required | Description                                                                                                                                         |
| ----------- | ------------------------------- | -------- | --------------------------------------------------------------------------------------------------------------------------------------------------- |
| `stateText` | array\&lt;map\&lt;string, any>> | Yes      | State label mapping. Each entry maps a numeric state value to its human-readable label (e.g., `[{value: 0, text: "Off"}, {value: 1, text: "On"}]`). |

***

## Sensor Sound Metadata

### Payload

Optional fields common to all generic equipment metadata, regardless of identifier mode.

### Object Mode

* `objectName` and `objectId` are **required**.
* `servesId` is **optional** in Named-object mode.
* `associateId` must **not** be present.

Incompatible with `EquipmentAssociateMode` — validators enforce this via
the parent `oneOf`.

| Name         | Type              | Required | Description                                                                                                                                                         |
| ------------ | ----------------- | -------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| `objectName` | string            | Yes      | Human-readable equipment name.                                                                                                                                      |
| `objectId`   | string            | Yes      | Stable unique identifier for the equipment.                                                                                                                         |
| `servesId`   | array\&lt;string> | No       | Optional list of objectIds of entities this equipment serves. Only valid in Named-object mode. Only valid in Named-object mode — must not appear in Associate mode. |

### Associate Mode

* `associateId` is **required**.
* `objectName`, `objectId`, and `servesId` must **not** be present.

Incompatible with `EquipmentNamedObjectMode` — validators enforce this
via the parent `oneOf`.

| Name          | Type   | Required | Description                          |
| ------------- | ------ | -------- | ------------------------------------ |
| `associateId` | string | Yes      | Identifier of the associated entity. |

***

## Valve Available Metadata

### Payload

Optional fields common to all generic equipment metadata, regardless of identifier mode.

### Object Mode

* `objectName` and `objectId` are **required**.
* `servesId` is **optional** in Named-object mode.
* `associateId` must **not** be present.

Incompatible with `EquipmentAssociateMode` — validators enforce this via
the parent `oneOf`.

| Name         | Type              | Required | Description                                                                                                                                                         |
| ------------ | ----------------- | -------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| `objectName` | string            | Yes      | Human-readable equipment name.                                                                                                                                      |
| `objectId`   | string            | Yes      | Stable unique identifier for the equipment.                                                                                                                         |
| `servesId`   | array\&lt;string> | No       | Optional list of objectIds of entities this equipment serves. Only valid in Named-object mode. Only valid in Named-object mode — must not appear in Associate mode. |

### Associate Mode

* `associateId` is **required**.
* `objectName`, `objectId`, and `servesId` must **not** be present.

Incompatible with `EquipmentNamedObjectMode` — validators enforce this
via the parent `oneOf`.

| Name          | Type   | Required | Description                          |
| ------------- | ------ | -------- | ------------------------------------ |
| `associateId` | string | Yes      | Identifier of the associated entity. |

***

## Pump Available Metadata

### Payload

Optional fields common to all generic equipment metadata, regardless of identifier mode.

### Object Mode

* `objectName` and `objectId` are **required**.
* `servesId` is **optional** in Named-object mode.
* `associateId` must **not** be present.

Incompatible with `EquipmentAssociateMode` — validators enforce this via
the parent `oneOf`.

| Name         | Type              | Required | Description                                                                                                                                                         |
| ------------ | ----------------- | -------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| `objectName` | string            | Yes      | Human-readable equipment name.                                                                                                                                      |
| `objectId`   | string            | Yes      | Stable unique identifier for the equipment.                                                                                                                         |
| `servesId`   | array\&lt;string> | No       | Optional list of objectIds of entities this equipment serves. Only valid in Named-object mode. Only valid in Named-object mode — must not appear in Associate mode. |

### Associate Mode

* `associateId` is **required**.
* `objectName`, `objectId`, and `servesId` must **not** be present.

Incompatible with `EquipmentNamedObjectMode` — validators enforce this
via the parent `oneOf`.

| Name          | Type   | Required | Description                          |
| ------------- | ------ | -------- | ------------------------------------ |
| `associateId` | string | Yes      | Identifier of the associated entity. |

***

## Fan Available Metadata

### Payload

Optional fields common to all generic equipment metadata, regardless of identifier mode.

### Object Mode

* `objectName` and `objectId` are **required**.
* `servesId` is **optional** in Named-object mode.
* `associateId` must **not** be present.

Incompatible with `EquipmentAssociateMode` — validators enforce this via
the parent `oneOf`.

| Name         | Type              | Required | Description                                                                                                                                                         |
| ------------ | ----------------- | -------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| `objectName` | string            | Yes      | Human-readable equipment name.                                                                                                                                      |
| `objectId`   | string            | Yes      | Stable unique identifier for the equipment.                                                                                                                         |
| `servesId`   | array\&lt;string> | No       | Optional list of objectIds of entities this equipment serves. Only valid in Named-object mode. Only valid in Named-object mode — must not appear in Associate mode. |

### Associate Mode

* `associateId` is **required**.
* `objectName`, `objectId`, and `servesId` must **not** be present.

Incompatible with `EquipmentNamedObjectMode` — validators enforce this
via the parent `oneOf`.

| Name          | Type   | Required | Description                          |
| ------------- | ------ | -------- | ------------------------------------ |
| `associateId` | string | Yes      | Identifier of the associated entity. |

***

## Damper Available Metadata

### Payload

Optional fields common to all generic equipment metadata, regardless of identifier mode.

### Object Mode

* `objectName` and `objectId` are **required**.
* `servesId` is **optional** in Named-object mode.
* `associateId` must **not** be present.

Incompatible with `EquipmentAssociateMode` — validators enforce this via
the parent `oneOf`.

| Name         | Type              | Required | Description                                                                                                                                                         |
| ------------ | ----------------- | -------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| `objectName` | string            | Yes      | Human-readable equipment name.                                                                                                                                      |
| `objectId`   | string            | Yes      | Stable unique identifier for the equipment.                                                                                                                         |
| `servesId`   | array\&lt;string> | No       | Optional list of objectIds of entities this equipment serves. Only valid in Named-object mode. Only valid in Named-object mode — must not appear in Associate mode. |

### Associate Mode

* `associateId` is **required**.
* `objectName`, `objectId`, and `servesId` must **not** be present.

Incompatible with `EquipmentNamedObjectMode` — validators enforce this
via the parent `oneOf`.

| Name          | Type   | Required | Description                          |
| ------------- | ------ | -------- | ------------------------------------ |
| `associateId` | string | Yes      | Identifier of the associated entity. |

***

## Sensor Available Metadata

### Payload

Optional fields common to all generic equipment metadata, regardless of identifier mode.

### Object Mode

* `objectName` and `objectId` are **required**.
* `servesId` is **optional** in Named-object mode.
* `associateId` must **not** be present.

Incompatible with `EquipmentAssociateMode` — validators enforce this via
the parent `oneOf`.

| Name         | Type              | Required | Description                                                                                                                                                         |
| ------------ | ----------------- | -------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| `objectName` | string            | Yes      | Human-readable equipment name.                                                                                                                                      |
| `objectId`   | string            | Yes      | Stable unique identifier for the equipment.                                                                                                                         |
| `servesId`   | array\&lt;string> | No       | Optional list of objectIds of entities this equipment serves. Only valid in Named-object mode. Only valid in Named-object mode — must not appear in Associate mode. |

### Associate Mode

* `associateId` is **required**.
* `objectName`, `objectId`, and `servesId` must **not** be present.

Incompatible with `EquipmentNamedObjectMode` — validators enforce this
via the parent `oneOf`.

| Name          | Type   | Required | Description                          |
| ------------- | ------ | -------- | ------------------------------------ |
| `associateId` | string | Yes      | Identifier of the associated entity. |

***

## CDU LeakDetect Metadata

### Payload

0 = No Leak, 1 = Leak. No engUnit.

### Object Mode

* `objectName` and `objectId` are **required**.
* `servesId` is **optional** in Named-object mode.
* `associateId` must **not** be present.

Incompatible with `EquipmentAssociateMode` — validators enforce this via
the parent `oneOf`.

| Name         | Type              | Required | Description                                                                                                                                                         |
| ------------ | ----------------- | -------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| `objectName` | string            | Yes      | Human-readable equipment name.                                                                                                                                      |
| `objectId`   | string            | Yes      | Stable unique identifier for the equipment.                                                                                                                         |
| `servesId`   | array\&lt;string> | No       | Optional list of objectIds of entities this equipment serves. Only valid in Named-object mode. Only valid in Named-object mode — must not appear in Associate mode. |

### Associate Mode

* `associateId` is **required**.
* `objectName`, `objectId`, and `servesId` must **not** be present.

Incompatible with `EquipmentNamedObjectMode` — validators enforce this
via the parent `oneOf`.

| Name          | Type   | Required | Description                          |
| ------------- | ------ | -------- | ------------------------------------ |
| `associateId` | string | Yes      | Identifier of the associated entity. |

***

## CoolingTower LeakDetect Metadata

### Payload

0 = No Leak, 1 = Leak. No engUnit.

### Object Mode

* `objectName` and `objectId` are **required**.
* `servesId` is **optional** in Named-object mode.
* `associateId` must **not** be present.

Incompatible with `EquipmentAssociateMode` — validators enforce this via
the parent `oneOf`.

| Name         | Type              | Required | Description                                                                                                                                                         |
| ------------ | ----------------- | -------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| `objectName` | string            | Yes      | Human-readable equipment name.                                                                                                                                      |
| `objectId`   | string            | Yes      | Stable unique identifier for the equipment.                                                                                                                         |
| `servesId`   | array\&lt;string> | No       | Optional list of objectIds of entities this equipment serves. Only valid in Named-object mode. Only valid in Named-object mode — must not appear in Associate mode. |

### Associate Mode

* `associateId` is **required**.
* `objectName`, `objectId`, and `servesId` must **not** be present.

Incompatible with `EquipmentNamedObjectMode` — validators enforce this
via the parent `oneOf`.

| Name          | Type   | Required | Description                          |
| ------------- | ------ | -------- | ------------------------------------ |
| `associateId` | string | Yes      | Identifier of the associated entity. |

***

## HX LeakDetect Metadata

### Payload

0 = No Leak, 1 = Leak. No engUnit.

### Object Mode

* `objectName` and `objectId` are **required**.
* `servesId` is **optional** in Named-object mode.
* `associateId` must **not** be present.

Incompatible with `EquipmentAssociateMode` — validators enforce this via
the parent `oneOf`.

| Name         | Type              | Required | Description                                                                                                                                                         |
| ------------ | ----------------- | -------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| `objectName` | string            | Yes      | Human-readable equipment name.                                                                                                                                      |
| `objectId`   | string            | Yes      | Stable unique identifier for the equipment.                                                                                                                         |
| `servesId`   | array\&lt;string> | No       | Optional list of objectIds of entities this equipment serves. Only valid in Named-object mode. Only valid in Named-object mode — must not appear in Associate mode. |

### Associate Mode

* `associateId` is **required**.
* `objectName`, `objectId`, and `servesId` must **not** be present.

Incompatible with `EquipmentNamedObjectMode` — validators enforce this
via the parent `oneOf`.

| Name          | Type   | Required | Description                          |
| ------------- | ------ | -------- | ------------------------------------ |
| `associateId` | string | Yes      | Identifier of the associated entity. |

***

## CRAH LeakDetect Metadata

### Payload

0 = No Leak, 1 = Leak. No engUnit.

### Object Mode

* `objectName` and `objectId` are **required**.
* `servesId` is **optional** in Named-object mode.
* `associateId` must **not** be present.

Incompatible with `EquipmentAssociateMode` — validators enforce this via
the parent `oneOf`.

| Name         | Type              | Required | Description                                                                                                                                                         |
| ------------ | ----------------- | -------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| `objectName` | string            | Yes      | Human-readable equipment name.                                                                                                                                      |
| `objectId`   | string            | Yes      | Stable unique identifier for the equipment.                                                                                                                         |
| `servesId`   | array\&lt;string> | No       | Optional list of objectIds of entities this equipment serves. Only valid in Named-object mode. Only valid in Named-object mode — must not appear in Associate mode. |

### Associate Mode

* `associateId` is **required**.
* `objectName`, `objectId`, and `servesId` must **not** be present.

Incompatible with `EquipmentNamedObjectMode` — validators enforce this
via the parent `oneOf`.

| Name          | Type   | Required | Description                          |
| ------------- | ------ | -------- | ------------------------------------ |
| `associateId` | string | Yes      | Identifier of the associated entity. |

***

## CRAC LeakDetect Metadata

### Payload

0 = No Leak, 1 = Leak. No engUnit.

### Object Mode

* `objectName` and `objectId` are **required**.
* `servesId` is **optional** in Named-object mode.
* `associateId` must **not** be present.

Incompatible with `EquipmentAssociateMode` — validators enforce this via
the parent `oneOf`.

| Name         | Type              | Required | Description                                                                                                                                                         |
| ------------ | ----------------- | -------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| `objectName` | string            | Yes      | Human-readable equipment name.                                                                                                                                      |
| `objectId`   | string            | Yes      | Stable unique identifier for the equipment.                                                                                                                         |
| `servesId`   | array\&lt;string> | No       | Optional list of objectIds of entities this equipment serves. Only valid in Named-object mode. Only valid in Named-object mode — must not appear in Associate mode. |

### Associate Mode

* `associateId` is **required**.
* `objectName`, `objectId`, and `servesId` must **not** be present.

Incompatible with `EquipmentNamedObjectMode` — validators enforce this
via the parent `oneOf`.

| Name          | Type   | Required | Description                          |
| ------------- | ------ | -------- | ------------------------------------ |
| `associateId` | string | Yes      | Identifier of the associated entity. |

***

## AHU LeakDetect Metadata

### Payload

0 = No Leak, 1 = Leak. No engUnit.

### Object Mode

* `objectName` and `objectId` are **required**.
* `servesId` is **optional** in Named-object mode.
* `associateId` must **not** be present.

Incompatible with `EquipmentAssociateMode` — validators enforce this via
the parent `oneOf`.

| Name         | Type              | Required | Description                                                                                                                                                         |
| ------------ | ----------------- | -------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| `objectName` | string            | Yes      | Human-readable equipment name.                                                                                                                                      |
| `objectId`   | string            | Yes      | Stable unique identifier for the equipment.                                                                                                                         |
| `servesId`   | array\&lt;string> | No       | Optional list of objectIds of entities this equipment serves. Only valid in Named-object mode. Only valid in Named-object mode — must not appear in Associate mode. |

### Associate Mode

* `associateId` is **required**.
* `objectName`, `objectId`, and `servesId` must **not** be present.

Incompatible with `EquipmentNamedObjectMode` — validators enforce this
via the parent `oneOf`.

| Name          | Type   | Required | Description                          |
| ------------- | ------ | -------- | ------------------------------------ |
| `associateId` | string | Yes      | Identifier of the associated entity. |

***

## Chiller LeakDetect Metadata

### Payload

0 = No Leak, 1 = Leak. No engUnit.

### Object Mode

* `objectName` and `objectId` are **required**.
* `servesId` is **optional** in Named-object mode.
* `associateId` must **not** be present.

Incompatible with `EquipmentAssociateMode` — validators enforce this via
the parent `oneOf`.

| Name         | Type              | Required | Description                                                                                                                                                         |
| ------------ | ----------------- | -------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| `objectName` | string            | Yes      | Human-readable equipment name.                                                                                                                                      |
| `objectId`   | string            | Yes      | Stable unique identifier for the equipment.                                                                                                                         |
| `servesId`   | array\&lt;string> | No       | Optional list of objectIds of entities this equipment serves. Only valid in Named-object mode. Only valid in Named-object mode — must not appear in Associate mode. |

### Associate Mode

* `associateId` is **required**.
* `objectName`, `objectId`, and `servesId` must **not** be present.

Incompatible with `EquipmentNamedObjectMode` — validators enforce this
via the parent `oneOf`.

| Name          | Type   | Required | Description                          |
| ------------- | ------ | -------- | ------------------------------------ |
| `associateId` | string | Yes      | Identifier of the associated entity. |

***

## Tank LeakDetect Metadata

### Payload

0 = No Leak, 1 = Leak. No engUnit.

### Object Mode

* `objectName` and `objectId` are **required**.
* `servesId` is **optional** in Named-object mode.
* `associateId` must **not** be present.

Incompatible with `EquipmentAssociateMode` — validators enforce this via
the parent `oneOf`.

| Name         | Type              | Required | Description                                                                                                                                                         |
| ------------ | ----------------- | -------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| `objectName` | string            | Yes      | Human-readable equipment name.                                                                                                                                      |
| `objectId`   | string            | Yes      | Stable unique identifier for the equipment.                                                                                                                         |
| `servesId`   | array\&lt;string> | No       | Optional list of objectIds of entities this equipment serves. Only valid in Named-object mode. Only valid in Named-object mode — must not appear in Associate mode. |

### Associate Mode

* `associateId` is **required**.
* `objectName`, `objectId`, and `servesId` must **not** be present.

Incompatible with `EquipmentNamedObjectMode` — validators enforce this
via the parent `oneOf`.

| Name          | Type   | Required | Description                          |
| ------------- | ------ | -------- | ------------------------------------ |
| `associateId` | string | Yes      | Identifier of the associated entity. |

***

## Sensor LeakDetect Metadata

### Payload

0 = No Leak, 1 = Leak. No engUnit.

### Object Mode

* `objectName` and `objectId` are **required**.
* `servesId` is **optional** in Named-object mode.
* `associateId` must **not** be present.

Incompatible with `EquipmentAssociateMode` — validators enforce this via
the parent `oneOf`.

| Name         | Type              | Required | Description                                                                                                                                                         |
| ------------ | ----------------- | -------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| `objectName` | string            | Yes      | Human-readable equipment name.                                                                                                                                      |
| `objectId`   | string            | Yes      | Stable unique identifier for the equipment.                                                                                                                         |
| `servesId`   | array\&lt;string> | No       | Optional list of objectIds of entities this equipment serves. Only valid in Named-object mode. Only valid in Named-object mode — must not appear in Associate mode. |

### Associate Mode

* `associateId` is **required**.
* `objectName`, `objectId`, and `servesId` must **not** be present.

Incompatible with `EquipmentNamedObjectMode` — validators enforce this
via the parent `oneOf`.

| Name          | Type   | Required | Description                          |
| ------------- | ------ | -------- | ------------------------------------ |
| `associateId` | string | Yes      | Identifier of the associated entity. |

***

## GenericObject LeakDetect Metadata

### Payload

0 = No Leak, 1 = Leak. No engUnit.

### Object Mode

* `objectName` and `objectId` are **required**.
* `servesId` is **optional** in Named-object mode.
* `associateId` must **not** be present.

Incompatible with `EquipmentAssociateMode` — validators enforce this via
the parent `oneOf`.

| Name         | Type              | Required | Description                                                                                                                                                         |
| ------------ | ----------------- | -------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| `objectName` | string            | Yes      | Human-readable equipment name.                                                                                                                                      |
| `objectId`   | string            | Yes      | Stable unique identifier for the equipment.                                                                                                                         |
| `servesId`   | array\&lt;string> | No       | Optional list of objectIds of entities this equipment serves. Only valid in Named-object mode. Only valid in Named-object mode — must not appear in Associate mode. |

### Associate Mode

* `associateId` is **required**.
* `objectName`, `objectId`, and `servesId` must **not** be present.

Incompatible with `EquipmentNamedObjectMode` — validators enforce this
via the parent `oneOf`.

| Name          | Type   | Required | Description                          |
| ------------- | ------ | -------- | ------------------------------------ |
| `associateId` | string | Yes      | Identifier of the associated entity. |

***

## CDU AirRelativeHumidity Metadata

### Payload

Measurement fields for AirRelativeHumidity. Typical engUnit: %RH. The identifier (named-object XOR associate) and measurement (engUnit XOR stateText) constraints are independent and enforced by EquipmentMeasurementModeBase.

### Requires a non-empty engUnit string (mutually exclusive with stateText).

| Name      | Type   | Required | Description                           |
| --------- | ------ | -------- | ------------------------------------- |
| `engUnit` | string | Yes      | Engineering unit for the measurement. |

### Required for state/status/alarm points that carry no engineering unit.

| Name        | Type                            | Required | Description                                                                                                                                         |
| ----------- | ------------------------------- | -------- | --------------------------------------------------------------------------------------------------------------------------------------------------- |
| `stateText` | array\&lt;map\&lt;string, any>> | Yes      | State label mapping. Each entry maps a numeric state value to its human-readable label (e.g., `[{value: 0, text: "Off"}, {value: 1, text: "On"}]`). |

***

## CoolingTower AirRelativeHumidity Metadata

### Payload

Measurement fields for AirRelativeHumidity. Typical engUnit: %RH. The identifier (named-object XOR associate) and measurement (engUnit XOR stateText) constraints are independent and enforced by EquipmentMeasurementModeBase.

### Requires a non-empty engUnit string (mutually exclusive with stateText).

| Name      | Type   | Required | Description                           |
| --------- | ------ | -------- | ------------------------------------- |
| `engUnit` | string | Yes      | Engineering unit for the measurement. |

### Required for state/status/alarm points that carry no engineering unit.

| Name        | Type                            | Required | Description                                                                                                                                         |
| ----------- | ------------------------------- | -------- | --------------------------------------------------------------------------------------------------------------------------------------------------- |
| `stateText` | array\&lt;map\&lt;string, any>> | Yes      | State label mapping. Each entry maps a numeric state value to its human-readable label (e.g., `[{value: 0, text: "Off"}, {value: 1, text: "On"}]`). |

***

## HX AirRelativeHumidity Metadata

### Payload

Measurement fields for AirRelativeHumidity. Typical engUnit: %RH. The identifier (named-object XOR associate) and measurement (engUnit XOR stateText) constraints are independent and enforced by EquipmentMeasurementModeBase.

### Requires a non-empty engUnit string (mutually exclusive with stateText).

| Name      | Type   | Required | Description                           |
| --------- | ------ | -------- | ------------------------------------- |
| `engUnit` | string | Yes      | Engineering unit for the measurement. |

### Required for state/status/alarm points that carry no engineering unit.

| Name        | Type                            | Required | Description                                                                                                                                         |
| ----------- | ------------------------------- | -------- | --------------------------------------------------------------------------------------------------------------------------------------------------- |
| `stateText` | array\&lt;map\&lt;string, any>> | Yes      | State label mapping. Each entry maps a numeric state value to its human-readable label (e.g., `[{value: 0, text: "Off"}, {value: 1, text: "On"}]`). |

***

## CRAH AirRelativeHumidity Metadata

### Payload

Measurement fields for AirRelativeHumidity. Typical engUnit: %RH. The identifier (named-object XOR associate) and measurement (engUnit XOR stateText) constraints are independent and enforced by EquipmentMeasurementModeBase.

### Requires a non-empty engUnit string (mutually exclusive with stateText).

| Name      | Type   | Required | Description                           |
| --------- | ------ | -------- | ------------------------------------- |
| `engUnit` | string | Yes      | Engineering unit for the measurement. |

### Required for state/status/alarm points that carry no engineering unit.

| Name        | Type                            | Required | Description                                                                                                                                         |
| ----------- | ------------------------------- | -------- | --------------------------------------------------------------------------------------------------------------------------------------------------- |
| `stateText` | array\&lt;map\&lt;string, any>> | Yes      | State label mapping. Each entry maps a numeric state value to its human-readable label (e.g., `[{value: 0, text: "Off"}, {value: 1, text: "On"}]`). |

***

## CRAC AirRelativeHumidity Metadata

### Payload

Measurement fields for AirRelativeHumidity. Typical engUnit: %RH. The identifier (named-object XOR associate) and measurement (engUnit XOR stateText) constraints are independent and enforced by EquipmentMeasurementModeBase.

### Requires a non-empty engUnit string (mutually exclusive with stateText).

| Name      | Type   | Required | Description                           |
| --------- | ------ | -------- | ------------------------------------- |
| `engUnit` | string | Yes      | Engineering unit for the measurement. |

### Required for state/status/alarm points that carry no engineering unit.

| Name        | Type                            | Required | Description                                                                                                                                         |
| ----------- | ------------------------------- | -------- | --------------------------------------------------------------------------------------------------------------------------------------------------- |
| `stateText` | array\&lt;map\&lt;string, any>> | Yes      | State label mapping. Each entry maps a numeric state value to its human-readable label (e.g., `[{value: 0, text: "Off"}, {value: 1, text: "On"}]`). |

***

## AHU AirRelativeHumidity Metadata

### Payload

Measurement fields for AirRelativeHumidity. Typical engUnit: %RH. The identifier (named-object XOR associate) and measurement (engUnit XOR stateText) constraints are independent and enforced by EquipmentMeasurementModeBase.

### Requires a non-empty engUnit string (mutually exclusive with stateText).

| Name      | Type   | Required | Description                           |
| --------- | ------ | -------- | ------------------------------------- |
| `engUnit` | string | Yes      | Engineering unit for the measurement. |

### Required for state/status/alarm points that carry no engineering unit.

| Name        | Type                            | Required | Description                                                                                                                                         |
| ----------- | ------------------------------- | -------- | --------------------------------------------------------------------------------------------------------------------------------------------------- |
| `stateText` | array\&lt;map\&lt;string, any>> | Yes      | State label mapping. Each entry maps a numeric state value to its human-readable label (e.g., `[{value: 0, text: "Off"}, {value: 1, text: "On"}]`). |

***

## Chiller AirRelativeHumidity Metadata

### Payload

Measurement fields for AirRelativeHumidity. Typical engUnit: %RH. The identifier (named-object XOR associate) and measurement (engUnit XOR stateText) constraints are independent and enforced by EquipmentMeasurementModeBase.

### Requires a non-empty engUnit string (mutually exclusive with stateText).

| Name      | Type   | Required | Description                           |
| --------- | ------ | -------- | ------------------------------------- |
| `engUnit` | string | Yes      | Engineering unit for the measurement. |

### Required for state/status/alarm points that carry no engineering unit.

| Name        | Type                            | Required | Description                                                                                                                                         |
| ----------- | ------------------------------- | -------- | --------------------------------------------------------------------------------------------------------------------------------------------------- |
| `stateText` | array\&lt;map\&lt;string, any>> | Yes      | State label mapping. Each entry maps a numeric state value to its human-readable label (e.g., `[{value: 0, text: "Off"}, {value: 1, text: "On"}]`). |

***

## Tank AirRelativeHumidity Metadata

### Payload

Measurement fields for AirRelativeHumidity. Typical engUnit: %RH. The identifier (named-object XOR associate) and measurement (engUnit XOR stateText) constraints are independent and enforced by EquipmentMeasurementModeBase.

### Requires a non-empty engUnit string (mutually exclusive with stateText).

| Name      | Type   | Required | Description                           |
| --------- | ------ | -------- | ------------------------------------- |
| `engUnit` | string | Yes      | Engineering unit for the measurement. |

### Required for state/status/alarm points that carry no engineering unit.

| Name        | Type                            | Required | Description                                                                                                                                         |
| ----------- | ------------------------------- | -------- | --------------------------------------------------------------------------------------------------------------------------------------------------- |
| `stateText` | array\&lt;map\&lt;string, any>> | Yes      | State label mapping. Each entry maps a numeric state value to its human-readable label (e.g., `[{value: 0, text: "Off"}, {value: 1, text: "On"}]`). |

***

## Sensor AirRelativeHumidity Metadata

### Payload

Measurement fields for AirRelativeHumidity. Typical engUnit: %RH. The identifier (named-object XOR associate) and measurement (engUnit XOR stateText) constraints are independent and enforced by EquipmentMeasurementModeBase.

### Requires a non-empty engUnit string (mutually exclusive with stateText).

| Name      | Type   | Required | Description                           |
| --------- | ------ | -------- | ------------------------------------- |
| `engUnit` | string | Yes      | Engineering unit for the measurement. |

### Required for state/status/alarm points that carry no engineering unit.

| Name        | Type                            | Required | Description                                                                                                                                         |
| ----------- | ------------------------------- | -------- | --------------------------------------------------------------------------------------------------------------------------------------------------- |
| `stateText` | array\&lt;map\&lt;string, any>> | Yes      | State label mapping. Each entry maps a numeric state value to its human-readable label (e.g., `[{value: 0, text: "Off"}, {value: 1, text: "On"}]`). |

***

## GenericObject AirRelativeHumidity Metadata

### Payload

Measurement fields for AirRelativeHumidity. Typical engUnit: %RH. The identifier (named-object XOR associate) and measurement (engUnit XOR stateText) constraints are independent and enforced by EquipmentMeasurementModeBase.

### Requires a non-empty engUnit string (mutually exclusive with stateText).

| Name      | Type   | Required | Description                           |
| --------- | ------ | -------- | ------------------------------------- |
| `engUnit` | string | Yes      | Engineering unit for the measurement. |

### Required for state/status/alarm points that carry no engineering unit.

| Name        | Type                            | Required | Description                                                                                                                                         |
| ----------- | ------------------------------- | -------- | --------------------------------------------------------------------------------------------------------------------------------------------------- |
| `stateText` | array\&lt;map\&lt;string, any>> | Yes      | State label mapping. Each entry maps a numeric state value to its human-readable label (e.g., `[{value: 0, text: "Off"}, {value: 1, text: "On"}]`). |

***

## Rack RackLiquidDifferentialPressureSp Metadata

### Payload

| Name               | Type    | Required | Description                                                                                       |
| ------------------ | ------- | -------- | ------------------------------------------------------------------------------------------------- |
| `objectType`       | string  | Yes      | Values: `Rack`                                                                                    |
| `pointType`        | string  | Yes      | Values: `RackLiquidDifferentialPressureSp`                                                        |
| `rackLocationName` | string  | Yes      | Human-readable rack name as defined by the BMS.                                                   |
| `rackLocationId`   | string  | Yes      | Stable unique identifier for the rack.                                                            |
| `engUnit`          | string  | Yes      | Values: `kPa`                                                                                     |
| `isSetpoint`       | boolean | No       | Optional inclusion. Indicates this point is a target value written to control equipment behavior. |

***

## CDU LiquidTemperature Metadata

### Payload

Optional fields common to all generic equipment metadata, regardless of identifier mode.

### Object Mode

* `objectName` and `objectId` are **required**.
* `servesId` is **optional** in Named-object mode.
* `associateId` must **not** be present.

Incompatible with `EquipmentAssociateMode` — validators enforce this via
the parent `oneOf`.

| Name         | Type              | Required | Description                                                                                                                                                         |
| ------------ | ----------------- | -------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| `objectName` | string            | Yes      | Human-readable equipment name.                                                                                                                                      |
| `objectId`   | string            | Yes      | Stable unique identifier for the equipment.                                                                                                                         |
| `servesId`   | array\&lt;string> | No       | Optional list of objectIds of entities this equipment serves. Only valid in Named-object mode. Only valid in Named-object mode — must not appear in Associate mode. |

### Associate Mode

* `associateId` is **required**.
* `objectName`, `objectId`, and `servesId` must **not** be present.

Incompatible with `EquipmentNamedObjectMode` — validators enforce this
via the parent `oneOf`.

| Name          | Type   | Required | Description                          |
| ------------- | ------ | -------- | ------------------------------------ |
| `associateId` | string | Yes      | Identifier of the associated entity. |

***

## CDU LiquidDifferentialPressure Metadata

### Payload

Measurement fields for LiquidDifferentialPressure. Typical engUnit: kPa. The identifier (named-object XOR associate) and measurement (engUnit XOR stateText) constraints are independent and enforced by EquipmentMeasurementModeBase.

### Requires a non-empty engUnit string (mutually exclusive with stateText).

| Name      | Type   | Required | Description                           |
| --------- | ------ | -------- | ------------------------------------- |
| `engUnit` | string | Yes      | Engineering unit for the measurement. |

### Required for state/status/alarm points that carry no engineering unit.

| Name        | Type                            | Required | Description                                                                                                                                         |
| ----------- | ------------------------------- | -------- | --------------------------------------------------------------------------------------------------------------------------------------------------- |
| `stateText` | array\&lt;map\&lt;string, any>> | Yes      | State label mapping. Each entry maps a numeric state value to its human-readable label (e.g., `[{value: 0, text: "Off"}, {value: 1, text: "On"}]`). |

***

## CDU LiquidFlow Metadata

### Payload

Measurement fields for LiquidFlow. Typical engUnit: LPM. The identifier (named-object XOR associate) and measurement (engUnit XOR stateText) constraints are independent and enforced by EquipmentMeasurementModeBase.

### Requires a non-empty engUnit string (mutually exclusive with stateText).

| Name      | Type   | Required | Description                           |
| --------- | ------ | -------- | ------------------------------------- |
| `engUnit` | string | Yes      | Engineering unit for the measurement. |

### Required for state/status/alarm points that carry no engineering unit.

| Name        | Type                            | Required | Description                                                                                                                                         |
| ----------- | ------------------------------- | -------- | --------------------------------------------------------------------------------------------------------------------------------------------------- |
| `stateText` | array\&lt;map\&lt;string, any>> | Yes      | State label mapping. Each entry maps a numeric state value to its human-readable label (e.g., `[{value: 0, text: "Off"}, {value: 1, text: "On"}]`). |

***

## CDU LiquidPressure Metadata

### Payload

Measurement fields for LiquidPressure. Typical engUnit: kPa. The identifier (named-object XOR associate) and measurement (engUnit XOR stateText) constraints are independent and enforced by EquipmentMeasurementModeBase.

### Requires a non-empty engUnit string (mutually exclusive with stateText).

| Name      | Type   | Required | Description                           |
| --------- | ------ | -------- | ------------------------------------- |
| `engUnit` | string | Yes      | Engineering unit for the measurement. |

### Required for state/status/alarm points that carry no engineering unit.

| Name        | Type                            | Required | Description                                                                                                                                         |
| ----------- | ------------------------------- | -------- | --------------------------------------------------------------------------------------------------------------------------------------------------- |
| `stateText` | array\&lt;map\&lt;string, any>> | Yes      | State label mapping. Each entry maps a numeric state value to its human-readable label (e.g., `[{value: 0, text: "Off"}, {value: 1, text: "On"}]`). |

***

## CDU Status Metadata

### Payload

Optional fields common to all generic equipment metadata, regardless of identifier mode.

### Object Mode

* `objectName` and `objectId` are **required**.
* `servesId` is **optional** in Named-object mode.
* `associateId` must **not** be present.

Incompatible with `EquipmentAssociateMode` — validators enforce this via
the parent `oneOf`.

| Name         | Type              | Required | Description                                                                                                                                                         |
| ------------ | ----------------- | -------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| `objectName` | string            | Yes      | Human-readable equipment name.                                                                                                                                      |
| `objectId`   | string            | Yes      | Stable unique identifier for the equipment.                                                                                                                         |
| `servesId`   | array\&lt;string> | No       | Optional list of objectIds of entities this equipment serves. Only valid in Named-object mode. Only valid in Named-object mode — must not appear in Associate mode. |

### Associate Mode

* `associateId` is **required**.
* `objectName`, `objectId`, and `servesId` must **not** be present.

Incompatible with `EquipmentNamedObjectMode` — validators enforce this
via the parent `oneOf`.

| Name          | Type   | Required | Description                          |
| ------------- | ------ | -------- | ------------------------------------ |
| `associateId` | string | Yes      | Identifier of the associated entity. |

***

## CDU Available Metadata

### Payload

Optional fields common to all generic equipment metadata, regardless of identifier mode.

### Object Mode

* `objectName` and `objectId` are **required**.
* `servesId` is **optional** in Named-object mode.
* `associateId` must **not** be present.

Incompatible with `EquipmentAssociateMode` — validators enforce this via
the parent `oneOf`.

| Name         | Type              | Required | Description                                                                                                                                                         |
| ------------ | ----------------- | -------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| `objectName` | string            | Yes      | Human-readable equipment name.                                                                                                                                      |
| `objectId`   | string            | Yes      | Stable unique identifier for the equipment.                                                                                                                         |
| `servesId`   | array\&lt;string> | No       | Optional list of objectIds of entities this equipment serves. Only valid in Named-object mode. Only valid in Named-object mode — must not appear in Associate mode. |

### Associate Mode

* `associateId` is **required**.
* `objectName`, `objectId`, and `servesId` must **not** be present.

Incompatible with `EquipmentNamedObjectMode` — validators enforce this
via the parent `oneOf`.

| Name          | Type   | Required | Description                          |
| ------------- | ------ | -------- | ------------------------------------ |
| `associateId` | string | Yes      | Identifier of the associated entity. |

***

## CDU ValvePosition Metadata

### Payload

Measurement fields for ValvePosition. Typical engUnit: %. The identifier (named-object XOR associate) and measurement (engUnit XOR stateText) constraints are independent and enforced by EquipmentMeasurementModeBase.

### Requires a non-empty engUnit string (mutually exclusive with stateText).

| Name      | Type   | Required | Description                           |
| --------- | ------ | -------- | ------------------------------------- |
| `engUnit` | string | Yes      | Engineering unit for the measurement. |

### Required for state/status/alarm points that carry no engineering unit.

| Name        | Type                            | Required | Description                                                                                                                                         |
| ----------- | ------------------------------- | -------- | --------------------------------------------------------------------------------------------------------------------------------------------------- |
| `stateText` | array\&lt;map\&lt;string, any>> | Yes      | State label mapping. Each entry maps a numeric state value to its human-readable label (e.g., `[{value: 0, text: "Off"}, {value: 1, text: "On"}]`). |

***

## CDU PumpSpeed Metadata

### Payload

Measurement fields for PumpSpeed. Typical engUnit: RPM. The identifier (named-object XOR associate) and measurement (engUnit XOR stateText) constraints are independent and enforced by EquipmentMeasurementModeBase.

### Requires a non-empty engUnit string (mutually exclusive with stateText).

| Name      | Type   | Required | Description                           |
| --------- | ------ | -------- | ------------------------------------- |
| `engUnit` | string | Yes      | Engineering unit for the measurement. |

### Required for state/status/alarm points that carry no engineering unit.

| Name        | Type                            | Required | Description                                                                                                                                         |
| ----------- | ------------------------------- | -------- | --------------------------------------------------------------------------------------------------------------------------------------------------- |
| `stateText` | array\&lt;map\&lt;string, any>> | Yes      | State label mapping. Each entry maps a numeric state value to its human-readable label (e.g., `[{value: 0, text: "Off"}, {value: 1, text: "On"}]`). |

***

## CDU FanSpeed Metadata

### Payload

Measurement fields for FanSpeed. Typical engUnit: RPM. The identifier (named-object XOR associate) and measurement (engUnit XOR stateText) constraints are independent and enforced by EquipmentMeasurementModeBase.

### Requires a non-empty engUnit string (mutually exclusive with stateText).

| Name      | Type   | Required | Description                           |
| --------- | ------ | -------- | ------------------------------------- |
| `engUnit` | string | Yes      | Engineering unit for the measurement. |

### Required for state/status/alarm points that carry no engineering unit.

| Name        | Type                            | Required | Description                                                                                                                                         |
| ----------- | ------------------------------- | -------- | --------------------------------------------------------------------------------------------------------------------------------------------------- |
| `stateText` | array\&lt;map\&lt;string, any>> | Yes      | State label mapping. Each entry maps a numeric state value to its human-readable label (e.g., `[{value: 0, text: "Off"}, {value: 1, text: "On"}]`). |

***

## CDU DamperPosition Metadata

### Payload

Measurement fields for DamperPosition. Typical engUnit: %. The identifier (named-object XOR associate) and measurement (engUnit XOR stateText) constraints are independent and enforced by EquipmentMeasurementModeBase.

### Requires a non-empty engUnit string (mutually exclusive with stateText).

| Name      | Type   | Required | Description                           |
| --------- | ------ | -------- | ------------------------------------- |
| `engUnit` | string | Yes      | Engineering unit for the measurement. |

### Required for state/status/alarm points that carry no engineering unit.

| Name        | Type                            | Required | Description                                                                                                                                         |
| ----------- | ------------------------------- | -------- | --------------------------------------------------------------------------------------------------------------------------------------------------- |
| `stateText` | array\&lt;map\&lt;string, any>> | Yes      | State label mapping. Each entry maps a numeric state value to its human-readable label (e.g., `[{value: 0, text: "Off"}, {value: 1, text: "On"}]`). |

***

## CDU AirTemperature Metadata

### Payload

Optional fields common to all generic equipment metadata, regardless of identifier mode.

### Object Mode

* `objectName` and `objectId` are **required**.
* `servesId` is **optional** in Named-object mode.
* `associateId` must **not** be present.

Incompatible with `EquipmentAssociateMode` — validators enforce this via
the parent `oneOf`.

| Name         | Type              | Required | Description                                                                                                                                                         |
| ------------ | ----------------- | -------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| `objectName` | string            | Yes      | Human-readable equipment name.                                                                                                                                      |
| `objectId`   | string            | Yes      | Stable unique identifier for the equipment.                                                                                                                         |
| `servesId`   | array\&lt;string> | No       | Optional list of objectIds of entities this equipment serves. Only valid in Named-object mode. Only valid in Named-object mode — must not appear in Associate mode. |

### Associate Mode

* `associateId` is **required**.
* `objectName`, `objectId`, and `servesId` must **not** be present.

Incompatible with `EquipmentNamedObjectMode` — validators enforce this
via the parent `oneOf`.

| Name          | Type   | Required | Description                          |
| ------------- | ------ | -------- | ------------------------------------ |
| `associateId` | string | Yes      | Identifier of the associated entity. |

***

## CDU AirDifferentialPressure Metadata

### Payload

Measurement fields for AirDifferentialPressure. Typical engUnit: Pa. The identifier (named-object XOR associate) and measurement (engUnit XOR stateText) constraints are independent and enforced by EquipmentMeasurementModeBase.

### Requires a non-empty engUnit string (mutually exclusive with stateText).

| Name      | Type   | Required | Description                           |
| --------- | ------ | -------- | ------------------------------------- |
| `engUnit` | string | Yes      | Engineering unit for the measurement. |

### Required for state/status/alarm points that carry no engineering unit.

| Name        | Type                            | Required | Description                                                                                                                                         |
| ----------- | ------------------------------- | -------- | --------------------------------------------------------------------------------------------------------------------------------------------------- |
| `stateText` | array\&lt;map\&lt;string, any>> | Yes      | State label mapping. Each entry maps a numeric state value to its human-readable label (e.g., `[{value: 0, text: "Off"}, {value: 1, text: "On"}]`). |

***

## CDU AirFlow Metadata

### Payload

Measurement fields for AirFlow. Typical engUnit: CFM. The identifier (named-object XOR associate) and measurement (engUnit XOR stateText) constraints are independent and enforced by EquipmentMeasurementModeBase.

### Requires a non-empty engUnit string (mutually exclusive with stateText).

| Name      | Type   | Required | Description                           |
| --------- | ------ | -------- | ------------------------------------- |
| `engUnit` | string | Yes      | Engineering unit for the measurement. |

### Required for state/status/alarm points that carry no engineering unit.

| Name        | Type                            | Required | Description                                                                                                                                         |
| ----------- | ------------------------------- | -------- | --------------------------------------------------------------------------------------------------------------------------------------------------- |
| `stateText` | array\&lt;map\&lt;string, any>> | Yes      | State label mapping. Each entry maps a numeric state value to its human-readable label (e.g., `[{value: 0, text: "Off"}, {value: 1, text: "On"}]`). |

***

## CDU AirPressure Metadata

### Payload

Measurement fields for AirPressure. Typical engUnit: Pa. The identifier (named-object XOR associate) and measurement (engUnit XOR stateText) constraints are independent and enforced by EquipmentMeasurementModeBase.

### Requires a non-empty engUnit string (mutually exclusive with stateText).

| Name      | Type   | Required | Description                           |
| --------- | ------ | -------- | ------------------------------------- |
| `engUnit` | string | Yes      | Engineering unit for the measurement. |

### Required for state/status/alarm points that carry no engineering unit.

| Name        | Type                            | Required | Description                                                                                                                                         |
| ----------- | ------------------------------- | -------- | --------------------------------------------------------------------------------------------------------------------------------------------------- |
| `stateText` | array\&lt;map\&lt;string, any>> | Yes      | State label mapping. Each entry maps a numeric state value to its human-readable label (e.g., `[{value: 0, text: "Off"}, {value: 1, text: "On"}]`). |

***

## CoolingTower LiquidTemperature Metadata

### Payload

Optional fields common to all generic equipment metadata, regardless of identifier mode.

### Object Mode

* `objectName` and `objectId` are **required**.
* `servesId` is **optional** in Named-object mode.
* `associateId` must **not** be present.

Incompatible with `EquipmentAssociateMode` — validators enforce this via
the parent `oneOf`.

| Name         | Type              | Required | Description                                                                                                                                                         |
| ------------ | ----------------- | -------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| `objectName` | string            | Yes      | Human-readable equipment name.                                                                                                                                      |
| `objectId`   | string            | Yes      | Stable unique identifier for the equipment.                                                                                                                         |
| `servesId`   | array\&lt;string> | No       | Optional list of objectIds of entities this equipment serves. Only valid in Named-object mode. Only valid in Named-object mode — must not appear in Associate mode. |

### Associate Mode

* `associateId` is **required**.
* `objectName`, `objectId`, and `servesId` must **not** be present.

Incompatible with `EquipmentNamedObjectMode` — validators enforce this
via the parent `oneOf`.

| Name          | Type   | Required | Description                          |
| ------------- | ------ | -------- | ------------------------------------ |
| `associateId` | string | Yes      | Identifier of the associated entity. |

***

## CoolingTower LiquidDifferentialPressure Metadata

### Payload

Measurement fields for LiquidDifferentialPressure. Typical engUnit: kPa. The identifier (named-object XOR associate) and measurement (engUnit XOR stateText) constraints are independent and enforced by EquipmentMeasurementModeBase.

### Requires a non-empty engUnit string (mutually exclusive with stateText).

| Name      | Type   | Required | Description                           |
| --------- | ------ | -------- | ------------------------------------- |
| `engUnit` | string | Yes      | Engineering unit for the measurement. |

### Required for state/status/alarm points that carry no engineering unit.

| Name        | Type                            | Required | Description                                                                                                                                         |
| ----------- | ------------------------------- | -------- | --------------------------------------------------------------------------------------------------------------------------------------------------- |
| `stateText` | array\&lt;map\&lt;string, any>> | Yes      | State label mapping. Each entry maps a numeric state value to its human-readable label (e.g., `[{value: 0, text: "Off"}, {value: 1, text: "On"}]`). |

***

## CoolingTower LiquidFlow Metadata

### Payload

Measurement fields for LiquidFlow. Typical engUnit: LPM. The identifier (named-object XOR associate) and measurement (engUnit XOR stateText) constraints are independent and enforced by EquipmentMeasurementModeBase.

### Requires a non-empty engUnit string (mutually exclusive with stateText).

| Name      | Type   | Required | Description                           |
| --------- | ------ | -------- | ------------------------------------- |
| `engUnit` | string | Yes      | Engineering unit for the measurement. |

### Required for state/status/alarm points that carry no engineering unit.

| Name        | Type                            | Required | Description                                                                                                                                         |
| ----------- | ------------------------------- | -------- | --------------------------------------------------------------------------------------------------------------------------------------------------- |
| `stateText` | array\&lt;map\&lt;string, any>> | Yes      | State label mapping. Each entry maps a numeric state value to its human-readable label (e.g., `[{value: 0, text: "Off"}, {value: 1, text: "On"}]`). |

***

## CoolingTower LiquidPressure Metadata

### Payload

Measurement fields for LiquidPressure. Typical engUnit: kPa. The identifier (named-object XOR associate) and measurement (engUnit XOR stateText) constraints are independent and enforced by EquipmentMeasurementModeBase.

### Requires a non-empty engUnit string (mutually exclusive with stateText).

| Name      | Type   | Required | Description                           |
| --------- | ------ | -------- | ------------------------------------- |
| `engUnit` | string | Yes      | Engineering unit for the measurement. |

### Required for state/status/alarm points that carry no engineering unit.

| Name        | Type                            | Required | Description                                                                                                                                         |
| ----------- | ------------------------------- | -------- | --------------------------------------------------------------------------------------------------------------------------------------------------- |
| `stateText` | array\&lt;map\&lt;string, any>> | Yes      | State label mapping. Each entry maps a numeric state value to its human-readable label (e.g., `[{value: 0, text: "Off"}, {value: 1, text: "On"}]`). |

***

## CoolingTower Status Metadata

### Payload

Optional fields common to all generic equipment metadata, regardless of identifier mode.

### Object Mode

* `objectName` and `objectId` are **required**.
* `servesId` is **optional** in Named-object mode.
* `associateId` must **not** be present.

Incompatible with `EquipmentAssociateMode` — validators enforce this via
the parent `oneOf`.

| Name         | Type              | Required | Description                                                                                                                                                         |
| ------------ | ----------------- | -------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| `objectName` | string            | Yes      | Human-readable equipment name.                                                                                                                                      |
| `objectId`   | string            | Yes      | Stable unique identifier for the equipment.                                                                                                                         |
| `servesId`   | array\&lt;string> | No       | Optional list of objectIds of entities this equipment serves. Only valid in Named-object mode. Only valid in Named-object mode — must not appear in Associate mode. |

### Associate Mode

* `associateId` is **required**.
* `objectName`, `objectId`, and `servesId` must **not** be present.

Incompatible with `EquipmentNamedObjectMode` — validators enforce this
via the parent `oneOf`.

| Name          | Type   | Required | Description                          |
| ------------- | ------ | -------- | ------------------------------------ |
| `associateId` | string | Yes      | Identifier of the associated entity. |

***

## CoolingTower Available Metadata

### Payload

Optional fields common to all generic equipment metadata, regardless of identifier mode.

### Object Mode

* `objectName` and `objectId` are **required**.
* `servesId` is **optional** in Named-object mode.
* `associateId` must **not** be present.

Incompatible with `EquipmentAssociateMode` — validators enforce this via
the parent `oneOf`.

| Name         | Type              | Required | Description                                                                                                                                                         |
| ------------ | ----------------- | -------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| `objectName` | string            | Yes      | Human-readable equipment name.                                                                                                                                      |
| `objectId`   | string            | Yes      | Stable unique identifier for the equipment.                                                                                                                         |
| `servesId`   | array\&lt;string> | No       | Optional list of objectIds of entities this equipment serves. Only valid in Named-object mode. Only valid in Named-object mode — must not appear in Associate mode. |

### Associate Mode

* `associateId` is **required**.
* `objectName`, `objectId`, and `servesId` must **not** be present.

Incompatible with `EquipmentNamedObjectMode` — validators enforce this
via the parent `oneOf`.

| Name          | Type   | Required | Description                          |
| ------------- | ------ | -------- | ------------------------------------ |
| `associateId` | string | Yes      | Identifier of the associated entity. |

***

## CoolingTower ValvePosition Metadata

### Payload

Measurement fields for ValvePosition. Typical engUnit: %. The identifier (named-object XOR associate) and measurement (engUnit XOR stateText) constraints are independent and enforced by EquipmentMeasurementModeBase.

### Requires a non-empty engUnit string (mutually exclusive with stateText).

| Name      | Type   | Required | Description                           |
| --------- | ------ | -------- | ------------------------------------- |
| `engUnit` | string | Yes      | Engineering unit for the measurement. |

### Required for state/status/alarm points that carry no engineering unit.

| Name        | Type                            | Required | Description                                                                                                                                         |
| ----------- | ------------------------------- | -------- | --------------------------------------------------------------------------------------------------------------------------------------------------- |
| `stateText` | array\&lt;map\&lt;string, any>> | Yes      | State label mapping. Each entry maps a numeric state value to its human-readable label (e.g., `[{value: 0, text: "Off"}, {value: 1, text: "On"}]`). |

***

## CoolingTower PumpSpeed Metadata

### Payload

Measurement fields for PumpSpeed. Typical engUnit: RPM. The identifier (named-object XOR associate) and measurement (engUnit XOR stateText) constraints are independent and enforced by EquipmentMeasurementModeBase.

### Requires a non-empty engUnit string (mutually exclusive with stateText).

| Name      | Type   | Required | Description                           |
| --------- | ------ | -------- | ------------------------------------- |
| `engUnit` | string | Yes      | Engineering unit for the measurement. |

### Required for state/status/alarm points that carry no engineering unit.

| Name        | Type                            | Required | Description                                                                                                                                         |
| ----------- | ------------------------------- | -------- | --------------------------------------------------------------------------------------------------------------------------------------------------- |
| `stateText` | array\&lt;map\&lt;string, any>> | Yes      | State label mapping. Each entry maps a numeric state value to its human-readable label (e.g., `[{value: 0, text: "Off"}, {value: 1, text: "On"}]`). |

***

## CoolingTower FanSpeed Metadata

### Payload

Measurement fields for FanSpeed. Typical engUnit: RPM. The identifier (named-object XOR associate) and measurement (engUnit XOR stateText) constraints are independent and enforced by EquipmentMeasurementModeBase.

### Requires a non-empty engUnit string (mutually exclusive with stateText).

| Name      | Type   | Required | Description                           |
| --------- | ------ | -------- | ------------------------------------- |
| `engUnit` | string | Yes      | Engineering unit for the measurement. |

### Required for state/status/alarm points that carry no engineering unit.

| Name        | Type                            | Required | Description                                                                                                                                         |
| ----------- | ------------------------------- | -------- | --------------------------------------------------------------------------------------------------------------------------------------------------- |
| `stateText` | array\&lt;map\&lt;string, any>> | Yes      | State label mapping. Each entry maps a numeric state value to its human-readable label (e.g., `[{value: 0, text: "Off"}, {value: 1, text: "On"}]`). |

***

## CoolingTower DamperPosition Metadata

### Payload

Measurement fields for DamperPosition. Typical engUnit: %. The identifier (named-object XOR associate) and measurement (engUnit XOR stateText) constraints are independent and enforced by EquipmentMeasurementModeBase.

### Requires a non-empty engUnit string (mutually exclusive with stateText).

| Name      | Type   | Required | Description                           |
| --------- | ------ | -------- | ------------------------------------- |
| `engUnit` | string | Yes      | Engineering unit for the measurement. |

### Required for state/status/alarm points that carry no engineering unit.

| Name        | Type                            | Required | Description                                                                                                                                         |
| ----------- | ------------------------------- | -------- | --------------------------------------------------------------------------------------------------------------------------------------------------- |
| `stateText` | array\&lt;map\&lt;string, any>> | Yes      | State label mapping. Each entry maps a numeric state value to its human-readable label (e.g., `[{value: 0, text: "Off"}, {value: 1, text: "On"}]`). |

***

## CoolingTower AirTemperature Metadata

### Payload

Optional fields common to all generic equipment metadata, regardless of identifier mode.

### Object Mode

* `objectName` and `objectId` are **required**.
* `servesId` is **optional** in Named-object mode.
* `associateId` must **not** be present.

Incompatible with `EquipmentAssociateMode` — validators enforce this via
the parent `oneOf`.

| Name         | Type              | Required | Description                                                                                                                                                         |
| ------------ | ----------------- | -------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| `objectName` | string            | Yes      | Human-readable equipment name.                                                                                                                                      |
| `objectId`   | string            | Yes      | Stable unique identifier for the equipment.                                                                                                                         |
| `servesId`   | array\&lt;string> | No       | Optional list of objectIds of entities this equipment serves. Only valid in Named-object mode. Only valid in Named-object mode — must not appear in Associate mode. |

### Associate Mode

* `associateId` is **required**.
* `objectName`, `objectId`, and `servesId` must **not** be present.

Incompatible with `EquipmentNamedObjectMode` — validators enforce this
via the parent `oneOf`.

| Name          | Type   | Required | Description                          |
| ------------- | ------ | -------- | ------------------------------------ |
| `associateId` | string | Yes      | Identifier of the associated entity. |

***

## CoolingTower AirDifferentialPressure Metadata

### Payload

Measurement fields for AirDifferentialPressure. Typical engUnit: Pa. The identifier (named-object XOR associate) and measurement (engUnit XOR stateText) constraints are independent and enforced by EquipmentMeasurementModeBase.

### Requires a non-empty engUnit string (mutually exclusive with stateText).

| Name      | Type   | Required | Description                           |
| --------- | ------ | -------- | ------------------------------------- |
| `engUnit` | string | Yes      | Engineering unit for the measurement. |

### Required for state/status/alarm points that carry no engineering unit.

| Name        | Type                            | Required | Description                                                                                                                                         |
| ----------- | ------------------------------- | -------- | --------------------------------------------------------------------------------------------------------------------------------------------------- |
| `stateText` | array\&lt;map\&lt;string, any>> | Yes      | State label mapping. Each entry maps a numeric state value to its human-readable label (e.g., `[{value: 0, text: "Off"}, {value: 1, text: "On"}]`). |

***

## CoolingTower AirFlow Metadata

### Payload

Measurement fields for AirFlow. Typical engUnit: CFM. The identifier (named-object XOR associate) and measurement (engUnit XOR stateText) constraints are independent and enforced by EquipmentMeasurementModeBase.

### Requires a non-empty engUnit string (mutually exclusive with stateText).

| Name      | Type   | Required | Description                           |
| --------- | ------ | -------- | ------------------------------------- |
| `engUnit` | string | Yes      | Engineering unit for the measurement. |

### Required for state/status/alarm points that carry no engineering unit.

| Name        | Type                            | Required | Description                                                                                                                                         |
| ----------- | ------------------------------- | -------- | --------------------------------------------------------------------------------------------------------------------------------------------------- |
| `stateText` | array\&lt;map\&lt;string, any>> | Yes      | State label mapping. Each entry maps a numeric state value to its human-readable label (e.g., `[{value: 0, text: "Off"}, {value: 1, text: "On"}]`). |

***

## CoolingTower AirPressure Metadata

### Payload

Measurement fields for AirPressure. Typical engUnit: Pa. The identifier (named-object XOR associate) and measurement (engUnit XOR stateText) constraints are independent and enforced by EquipmentMeasurementModeBase.

### Requires a non-empty engUnit string (mutually exclusive with stateText).

| Name      | Type   | Required | Description                           |
| --------- | ------ | -------- | ------------------------------------- |
| `engUnit` | string | Yes      | Engineering unit for the measurement. |

### Required for state/status/alarm points that carry no engineering unit.

| Name        | Type                            | Required | Description                                                                                                                                         |
| ----------- | ------------------------------- | -------- | --------------------------------------------------------------------------------------------------------------------------------------------------- |
| `stateText` | array\&lt;map\&lt;string, any>> | Yes      | State label mapping. Each entry maps a numeric state value to its human-readable label (e.g., `[{value: 0, text: "Off"}, {value: 1, text: "On"}]`). |

***

## HX LiquidTemperature Metadata

### Payload

Optional fields common to all generic equipment metadata, regardless of identifier mode.

### Object Mode

* `objectName` and `objectId` are **required**.
* `servesId` is **optional** in Named-object mode.
* `associateId` must **not** be present.

Incompatible with `EquipmentAssociateMode` — validators enforce this via
the parent `oneOf`.

| Name         | Type              | Required | Description                                                                                                                                                         |
| ------------ | ----------------- | -------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| `objectName` | string            | Yes      | Human-readable equipment name.                                                                                                                                      |
| `objectId`   | string            | Yes      | Stable unique identifier for the equipment.                                                                                                                         |
| `servesId`   | array\&lt;string> | No       | Optional list of objectIds of entities this equipment serves. Only valid in Named-object mode. Only valid in Named-object mode — must not appear in Associate mode. |

### Associate Mode

* `associateId` is **required**.
* `objectName`, `objectId`, and `servesId` must **not** be present.

Incompatible with `EquipmentNamedObjectMode` — validators enforce this
via the parent `oneOf`.

| Name          | Type   | Required | Description                          |
| ------------- | ------ | -------- | ------------------------------------ |
| `associateId` | string | Yes      | Identifier of the associated entity. |

***

## HX LiquidDifferentialPressure Metadata

### Payload

Measurement fields for LiquidDifferentialPressure. Typical engUnit: kPa. The identifier (named-object XOR associate) and measurement (engUnit XOR stateText) constraints are independent and enforced by EquipmentMeasurementModeBase.

### Requires a non-empty engUnit string (mutually exclusive with stateText).

| Name      | Type   | Required | Description                           |
| --------- | ------ | -------- | ------------------------------------- |
| `engUnit` | string | Yes      | Engineering unit for the measurement. |

### Required for state/status/alarm points that carry no engineering unit.

| Name        | Type                            | Required | Description                                                                                                                                         |
| ----------- | ------------------------------- | -------- | --------------------------------------------------------------------------------------------------------------------------------------------------- |
| `stateText` | array\&lt;map\&lt;string, any>> | Yes      | State label mapping. Each entry maps a numeric state value to its human-readable label (e.g., `[{value: 0, text: "Off"}, {value: 1, text: "On"}]`). |

***

## HX LiquidFlow Metadata

### Payload

Measurement fields for LiquidFlow. Typical engUnit: LPM. The identifier (named-object XOR associate) and measurement (engUnit XOR stateText) constraints are independent and enforced by EquipmentMeasurementModeBase.

### Requires a non-empty engUnit string (mutually exclusive with stateText).

| Name      | Type   | Required | Description                           |
| --------- | ------ | -------- | ------------------------------------- |
| `engUnit` | string | Yes      | Engineering unit for the measurement. |

### Required for state/status/alarm points that carry no engineering unit.

| Name        | Type                            | Required | Description                                                                                                                                         |
| ----------- | ------------------------------- | -------- | --------------------------------------------------------------------------------------------------------------------------------------------------- |
| `stateText` | array\&lt;map\&lt;string, any>> | Yes      | State label mapping. Each entry maps a numeric state value to its human-readable label (e.g., `[{value: 0, text: "Off"}, {value: 1, text: "On"}]`). |

***

## HX LiquidPressure Metadata

### Payload

Measurement fields for LiquidPressure. Typical engUnit: kPa. The identifier (named-object XOR associate) and measurement (engUnit XOR stateText) constraints are independent and enforced by EquipmentMeasurementModeBase.

### Requires a non-empty engUnit string (mutually exclusive with stateText).

| Name      | Type   | Required | Description                           |
| --------- | ------ | -------- | ------------------------------------- |
| `engUnit` | string | Yes      | Engineering unit for the measurement. |

### Required for state/status/alarm points that carry no engineering unit.

| Name        | Type                            | Required | Description                                                                                                                                         |
| ----------- | ------------------------------- | -------- | --------------------------------------------------------------------------------------------------------------------------------------------------- |
| `stateText` | array\&lt;map\&lt;string, any>> | Yes      | State label mapping. Each entry maps a numeric state value to its human-readable label (e.g., `[{value: 0, text: "Off"}, {value: 1, text: "On"}]`). |

***

## HX Status Metadata

### Payload

Optional fields common to all generic equipment metadata, regardless of identifier mode.

### Object Mode

* `objectName` and `objectId` are **required**.
* `servesId` is **optional** in Named-object mode.
* `associateId` must **not** be present.

Incompatible with `EquipmentAssociateMode` — validators enforce this via
the parent `oneOf`.

| Name         | Type              | Required | Description                                                                                                                                                         |
| ------------ | ----------------- | -------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| `objectName` | string            | Yes      | Human-readable equipment name.                                                                                                                                      |
| `objectId`   | string            | Yes      | Stable unique identifier for the equipment.                                                                                                                         |
| `servesId`   | array\&lt;string> | No       | Optional list of objectIds of entities this equipment serves. Only valid in Named-object mode. Only valid in Named-object mode — must not appear in Associate mode. |

### Associate Mode

* `associateId` is **required**.
* `objectName`, `objectId`, and `servesId` must **not** be present.

Incompatible with `EquipmentNamedObjectMode` — validators enforce this
via the parent `oneOf`.

| Name          | Type   | Required | Description                          |
| ------------- | ------ | -------- | ------------------------------------ |
| `associateId` | string | Yes      | Identifier of the associated entity. |

***

## HX Available Metadata

### Payload

Optional fields common to all generic equipment metadata, regardless of identifier mode.

### Object Mode

* `objectName` and `objectId` are **required**.
* `servesId` is **optional** in Named-object mode.
* `associateId` must **not** be present.

Incompatible with `EquipmentAssociateMode` — validators enforce this via
the parent `oneOf`.

| Name         | Type              | Required | Description                                                                                                                                                         |
| ------------ | ----------------- | -------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| `objectName` | string            | Yes      | Human-readable equipment name.                                                                                                                                      |
| `objectId`   | string            | Yes      | Stable unique identifier for the equipment.                                                                                                                         |
| `servesId`   | array\&lt;string> | No       | Optional list of objectIds of entities this equipment serves. Only valid in Named-object mode. Only valid in Named-object mode — must not appear in Associate mode. |

### Associate Mode

* `associateId` is **required**.
* `objectName`, `objectId`, and `servesId` must **not** be present.

Incompatible with `EquipmentNamedObjectMode` — validators enforce this
via the parent `oneOf`.

| Name          | Type   | Required | Description                          |
| ------------- | ------ | -------- | ------------------------------------ |
| `associateId` | string | Yes      | Identifier of the associated entity. |

***

## HX ValvePosition Metadata

### Payload

Measurement fields for ValvePosition. Typical engUnit: %. The identifier (named-object XOR associate) and measurement (engUnit XOR stateText) constraints are independent and enforced by EquipmentMeasurementModeBase.

### Requires a non-empty engUnit string (mutually exclusive with stateText).

| Name      | Type   | Required | Description                           |
| --------- | ------ | -------- | ------------------------------------- |
| `engUnit` | string | Yes      | Engineering unit for the measurement. |

### Required for state/status/alarm points that carry no engineering unit.

| Name        | Type                            | Required | Description                                                                                                                                         |
| ----------- | ------------------------------- | -------- | --------------------------------------------------------------------------------------------------------------------------------------------------- |
| `stateText` | array\&lt;map\&lt;string, any>> | Yes      | State label mapping. Each entry maps a numeric state value to its human-readable label (e.g., `[{value: 0, text: "Off"}, {value: 1, text: "On"}]`). |

***

## HX PumpSpeed Metadata

### Payload

Measurement fields for PumpSpeed. Typical engUnit: RPM. The identifier (named-object XOR associate) and measurement (engUnit XOR stateText) constraints are independent and enforced by EquipmentMeasurementModeBase.

### Requires a non-empty engUnit string (mutually exclusive with stateText).

| Name      | Type   | Required | Description                           |
| --------- | ------ | -------- | ------------------------------------- |
| `engUnit` | string | Yes      | Engineering unit for the measurement. |

### Required for state/status/alarm points that carry no engineering unit.

| Name        | Type                            | Required | Description                                                                                                                                         |
| ----------- | ------------------------------- | -------- | --------------------------------------------------------------------------------------------------------------------------------------------------- |
| `stateText` | array\&lt;map\&lt;string, any>> | Yes      | State label mapping. Each entry maps a numeric state value to its human-readable label (e.g., `[{value: 0, text: "Off"}, {value: 1, text: "On"}]`). |

***

## HX FanSpeed Metadata

### Payload

Measurement fields for FanSpeed. Typical engUnit: RPM. The identifier (named-object XOR associate) and measurement (engUnit XOR stateText) constraints are independent and enforced by EquipmentMeasurementModeBase.

### Requires a non-empty engUnit string (mutually exclusive with stateText).

| Name      | Type   | Required | Description                           |
| --------- | ------ | -------- | ------------------------------------- |
| `engUnit` | string | Yes      | Engineering unit for the measurement. |

### Required for state/status/alarm points that carry no engineering unit.

| Name        | Type                            | Required | Description                                                                                                                                         |
| ----------- | ------------------------------- | -------- | --------------------------------------------------------------------------------------------------------------------------------------------------- |
| `stateText` | array\&lt;map\&lt;string, any>> | Yes      | State label mapping. Each entry maps a numeric state value to its human-readable label (e.g., `[{value: 0, text: "Off"}, {value: 1, text: "On"}]`). |

***

## HX DamperPosition Metadata

### Payload

Measurement fields for DamperPosition. Typical engUnit: %. The identifier (named-object XOR associate) and measurement (engUnit XOR stateText) constraints are independent and enforced by EquipmentMeasurementModeBase.

### Requires a non-empty engUnit string (mutually exclusive with stateText).

| Name      | Type   | Required | Description                           |
| --------- | ------ | -------- | ------------------------------------- |
| `engUnit` | string | Yes      | Engineering unit for the measurement. |

### Required for state/status/alarm points that carry no engineering unit.

| Name        | Type                            | Required | Description                                                                                                                                         |
| ----------- | ------------------------------- | -------- | --------------------------------------------------------------------------------------------------------------------------------------------------- |
| `stateText` | array\&lt;map\&lt;string, any>> | Yes      | State label mapping. Each entry maps a numeric state value to its human-readable label (e.g., `[{value: 0, text: "Off"}, {value: 1, text: "On"}]`). |

***

## HX AirTemperature Metadata

### Payload

Optional fields common to all generic equipment metadata, regardless of identifier mode.

### Object Mode

* `objectName` and `objectId` are **required**.
* `servesId` is **optional** in Named-object mode.
* `associateId` must **not** be present.

Incompatible with `EquipmentAssociateMode` — validators enforce this via
the parent `oneOf`.

| Name         | Type              | Required | Description                                                                                                                                                         |
| ------------ | ----------------- | -------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| `objectName` | string            | Yes      | Human-readable equipment name.                                                                                                                                      |
| `objectId`   | string            | Yes      | Stable unique identifier for the equipment.                                                                                                                         |
| `servesId`   | array\&lt;string> | No       | Optional list of objectIds of entities this equipment serves. Only valid in Named-object mode. Only valid in Named-object mode — must not appear in Associate mode. |

### Associate Mode

* `associateId` is **required**.
* `objectName`, `objectId`, and `servesId` must **not** be present.

Incompatible with `EquipmentNamedObjectMode` — validators enforce this
via the parent `oneOf`.

| Name          | Type   | Required | Description                          |
| ------------- | ------ | -------- | ------------------------------------ |
| `associateId` | string | Yes      | Identifier of the associated entity. |

***

## HX AirDifferentialPressure Metadata

### Payload

Measurement fields for AirDifferentialPressure. Typical engUnit: Pa. The identifier (named-object XOR associate) and measurement (engUnit XOR stateText) constraints are independent and enforced by EquipmentMeasurementModeBase.

### Requires a non-empty engUnit string (mutually exclusive with stateText).

| Name      | Type   | Required | Description                           |
| --------- | ------ | -------- | ------------------------------------- |
| `engUnit` | string | Yes      | Engineering unit for the measurement. |

### Required for state/status/alarm points that carry no engineering unit.

| Name        | Type                            | Required | Description                                                                                                                                         |
| ----------- | ------------------------------- | -------- | --------------------------------------------------------------------------------------------------------------------------------------------------- |
| `stateText` | array\&lt;map\&lt;string, any>> | Yes      | State label mapping. Each entry maps a numeric state value to its human-readable label (e.g., `[{value: 0, text: "Off"}, {value: 1, text: "On"}]`). |

***

## HX AirFlow Metadata

### Payload

Measurement fields for AirFlow. Typical engUnit: CFM. The identifier (named-object XOR associate) and measurement (engUnit XOR stateText) constraints are independent and enforced by EquipmentMeasurementModeBase.

### Requires a non-empty engUnit string (mutually exclusive with stateText).

| Name      | Type   | Required | Description                           |
| --------- | ------ | -------- | ------------------------------------- |
| `engUnit` | string | Yes      | Engineering unit for the measurement. |

### Required for state/status/alarm points that carry no engineering unit.

| Name        | Type                            | Required | Description                                                                                                                                         |
| ----------- | ------------------------------- | -------- | --------------------------------------------------------------------------------------------------------------------------------------------------- |
| `stateText` | array\&lt;map\&lt;string, any>> | Yes      | State label mapping. Each entry maps a numeric state value to its human-readable label (e.g., `[{value: 0, text: "Off"}, {value: 1, text: "On"}]`). |

***

## HX AirPressure Metadata

### Payload

Measurement fields for AirPressure. Typical engUnit: Pa. The identifier (named-object XOR associate) and measurement (engUnit XOR stateText) constraints are independent and enforced by EquipmentMeasurementModeBase.

### Requires a non-empty engUnit string (mutually exclusive with stateText).

| Name      | Type   | Required | Description                           |
| --------- | ------ | -------- | ------------------------------------- |
| `engUnit` | string | Yes      | Engineering unit for the measurement. |

### Required for state/status/alarm points that carry no engineering unit.

| Name        | Type                            | Required | Description                                                                                                                                         |
| ----------- | ------------------------------- | -------- | --------------------------------------------------------------------------------------------------------------------------------------------------- |
| `stateText` | array\&lt;map\&lt;string, any>> | Yes      | State label mapping. Each entry maps a numeric state value to its human-readable label (e.g., `[{value: 0, text: "Off"}, {value: 1, text: "On"}]`). |

***

## CRAH LiquidTemperature Metadata

### Payload

Optional fields common to all generic equipment metadata, regardless of identifier mode.

### Object Mode

* `objectName` and `objectId` are **required**.
* `servesId` is **optional** in Named-object mode.
* `associateId` must **not** be present.

Incompatible with `EquipmentAssociateMode` — validators enforce this via
the parent `oneOf`.

| Name         | Type              | Required | Description                                                                                                                                                         |
| ------------ | ----------------- | -------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| `objectName` | string            | Yes      | Human-readable equipment name.                                                                                                                                      |
| `objectId`   | string            | Yes      | Stable unique identifier for the equipment.                                                                                                                         |
| `servesId`   | array\&lt;string> | No       | Optional list of objectIds of entities this equipment serves. Only valid in Named-object mode. Only valid in Named-object mode — must not appear in Associate mode. |

### Associate Mode

* `associateId` is **required**.
* `objectName`, `objectId`, and `servesId` must **not** be present.

Incompatible with `EquipmentNamedObjectMode` — validators enforce this
via the parent `oneOf`.

| Name          | Type   | Required | Description                          |
| ------------- | ------ | -------- | ------------------------------------ |
| `associateId` | string | Yes      | Identifier of the associated entity. |

***

## CRAH LiquidDifferentialPressure Metadata

### Payload

Measurement fields for LiquidDifferentialPressure. Typical engUnit: kPa. The identifier (named-object XOR associate) and measurement (engUnit XOR stateText) constraints are independent and enforced by EquipmentMeasurementModeBase.

### Requires a non-empty engUnit string (mutually exclusive with stateText).

| Name      | Type   | Required | Description                           |
| --------- | ------ | -------- | ------------------------------------- |
| `engUnit` | string | Yes      | Engineering unit for the measurement. |

### Required for state/status/alarm points that carry no engineering unit.

| Name        | Type                            | Required | Description                                                                                                                                         |
| ----------- | ------------------------------- | -------- | --------------------------------------------------------------------------------------------------------------------------------------------------- |
| `stateText` | array\&lt;map\&lt;string, any>> | Yes      | State label mapping. Each entry maps a numeric state value to its human-readable label (e.g., `[{value: 0, text: "Off"}, {value: 1, text: "On"}]`). |

***

## CRAH LiquidFlow Metadata

### Payload

Measurement fields for LiquidFlow. Typical engUnit: LPM. The identifier (named-object XOR associate) and measurement (engUnit XOR stateText) constraints are independent and enforced by EquipmentMeasurementModeBase.

### Requires a non-empty engUnit string (mutually exclusive with stateText).

| Name      | Type   | Required | Description                           |
| --------- | ------ | -------- | ------------------------------------- |
| `engUnit` | string | Yes      | Engineering unit for the measurement. |

### Required for state/status/alarm points that carry no engineering unit.

| Name        | Type                            | Required | Description                                                                                                                                         |
| ----------- | ------------------------------- | -------- | --------------------------------------------------------------------------------------------------------------------------------------------------- |
| `stateText` | array\&lt;map\&lt;string, any>> | Yes      | State label mapping. Each entry maps a numeric state value to its human-readable label (e.g., `[{value: 0, text: "Off"}, {value: 1, text: "On"}]`). |

***

## CRAH LiquidPressure Metadata

### Payload

Measurement fields for LiquidPressure. Typical engUnit: kPa. The identifier (named-object XOR associate) and measurement (engUnit XOR stateText) constraints are independent and enforced by EquipmentMeasurementModeBase.

### Requires a non-empty engUnit string (mutually exclusive with stateText).

| Name      | Type   | Required | Description                           |
| --------- | ------ | -------- | ------------------------------------- |
| `engUnit` | string | Yes      | Engineering unit for the measurement. |

### Required for state/status/alarm points that carry no engineering unit.

| Name        | Type                            | Required | Description                                                                                                                                         |
| ----------- | ------------------------------- | -------- | --------------------------------------------------------------------------------------------------------------------------------------------------- |
| `stateText` | array\&lt;map\&lt;string, any>> | Yes      | State label mapping. Each entry maps a numeric state value to its human-readable label (e.g., `[{value: 0, text: "Off"}, {value: 1, text: "On"}]`). |

***

## CRAH Status Metadata

### Payload

Optional fields common to all generic equipment metadata, regardless of identifier mode.

### Object Mode

* `objectName` and `objectId` are **required**.
* `servesId` is **optional** in Named-object mode.
* `associateId` must **not** be present.

Incompatible with `EquipmentAssociateMode` — validators enforce this via
the parent `oneOf`.

| Name         | Type              | Required | Description                                                                                                                                                         |
| ------------ | ----------------- | -------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| `objectName` | string            | Yes      | Human-readable equipment name.                                                                                                                                      |
| `objectId`   | string            | Yes      | Stable unique identifier for the equipment.                                                                                                                         |
| `servesId`   | array\&lt;string> | No       | Optional list of objectIds of entities this equipment serves. Only valid in Named-object mode. Only valid in Named-object mode — must not appear in Associate mode. |

### Associate Mode

* `associateId` is **required**.
* `objectName`, `objectId`, and `servesId` must **not** be present.

Incompatible with `EquipmentNamedObjectMode` — validators enforce this
via the parent `oneOf`.

| Name          | Type   | Required | Description                          |
| ------------- | ------ | -------- | ------------------------------------ |
| `associateId` | string | Yes      | Identifier of the associated entity. |

***

## CRAH Available Metadata

### Payload

Optional fields common to all generic equipment metadata, regardless of identifier mode.

### Object Mode

* `objectName` and `objectId` are **required**.
* `servesId` is **optional** in Named-object mode.
* `associateId` must **not** be present.

Incompatible with `EquipmentAssociateMode` — validators enforce this via
the parent `oneOf`.

| Name         | Type              | Required | Description                                                                                                                                                         |
| ------------ | ----------------- | -------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| `objectName` | string            | Yes      | Human-readable equipment name.                                                                                                                                      |
| `objectId`   | string            | Yes      | Stable unique identifier for the equipment.                                                                                                                         |
| `servesId`   | array\&lt;string> | No       | Optional list of objectIds of entities this equipment serves. Only valid in Named-object mode. Only valid in Named-object mode — must not appear in Associate mode. |

### Associate Mode

* `associateId` is **required**.
* `objectName`, `objectId`, and `servesId` must **not** be present.

Incompatible with `EquipmentNamedObjectMode` — validators enforce this
via the parent `oneOf`.

| Name          | Type   | Required | Description                          |
| ------------- | ------ | -------- | ------------------------------------ |
| `associateId` | string | Yes      | Identifier of the associated entity. |

***

## CRAH ValvePosition Metadata

### Payload

Measurement fields for ValvePosition. Typical engUnit: %. The identifier (named-object XOR associate) and measurement (engUnit XOR stateText) constraints are independent and enforced by EquipmentMeasurementModeBase.

### Requires a non-empty engUnit string (mutually exclusive with stateText).

| Name      | Type   | Required | Description                           |
| --------- | ------ | -------- | ------------------------------------- |
| `engUnit` | string | Yes      | Engineering unit for the measurement. |

### Required for state/status/alarm points that carry no engineering unit.

| Name        | Type                            | Required | Description                                                                                                                                         |
| ----------- | ------------------------------- | -------- | --------------------------------------------------------------------------------------------------------------------------------------------------- |
| `stateText` | array\&lt;map\&lt;string, any>> | Yes      | State label mapping. Each entry maps a numeric state value to its human-readable label (e.g., `[{value: 0, text: "Off"}, {value: 1, text: "On"}]`). |

***

## CRAH PumpSpeed Metadata

### Payload

Measurement fields for PumpSpeed. Typical engUnit: RPM. The identifier (named-object XOR associate) and measurement (engUnit XOR stateText) constraints are independent and enforced by EquipmentMeasurementModeBase.

### Requires a non-empty engUnit string (mutually exclusive with stateText).

| Name      | Type   | Required | Description                           |
| --------- | ------ | -------- | ------------------------------------- |
| `engUnit` | string | Yes      | Engineering unit for the measurement. |

### Required for state/status/alarm points that carry no engineering unit.

| Name        | Type                            | Required | Description                                                                                                                                         |
| ----------- | ------------------------------- | -------- | --------------------------------------------------------------------------------------------------------------------------------------------------- |
| `stateText` | array\&lt;map\&lt;string, any>> | Yes      | State label mapping. Each entry maps a numeric state value to its human-readable label (e.g., `[{value: 0, text: "Off"}, {value: 1, text: "On"}]`). |

***

## CRAH FanSpeed Metadata

### Payload

Measurement fields for FanSpeed. Typical engUnit: RPM. The identifier (named-object XOR associate) and measurement (engUnit XOR stateText) constraints are independent and enforced by EquipmentMeasurementModeBase.

### Requires a non-empty engUnit string (mutually exclusive with stateText).

| Name      | Type   | Required | Description                           |
| --------- | ------ | -------- | ------------------------------------- |
| `engUnit` | string | Yes      | Engineering unit for the measurement. |

### Required for state/status/alarm points that carry no engineering unit.

| Name        | Type                            | Required | Description                                                                                                                                         |
| ----------- | ------------------------------- | -------- | --------------------------------------------------------------------------------------------------------------------------------------------------- |
| `stateText` | array\&lt;map\&lt;string, any>> | Yes      | State label mapping. Each entry maps a numeric state value to its human-readable label (e.g., `[{value: 0, text: "Off"}, {value: 1, text: "On"}]`). |

***

## CRAH DamperPosition Metadata

### Payload

Measurement fields for DamperPosition. Typical engUnit: %. The identifier (named-object XOR associate) and measurement (engUnit XOR stateText) constraints are independent and enforced by EquipmentMeasurementModeBase.

### Requires a non-empty engUnit string (mutually exclusive with stateText).

| Name      | Type   | Required | Description                           |
| --------- | ------ | -------- | ------------------------------------- |
| `engUnit` | string | Yes      | Engineering unit for the measurement. |

### Required for state/status/alarm points that carry no engineering unit.

| Name        | Type                            | Required | Description                                                                                                                                         |
| ----------- | ------------------------------- | -------- | --------------------------------------------------------------------------------------------------------------------------------------------------- |
| `stateText` | array\&lt;map\&lt;string, any>> | Yes      | State label mapping. Each entry maps a numeric state value to its human-readable label (e.g., `[{value: 0, text: "Off"}, {value: 1, text: "On"}]`). |

***

## CRAH AirTemperature Metadata

### Payload

Optional fields common to all generic equipment metadata, regardless of identifier mode.

### Object Mode

* `objectName` and `objectId` are **required**.
* `servesId` is **optional** in Named-object mode.
* `associateId` must **not** be present.

Incompatible with `EquipmentAssociateMode` — validators enforce this via
the parent `oneOf`.

| Name         | Type              | Required | Description                                                                                                                                                         |
| ------------ | ----------------- | -------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| `objectName` | string            | Yes      | Human-readable equipment name.                                                                                                                                      |
| `objectId`   | string            | Yes      | Stable unique identifier for the equipment.                                                                                                                         |
| `servesId`   | array\&lt;string> | No       | Optional list of objectIds of entities this equipment serves. Only valid in Named-object mode. Only valid in Named-object mode — must not appear in Associate mode. |

### Associate Mode

* `associateId` is **required**.
* `objectName`, `objectId`, and `servesId` must **not** be present.

Incompatible with `EquipmentNamedObjectMode` — validators enforce this
via the parent `oneOf`.

| Name          | Type   | Required | Description                          |
| ------------- | ------ | -------- | ------------------------------------ |
| `associateId` | string | Yes      | Identifier of the associated entity. |

***

## CRAH AirDifferentialPressure Metadata

### Payload

Measurement fields for AirDifferentialPressure. Typical engUnit: Pa. The identifier (named-object XOR associate) and measurement (engUnit XOR stateText) constraints are independent and enforced by EquipmentMeasurementModeBase.

### Requires a non-empty engUnit string (mutually exclusive with stateText).

| Name      | Type   | Required | Description                           |
| --------- | ------ | -------- | ------------------------------------- |
| `engUnit` | string | Yes      | Engineering unit for the measurement. |

### Required for state/status/alarm points that carry no engineering unit.

| Name        | Type                            | Required | Description                                                                                                                                         |
| ----------- | ------------------------------- | -------- | --------------------------------------------------------------------------------------------------------------------------------------------------- |
| `stateText` | array\&lt;map\&lt;string, any>> | Yes      | State label mapping. Each entry maps a numeric state value to its human-readable label (e.g., `[{value: 0, text: "Off"}, {value: 1, text: "On"}]`). |

***

## CRAH AirFlow Metadata

### Payload

Measurement fields for AirFlow. Typical engUnit: CFM. The identifier (named-object XOR associate) and measurement (engUnit XOR stateText) constraints are independent and enforced by EquipmentMeasurementModeBase.

### Requires a non-empty engUnit string (mutually exclusive with stateText).

| Name      | Type   | Required | Description                           |
| --------- | ------ | -------- | ------------------------------------- |
| `engUnit` | string | Yes      | Engineering unit for the measurement. |

### Required for state/status/alarm points that carry no engineering unit.

| Name        | Type                            | Required | Description                                                                                                                                         |
| ----------- | ------------------------------- | -------- | --------------------------------------------------------------------------------------------------------------------------------------------------- |
| `stateText` | array\&lt;map\&lt;string, any>> | Yes      | State label mapping. Each entry maps a numeric state value to its human-readable label (e.g., `[{value: 0, text: "Off"}, {value: 1, text: "On"}]`). |

***

## CRAH AirPressure Metadata

### Payload

Measurement fields for AirPressure. Typical engUnit: Pa. The identifier (named-object XOR associate) and measurement (engUnit XOR stateText) constraints are independent and enforced by EquipmentMeasurementModeBase.

### Requires a non-empty engUnit string (mutually exclusive with stateText).

| Name      | Type   | Required | Description                           |
| --------- | ------ | -------- | ------------------------------------- |
| `engUnit` | string | Yes      | Engineering unit for the measurement. |

### Required for state/status/alarm points that carry no engineering unit.

| Name        | Type                            | Required | Description                                                                                                                                         |
| ----------- | ------------------------------- | -------- | --------------------------------------------------------------------------------------------------------------------------------------------------- |
| `stateText` | array\&lt;map\&lt;string, any>> | Yes      | State label mapping. Each entry maps a numeric state value to its human-readable label (e.g., `[{value: 0, text: "Off"}, {value: 1, text: "On"}]`). |

***

## CRAC LiquidTemperature Metadata

### Payload

Optional fields common to all generic equipment metadata, regardless of identifier mode.

### Object Mode

* `objectName` and `objectId` are **required**.
* `servesId` is **optional** in Named-object mode.
* `associateId` must **not** be present.

Incompatible with `EquipmentAssociateMode` — validators enforce this via
the parent `oneOf`.

| Name         | Type              | Required | Description                                                                                                                                                         |
| ------------ | ----------------- | -------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| `objectName` | string            | Yes      | Human-readable equipment name.                                                                                                                                      |
| `objectId`   | string            | Yes      | Stable unique identifier for the equipment.                                                                                                                         |
| `servesId`   | array\&lt;string> | No       | Optional list of objectIds of entities this equipment serves. Only valid in Named-object mode. Only valid in Named-object mode — must not appear in Associate mode. |

### Associate Mode

* `associateId` is **required**.
* `objectName`, `objectId`, and `servesId` must **not** be present.

Incompatible with `EquipmentNamedObjectMode` — validators enforce this
via the parent `oneOf`.

| Name          | Type   | Required | Description                          |
| ------------- | ------ | -------- | ------------------------------------ |
| `associateId` | string | Yes      | Identifier of the associated entity. |

***

## CRAC LiquidDifferentialPressure Metadata

### Payload

Measurement fields for LiquidDifferentialPressure. Typical engUnit: kPa. The identifier (named-object XOR associate) and measurement (engUnit XOR stateText) constraints are independent and enforced by EquipmentMeasurementModeBase.

### Requires a non-empty engUnit string (mutually exclusive with stateText).

| Name      | Type   | Required | Description                           |
| --------- | ------ | -------- | ------------------------------------- |
| `engUnit` | string | Yes      | Engineering unit for the measurement. |

### Required for state/status/alarm points that carry no engineering unit.

| Name        | Type                            | Required | Description                                                                                                                                         |
| ----------- | ------------------------------- | -------- | --------------------------------------------------------------------------------------------------------------------------------------------------- |
| `stateText` | array\&lt;map\&lt;string, any>> | Yes      | State label mapping. Each entry maps a numeric state value to its human-readable label (e.g., `[{value: 0, text: "Off"}, {value: 1, text: "On"}]`). |

***

## CRAC LiquidFlow Metadata

### Payload

Measurement fields for LiquidFlow. Typical engUnit: LPM. The identifier (named-object XOR associate) and measurement (engUnit XOR stateText) constraints are independent and enforced by EquipmentMeasurementModeBase.

### Requires a non-empty engUnit string (mutually exclusive with stateText).

| Name      | Type   | Required | Description                           |
| --------- | ------ | -------- | ------------------------------------- |
| `engUnit` | string | Yes      | Engineering unit for the measurement. |

### Required for state/status/alarm points that carry no engineering unit.

| Name        | Type                            | Required | Description                                                                                                                                         |
| ----------- | ------------------------------- | -------- | --------------------------------------------------------------------------------------------------------------------------------------------------- |
| `stateText` | array\&lt;map\&lt;string, any>> | Yes      | State label mapping. Each entry maps a numeric state value to its human-readable label (e.g., `[{value: 0, text: "Off"}, {value: 1, text: "On"}]`). |

***

## CRAC LiquidPressure Metadata

### Payload

Measurement fields for LiquidPressure. Typical engUnit: kPa. The identifier (named-object XOR associate) and measurement (engUnit XOR stateText) constraints are independent and enforced by EquipmentMeasurementModeBase.

### Requires a non-empty engUnit string (mutually exclusive with stateText).

| Name      | Type   | Required | Description                           |
| --------- | ------ | -------- | ------------------------------------- |
| `engUnit` | string | Yes      | Engineering unit for the measurement. |

### Required for state/status/alarm points that carry no engineering unit.

| Name        | Type                            | Required | Description                                                                                                                                         |
| ----------- | ------------------------------- | -------- | --------------------------------------------------------------------------------------------------------------------------------------------------- |
| `stateText` | array\&lt;map\&lt;string, any>> | Yes      | State label mapping. Each entry maps a numeric state value to its human-readable label (e.g., `[{value: 0, text: "Off"}, {value: 1, text: "On"}]`). |

***

## CRAC Status Metadata

### Payload

Optional fields common to all generic equipment metadata, regardless of identifier mode.

### Object Mode

* `objectName` and `objectId` are **required**.
* `servesId` is **optional** in Named-object mode.
* `associateId` must **not** be present.

Incompatible with `EquipmentAssociateMode` — validators enforce this via
the parent `oneOf`.

| Name         | Type              | Required | Description                                                                                                                                                         |
| ------------ | ----------------- | -------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| `objectName` | string            | Yes      | Human-readable equipment name.                                                                                                                                      |
| `objectId`   | string            | Yes      | Stable unique identifier for the equipment.                                                                                                                         |
| `servesId`   | array\&lt;string> | No       | Optional list of objectIds of entities this equipment serves. Only valid in Named-object mode. Only valid in Named-object mode — must not appear in Associate mode. |

### Associate Mode

* `associateId` is **required**.
* `objectName`, `objectId`, and `servesId` must **not** be present.

Incompatible with `EquipmentNamedObjectMode` — validators enforce this
via the parent `oneOf`.

| Name          | Type   | Required | Description                          |
| ------------- | ------ | -------- | ------------------------------------ |
| `associateId` | string | Yes      | Identifier of the associated entity. |

***

## CRAC Available Metadata

### Payload

Optional fields common to all generic equipment metadata, regardless of identifier mode.

### Object Mode

* `objectName` and `objectId` are **required**.
* `servesId` is **optional** in Named-object mode.
* `associateId` must **not** be present.

Incompatible with `EquipmentAssociateMode` — validators enforce this via
the parent `oneOf`.

| Name         | Type              | Required | Description                                                                                                                                                         |
| ------------ | ----------------- | -------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| `objectName` | string            | Yes      | Human-readable equipment name.                                                                                                                                      |
| `objectId`   | string            | Yes      | Stable unique identifier for the equipment.                                                                                                                         |
| `servesId`   | array\&lt;string> | No       | Optional list of objectIds of entities this equipment serves. Only valid in Named-object mode. Only valid in Named-object mode — must not appear in Associate mode. |

### Associate Mode

* `associateId` is **required**.
* `objectName`, `objectId`, and `servesId` must **not** be present.

Incompatible with `EquipmentNamedObjectMode` — validators enforce this
via the parent `oneOf`.

| Name          | Type   | Required | Description                          |
| ------------- | ------ | -------- | ------------------------------------ |
| `associateId` | string | Yes      | Identifier of the associated entity. |

***

## CRAC ValvePosition Metadata

### Payload

Measurement fields for ValvePosition. Typical engUnit: %. The identifier (named-object XOR associate) and measurement (engUnit XOR stateText) constraints are independent and enforced by EquipmentMeasurementModeBase.

### Requires a non-empty engUnit string (mutually exclusive with stateText).

| Name      | Type   | Required | Description                           |
| --------- | ------ | -------- | ------------------------------------- |
| `engUnit` | string | Yes      | Engineering unit for the measurement. |

### Required for state/status/alarm points that carry no engineering unit.

| Name        | Type                            | Required | Description                                                                                                                                         |
| ----------- | ------------------------------- | -------- | --------------------------------------------------------------------------------------------------------------------------------------------------- |
| `stateText` | array\&lt;map\&lt;string, any>> | Yes      | State label mapping. Each entry maps a numeric state value to its human-readable label (e.g., `[{value: 0, text: "Off"}, {value: 1, text: "On"}]`). |

***

## CRAC PumpSpeed Metadata

### Payload

Measurement fields for PumpSpeed. Typical engUnit: RPM. The identifier (named-object XOR associate) and measurement (engUnit XOR stateText) constraints are independent and enforced by EquipmentMeasurementModeBase.

### Requires a non-empty engUnit string (mutually exclusive with stateText).

| Name      | Type   | Required | Description                           |
| --------- | ------ | -------- | ------------------------------------- |
| `engUnit` | string | Yes      | Engineering unit for the measurement. |

### Required for state/status/alarm points that carry no engineering unit.

| Name        | Type                            | Required | Description                                                                                                                                         |
| ----------- | ------------------------------- | -------- | --------------------------------------------------------------------------------------------------------------------------------------------------- |
| `stateText` | array\&lt;map\&lt;string, any>> | Yes      | State label mapping. Each entry maps a numeric state value to its human-readable label (e.g., `[{value: 0, text: "Off"}, {value: 1, text: "On"}]`). |

***

## CRAC FanSpeed Metadata

### Payload

Measurement fields for FanSpeed. Typical engUnit: RPM. The identifier (named-object XOR associate) and measurement (engUnit XOR stateText) constraints are independent and enforced by EquipmentMeasurementModeBase.

### Requires a non-empty engUnit string (mutually exclusive with stateText).

| Name      | Type   | Required | Description                           |
| --------- | ------ | -------- | ------------------------------------- |
| `engUnit` | string | Yes      | Engineering unit for the measurement. |

### Required for state/status/alarm points that carry no engineering unit.

| Name        | Type                            | Required | Description                                                                                                                                         |
| ----------- | ------------------------------- | -------- | --------------------------------------------------------------------------------------------------------------------------------------------------- |
| `stateText` | array\&lt;map\&lt;string, any>> | Yes      | State label mapping. Each entry maps a numeric state value to its human-readable label (e.g., `[{value: 0, text: "Off"}, {value: 1, text: "On"}]`). |

***

## CRAC DamperPosition Metadata

### Payload

Measurement fields for DamperPosition. Typical engUnit: %. The identifier (named-object XOR associate) and measurement (engUnit XOR stateText) constraints are independent and enforced by EquipmentMeasurementModeBase.

### Requires a non-empty engUnit string (mutually exclusive with stateText).

| Name      | Type   | Required | Description                           |
| --------- | ------ | -------- | ------------------------------------- |
| `engUnit` | string | Yes      | Engineering unit for the measurement. |

### Required for state/status/alarm points that carry no engineering unit.

| Name        | Type                            | Required | Description                                                                                                                                         |
| ----------- | ------------------------------- | -------- | --------------------------------------------------------------------------------------------------------------------------------------------------- |
| `stateText` | array\&lt;map\&lt;string, any>> | Yes      | State label mapping. Each entry maps a numeric state value to its human-readable label (e.g., `[{value: 0, text: "Off"}, {value: 1, text: "On"}]`). |

***

## CRAC AirTemperature Metadata

### Payload

Optional fields common to all generic equipment metadata, regardless of identifier mode.

### Object Mode

* `objectName` and `objectId` are **required**.
* `servesId` is **optional** in Named-object mode.
* `associateId` must **not** be present.

Incompatible with `EquipmentAssociateMode` — validators enforce this via
the parent `oneOf`.

| Name         | Type              | Required | Description                                                                                                                                                         |
| ------------ | ----------------- | -------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| `objectName` | string            | Yes      | Human-readable equipment name.                                                                                                                                      |
| `objectId`   | string            | Yes      | Stable unique identifier for the equipment.                                                                                                                         |
| `servesId`   | array\&lt;string> | No       | Optional list of objectIds of entities this equipment serves. Only valid in Named-object mode. Only valid in Named-object mode — must not appear in Associate mode. |

### Associate Mode

* `associateId` is **required**.
* `objectName`, `objectId`, and `servesId` must **not** be present.

Incompatible with `EquipmentNamedObjectMode` — validators enforce this
via the parent `oneOf`.

| Name          | Type   | Required | Description                          |
| ------------- | ------ | -------- | ------------------------------------ |
| `associateId` | string | Yes      | Identifier of the associated entity. |

***

## CRAC AirDifferentialPressure Metadata

### Payload

Measurement fields for AirDifferentialPressure. Typical engUnit: Pa. The identifier (named-object XOR associate) and measurement (engUnit XOR stateText) constraints are independent and enforced by EquipmentMeasurementModeBase.

### Requires a non-empty engUnit string (mutually exclusive with stateText).

| Name      | Type   | Required | Description                           |
| --------- | ------ | -------- | ------------------------------------- |
| `engUnit` | string | Yes      | Engineering unit for the measurement. |

### Required for state/status/alarm points that carry no engineering unit.

| Name        | Type                            | Required | Description                                                                                                                                         |
| ----------- | ------------------------------- | -------- | --------------------------------------------------------------------------------------------------------------------------------------------------- |
| `stateText` | array\&lt;map\&lt;string, any>> | Yes      | State label mapping. Each entry maps a numeric state value to its human-readable label (e.g., `[{value: 0, text: "Off"}, {value: 1, text: "On"}]`). |

***

## CRAC AirFlow Metadata

### Payload

Measurement fields for AirFlow. Typical engUnit: CFM. The identifier (named-object XOR associate) and measurement (engUnit XOR stateText) constraints are independent and enforced by EquipmentMeasurementModeBase.

### Requires a non-empty engUnit string (mutually exclusive with stateText).

| Name      | Type   | Required | Description                           |
| --------- | ------ | -------- | ------------------------------------- |
| `engUnit` | string | Yes      | Engineering unit for the measurement. |

### Required for state/status/alarm points that carry no engineering unit.

| Name        | Type                            | Required | Description                                                                                                                                         |
| ----------- | ------------------------------- | -------- | --------------------------------------------------------------------------------------------------------------------------------------------------- |
| `stateText` | array\&lt;map\&lt;string, any>> | Yes      | State label mapping. Each entry maps a numeric state value to its human-readable label (e.g., `[{value: 0, text: "Off"}, {value: 1, text: "On"}]`). |

***

## CRAC AirPressure Metadata

### Payload

Measurement fields for AirPressure. Typical engUnit: Pa. The identifier (named-object XOR associate) and measurement (engUnit XOR stateText) constraints are independent and enforced by EquipmentMeasurementModeBase.

### Requires a non-empty engUnit string (mutually exclusive with stateText).

| Name      | Type   | Required | Description                           |
| --------- | ------ | -------- | ------------------------------------- |
| `engUnit` | string | Yes      | Engineering unit for the measurement. |

### Required for state/status/alarm points that carry no engineering unit.

| Name        | Type                            | Required | Description                                                                                                                                         |
| ----------- | ------------------------------- | -------- | --------------------------------------------------------------------------------------------------------------------------------------------------- |
| `stateText` | array\&lt;map\&lt;string, any>> | Yes      | State label mapping. Each entry maps a numeric state value to its human-readable label (e.g., `[{value: 0, text: "Off"}, {value: 1, text: "On"}]`). |

***

## AHU LiquidTemperature Metadata

### Payload

Optional fields common to all generic equipment metadata, regardless of identifier mode.

### Object Mode

* `objectName` and `objectId` are **required**.
* `servesId` is **optional** in Named-object mode.
* `associateId` must **not** be present.

Incompatible with `EquipmentAssociateMode` — validators enforce this via
the parent `oneOf`.

| Name         | Type              | Required | Description                                                                                                                                                         |
| ------------ | ----------------- | -------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| `objectName` | string            | Yes      | Human-readable equipment name.                                                                                                                                      |
| `objectId`   | string            | Yes      | Stable unique identifier for the equipment.                                                                                                                         |
| `servesId`   | array\&lt;string> | No       | Optional list of objectIds of entities this equipment serves. Only valid in Named-object mode. Only valid in Named-object mode — must not appear in Associate mode. |

### Associate Mode

* `associateId` is **required**.
* `objectName`, `objectId`, and `servesId` must **not** be present.

Incompatible with `EquipmentNamedObjectMode` — validators enforce this
via the parent `oneOf`.

| Name          | Type   | Required | Description                          |
| ------------- | ------ | -------- | ------------------------------------ |
| `associateId` | string | Yes      | Identifier of the associated entity. |

***

## AHU LiquidDifferentialPressure Metadata

### Payload

Measurement fields for LiquidDifferentialPressure. Typical engUnit: kPa. The identifier (named-object XOR associate) and measurement (engUnit XOR stateText) constraints are independent and enforced by EquipmentMeasurementModeBase.

### Requires a non-empty engUnit string (mutually exclusive with stateText).

| Name      | Type   | Required | Description                           |
| --------- | ------ | -------- | ------------------------------------- |
| `engUnit` | string | Yes      | Engineering unit for the measurement. |

### Required for state/status/alarm points that carry no engineering unit.

| Name        | Type                            | Required | Description                                                                                                                                         |
| ----------- | ------------------------------- | -------- | --------------------------------------------------------------------------------------------------------------------------------------------------- |
| `stateText` | array\&lt;map\&lt;string, any>> | Yes      | State label mapping. Each entry maps a numeric state value to its human-readable label (e.g., `[{value: 0, text: "Off"}, {value: 1, text: "On"}]`). |

***

## AHU LiquidFlow Metadata

### Payload

Measurement fields for LiquidFlow. Typical engUnit: LPM. The identifier (named-object XOR associate) and measurement (engUnit XOR stateText) constraints are independent and enforced by EquipmentMeasurementModeBase.

### Requires a non-empty engUnit string (mutually exclusive with stateText).

| Name      | Type   | Required | Description                           |
| --------- | ------ | -------- | ------------------------------------- |
| `engUnit` | string | Yes      | Engineering unit for the measurement. |

### Required for state/status/alarm points that carry no engineering unit.

| Name        | Type                            | Required | Description                                                                                                                                         |
| ----------- | ------------------------------- | -------- | --------------------------------------------------------------------------------------------------------------------------------------------------- |
| `stateText` | array\&lt;map\&lt;string, any>> | Yes      | State label mapping. Each entry maps a numeric state value to its human-readable label (e.g., `[{value: 0, text: "Off"}, {value: 1, text: "On"}]`). |

***

## AHU LiquidPressure Metadata

### Payload

Measurement fields for LiquidPressure. Typical engUnit: kPa. The identifier (named-object XOR associate) and measurement (engUnit XOR stateText) constraints are independent and enforced by EquipmentMeasurementModeBase.

### Requires a non-empty engUnit string (mutually exclusive with stateText).

| Name      | Type   | Required | Description                           |
| --------- | ------ | -------- | ------------------------------------- |
| `engUnit` | string | Yes      | Engineering unit for the measurement. |

### Required for state/status/alarm points that carry no engineering unit.

| Name        | Type                            | Required | Description                                                                                                                                         |
| ----------- | ------------------------------- | -------- | --------------------------------------------------------------------------------------------------------------------------------------------------- |
| `stateText` | array\&lt;map\&lt;string, any>> | Yes      | State label mapping. Each entry maps a numeric state value to its human-readable label (e.g., `[{value: 0, text: "Off"}, {value: 1, text: "On"}]`). |

***

## AHU Status Metadata

### Payload

Optional fields common to all generic equipment metadata, regardless of identifier mode.

### Object Mode

* `objectName` and `objectId` are **required**.
* `servesId` is **optional** in Named-object mode.
* `associateId` must **not** be present.

Incompatible with `EquipmentAssociateMode` — validators enforce this via
the parent `oneOf`.

| Name         | Type              | Required | Description                                                                                                                                                         |
| ------------ | ----------------- | -------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| `objectName` | string            | Yes      | Human-readable equipment name.                                                                                                                                      |
| `objectId`   | string            | Yes      | Stable unique identifier for the equipment.                                                                                                                         |
| `servesId`   | array\&lt;string> | No       | Optional list of objectIds of entities this equipment serves. Only valid in Named-object mode. Only valid in Named-object mode — must not appear in Associate mode. |

### Associate Mode

* `associateId` is **required**.
* `objectName`, `objectId`, and `servesId` must **not** be present.

Incompatible with `EquipmentNamedObjectMode` — validators enforce this
via the parent `oneOf`.

| Name          | Type   | Required | Description                          |
| ------------- | ------ | -------- | ------------------------------------ |
| `associateId` | string | Yes      | Identifier of the associated entity. |

***

## AHU Available Metadata

### Payload

Optional fields common to all generic equipment metadata, regardless of identifier mode.

### Object Mode

* `objectName` and `objectId` are **required**.
* `servesId` is **optional** in Named-object mode.
* `associateId` must **not** be present.

Incompatible with `EquipmentAssociateMode` — validators enforce this via
the parent `oneOf`.

| Name         | Type              | Required | Description                                                                                                                                                         |
| ------------ | ----------------- | -------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| `objectName` | string            | Yes      | Human-readable equipment name.                                                                                                                                      |
| `objectId`   | string            | Yes      | Stable unique identifier for the equipment.                                                                                                                         |
| `servesId`   | array\&lt;string> | No       | Optional list of objectIds of entities this equipment serves. Only valid in Named-object mode. Only valid in Named-object mode — must not appear in Associate mode. |

### Associate Mode

* `associateId` is **required**.
* `objectName`, `objectId`, and `servesId` must **not** be present.

Incompatible with `EquipmentNamedObjectMode` — validators enforce this
via the parent `oneOf`.

| Name          | Type   | Required | Description                          |
| ------------- | ------ | -------- | ------------------------------------ |
| `associateId` | string | Yes      | Identifier of the associated entity. |

***

## AHU ValvePosition Metadata

### Payload

Measurement fields for ValvePosition. Typical engUnit: %. The identifier (named-object XOR associate) and measurement (engUnit XOR stateText) constraints are independent and enforced by EquipmentMeasurementModeBase.

### Requires a non-empty engUnit string (mutually exclusive with stateText).

| Name      | Type   | Required | Description                           |
| --------- | ------ | -------- | ------------------------------------- |
| `engUnit` | string | Yes      | Engineering unit for the measurement. |

### Required for state/status/alarm points that carry no engineering unit.

| Name        | Type                            | Required | Description                                                                                                                                         |
| ----------- | ------------------------------- | -------- | --------------------------------------------------------------------------------------------------------------------------------------------------- |
| `stateText` | array\&lt;map\&lt;string, any>> | Yes      | State label mapping. Each entry maps a numeric state value to its human-readable label (e.g., `[{value: 0, text: "Off"}, {value: 1, text: "On"}]`). |

***

## AHU PumpSpeed Metadata

### Payload

Measurement fields for PumpSpeed. Typical engUnit: RPM. The identifier (named-object XOR associate) and measurement (engUnit XOR stateText) constraints are independent and enforced by EquipmentMeasurementModeBase.

### Requires a non-empty engUnit string (mutually exclusive with stateText).

| Name      | Type   | Required | Description                           |
| --------- | ------ | -------- | ------------------------------------- |
| `engUnit` | string | Yes      | Engineering unit for the measurement. |

### Required for state/status/alarm points that carry no engineering unit.

| Name        | Type                            | Required | Description                                                                                                                                         |
| ----------- | ------------------------------- | -------- | --------------------------------------------------------------------------------------------------------------------------------------------------- |
| `stateText` | array\&lt;map\&lt;string, any>> | Yes      | State label mapping. Each entry maps a numeric state value to its human-readable label (e.g., `[{value: 0, text: "Off"}, {value: 1, text: "On"}]`). |

***

## AHU FanSpeed Metadata

### Payload

Measurement fields for FanSpeed. Typical engUnit: RPM. The identifier (named-object XOR associate) and measurement (engUnit XOR stateText) constraints are independent and enforced by EquipmentMeasurementModeBase.

### Requires a non-empty engUnit string (mutually exclusive with stateText).

| Name      | Type   | Required | Description                           |
| --------- | ------ | -------- | ------------------------------------- |
| `engUnit` | string | Yes      | Engineering unit for the measurement. |

### Required for state/status/alarm points that carry no engineering unit.

| Name        | Type                            | Required | Description                                                                                                                                         |
| ----------- | ------------------------------- | -------- | --------------------------------------------------------------------------------------------------------------------------------------------------- |
| `stateText` | array\&lt;map\&lt;string, any>> | Yes      | State label mapping. Each entry maps a numeric state value to its human-readable label (e.g., `[{value: 0, text: "Off"}, {value: 1, text: "On"}]`). |

***

## AHU DamperPosition Metadata

### Payload

Measurement fields for DamperPosition. Typical engUnit: %. The identifier (named-object XOR associate) and measurement (engUnit XOR stateText) constraints are independent and enforced by EquipmentMeasurementModeBase.

### Requires a non-empty engUnit string (mutually exclusive with stateText).

| Name      | Type   | Required | Description                           |
| --------- | ------ | -------- | ------------------------------------- |
| `engUnit` | string | Yes      | Engineering unit for the measurement. |

### Required for state/status/alarm points that carry no engineering unit.

| Name        | Type                            | Required | Description                                                                                                                                         |
| ----------- | ------------------------------- | -------- | --------------------------------------------------------------------------------------------------------------------------------------------------- |
| `stateText` | array\&lt;map\&lt;string, any>> | Yes      | State label mapping. Each entry maps a numeric state value to its human-readable label (e.g., `[{value: 0, text: "Off"}, {value: 1, text: "On"}]`). |

***

## AHU AirTemperature Metadata

### Payload

Optional fields common to all generic equipment metadata, regardless of identifier mode.

### Object Mode

* `objectName` and `objectId` are **required**.
* `servesId` is **optional** in Named-object mode.
* `associateId` must **not** be present.

Incompatible with `EquipmentAssociateMode` — validators enforce this via
the parent `oneOf`.

| Name         | Type              | Required | Description                                                                                                                                                         |
| ------------ | ----------------- | -------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| `objectName` | string            | Yes      | Human-readable equipment name.                                                                                                                                      |
| `objectId`   | string            | Yes      | Stable unique identifier for the equipment.                                                                                                                         |
| `servesId`   | array\&lt;string> | No       | Optional list of objectIds of entities this equipment serves. Only valid in Named-object mode. Only valid in Named-object mode — must not appear in Associate mode. |

### Associate Mode

* `associateId` is **required**.
* `objectName`, `objectId`, and `servesId` must **not** be present.

Incompatible with `EquipmentNamedObjectMode` — validators enforce this
via the parent `oneOf`.

| Name          | Type   | Required | Description                          |
| ------------- | ------ | -------- | ------------------------------------ |
| `associateId` | string | Yes      | Identifier of the associated entity. |

***

## AHU AirDifferentialPressure Metadata

### Payload

Measurement fields for AirDifferentialPressure. Typical engUnit: Pa. The identifier (named-object XOR associate) and measurement (engUnit XOR stateText) constraints are independent and enforced by EquipmentMeasurementModeBase.

### Requires a non-empty engUnit string (mutually exclusive with stateText).

| Name      | Type   | Required | Description                           |
| --------- | ------ | -------- | ------------------------------------- |
| `engUnit` | string | Yes      | Engineering unit for the measurement. |

### Required for state/status/alarm points that carry no engineering unit.

| Name        | Type                            | Required | Description                                                                                                                                         |
| ----------- | ------------------------------- | -------- | --------------------------------------------------------------------------------------------------------------------------------------------------- |
| `stateText` | array\&lt;map\&lt;string, any>> | Yes      | State label mapping. Each entry maps a numeric state value to its human-readable label (e.g., `[{value: 0, text: "Off"}, {value: 1, text: "On"}]`). |

***

## AHU AirFlow Metadata

### Payload

Measurement fields for AirFlow. Typical engUnit: CFM. The identifier (named-object XOR associate) and measurement (engUnit XOR stateText) constraints are independent and enforced by EquipmentMeasurementModeBase.

### Requires a non-empty engUnit string (mutually exclusive with stateText).

| Name      | Type   | Required | Description                           |
| --------- | ------ | -------- | ------------------------------------- |
| `engUnit` | string | Yes      | Engineering unit for the measurement. |

### Required for state/status/alarm points that carry no engineering unit.

| Name        | Type                            | Required | Description                                                                                                                                         |
| ----------- | ------------------------------- | -------- | --------------------------------------------------------------------------------------------------------------------------------------------------- |
| `stateText` | array\&lt;map\&lt;string, any>> | Yes      | State label mapping. Each entry maps a numeric state value to its human-readable label (e.g., `[{value: 0, text: "Off"}, {value: 1, text: "On"}]`). |

***

## AHU AirPressure Metadata

### Payload

Measurement fields for AirPressure. Typical engUnit: Pa. The identifier (named-object XOR associate) and measurement (engUnit XOR stateText) constraints are independent and enforced by EquipmentMeasurementModeBase.

### Requires a non-empty engUnit string (mutually exclusive with stateText).

| Name      | Type   | Required | Description                           |
| --------- | ------ | -------- | ------------------------------------- |
| `engUnit` | string | Yes      | Engineering unit for the measurement. |

### Required for state/status/alarm points that carry no engineering unit.

| Name        | Type                            | Required | Description                                                                                                                                         |
| ----------- | ------------------------------- | -------- | --------------------------------------------------------------------------------------------------------------------------------------------------- |
| `stateText` | array\&lt;map\&lt;string, any>> | Yes      | State label mapping. Each entry maps a numeric state value to its human-readable label (e.g., `[{value: 0, text: "Off"}, {value: 1, text: "On"}]`). |

***

## Chiller LiquidTemperature Metadata

### Payload

Optional fields common to all generic equipment metadata, regardless of identifier mode.

### Object Mode

* `objectName` and `objectId` are **required**.
* `servesId` is **optional** in Named-object mode.
* `associateId` must **not** be present.

Incompatible with `EquipmentAssociateMode` — validators enforce this via
the parent `oneOf`.

| Name         | Type              | Required | Description                                                                                                                                                         |
| ------------ | ----------------- | -------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| `objectName` | string            | Yes      | Human-readable equipment name.                                                                                                                                      |
| `objectId`   | string            | Yes      | Stable unique identifier for the equipment.                                                                                                                         |
| `servesId`   | array\&lt;string> | No       | Optional list of objectIds of entities this equipment serves. Only valid in Named-object mode. Only valid in Named-object mode — must not appear in Associate mode. |

### Associate Mode

* `associateId` is **required**.
* `objectName`, `objectId`, and `servesId` must **not** be present.

Incompatible with `EquipmentNamedObjectMode` — validators enforce this
via the parent `oneOf`.

| Name          | Type   | Required | Description                          |
| ------------- | ------ | -------- | ------------------------------------ |
| `associateId` | string | Yes      | Identifier of the associated entity. |

***

## Chiller LiquidDifferentialPressure Metadata

### Payload

Measurement fields for LiquidDifferentialPressure. Typical engUnit: kPa. The identifier (named-object XOR associate) and measurement (engUnit XOR stateText) constraints are independent and enforced by EquipmentMeasurementModeBase.

### Requires a non-empty engUnit string (mutually exclusive with stateText).

| Name      | Type   | Required | Description                           |
| --------- | ------ | -------- | ------------------------------------- |
| `engUnit` | string | Yes      | Engineering unit for the measurement. |

### Required for state/status/alarm points that carry no engineering unit.

| Name        | Type                            | Required | Description                                                                                                                                         |
| ----------- | ------------------------------- | -------- | --------------------------------------------------------------------------------------------------------------------------------------------------- |
| `stateText` | array\&lt;map\&lt;string, any>> | Yes      | State label mapping. Each entry maps a numeric state value to its human-readable label (e.g., `[{value: 0, text: "Off"}, {value: 1, text: "On"}]`). |

***

## Chiller LiquidFlow Metadata

### Payload

Measurement fields for LiquidFlow. Typical engUnit: LPM. The identifier (named-object XOR associate) and measurement (engUnit XOR stateText) constraints are independent and enforced by EquipmentMeasurementModeBase.

### Requires a non-empty engUnit string (mutually exclusive with stateText).

| Name      | Type   | Required | Description                           |
| --------- | ------ | -------- | ------------------------------------- |
| `engUnit` | string | Yes      | Engineering unit for the measurement. |

### Required for state/status/alarm points that carry no engineering unit.

| Name        | Type                            | Required | Description                                                                                                                                         |
| ----------- | ------------------------------- | -------- | --------------------------------------------------------------------------------------------------------------------------------------------------- |
| `stateText` | array\&lt;map\&lt;string, any>> | Yes      | State label mapping. Each entry maps a numeric state value to its human-readable label (e.g., `[{value: 0, text: "Off"}, {value: 1, text: "On"}]`). |

***

## Chiller LiquidPressure Metadata

### Payload

Measurement fields for LiquidPressure. Typical engUnit: kPa. The identifier (named-object XOR associate) and measurement (engUnit XOR stateText) constraints are independent and enforced by EquipmentMeasurementModeBase.

### Requires a non-empty engUnit string (mutually exclusive with stateText).

| Name      | Type   | Required | Description                           |
| --------- | ------ | -------- | ------------------------------------- |
| `engUnit` | string | Yes      | Engineering unit for the measurement. |

### Required for state/status/alarm points that carry no engineering unit.

| Name        | Type                            | Required | Description                                                                                                                                         |
| ----------- | ------------------------------- | -------- | --------------------------------------------------------------------------------------------------------------------------------------------------- |
| `stateText` | array\&lt;map\&lt;string, any>> | Yes      | State label mapping. Each entry maps a numeric state value to its human-readable label (e.g., `[{value: 0, text: "Off"}, {value: 1, text: "On"}]`). |

***

## Chiller Status Metadata

### Payload

Optional fields common to all generic equipment metadata, regardless of identifier mode.

### Object Mode

* `objectName` and `objectId` are **required**.
* `servesId` is **optional** in Named-object mode.
* `associateId` must **not** be present.

Incompatible with `EquipmentAssociateMode` — validators enforce this via
the parent `oneOf`.

| Name         | Type              | Required | Description                                                                                                                                                         |
| ------------ | ----------------- | -------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| `objectName` | string            | Yes      | Human-readable equipment name.                                                                                                                                      |
| `objectId`   | string            | Yes      | Stable unique identifier for the equipment.                                                                                                                         |
| `servesId`   | array\&lt;string> | No       | Optional list of objectIds of entities this equipment serves. Only valid in Named-object mode. Only valid in Named-object mode — must not appear in Associate mode. |

### Associate Mode

* `associateId` is **required**.
* `objectName`, `objectId`, and `servesId` must **not** be present.

Incompatible with `EquipmentNamedObjectMode` — validators enforce this
via the parent `oneOf`.

| Name          | Type   | Required | Description                          |
| ------------- | ------ | -------- | ------------------------------------ |
| `associateId` | string | Yes      | Identifier of the associated entity. |

***

## Chiller Available Metadata

### Payload

Optional fields common to all generic equipment metadata, regardless of identifier mode.

### Object Mode

* `objectName` and `objectId` are **required**.
* `servesId` is **optional** in Named-object mode.
* `associateId` must **not** be present.

Incompatible with `EquipmentAssociateMode` — validators enforce this via
the parent `oneOf`.

| Name         | Type              | Required | Description                                                                                                                                                         |
| ------------ | ----------------- | -------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| `objectName` | string            | Yes      | Human-readable equipment name.                                                                                                                                      |
| `objectId`   | string            | Yes      | Stable unique identifier for the equipment.                                                                                                                         |
| `servesId`   | array\&lt;string> | No       | Optional list of objectIds of entities this equipment serves. Only valid in Named-object mode. Only valid in Named-object mode — must not appear in Associate mode. |

### Associate Mode

* `associateId` is **required**.
* `objectName`, `objectId`, and `servesId` must **not** be present.

Incompatible with `EquipmentNamedObjectMode` — validators enforce this
via the parent `oneOf`.

| Name          | Type   | Required | Description                          |
| ------------- | ------ | -------- | ------------------------------------ |
| `associateId` | string | Yes      | Identifier of the associated entity. |

***

## Chiller ValvePosition Metadata

### Payload

Measurement fields for ValvePosition. Typical engUnit: %. The identifier (named-object XOR associate) and measurement (engUnit XOR stateText) constraints are independent and enforced by EquipmentMeasurementModeBase.

### Requires a non-empty engUnit string (mutually exclusive with stateText).

| Name      | Type   | Required | Description                           |
| --------- | ------ | -------- | ------------------------------------- |
| `engUnit` | string | Yes      | Engineering unit for the measurement. |

### Required for state/status/alarm points that carry no engineering unit.

| Name        | Type                            | Required | Description                                                                                                                                         |
| ----------- | ------------------------------- | -------- | --------------------------------------------------------------------------------------------------------------------------------------------------- |
| `stateText` | array\&lt;map\&lt;string, any>> | Yes      | State label mapping. Each entry maps a numeric state value to its human-readable label (e.g., `[{value: 0, text: "Off"}, {value: 1, text: "On"}]`). |

***

## Chiller PumpSpeed Metadata

### Payload

Measurement fields for PumpSpeed. Typical engUnit: RPM. The identifier (named-object XOR associate) and measurement (engUnit XOR stateText) constraints are independent and enforced by EquipmentMeasurementModeBase.

### Requires a non-empty engUnit string (mutually exclusive with stateText).

| Name      | Type   | Required | Description                           |
| --------- | ------ | -------- | ------------------------------------- |
| `engUnit` | string | Yes      | Engineering unit for the measurement. |

### Required for state/status/alarm points that carry no engineering unit.

| Name        | Type                            | Required | Description                                                                                                                                         |
| ----------- | ------------------------------- | -------- | --------------------------------------------------------------------------------------------------------------------------------------------------- |
| `stateText` | array\&lt;map\&lt;string, any>> | Yes      | State label mapping. Each entry maps a numeric state value to its human-readable label (e.g., `[{value: 0, text: "Off"}, {value: 1, text: "On"}]`). |

***

## Chiller FanSpeed Metadata

### Payload

Measurement fields for FanSpeed. Typical engUnit: RPM. The identifier (named-object XOR associate) and measurement (engUnit XOR stateText) constraints are independent and enforced by EquipmentMeasurementModeBase.

### Requires a non-empty engUnit string (mutually exclusive with stateText).

| Name      | Type   | Required | Description                           |
| --------- | ------ | -------- | ------------------------------------- |
| `engUnit` | string | Yes      | Engineering unit for the measurement. |

### Required for state/status/alarm points that carry no engineering unit.

| Name        | Type                            | Required | Description                                                                                                                                         |
| ----------- | ------------------------------- | -------- | --------------------------------------------------------------------------------------------------------------------------------------------------- |
| `stateText` | array\&lt;map\&lt;string, any>> | Yes      | State label mapping. Each entry maps a numeric state value to its human-readable label (e.g., `[{value: 0, text: "Off"}, {value: 1, text: "On"}]`). |

***

## Chiller DamperPosition Metadata

### Payload

Measurement fields for DamperPosition. Typical engUnit: %. The identifier (named-object XOR associate) and measurement (engUnit XOR stateText) constraints are independent and enforced by EquipmentMeasurementModeBase.

### Requires a non-empty engUnit string (mutually exclusive with stateText).

| Name      | Type   | Required | Description                           |
| --------- | ------ | -------- | ------------------------------------- |
| `engUnit` | string | Yes      | Engineering unit for the measurement. |

### Required for state/status/alarm points that carry no engineering unit.

| Name        | Type                            | Required | Description                                                                                                                                         |
| ----------- | ------------------------------- | -------- | --------------------------------------------------------------------------------------------------------------------------------------------------- |
| `stateText` | array\&lt;map\&lt;string, any>> | Yes      | State label mapping. Each entry maps a numeric state value to its human-readable label (e.g., `[{value: 0, text: "Off"}, {value: 1, text: "On"}]`). |

***

## Chiller AirTemperature Metadata

### Payload

Optional fields common to all generic equipment metadata, regardless of identifier mode.

### Object Mode

* `objectName` and `objectId` are **required**.
* `servesId` is **optional** in Named-object mode.
* `associateId` must **not** be present.

Incompatible with `EquipmentAssociateMode` — validators enforce this via
the parent `oneOf`.

| Name         | Type              | Required | Description                                                                                                                                                         |
| ------------ | ----------------- | -------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| `objectName` | string            | Yes      | Human-readable equipment name.                                                                                                                                      |
| `objectId`   | string            | Yes      | Stable unique identifier for the equipment.                                                                                                                         |
| `servesId`   | array\&lt;string> | No       | Optional list of objectIds of entities this equipment serves. Only valid in Named-object mode. Only valid in Named-object mode — must not appear in Associate mode. |

### Associate Mode

* `associateId` is **required**.
* `objectName`, `objectId`, and `servesId` must **not** be present.

Incompatible with `EquipmentNamedObjectMode` — validators enforce this
via the parent `oneOf`.

| Name          | Type   | Required | Description                          |
| ------------- | ------ | -------- | ------------------------------------ |
| `associateId` | string | Yes      | Identifier of the associated entity. |

***

## Chiller AirDifferentialPressure Metadata

### Payload

Measurement fields for AirDifferentialPressure. Typical engUnit: Pa. The identifier (named-object XOR associate) and measurement (engUnit XOR stateText) constraints are independent and enforced by EquipmentMeasurementModeBase.

### Requires a non-empty engUnit string (mutually exclusive with stateText).

| Name      | Type   | Required | Description                           |
| --------- | ------ | -------- | ------------------------------------- |
| `engUnit` | string | Yes      | Engineering unit for the measurement. |

### Required for state/status/alarm points that carry no engineering unit.

| Name        | Type                            | Required | Description                                                                                                                                         |
| ----------- | ------------------------------- | -------- | --------------------------------------------------------------------------------------------------------------------------------------------------- |
| `stateText` | array\&lt;map\&lt;string, any>> | Yes      | State label mapping. Each entry maps a numeric state value to its human-readable label (e.g., `[{value: 0, text: "Off"}, {value: 1, text: "On"}]`). |

***

## Chiller AirFlow Metadata

### Payload

Measurement fields for AirFlow. Typical engUnit: CFM. The identifier (named-object XOR associate) and measurement (engUnit XOR stateText) constraints are independent and enforced by EquipmentMeasurementModeBase.

### Requires a non-empty engUnit string (mutually exclusive with stateText).

| Name      | Type   | Required | Description                           |
| --------- | ------ | -------- | ------------------------------------- |
| `engUnit` | string | Yes      | Engineering unit for the measurement. |

### Required for state/status/alarm points that carry no engineering unit.

| Name        | Type                            | Required | Description                                                                                                                                         |
| ----------- | ------------------------------- | -------- | --------------------------------------------------------------------------------------------------------------------------------------------------- |
| `stateText` | array\&lt;map\&lt;string, any>> | Yes      | State label mapping. Each entry maps a numeric state value to its human-readable label (e.g., `[{value: 0, text: "Off"}, {value: 1, text: "On"}]`). |

***

## Chiller AirPressure Metadata

### Payload

Measurement fields for AirPressure. Typical engUnit: Pa. The identifier (named-object XOR associate) and measurement (engUnit XOR stateText) constraints are independent and enforced by EquipmentMeasurementModeBase.

### Requires a non-empty engUnit string (mutually exclusive with stateText).

| Name      | Type   | Required | Description                           |
| --------- | ------ | -------- | ------------------------------------- |
| `engUnit` | string | Yes      | Engineering unit for the measurement. |

### Required for state/status/alarm points that carry no engineering unit.

| Name        | Type                            | Required | Description                                                                                                                                         |
| ----------- | ------------------------------- | -------- | --------------------------------------------------------------------------------------------------------------------------------------------------- |
| `stateText` | array\&lt;map\&lt;string, any>> | Yes      | State label mapping. Each entry maps a numeric state value to its human-readable label (e.g., `[{value: 0, text: "Off"}, {value: 1, text: "On"}]`). |

***

## GenericEquipment GenericPoint Metadata

### Payload

Field fragment for a vendor-specific or unmapped GenericPoint. `processArea` is required.

`engUnit` and `stateText` are both optional but **mutually exclusive** — include at most one. See the two variants below.

### Object Mode

* `objectName` and `objectId` are **required**.
* `servesId` is **optional** in Named-object mode.
* `associateId` must **not** be present.

Incompatible with `EquipmentAssociateMode` — validators enforce this via
the parent `oneOf`.

| Name         | Type              | Required | Description                                                                                                                                                         |
| ------------ | ----------------- | -------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| `objectName` | string            | Yes      | Human-readable equipment name.                                                                                                                                      |
| `objectId`   | string            | Yes      | Stable unique identifier for the equipment.                                                                                                                         |
| `servesId`   | array\&lt;string> | No       | Optional list of objectIds of entities this equipment serves. Only valid in Named-object mode. Only valid in Named-object mode — must not appear in Associate mode. |

### Associate Mode

* `associateId` is **required**.
* `objectName`, `objectId`, and `servesId` must **not** be present.

Incompatible with `EquipmentNamedObjectMode` — validators enforce this
via the parent `oneOf`.

| Name          | Type   | Required | Description                          |
| ------------- | ------ | -------- | ------------------------------------ |
| `associateId` | string | Yes      | Identifier of the associated entity. |

***

## PowerMeter GenericPoint Metadata

### Payload

Field fragment for a vendor-specific or unmapped GenericPoint. `processArea` is required.

`engUnit` and `stateText` are both optional but **mutually exclusive** — include at most one. See the two variants below.

### Continuous measurement with a known engineering unit. When `engUnit` is prese...

| Name      | Type   | Required | Description                           |
| --------- | ------ | -------- | ------------------------------------- |
| `engUnit` | string | No       | Engineering unit for the measurement. |

### Binary or enumerated state point. When `stateText` is present, `engUnit` must...

| Name        | Type                            | Required | Description                                                                                                                                         |
| ----------- | ------------------------------- | -------- | --------------------------------------------------------------------------------------------------------------------------------------------------- |
| `stateText` | array\&lt;map\&lt;string, any>> | No       | State label mapping. Each entry maps a numeric state value to its human-readable label (e.g., `[{value: 0, text: "Off"}, {value: 1, text: "On"}]`). |

***

## Tank LiquidTemperature Metadata

### Payload

Optional fields common to all generic equipment metadata, regardless of identifier mode.

### Object Mode

* `objectName` and `objectId` are **required**.
* `servesId` is **optional** in Named-object mode.
* `associateId` must **not** be present.

Incompatible with `EquipmentAssociateMode` — validators enforce this via
the parent `oneOf`.

| Name         | Type              | Required | Description                                                                                                                                                         |
| ------------ | ----------------- | -------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| `objectName` | string            | Yes      | Human-readable equipment name.                                                                                                                                      |
| `objectId`   | string            | Yes      | Stable unique identifier for the equipment.                                                                                                                         |
| `servesId`   | array\&lt;string> | No       | Optional list of objectIds of entities this equipment serves. Only valid in Named-object mode. Only valid in Named-object mode — must not appear in Associate mode. |

### Associate Mode

* `associateId` is **required**.
* `objectName`, `objectId`, and `servesId` must **not** be present.

Incompatible with `EquipmentNamedObjectMode` — validators enforce this
via the parent `oneOf`.

| Name          | Type   | Required | Description                          |
| ------------- | ------ | -------- | ------------------------------------ |
| `associateId` | string | Yes      | Identifier of the associated entity. |

***

## Tank LiquidDifferentialPressure Metadata

### Payload

Measurement fields for LiquidDifferentialPressure. Typical engUnit: kPa. The identifier (named-object XOR associate) and measurement (engUnit XOR stateText) constraints are independent and enforced by EquipmentMeasurementModeBase.

### Requires a non-empty engUnit string (mutually exclusive with stateText).

| Name      | Type   | Required | Description                           |
| --------- | ------ | -------- | ------------------------------------- |
| `engUnit` | string | Yes      | Engineering unit for the measurement. |

### Required for state/status/alarm points that carry no engineering unit.

| Name        | Type                            | Required | Description                                                                                                                                         |
| ----------- | ------------------------------- | -------- | --------------------------------------------------------------------------------------------------------------------------------------------------- |
| `stateText` | array\&lt;map\&lt;string, any>> | Yes      | State label mapping. Each entry maps a numeric state value to its human-readable label (e.g., `[{value: 0, text: "Off"}, {value: 1, text: "On"}]`). |

***

## Tank LiquidFlow Metadata

### Payload

Measurement fields for LiquidFlow. Typical engUnit: LPM. The identifier (named-object XOR associate) and measurement (engUnit XOR stateText) constraints are independent and enforced by EquipmentMeasurementModeBase.

### Requires a non-empty engUnit string (mutually exclusive with stateText).

| Name      | Type   | Required | Description                           |
| --------- | ------ | -------- | ------------------------------------- |
| `engUnit` | string | Yes      | Engineering unit for the measurement. |

### Required for state/status/alarm points that carry no engineering unit.

| Name        | Type                            | Required | Description                                                                                                                                         |
| ----------- | ------------------------------- | -------- | --------------------------------------------------------------------------------------------------------------------------------------------------- |
| `stateText` | array\&lt;map\&lt;string, any>> | Yes      | State label mapping. Each entry maps a numeric state value to its human-readable label (e.g., `[{value: 0, text: "Off"}, {value: 1, text: "On"}]`). |

***

## Tank LiquidPressure Metadata

### Payload

Measurement fields for LiquidPressure. Typical engUnit: kPa. The identifier (named-object XOR associate) and measurement (engUnit XOR stateText) constraints are independent and enforced by EquipmentMeasurementModeBase.

### Requires a non-empty engUnit string (mutually exclusive with stateText).

| Name      | Type   | Required | Description                           |
| --------- | ------ | -------- | ------------------------------------- |
| `engUnit` | string | Yes      | Engineering unit for the measurement. |

### Required for state/status/alarm points that carry no engineering unit.

| Name        | Type                            | Required | Description                                                                                                                                         |
| ----------- | ------------------------------- | -------- | --------------------------------------------------------------------------------------------------------------------------------------------------- |
| `stateText` | array\&lt;map\&lt;string, any>> | Yes      | State label mapping. Each entry maps a numeric state value to its human-readable label (e.g., `[{value: 0, text: "Off"}, {value: 1, text: "On"}]`). |

***

## Tank Status Metadata

### Payload

Optional fields common to all generic equipment metadata, regardless of identifier mode.

### Object Mode

* `objectName` and `objectId` are **required**.
* `servesId` is **optional** in Named-object mode.
* `associateId` must **not** be present.

Incompatible with `EquipmentAssociateMode` — validators enforce this via
the parent `oneOf`.

| Name         | Type              | Required | Description                                                                                                                                                         |
| ------------ | ----------------- | -------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| `objectName` | string            | Yes      | Human-readable equipment name.                                                                                                                                      |
| `objectId`   | string            | Yes      | Stable unique identifier for the equipment.                                                                                                                         |
| `servesId`   | array\&lt;string> | No       | Optional list of objectIds of entities this equipment serves. Only valid in Named-object mode. Only valid in Named-object mode — must not appear in Associate mode. |

### Associate Mode

* `associateId` is **required**.
* `objectName`, `objectId`, and `servesId` must **not** be present.

Incompatible with `EquipmentNamedObjectMode` — validators enforce this
via the parent `oneOf`.

| Name          | Type   | Required | Description                          |
| ------------- | ------ | -------- | ------------------------------------ |
| `associateId` | string | Yes      | Identifier of the associated entity. |

***

## Tank Available Metadata

### Payload

Optional fields common to all generic equipment metadata, regardless of identifier mode.

### Object Mode

* `objectName` and `objectId` are **required**.
* `servesId` is **optional** in Named-object mode.
* `associateId` must **not** be present.

Incompatible with `EquipmentAssociateMode` — validators enforce this via
the parent `oneOf`.

| Name         | Type              | Required | Description                                                                                                                                                         |
| ------------ | ----------------- | -------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| `objectName` | string            | Yes      | Human-readable equipment name.                                                                                                                                      |
| `objectId`   | string            | Yes      | Stable unique identifier for the equipment.                                                                                                                         |
| `servesId`   | array\&lt;string> | No       | Optional list of objectIds of entities this equipment serves. Only valid in Named-object mode. Only valid in Named-object mode — must not appear in Associate mode. |

### Associate Mode

* `associateId` is **required**.
* `objectName`, `objectId`, and `servesId` must **not** be present.

Incompatible with `EquipmentNamedObjectMode` — validators enforce this
via the parent `oneOf`.

| Name          | Type   | Required | Description                          |
| ------------- | ------ | -------- | ------------------------------------ |
| `associateId` | string | Yes      | Identifier of the associated entity. |

***

## Tank ValvePosition Metadata

### Payload

Measurement fields for ValvePosition. Typical engUnit: %. The identifier (named-object XOR associate) and measurement (engUnit XOR stateText) constraints are independent and enforced by EquipmentMeasurementModeBase.

### Requires a non-empty engUnit string (mutually exclusive with stateText).

| Name      | Type   | Required | Description                           |
| --------- | ------ | -------- | ------------------------------------- |
| `engUnit` | string | Yes      | Engineering unit for the measurement. |

### Required for state/status/alarm points that carry no engineering unit.

| Name        | Type                            | Required | Description                                                                                                                                         |
| ----------- | ------------------------------- | -------- | --------------------------------------------------------------------------------------------------------------------------------------------------- |
| `stateText` | array\&lt;map\&lt;string, any>> | Yes      | State label mapping. Each entry maps a numeric state value to its human-readable label (e.g., `[{value: 0, text: "Off"}, {value: 1, text: "On"}]`). |

***

## Tank PumpSpeed Metadata

### Payload

Measurement fields for PumpSpeed. Typical engUnit: RPM. The identifier (named-object XOR associate) and measurement (engUnit XOR stateText) constraints are independent and enforced by EquipmentMeasurementModeBase.

### Requires a non-empty engUnit string (mutually exclusive with stateText).

| Name      | Type   | Required | Description                           |
| --------- | ------ | -------- | ------------------------------------- |
| `engUnit` | string | Yes      | Engineering unit for the measurement. |

### Required for state/status/alarm points that carry no engineering unit.

| Name        | Type                            | Required | Description                                                                                                                                         |
| ----------- | ------------------------------- | -------- | --------------------------------------------------------------------------------------------------------------------------------------------------- |
| `stateText` | array\&lt;map\&lt;string, any>> | Yes      | State label mapping. Each entry maps a numeric state value to its human-readable label (e.g., `[{value: 0, text: "Off"}, {value: 1, text: "On"}]`). |

***

## Tank FanSpeed Metadata

### Payload

Measurement fields for FanSpeed. Typical engUnit: RPM. The identifier (named-object XOR associate) and measurement (engUnit XOR stateText) constraints are independent and enforced by EquipmentMeasurementModeBase.

### Requires a non-empty engUnit string (mutually exclusive with stateText).

| Name      | Type   | Required | Description                           |
| --------- | ------ | -------- | ------------------------------------- |
| `engUnit` | string | Yes      | Engineering unit for the measurement. |

### Required for state/status/alarm points that carry no engineering unit.

| Name        | Type                            | Required | Description                                                                                                                                         |
| ----------- | ------------------------------- | -------- | --------------------------------------------------------------------------------------------------------------------------------------------------- |
| `stateText` | array\&lt;map\&lt;string, any>> | Yes      | State label mapping. Each entry maps a numeric state value to its human-readable label (e.g., `[{value: 0, text: "Off"}, {value: 1, text: "On"}]`). |

***

## Tank DamperPosition Metadata

### Payload

Measurement fields for DamperPosition. Typical engUnit: %. The identifier (named-object XOR associate) and measurement (engUnit XOR stateText) constraints are independent and enforced by EquipmentMeasurementModeBase.

### Requires a non-empty engUnit string (mutually exclusive with stateText).

| Name      | Type   | Required | Description                           |
| --------- | ------ | -------- | ------------------------------------- |
| `engUnit` | string | Yes      | Engineering unit for the measurement. |

### Required for state/status/alarm points that carry no engineering unit.

| Name        | Type                            | Required | Description                                                                                                                                         |
| ----------- | ------------------------------- | -------- | --------------------------------------------------------------------------------------------------------------------------------------------------- |
| `stateText` | array\&lt;map\&lt;string, any>> | Yes      | State label mapping. Each entry maps a numeric state value to its human-readable label (e.g., `[{value: 0, text: "Off"}, {value: 1, text: "On"}]`). |

***

## Tank AirTemperature Metadata

### Payload

Optional fields common to all generic equipment metadata, regardless of identifier mode.

### Object Mode

* `objectName` and `objectId` are **required**.
* `servesId` is **optional** in Named-object mode.
* `associateId` must **not** be present.

Incompatible with `EquipmentAssociateMode` — validators enforce this via
the parent `oneOf`.

| Name         | Type              | Required | Description                                                                                                                                                         |
| ------------ | ----------------- | -------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| `objectName` | string            | Yes      | Human-readable equipment name.                                                                                                                                      |
| `objectId`   | string            | Yes      | Stable unique identifier for the equipment.                                                                                                                         |
| `servesId`   | array\&lt;string> | No       | Optional list of objectIds of entities this equipment serves. Only valid in Named-object mode. Only valid in Named-object mode — must not appear in Associate mode. |

### Associate Mode

* `associateId` is **required**.
* `objectName`, `objectId`, and `servesId` must **not** be present.

Incompatible with `EquipmentNamedObjectMode` — validators enforce this
via the parent `oneOf`.

| Name          | Type   | Required | Description                          |
| ------------- | ------ | -------- | ------------------------------------ |
| `associateId` | string | Yes      | Identifier of the associated entity. |

***

## Tank AirDifferentialPressure Metadata

### Payload

Measurement fields for AirDifferentialPressure. Typical engUnit: Pa. The identifier (named-object XOR associate) and measurement (engUnit XOR stateText) constraints are independent and enforced by EquipmentMeasurementModeBase.

### Requires a non-empty engUnit string (mutually exclusive with stateText).

| Name      | Type   | Required | Description                           |
| --------- | ------ | -------- | ------------------------------------- |
| `engUnit` | string | Yes      | Engineering unit for the measurement. |

### Required for state/status/alarm points that carry no engineering unit.

| Name        | Type                            | Required | Description                                                                                                                                         |
| ----------- | ------------------------------- | -------- | --------------------------------------------------------------------------------------------------------------------------------------------------- |
| `stateText` | array\&lt;map\&lt;string, any>> | Yes      | State label mapping. Each entry maps a numeric state value to its human-readable label (e.g., `[{value: 0, text: "Off"}, {value: 1, text: "On"}]`). |

***

## Tank AirFlow Metadata

### Payload

Measurement fields for AirFlow. Typical engUnit: CFM. The identifier (named-object XOR associate) and measurement (engUnit XOR stateText) constraints are independent and enforced by EquipmentMeasurementModeBase.

### Requires a non-empty engUnit string (mutually exclusive with stateText).

| Name      | Type   | Required | Description                           |
| --------- | ------ | -------- | ------------------------------------- |
| `engUnit` | string | Yes      | Engineering unit for the measurement. |

### Required for state/status/alarm points that carry no engineering unit.

| Name        | Type                            | Required | Description                                                                                                                                         |
| ----------- | ------------------------------- | -------- | --------------------------------------------------------------------------------------------------------------------------------------------------- |
| `stateText` | array\&lt;map\&lt;string, any>> | Yes      | State label mapping. Each entry maps a numeric state value to its human-readable label (e.g., `[{value: 0, text: "Off"}, {value: 1, text: "On"}]`). |

***

## Tank AirPressure Metadata

### Payload

Measurement fields for AirPressure. Typical engUnit: Pa. The identifier (named-object XOR associate) and measurement (engUnit XOR stateText) constraints are independent and enforced by EquipmentMeasurementModeBase.

### Requires a non-empty engUnit string (mutually exclusive with stateText).

| Name      | Type   | Required | Description                           |
| --------- | ------ | -------- | ------------------------------------- |
| `engUnit` | string | Yes      | Engineering unit for the measurement. |

### Required for state/status/alarm points that carry no engineering unit.

| Name        | Type                            | Required | Description                                                                                                                                         |
| ----------- | ------------------------------- | -------- | --------------------------------------------------------------------------------------------------------------------------------------------------- |
| `stateText` | array\&lt;map\&lt;string, any>> | Yes      | State label mapping. Each entry maps a numeric state value to its human-readable label (e.g., `[{value: 0, text: "Off"}, {value: 1, text: "On"}]`). |

***

## GenericObject LiquidTemperature Metadata

### Payload

Optional fields common to all generic equipment metadata, regardless of identifier mode.

### Object Mode

* `objectName` and `objectId` are **required**.
* `servesId` is **optional** in Named-object mode.
* `associateId` must **not** be present.

Incompatible with `EquipmentAssociateMode` — validators enforce this via
the parent `oneOf`.

| Name         | Type              | Required | Description                                                                                                                                                         |
| ------------ | ----------------- | -------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| `objectName` | string            | Yes      | Human-readable equipment name.                                                                                                                                      |
| `objectId`   | string            | Yes      | Stable unique identifier for the equipment.                                                                                                                         |
| `servesId`   | array\&lt;string> | No       | Optional list of objectIds of entities this equipment serves. Only valid in Named-object mode. Only valid in Named-object mode — must not appear in Associate mode. |

### Associate Mode

* `associateId` is **required**.
* `objectName`, `objectId`, and `servesId` must **not** be present.

Incompatible with `EquipmentNamedObjectMode` — validators enforce this
via the parent `oneOf`.

| Name          | Type   | Required | Description                          |
| ------------- | ------ | -------- | ------------------------------------ |
| `associateId` | string | Yes      | Identifier of the associated entity. |

***

## GenericObject LiquidDifferentialPressure Metadata

### Payload

Measurement fields for LiquidDifferentialPressure. Typical engUnit: kPa. The identifier (named-object XOR associate) and measurement (engUnit XOR stateText) constraints are independent and enforced by EquipmentMeasurementModeBase.

### Requires a non-empty engUnit string (mutually exclusive with stateText).

| Name      | Type   | Required | Description                           |
| --------- | ------ | -------- | ------------------------------------- |
| `engUnit` | string | Yes      | Engineering unit for the measurement. |

### Required for state/status/alarm points that carry no engineering unit.

| Name        | Type                            | Required | Description                                                                                                                                         |
| ----------- | ------------------------------- | -------- | --------------------------------------------------------------------------------------------------------------------------------------------------- |
| `stateText` | array\&lt;map\&lt;string, any>> | Yes      | State label mapping. Each entry maps a numeric state value to its human-readable label (e.g., `[{value: 0, text: "Off"}, {value: 1, text: "On"}]`). |

***

## GenericObject LiquidFlow Metadata

### Payload

Measurement fields for LiquidFlow. Typical engUnit: LPM. The identifier (named-object XOR associate) and measurement (engUnit XOR stateText) constraints are independent and enforced by EquipmentMeasurementModeBase.

### Requires a non-empty engUnit string (mutually exclusive with stateText).

| Name      | Type   | Required | Description                           |
| --------- | ------ | -------- | ------------------------------------- |
| `engUnit` | string | Yes      | Engineering unit for the measurement. |

### Required for state/status/alarm points that carry no engineering unit.

| Name        | Type                            | Required | Description                                                                                                                                         |
| ----------- | ------------------------------- | -------- | --------------------------------------------------------------------------------------------------------------------------------------------------- |
| `stateText` | array\&lt;map\&lt;string, any>> | Yes      | State label mapping. Each entry maps a numeric state value to its human-readable label (e.g., `[{value: 0, text: "Off"}, {value: 1, text: "On"}]`). |

***

## GenericObject LiquidPressure Metadata

### Payload

Measurement fields for LiquidPressure. Typical engUnit: kPa. The identifier (named-object XOR associate) and measurement (engUnit XOR stateText) constraints are independent and enforced by EquipmentMeasurementModeBase.

### Requires a non-empty engUnit string (mutually exclusive with stateText).

| Name      | Type   | Required | Description                           |
| --------- | ------ | -------- | ------------------------------------- |
| `engUnit` | string | Yes      | Engineering unit for the measurement. |

### Required for state/status/alarm points that carry no engineering unit.

| Name        | Type                            | Required | Description                                                                                                                                         |
| ----------- | ------------------------------- | -------- | --------------------------------------------------------------------------------------------------------------------------------------------------- |
| `stateText` | array\&lt;map\&lt;string, any>> | Yes      | State label mapping. Each entry maps a numeric state value to its human-readable label (e.g., `[{value: 0, text: "Off"}, {value: 1, text: "On"}]`). |

***

## GenericObject Status Metadata

### Payload

Optional fields common to all generic equipment metadata, regardless of identifier mode.

### Object Mode

* `objectName` and `objectId` are **required**.
* `servesId` is **optional** in Named-object mode.
* `associateId` must **not** be present.

Incompatible with `EquipmentAssociateMode` — validators enforce this via
the parent `oneOf`.

| Name         | Type              | Required | Description                                                                                                                                                         |
| ------------ | ----------------- | -------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| `objectName` | string            | Yes      | Human-readable equipment name.                                                                                                                                      |
| `objectId`   | string            | Yes      | Stable unique identifier for the equipment.                                                                                                                         |
| `servesId`   | array\&lt;string> | No       | Optional list of objectIds of entities this equipment serves. Only valid in Named-object mode. Only valid in Named-object mode — must not appear in Associate mode. |

### Associate Mode

* `associateId` is **required**.
* `objectName`, `objectId`, and `servesId` must **not** be present.

Incompatible with `EquipmentNamedObjectMode` — validators enforce this
via the parent `oneOf`.

| Name          | Type   | Required | Description                          |
| ------------- | ------ | -------- | ------------------------------------ |
| `associateId` | string | Yes      | Identifier of the associated entity. |

***

## GenericObject Available Metadata

### Payload

Optional fields common to all generic equipment metadata, regardless of identifier mode.

### Object Mode

* `objectName` and `objectId` are **required**.
* `servesId` is **optional** in Named-object mode.
* `associateId` must **not** be present.

Incompatible with `EquipmentAssociateMode` — validators enforce this via
the parent `oneOf`.

| Name         | Type              | Required | Description                                                                                                                                                         |
| ------------ | ----------------- | -------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| `objectName` | string            | Yes      | Human-readable equipment name.                                                                                                                                      |
| `objectId`   | string            | Yes      | Stable unique identifier for the equipment.                                                                                                                         |
| `servesId`   | array\&lt;string> | No       | Optional list of objectIds of entities this equipment serves. Only valid in Named-object mode. Only valid in Named-object mode — must not appear in Associate mode. |

### Associate Mode

* `associateId` is **required**.
* `objectName`, `objectId`, and `servesId` must **not** be present.

Incompatible with `EquipmentNamedObjectMode` — validators enforce this
via the parent `oneOf`.

| Name          | Type   | Required | Description                          |
| ------------- | ------ | -------- | ------------------------------------ |
| `associateId` | string | Yes      | Identifier of the associated entity. |

***

## GenericObject ValvePosition Metadata

### Payload

Measurement fields for ValvePosition. Typical engUnit: %. The identifier (named-object XOR associate) and measurement (engUnit XOR stateText) constraints are independent and enforced by EquipmentMeasurementModeBase.

### Requires a non-empty engUnit string (mutually exclusive with stateText).

| Name      | Type   | Required | Description                           |
| --------- | ------ | -------- | ------------------------------------- |
| `engUnit` | string | Yes      | Engineering unit for the measurement. |

### Required for state/status/alarm points that carry no engineering unit.

| Name        | Type                            | Required | Description                                                                                                                                         |
| ----------- | ------------------------------- | -------- | --------------------------------------------------------------------------------------------------------------------------------------------------- |
| `stateText` | array\&lt;map\&lt;string, any>> | Yes      | State label mapping. Each entry maps a numeric state value to its human-readable label (e.g., `[{value: 0, text: "Off"}, {value: 1, text: "On"}]`). |

***

## GenericObject PumpSpeed Metadata

### Payload

Measurement fields for PumpSpeed. Typical engUnit: RPM. The identifier (named-object XOR associate) and measurement (engUnit XOR stateText) constraints are independent and enforced by EquipmentMeasurementModeBase.

### Requires a non-empty engUnit string (mutually exclusive with stateText).

| Name      | Type   | Required | Description                           |
| --------- | ------ | -------- | ------------------------------------- |
| `engUnit` | string | Yes      | Engineering unit for the measurement. |

### Required for state/status/alarm points that carry no engineering unit.

| Name        | Type                            | Required | Description                                                                                                                                         |
| ----------- | ------------------------------- | -------- | --------------------------------------------------------------------------------------------------------------------------------------------------- |
| `stateText` | array\&lt;map\&lt;string, any>> | Yes      | State label mapping. Each entry maps a numeric state value to its human-readable label (e.g., `[{value: 0, text: "Off"}, {value: 1, text: "On"}]`). |

***

## GenericObject FanSpeed Metadata

### Payload

Measurement fields for FanSpeed. Typical engUnit: RPM. The identifier (named-object XOR associate) and measurement (engUnit XOR stateText) constraints are independent and enforced by EquipmentMeasurementModeBase.

### Requires a non-empty engUnit string (mutually exclusive with stateText).

| Name      | Type   | Required | Description                           |
| --------- | ------ | -------- | ------------------------------------- |
| `engUnit` | string | Yes      | Engineering unit for the measurement. |

### Required for state/status/alarm points that carry no engineering unit.

| Name        | Type                            | Required | Description                                                                                                                                         |
| ----------- | ------------------------------- | -------- | --------------------------------------------------------------------------------------------------------------------------------------------------- |
| `stateText` | array\&lt;map\&lt;string, any>> | Yes      | State label mapping. Each entry maps a numeric state value to its human-readable label (e.g., `[{value: 0, text: "Off"}, {value: 1, text: "On"}]`). |

***

## GenericObject DamperPosition Metadata

### Payload

Measurement fields for DamperPosition. Typical engUnit: %. The identifier (named-object XOR associate) and measurement (engUnit XOR stateText) constraints are independent and enforced by EquipmentMeasurementModeBase.

### Requires a non-empty engUnit string (mutually exclusive with stateText).

| Name      | Type   | Required | Description                           |
| --------- | ------ | -------- | ------------------------------------- |
| `engUnit` | string | Yes      | Engineering unit for the measurement. |

### Required for state/status/alarm points that carry no engineering unit.

| Name        | Type                            | Required | Description                                                                                                                                         |
| ----------- | ------------------------------- | -------- | --------------------------------------------------------------------------------------------------------------------------------------------------- |
| `stateText` | array\&lt;map\&lt;string, any>> | Yes      | State label mapping. Each entry maps a numeric state value to its human-readable label (e.g., `[{value: 0, text: "Off"}, {value: 1, text: "On"}]`). |

***

## GenericObject AirTemperature Metadata

### Payload

Optional fields common to all generic equipment metadata, regardless of identifier mode.

### Object Mode

* `objectName` and `objectId` are **required**.
* `servesId` is **optional** in Named-object mode.
* `associateId` must **not** be present.

Incompatible with `EquipmentAssociateMode` — validators enforce this via
the parent `oneOf`.

| Name         | Type              | Required | Description                                                                                                                                                         |
| ------------ | ----------------- | -------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| `objectName` | string            | Yes      | Human-readable equipment name.                                                                                                                                      |
| `objectId`   | string            | Yes      | Stable unique identifier for the equipment.                                                                                                                         |
| `servesId`   | array\&lt;string> | No       | Optional list of objectIds of entities this equipment serves. Only valid in Named-object mode. Only valid in Named-object mode — must not appear in Associate mode. |

### Associate Mode

* `associateId` is **required**.
* `objectName`, `objectId`, and `servesId` must **not** be present.

Incompatible with `EquipmentNamedObjectMode` — validators enforce this
via the parent `oneOf`.

| Name          | Type   | Required | Description                          |
| ------------- | ------ | -------- | ------------------------------------ |
| `associateId` | string | Yes      | Identifier of the associated entity. |

***

## GenericObject AirDifferentialPressure Metadata

### Payload

Measurement fields for AirDifferentialPressure. Typical engUnit: Pa. The identifier (named-object XOR associate) and measurement (engUnit XOR stateText) constraints are independent and enforced by EquipmentMeasurementModeBase.

### Requires a non-empty engUnit string (mutually exclusive with stateText).

| Name      | Type   | Required | Description                           |
| --------- | ------ | -------- | ------------------------------------- |
| `engUnit` | string | Yes      | Engineering unit for the measurement. |

### Required for state/status/alarm points that carry no engineering unit.

| Name        | Type                            | Required | Description                                                                                                                                         |
| ----------- | ------------------------------- | -------- | --------------------------------------------------------------------------------------------------------------------------------------------------- |
| `stateText` | array\&lt;map\&lt;string, any>> | Yes      | State label mapping. Each entry maps a numeric state value to its human-readable label (e.g., `[{value: 0, text: "Off"}, {value: 1, text: "On"}]`). |

***

## GenericObject AirFlow Metadata

### Payload

Measurement fields for AirFlow. Typical engUnit: CFM. The identifier (named-object XOR associate) and measurement (engUnit XOR stateText) constraints are independent and enforced by EquipmentMeasurementModeBase.

### Requires a non-empty engUnit string (mutually exclusive with stateText).

| Name      | Type   | Required | Description                           |
| --------- | ------ | -------- | ------------------------------------- |
| `engUnit` | string | Yes      | Engineering unit for the measurement. |

### Required for state/status/alarm points that carry no engineering unit.

| Name        | Type                            | Required | Description                                                                                                                                         |
| ----------- | ------------------------------- | -------- | --------------------------------------------------------------------------------------------------------------------------------------------------- |
| `stateText` | array\&lt;map\&lt;string, any>> | Yes      | State label mapping. Each entry maps a numeric state value to its human-readable label (e.g., `[{value: 0, text: "Off"}, {value: 1, text: "On"}]`). |

***

## GenericObject AirPressure Metadata

### Payload

Measurement fields for AirPressure. Typical engUnit: Pa. The identifier (named-object XOR associate) and measurement (engUnit XOR stateText) constraints are independent and enforced by EquipmentMeasurementModeBase.

### Requires a non-empty engUnit string (mutually exclusive with stateText).

| Name      | Type   | Required | Description                           |
| --------- | ------ | -------- | ------------------------------------- |
| `engUnit` | string | Yes      | Engineering unit for the measurement. |

### Required for state/status/alarm points that carry no engineering unit.

| Name        | Type                            | Required | Description                                                                                                                                         |
| ----------- | ------------------------------- | -------- | --------------------------------------------------------------------------------------------------------------------------------------------------- |
| `stateText` | array\&lt;map\&lt;string, any>> | Yes      | State label mapping. Each entry maps a numeric state value to its human-readable label (e.g., `[{value: 0, text: "Off"}, {value: 1, text: "On"}]`). |

***

## GenericObject LiquidTemperatureSpRequest Metadata

### Payload

Setpoint request for a GenericObject. BMS publishes metadata; the integration publishes the value to the derived topic.

### Object Mode

* `objectName` and `objectId` are **required**.
* `servesId` is **optional** in Named-object mode.
* `associateId` must **not** be present.

Incompatible with `EquipmentAssociateMode` — validators enforce this via
the parent `oneOf`.

| Name         | Type              | Required | Description                                                                                                                                                         |
| ------------ | ----------------- | -------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| `objectName` | string            | Yes      | Human-readable equipment name.                                                                                                                                      |
| `objectId`   | string            | Yes      | Stable unique identifier for the equipment.                                                                                                                         |
| `servesId`   | array\&lt;string> | No       | Optional list of objectIds of entities this equipment serves. Only valid in Named-object mode. Only valid in Named-object mode — must not appear in Associate mode. |

### Associate Mode

* `associateId` is **required**.
* `objectName`, `objectId`, and `servesId` must **not** be present.

Incompatible with `EquipmentNamedObjectMode` — validators enforce this
via the parent `oneOf`.

| Name          | Type   | Required | Description                          |
| ------------- | ------ | -------- | ------------------------------------ |
| `associateId` | string | Yes      | Identifier of the associated entity. |

***

## GenericObject Sound Metadata

### Payload

Optional fields common to all generic equipment metadata, regardless of identifier mode.

### Object Mode

* `objectName` and `objectId` are **required**.
* `servesId` is **optional** in Named-object mode.
* `associateId` must **not** be present.

Incompatible with `EquipmentAssociateMode` — validators enforce this via
the parent `oneOf`.

| Name         | Type              | Required | Description                                                                                                                                                         |
| ------------ | ----------------- | -------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| `objectName` | string            | Yes      | Human-readable equipment name.                                                                                                                                      |
| `objectId`   | string            | Yes      | Stable unique identifier for the equipment.                                                                                                                         |
| `servesId`   | array\&lt;string> | No       | Optional list of objectIds of entities this equipment serves. Only valid in Named-object mode. Only valid in Named-object mode — must not appear in Associate mode. |

### Associate Mode

* `associateId` is **required**.
* `objectName`, `objectId`, and `servesId` must **not** be present.

Incompatible with `EquipmentNamedObjectMode` — validators enforce this
via the parent `oneOf`.

| Name          | Type   | Required | Description                          |
| ------------- | ------ | -------- | ------------------------------------ |
| `associateId` | string | Yes      | Identifier of the associated entity. |

***