{
  "type": "object",
  "additionalProperties": false,
  "required": [
    "action",
    "expectedVersion",
    "operationKey"
  ],
  "properties": {
    "expectedVersion": {
      "type": "integer",
      "minimum": 0
    },
    "operationKey": {
      "type": "string",
      "minLength": 8,
      "maxLength": 128
    },
    "blockerActorKey": {
      "type": "string"
    },
    "resultingRevision": {
      "type": "string"
    },
    "requestDecision": {
      "type": "boolean"
    },
    "action": {
      "enum": [
        "request_decision",
        "signal",
        "decide",
        "clear_blocker",
        "record_application"
      ]
    },
    "signal": {
      "enum": [
        "agree",
        "object",
        "needs_clarification",
        "blocker"
      ]
    },
    "active": {
      "type": "boolean"
    },
    "decision": {
      "enum": [
        "accepted_for_change",
        "rejected",
        "out_of_scope",
        "clear"
      ]
    },
    "reason": {
      "type": "string",
      "maxLength": 1000
    }
  }
}