{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "$id": "https://earswet.com/docs/schemas/earswet-ble-characteristics.schema.json",
  "title": "Earswet BLE Characteristic Suppression Contract",
  "type": "object",
  "required": ["serviceUuid", "characteristics", "suppressionRule"],
  "properties": {
    "ok": { "type": "boolean" },
    "serviceUuid": { "type": "string" },
    "characteristics": {
      "type": "object",
      "required": ["status", "marker", "value", "nonValue", "evidence", "policy", "integrity", "remeasure"],
      "properties": {
        "status": { "type": "string" },
        "marker": { "type": "string" },
        "value": { "type": "string" },
        "nonValue": { "type": "string" },
        "evidence": { "type": "string" },
        "policy": { "type": "string" },
        "integrity": { "type": "string" },
        "remeasure": { "type": "string" }
      },
      "additionalProperties": true
    },
    "suppressionRule": {
      "type": "string",
      "const": "rawValueAccess=false => do not update actual-value characteristic; update non-value/evidence/status characteristics instead."
    }
  },
  "additionalProperties": true
}
