{
  "description": "Reports that a flow message was not acknowledged, with the reason.",
  "type": "object",
  "properties": {
    "flowId": {
      "type": "string",
      "description": "Unique identifier for the flow",
      "minLength": 1
    },
    "messageId": {
      "type": "string",
      "description": "Unique identifier for the unacknowledged message",
      "minLength": 1
    },
    "unackId": {
      "type": "string",
      "description": "Unique identifier for this unacknowledgment",
      "minLength": 1
    },
    "reason": {
      "type": "string",
      "description": "Reason for unacknowledgment",
      "enum": [
        "TIMEOUT",
        "ERROR",
        "REJECTED",
        "DUPLICATE"
      ]
    },
    "timestamp": {
      "type": "string",
      "format": "date-time",
      "description": "Unacknowledgment timestamp"
    },
    "metadata": {
      "type": "object",
      "description": "Additional metadata for the unacknowledgment",
      "additionalProperties": true
    }
  },
  "required": [
    "flowId",
    "messageId",
    "unackId",
    "reason",
    "timestamp"
  ],
  "additionalProperties": false
}
