{
  "type": "object",
  "properties": {
    "id": {
      "type": "string"
    },
    "threadId": {
      "type": "string"
    },
    "reviewId": {
      "type": "string"
    },
    "targetKind": {
      "type": "string",
      "enum": [
        "element",
        "screenshot",
        "general"
      ]
    },
    "bodyMarkdown": {
      "type": "string"
    },
    "status": {
      "type": "string",
      "enum": [
        "open",
        "resolved"
      ]
    },
    "route": {
      "type": "string"
    },
    "url": {
      "type": "string"
    },
    "selector": {
      "type": "string"
    },
    "fallbackSelector": {
      "type": "string"
    },
    "element": {
      "type": "object",
      "additionalProperties": true
    },
    "boundingRect": {
      "type": "object",
      "additionalProperties": true
    },
    "viewport": {
      "type": "object",
      "additionalProperties": true
    },
    "component": {
      "type": [
        "object",
        "null"
      ],
      "additionalProperties": true
    },
    "screenshot": {
      "type": [
        "object",
        "null"
      ],
      "additionalProperties": true
    },
    "commitSha": {
      "type": [
        "string",
        "null"
      ]
    },
    "author": {
      "type": "object",
      "properties": {
        "login": {
          "type": "string"
        },
        "viewerId": {
          "type": [
            "string",
            "null"
          ]
        },
        "agentAlias": {
          "type": [
            "string",
            "null"
          ],
          "description": "Stable per-agent identifier for agent-authored activity. clientName is not a substitute; the connected human identity remains visible."
        }
      },
      "additionalProperties": true
    },
    "createdAt": {
      "type": "string",
      "format": "date-time"
    },
    "updatedAt": {
      "type": "string",
      "format": "date-time"
    }
  },
  "additionalProperties": true
}