{
  "$type": "com.atproto.lexicon.schema",
  "defs": {
    "main": {
      "key": "any",
      "record": {
        "properties": {
          "acceptedBy": {
            "format": "did",
            "type": "string"
          },
          "author": {
            "format": "did",
            "type": "string"
          },
          "baseCommit": {
            "maxLength": 64,
            "minLength": 40,
            "type": "string"
          },
          "createdAt": {
            "format": "datetime",
            "type": "string"
          },
          "headCommit": {
            "maxLength": 64,
            "minLength": 40,
            "type": "string"
          },
          "keyId": {
            "maxLength": 128,
            "minLength": 1,
            "type": "string"
          },
          "line": {
            "maximum": 2147483647,
            "minimum": 1,
            "type": "integer"
          },
          "number": {
            "maximum": 9007199254740991,
            "minimum": 1,
            "type": "integer"
          },
          "path": {
            "description": "With stillApplies, the location of the thread in this round.",
            "maxLength": 4096,
            "minLength": 1,
            "type": "string"
          },
          "pullRequestId": {
            "maxLength": 36,
            "minLength": 36,
            "type": "string"
          },
          "reason": {
            "maxGraphemes": 2000,
            "maxLength": 20000,
            "minLength": 1,
            "type": "string"
          },
          "receipt": {
            "maxLength": 512,
            "minLength": 1,
            "type": "string"
          },
          "repositoryId": {
            "ref": "dev.gitosphere.defs#repositoryId",
            "type": "ref"
          },
          "round": {
            "maximum": 9007199254740991,
            "minimum": 0,
            "type": "integer"
          },
          "side": {
            "enum": [
              "base",
              "head"
            ],
            "type": "string"
          },
          "startLine": {
            "maximum": 2147483647,
            "minimum": 1,
            "type": "integer"
          },
          "thread": {
            "description": "The top-level blocking comment that starts the thread.",
            "format": "at-uri",
            "type": "string"
          },
          "threadCid": {
            "description": "The CID of that comment when the verdict was given.",
            "format": "cid",
            "type": "string"
          },
          "verdict": {
            "description": "stillApplies keeps the thread unresolved in this round, optionally at a new location; addressed and noLongerApplies resolve it.",
            "knownValues": [
              "stillApplies",
              "addressed",
              "noLongerApplies"
            ],
            "type": "string"
          }
        },
        "required": [
          "repositoryId",
          "pullRequestId",
          "number",
          "thread",
          "threadCid",
          "round",
          "baseCommit",
          "headCommit",
          "author",
          "verdict",
          "reason",
          "createdAt",
          "acceptedBy",
          "keyId",
          "receipt"
        ],
        "type": "object"
      },
      "type": "record"
    }
  },
  "description": "A verdict on a blocking Pull Request thread, bound to the round it was given in. Comment records are immutable, so verdicts accumulate as separate records. Whether a verdict decides the thread or only proposes is derived from its author's role when it is read: the thread's author and repository admins decide; the Pull Request author can only propose addressed or noLongerApplies.",
  "id": "dev.gitosphere.repository.pullRequestThreadDecision",
  "lexicon": 1
}
