{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "$id": "https://ver.cy/schemas/dimension/1.0/object.schema.json",
  "title": "Vercy immutable object revision",
  "type": "object",
  "required": ["recordType", "schemaVersion", "recordId", "objectId", "objectType", "name", "recordedAt", "previousRecordId", "state", "provenance"],
  "additionalProperties": false,
  "properties": {
    "recordType": {"const": "object"},
    "schemaVersion": {"const": "1.0.0"},
    "recordId": {"type": "string", "pattern": "^[A-Za-z0-9][A-Za-z0-9._:-]{2,255}$"},
    "objectId": {"type": "string", "pattern": "^[A-Za-z0-9][A-Za-z0-9._:-]{2,255}$"},
    "objectType": {"type": "string", "minLength": 1},
    "name": {"type": "string", "minLength": 1},
    "description": {"type": "string"},
    "recordedAt": {"type": "string", "format": "date-time"},
    "previousRecordId": {"type": ["string", "null"]},
    "state": {"type": "string", "enum": ["active", "inactive", "retired", "unknown"]},
    "facets": {"type": "object"},
    "provenance": {"type": "object"},
    "accessClass": {"type": "string"}
  }
}
