{
  "type": "object",
  "additionalProperties": false,
  "properties": {
    "data": {
      "type": "object",
      "additionalProperties": false,
      "properties": {
        "snapshot": {
          "$ref": "#/components/schemas/ProjectAgentSourceSnapshot"
        },
        "files": {
          "type": "array",
          "items": {
            "type": "object",
            "additionalProperties": false,
            "properties": {
              "path": {
                "type": "string",
                "minLength": 1,
                "maxLength": 1024,
                "pattern": "^(?!/)(?!.*(?:^|/)\\.\\.?(?:/|$))[^\\\\\\u0000]+$"
              },
              "blobHash": {
                "type": "string",
                "maxLength": 128
              },
              "kind": {
                "type": "string",
                "enum": [
                  "file",
                  "directory",
                  "submodule"
                ]
              },
              "sha256": {
                "anyOf": [
                  {
                    "type": "string",
                    "pattern": "^[a-f0-9]{64}$"
                  },
                  {
                    "type": "null"
                  }
                ]
              },
              "capture": {
                "type": "string",
                "enum": [
                  "retained",
                  "uncaptured"
                ]
              },
              "base64": {
                "anyOf": [
                  {
                    "type": "string",
                    "maxLength": 25165824
                  },
                  {
                    "type": "null"
                  }
                ]
              }
            },
            "required": [
              "path",
              "blobHash",
              "kind",
              "sha256",
              "capture",
              "base64"
            ]
          },
          "maxItems": 100,
          "minItems": 0
        },
        "nextCursor": {
          "anyOf": [
            {
              "type": "string",
              "minLength": 1,
              "maxLength": 4096,
              "pattern": "^[^\\s]+$"
            },
            {
              "type": "null"
            }
          ]
        }
      },
      "required": [
        "snapshot",
        "files",
        "nextCursor"
      ]
    },
    "idempotencyReplayed": {
      "type": "boolean"
    }
  },
  "required": [
    "data"
  ]
}