{
  "type": "object",
  "properties": {
    "action": {
      "type": "string",
      "enum": [
        "create",
        "list",
        "candidates",
        "get",
        "revise",
        "manifest_get",
        "update",
        "archive",
        "restore",
        "revisions_list",
        "targets_list",
        "participant_set",
        "participant_remove",
        "discussion_list",
        "discussion_create",
        "discussion_comments",
        "discussion_reply",
        "request_review",
        "acceptance_request",
        "acceptance_get",
        "impact_compare",
        "activity",
        "feedback"
      ],
      "description": "Implemented domain action."
    },
    "input": {
      "type": "object",
      "description": "Exact action input including path identities."
    },
    "etag": {
      "type": "string",
      "maxLength": 1024,
      "description": "Exact resource ETag for conditional writes."
    },
    "idempotencyKey": {
      "type": "string",
      "maxLength": 200,
      "description": "Reuse only for the identical operation intent."
    }
  },
  "required": [
    "action",
    "input"
  ],
  "additionalProperties": false,
  "oneOf": [
    {
      "type": "object",
      "additionalProperties": false,
      "properties": {
        "action": {
          "const": "create"
        },
        "input": {
          "$ref": "#/$defs/createProjectReviewSessionInput"
        },
        "etag": {
          "type": "string",
          "maxLength": 1024
        },
        "idempotencyKey": {
          "type": "string",
          "maxLength": 200,
          "minLength": 1
        }
      },
      "required": [
        "action",
        "input",
        "idempotencyKey"
      ]
    },
    {
      "type": "object",
      "additionalProperties": false,
      "properties": {
        "action": {
          "const": "list"
        },
        "input": {
          "$ref": "#/$defs/listProjectReviewSessionsInput"
        },
        "etag": {
          "type": "string",
          "maxLength": 1024
        },
        "idempotencyKey": {
          "type": "string",
          "maxLength": 200,
          "minLength": 1
        }
      },
      "required": [
        "action",
        "input"
      ]
    },
    {
      "type": "object",
      "additionalProperties": false,
      "properties": {
        "action": {
          "const": "candidates"
        },
        "input": {
          "$ref": "#/$defs/listProjectReviewCandidatesInput"
        },
        "etag": {
          "type": "string",
          "maxLength": 1024
        },
        "idempotencyKey": {
          "type": "string",
          "maxLength": 200,
          "minLength": 1
        }
      },
      "required": [
        "action",
        "input"
      ]
    },
    {
      "type": "object",
      "additionalProperties": false,
      "properties": {
        "action": {
          "const": "get"
        },
        "input": {
          "$ref": "#/$defs/getProjectReviewSessionInput"
        },
        "etag": {
          "type": "string",
          "maxLength": 1024
        },
        "idempotencyKey": {
          "type": "string",
          "maxLength": 200,
          "minLength": 1
        }
      },
      "required": [
        "action",
        "input"
      ]
    },
    {
      "type": "object",
      "additionalProperties": false,
      "properties": {
        "action": {
          "const": "revise"
        },
        "input": {
          "$ref": "#/$defs/reviseProjectReviewSessionInput"
        },
        "etag": {
          "type": "string",
          "maxLength": 1024
        },
        "idempotencyKey": {
          "type": "string",
          "maxLength": 200,
          "minLength": 1
        }
      },
      "required": [
        "action",
        "input",
        "etag",
        "idempotencyKey"
      ]
    },
    {
      "type": "object",
      "additionalProperties": false,
      "properties": {
        "action": {
          "const": "manifest_get"
        },
        "input": {
          "$ref": "#/$defs/getProjectReviewManifestInput"
        },
        "etag": {
          "type": "string",
          "maxLength": 1024
        },
        "idempotencyKey": {
          "type": "string",
          "maxLength": 200,
          "minLength": 1
        }
      },
      "required": [
        "action",
        "input"
      ]
    },
    {
      "type": "object",
      "additionalProperties": false,
      "properties": {
        "action": {
          "const": "update"
        },
        "input": {
          "$ref": "#/$defs/updateProjectReviewSessionInput"
        },
        "etag": {
          "type": "string",
          "maxLength": 1024
        },
        "idempotencyKey": {
          "type": "string",
          "maxLength": 200,
          "minLength": 1
        }
      },
      "required": [
        "action",
        "input",
        "etag",
        "idempotencyKey"
      ]
    },
    {
      "type": "object",
      "additionalProperties": false,
      "properties": {
        "action": {
          "const": "archive"
        },
        "input": {
          "$ref": "#/$defs/archiveProjectReviewSessionInput"
        },
        "etag": {
          "type": "string",
          "maxLength": 1024
        },
        "idempotencyKey": {
          "type": "string",
          "maxLength": 200,
          "minLength": 1
        }
      },
      "required": [
        "action",
        "input",
        "etag",
        "idempotencyKey"
      ]
    },
    {
      "type": "object",
      "additionalProperties": false,
      "properties": {
        "action": {
          "const": "restore"
        },
        "input": {
          "$ref": "#/$defs/restoreProjectReviewSessionInput"
        },
        "etag": {
          "type": "string",
          "maxLength": 1024
        },
        "idempotencyKey": {
          "type": "string",
          "maxLength": 200,
          "minLength": 1
        }
      },
      "required": [
        "action",
        "input",
        "etag",
        "idempotencyKey"
      ]
    },
    {
      "type": "object",
      "additionalProperties": false,
      "properties": {
        "action": {
          "const": "revisions_list"
        },
        "input": {
          "$ref": "#/$defs/listProjectReviewRevisionsInput"
        },
        "etag": {
          "type": "string",
          "maxLength": 1024
        },
        "idempotencyKey": {
          "type": "string",
          "maxLength": 200,
          "minLength": 1
        }
      },
      "required": [
        "action",
        "input"
      ]
    },
    {
      "type": "object",
      "additionalProperties": false,
      "properties": {
        "action": {
          "const": "targets_list"
        },
        "input": {
          "$ref": "#/$defs/listProjectReviewTargetsInput"
        },
        "etag": {
          "type": "string",
          "maxLength": 1024
        },
        "idempotencyKey": {
          "type": "string",
          "maxLength": 200,
          "minLength": 1
        }
      },
      "required": [
        "action",
        "input"
      ]
    },
    {
      "type": "object",
      "additionalProperties": false,
      "properties": {
        "action": {
          "const": "participant_set"
        },
        "input": {
          "$ref": "#/$defs/setProjectReviewParticipantInput"
        },
        "etag": {
          "type": "string",
          "maxLength": 1024
        },
        "idempotencyKey": {
          "type": "string",
          "maxLength": 200,
          "minLength": 1
        }
      },
      "required": [
        "action",
        "input",
        "etag",
        "idempotencyKey"
      ]
    },
    {
      "type": "object",
      "additionalProperties": false,
      "properties": {
        "action": {
          "const": "participant_remove"
        },
        "input": {
          "$ref": "#/$defs/removeProjectReviewParticipantInput"
        },
        "etag": {
          "type": "string",
          "maxLength": 1024
        },
        "idempotencyKey": {
          "type": "string",
          "maxLength": 200,
          "minLength": 1
        }
      },
      "required": [
        "action",
        "input",
        "etag",
        "idempotencyKey"
      ]
    },
    {
      "type": "object",
      "additionalProperties": false,
      "properties": {
        "action": {
          "const": "discussion_list"
        },
        "input": {
          "$ref": "#/$defs/listProjectReviewDiscussionInput"
        },
        "etag": {
          "type": "string",
          "maxLength": 1024
        },
        "idempotencyKey": {
          "type": "string",
          "maxLength": 200,
          "minLength": 1
        }
      },
      "required": [
        "action",
        "input"
      ]
    },
    {
      "type": "object",
      "additionalProperties": false,
      "properties": {
        "action": {
          "const": "discussion_create"
        },
        "input": {
          "$ref": "#/$defs/createProjectReviewDiscussionInput"
        },
        "etag": {
          "type": "string",
          "maxLength": 1024
        },
        "idempotencyKey": {
          "type": "string",
          "maxLength": 200,
          "minLength": 1
        }
      },
      "required": [
        "action",
        "input",
        "etag",
        "idempotencyKey"
      ]
    },
    {
      "type": "object",
      "additionalProperties": false,
      "properties": {
        "action": {
          "const": "discussion_comments"
        },
        "input": {
          "$ref": "#/$defs/listProjectReviewDiscussionCommentsInput"
        },
        "etag": {
          "type": "string",
          "maxLength": 1024
        },
        "idempotencyKey": {
          "type": "string",
          "maxLength": 200,
          "minLength": 1
        }
      },
      "required": [
        "action",
        "input"
      ]
    },
    {
      "type": "object",
      "additionalProperties": false,
      "properties": {
        "action": {
          "const": "discussion_reply"
        },
        "input": {
          "$ref": "#/$defs/replyProjectReviewDiscussionInput"
        },
        "etag": {
          "type": "string",
          "maxLength": 1024
        },
        "idempotencyKey": {
          "type": "string",
          "maxLength": 200,
          "minLength": 1
        }
      },
      "required": [
        "action",
        "input",
        "etag",
        "idempotencyKey"
      ]
    },
    {
      "type": "object",
      "additionalProperties": false,
      "properties": {
        "action": {
          "const": "request_review"
        },
        "input": {
          "$ref": "#/$defs/requestProjectReviewInput"
        },
        "etag": {
          "type": "string",
          "maxLength": 1024
        },
        "idempotencyKey": {
          "type": "string",
          "maxLength": 200,
          "minLength": 1
        }
      },
      "required": [
        "action",
        "input",
        "etag",
        "idempotencyKey"
      ]
    },
    {
      "type": "object",
      "additionalProperties": false,
      "properties": {
        "action": {
          "const": "acceptance_request"
        },
        "input": {
          "$ref": "#/$defs/requestProjectAcceptanceInput"
        },
        "etag": {
          "type": "string",
          "maxLength": 1024
        },
        "idempotencyKey": {
          "type": "string",
          "maxLength": 200,
          "minLength": 1
        }
      },
      "required": [
        "action",
        "input",
        "etag",
        "idempotencyKey"
      ]
    },
    {
      "type": "object",
      "additionalProperties": false,
      "properties": {
        "action": {
          "const": "acceptance_get"
        },
        "input": {
          "$ref": "#/$defs/getProjectAcceptanceInput"
        },
        "etag": {
          "type": "string",
          "maxLength": 1024
        },
        "idempotencyKey": {
          "type": "string",
          "maxLength": 200,
          "minLength": 1
        }
      },
      "required": [
        "action",
        "input"
      ]
    },
    {
      "type": "object",
      "additionalProperties": false,
      "properties": {
        "action": {
          "const": "impact_compare"
        },
        "input": {
          "$ref": "#/$defs/compareProjectReviewRevisionsInput"
        },
        "etag": {
          "type": "string",
          "maxLength": 1024
        },
        "idempotencyKey": {
          "type": "string",
          "maxLength": 200,
          "minLength": 1
        }
      },
      "required": [
        "action",
        "input"
      ]
    },
    {
      "type": "object",
      "additionalProperties": false,
      "properties": {
        "action": {
          "const": "activity"
        },
        "input": {
          "$ref": "#/$defs/listProjectReviewActivityInput"
        },
        "etag": {
          "type": "string",
          "maxLength": 1024
        },
        "idempotencyKey": {
          "type": "string",
          "maxLength": 200,
          "minLength": 1
        }
      },
      "required": [
        "action",
        "input"
      ]
    },
    {
      "type": "object",
      "additionalProperties": false,
      "properties": {
        "action": {
          "const": "feedback"
        },
        "input": {
          "$ref": "#/$defs/listProjectReviewFeedbackInput"
        },
        "etag": {
          "type": "string",
          "maxLength": 1024
        },
        "idempotencyKey": {
          "type": "string",
          "maxLength": 200,
          "minLength": 1
        }
      },
      "required": [
        "action",
        "input"
      ]
    }
  ],
  "$defs": {
    "createProjectReviewSessionInput": {
      "type": "object",
      "additionalProperties": false,
      "properties": {
        "workspaceId": {
          "type": "string",
          "minLength": 1,
          "maxLength": 512,
          "pattern": "^[^\\s]+$"
        },
        "title": {
          "type": "string",
          "maxLength": 200
        },
        "purposeMarkdown": {
          "type": "string",
          "maxLength": 32768
        },
        "visibility": {
          "type": "string",
          "enum": [
            "workspace",
            "participants"
          ]
        },
        "targets": {
          "type": "array",
          "items": {
            "$ref": "#/$defs/ExactTarget"
          },
          "maxItems": 100,
          "minItems": 1
        },
        "collaboration": {
          "type": "object",
          "additionalProperties": false,
          "properties": {
            "polls": {
              "type": "boolean",
              "default": false
            },
            "consensus": {
              "type": "object",
              "additionalProperties": false,
              "properties": {
                "enabled": {
                  "type": "boolean",
                  "default": false
                },
                "rule": {
                  "type": "object",
                  "additionalProperties": false,
                  "properties": {
                    "mode": {
                      "enum": [
                        "owner_decides",
                        "no_open_blockers",
                        "n_of_m",
                        "required_reviewers"
                      ]
                    },
                    "agreementThreshold": {
                      "type": "integer",
                      "minimum": 1,
                      "maximum": 1000
                    },
                    "minResponseCount": {
                      "type": "integer",
                      "minimum": 1,
                      "maximum": 1000
                    },
                    "requiredReviewerIds": {
                      "type": "array",
                      "maxItems": 1000,
                      "uniqueItems": true,
                      "items": {
                        "type": "string"
                      }
                    },
                    "delegatedOwnerAgentParticipantId": {
                      "type": [
                        "string",
                        "null"
                      ]
                    },
                    "requiredReviewerCondition": {
                      "enum": [
                        "all_required_agree",
                        "no_required_objects",
                        "owner_plus_one_required_agrees",
                        "threshold_no_blockers"
                      ]
                    },
                    "objectionPolicy": {
                      "enum": [
                        "block",
                        "owner_decision",
                        "ignore"
                      ]
                    },
                    "countOwnerAgreement": {
                      "type": "boolean"
                    },
                    "countAgentSignals": {
                      "type": "boolean",
                      "default": false
                    },
                    "decisionPollCompletion": {
                      "enum": [
                        "closed",
                        "threshold"
                      ],
                      "default": "closed"
                    }
                  }
                },
                "gate": {
                  "type": "object",
                  "additionalProperties": false,
                  "properties": {
                    "minimumHumanApprovals": {
                      "type": "integer",
                      "minimum": 0,
                      "maximum": 1000
                    },
                    "requiredReviewerIds": {
                      "type": "array",
                      "uniqueItems": true,
                      "maxItems": 1000,
                      "items": {
                        "type": "string"
                      }
                    },
                    "quorum": {
                      "anyOf": [
                        {
                          "type": "null"
                        },
                        {
                          "type": "object",
                          "properties": {
                            "group": {
                              "enum": [
                                "owner",
                                "invited_reviewers",
                                "all_human_reviewers"
                              ]
                            },
                            "minimum": {
                              "type": "integer",
                              "minimum": 1,
                              "maximum": 1000
                            }
                          },
                          "required": [
                            "group",
                            "minimum"
                          ],
                          "additionalProperties": false
                        }
                      ]
                    },
                    "fileRequirement": {
                      "oneOf": [
                        {
                          "type": "object",
                          "properties": {
                            "mode": {
                              "enum": [
                                "none",
                                "all"
                              ]
                            }
                          },
                          "required": [
                            "mode"
                          ],
                          "additionalProperties": false
                        },
                        {
                          "type": "object",
                          "properties": {
                            "mode": {
                              "const": "selected"
                            },
                            "filePaths": {
                              "type": "array",
                              "maxItems": 10000,
                              "uniqueItems": true,
                              "items": {
                                "type": "string"
                              }
                            }
                          },
                          "required": [
                            "mode",
                            "filePaths"
                          ],
                          "additionalProperties": false
                        }
                      ]
                    },
                    "agentMode": {
                      "enum": [
                        "prepare_only",
                        "wait_before_implementation"
                      ]
                    }
                  }
                }
              }
            }
          }
        }
      },
      "required": [
        "workspaceId",
        "title",
        "targets"
      ]
    },
    "ExactTarget": {
      "type": "object",
      "additionalProperties": false,
      "properties": {
        "resource": {
          "$ref": "#/$defs/Resource"
        },
        "revisionId": {
          "type": "string",
          "minLength": 1,
          "maxLength": 512,
          "pattern": "^[^\\s]+$"
        },
        "sha256": {
          "type": "string",
          "pattern": "^[a-f0-9]{64}$"
        },
        "purpose": {
          "type": "string",
          "maxLength": 200
        }
      },
      "required": [
        "resource",
        "revisionId",
        "sha256"
      ]
    },
    "Resource": {
      "type": "object",
      "additionalProperties": false,
      "properties": {
        "type": {
          "type": "string",
          "enum": [
            "repository",
            "pull_request",
            "document",
            "draft_review",
            "form",
            "research_study",
            "knowledge_brain",
            "web_app_review",
            "project",
            "tracker",
            "review_package",
            "project_review_session",
            "source_snapshot"
          ]
        },
        "id": {
          "type": "string",
          "minLength": 1,
          "maxLength": 512,
          "pattern": "^[^\\s]+$"
        }
      },
      "required": [
        "type",
        "id"
      ]
    },
    "createProjectReviewSessionOutput": {
      "type": "object",
      "additionalProperties": false,
      "properties": {
        "data": {
          "$ref": "#/$defs/ReviewSession"
        },
        "idempotencyReplayed": {
          "type": "boolean"
        }
      },
      "required": [
        "data"
      ]
    },
    "ReviewSession": {
      "type": "object",
      "additionalProperties": false,
      "properties": {
        "id": {
          "type": "string",
          "minLength": 1,
          "maxLength": 512,
          "pattern": "^[^\\s]+$"
        },
        "initialWorkspaceId": {
          "type": "string",
          "minLength": 1,
          "maxLength": 512,
          "pattern": "^[^\\s]+$"
        },
        "ownerViewerId": {
          "type": "string",
          "minLength": 1,
          "maxLength": 512,
          "pattern": "^[^\\s]+$"
        },
        "title": {
          "type": "string",
          "maxLength": 200
        },
        "purposeMarkdown": {
          "type": "string",
          "maxLength": 32768
        },
        "version": {
          "type": "integer",
          "minimum": 1,
          "maximum": 9007199254740991
        },
        "manifest": {
          "$ref": "#/$defs/ReviewManifest"
        },
        "manifestSha256": {
          "type": "string",
          "pattern": "^[a-f0-9]{64}$"
        },
        "revisionSetFingerprint": {
          "type": "string",
          "pattern": "^[a-f0-9]{64}$"
        },
        "visibility": {
          "type": "string",
          "enum": [
            "workspace",
            "participants"
          ]
        },
        "lifecycle": {
          "type": "string",
          "enum": [
            "active",
            "archived"
          ]
        },
        "createdAt": {
          "type": "string",
          "pattern": "^\\d{4}-\\d{2}-\\d{2}T\\d{2}:\\d{2}:\\d{2}(?:\\.\\d+)?(?:Z|[+-]\\d{2}:\\d{2})$"
        },
        "updatedAt": {
          "type": "string",
          "pattern": "^\\d{4}-\\d{2}-\\d{2}T\\d{2}:\\d{2}:\\d{2}(?:\\.\\d+)?(?:Z|[+-]\\d{2}:\\d{2})$"
        },
        "archivedAt": {
          "anyOf": [
            {
              "type": "string",
              "pattern": "^\\d{4}-\\d{2}-\\d{2}T\\d{2}:\\d{2}:\\d{2}(?:\\.\\d+)?(?:Z|[+-]\\d{2}:\\d{2})$"
            },
            {
              "type": "null"
            }
          ]
        },
        "discussionThreadId": {
          "type": "string",
          "minLength": 1,
          "maxLength": 512,
          "pattern": "^[^\\s]+$"
        },
        "collaboration": {
          "type": "object",
          "required": [
            "review",
            "settings",
            "permissions",
            "providerSync",
            "revisionKey"
          ],
          "properties": {
            "review": {
              "oneOf": [
                {
                  "type": "object",
                  "properties": {
                    "kind": {
                      "const": "draft"
                    },
                    "id": {
                      "type": "string",
                      "minLength": 1,
                      "maxLength": 1000
                    }
                  },
                  "required": [
                    "kind",
                    "id"
                  ],
                  "additionalProperties": false
                },
                {
                  "type": "object",
                  "properties": {
                    "kind": {
                      "const": "package"
                    },
                    "id": {
                      "type": "string",
                      "minLength": 1,
                      "maxLength": 1000
                    }
                  },
                  "required": [
                    "kind",
                    "id"
                  ],
                  "additionalProperties": false
                },
                {
                  "type": "object",
                  "properties": {
                    "kind": {
                      "const": "guide"
                    },
                    "id": {
                      "type": "string",
                      "minLength": 1,
                      "maxLength": 1000
                    }
                  },
                  "required": [
                    "kind",
                    "id"
                  ],
                  "additionalProperties": false
                },
                {
                  "type": "object",
                  "properties": {
                    "kind": {
                      "const": "snapshot"
                    },
                    "id": {
                      "type": "string",
                      "minLength": 1,
                      "maxLength": 1000
                    }
                  },
                  "required": [
                    "kind",
                    "id"
                  ],
                  "additionalProperties": false
                },
                {
                  "type": "object",
                  "properties": {
                    "kind": {
                      "const": "preview"
                    },
                    "id": {
                      "type": "string",
                      "minLength": 1,
                      "maxLength": 1000
                    }
                  },
                  "required": [
                    "kind",
                    "id"
                  ],
                  "additionalProperties": false
                },
                {
                  "type": "object",
                  "properties": {
                    "kind": {
                      "const": "pr"
                    },
                    "provider": {
                      "enum": [
                        "github",
                        "azure_devops"
                      ]
                    },
                    "owner": {
                      "type": "string"
                    },
                    "repo": {
                      "type": "string"
                    },
                    "projectName": {
                      "type": [
                        "string",
                        "null"
                      ]
                    },
                    "prNumber": {
                      "type": "integer",
                      "minimum": 1
                    }
                  },
                  "required": [
                    "kind",
                    "provider",
                    "owner",
                    "repo",
                    "prNumber"
                  ],
                  "additionalProperties": false
                },
                {
                  "type": "object",
                  "properties": {
                    "kind": {
                      "const": "branch"
                    },
                    "provider": {
                      "enum": [
                        "github",
                        "azure_devops"
                      ]
                    },
                    "owner": {
                      "type": "string"
                    },
                    "repo": {
                      "type": "string"
                    },
                    "projectName": {
                      "type": [
                        "string",
                        "null"
                      ]
                    },
                    "branchRef": {
                      "type": "string"
                    }
                  },
                  "required": [
                    "kind",
                    "provider",
                    "owner",
                    "repo",
                    "branchRef"
                  ],
                  "additionalProperties": false
                }
              ]
            },
            "settings": {
              "type": "object",
              "required": [
                "version",
                "polls",
                "consensus"
              ],
              "properties": {
                "version": {
                  "type": "integer",
                  "minimum": 0
                },
                "polls": {
                  "type": "boolean"
                },
                "consensus": {
                  "type": "object"
                }
              },
              "additionalProperties": false
            },
            "permissions": {
              "type": "object",
              "properties": {
                "comment": {
                  "type": "boolean"
                },
                "configure": {
                  "type": "boolean"
                },
                "humanSignOff": {
                  "type": "boolean"
                }
              }
            },
            "providerSync": {
              "type": "object",
              "properties": {
                "comments": {
                  "type": "boolean"
                },
                "pollSnapshots": {
                  "type": "boolean"
                },
                "liveVotes": {
                  "const": false
                },
                "decisions": {
                  "const": false
                }
              }
            },
            "revisionKey": {
              "type": [
                "string",
                "null"
              ]
            },
            "filePaths": {
              "type": "array",
              "items": {
                "type": "string"
              }
            },
            "participants": {
              "type": "array",
              "items": {
                "type": "object"
              }
            }
          },
          "additionalProperties": false
        }
      },
      "required": [
        "id",
        "initialWorkspaceId",
        "ownerViewerId",
        "title",
        "purposeMarkdown",
        "version",
        "manifest",
        "manifestSha256",
        "revisionSetFingerprint",
        "visibility",
        "lifecycle",
        "createdAt",
        "updatedAt",
        "archivedAt"
      ]
    },
    "ReviewManifest": {
      "type": "object",
      "additionalProperties": false,
      "properties": {
        "manifestVersion": {
          "const": 1
        },
        "sessionId": {
          "type": "string",
          "minLength": 1,
          "maxLength": 512,
          "pattern": "^[^\\s]+$"
        },
        "revisionId": {
          "type": "string",
          "minLength": 1,
          "maxLength": 512,
          "pattern": "^[^\\s]+$"
        },
        "targets": {
          "type": "array",
          "items": {
            "$ref": "#/$defs/ExactTarget"
          },
          "maxItems": 100,
          "minItems": 0
        }
      },
      "required": [
        "manifestVersion",
        "sessionId",
        "revisionId",
        "targets"
      ]
    },
    "listProjectReviewSessionsInput": {
      "type": "object",
      "additionalProperties": false,
      "properties": {
        "workspaceId": {
          "type": "string",
          "minLength": 1,
          "maxLength": 512,
          "pattern": "^[^\\s]+$"
        },
        "cursor": {
          "type": "string",
          "minLength": 1,
          "maxLength": 2048,
          "pattern": "^[^\\s]+$"
        },
        "limit": {
          "type": "integer",
          "minimum": 1,
          "maximum": 100
        }
      },
      "required": [
        "workspaceId"
      ]
    },
    "listProjectReviewSessionsOutput": {
      "type": "object",
      "additionalProperties": false,
      "properties": {
        "data": {
          "type": "object",
          "additionalProperties": false,
          "properties": {
            "items": {
              "type": "array",
              "items": {
                "$ref": "#/$defs/ReviewSession"
              },
              "maxItems": 100,
              "minItems": 0
            },
            "nextCursor": {
              "anyOf": [
                {
                  "type": "string",
                  "minLength": 1,
                  "maxLength": 2048,
                  "pattern": "^[^\\s]+$"
                },
                {
                  "type": "null"
                }
              ]
            }
          },
          "required": [
            "items",
            "nextCursor"
          ]
        },
        "idempotencyReplayed": {
          "type": "boolean"
        }
      },
      "required": [
        "data"
      ]
    },
    "listProjectReviewCandidatesInput": {
      "type": "object",
      "additionalProperties": false,
      "properties": {
        "workspaceId": {
          "type": "string",
          "minLength": 1,
          "maxLength": 512,
          "pattern": "^[^\\s]+$"
        },
        "cursor": {
          "type": "string",
          "minLength": 1,
          "maxLength": 2048,
          "pattern": "^[^\\s]+$"
        },
        "limit": {
          "type": "integer",
          "minimum": 1,
          "maximum": 100
        }
      },
      "required": [
        "workspaceId"
      ]
    },
    "listProjectReviewCandidatesOutput": {
      "type": "object",
      "additionalProperties": false,
      "properties": {
        "data": {
          "type": "object",
          "additionalProperties": false,
          "properties": {
            "items": {
              "type": "array",
              "items": {
                "$ref": "#/$defs/ExactTarget"
              },
              "maxItems": 100,
              "minItems": 0
            },
            "nextCursor": {
              "anyOf": [
                {
                  "type": "string",
                  "minLength": 1,
                  "maxLength": 2048,
                  "pattern": "^[^\\s]+$"
                },
                {
                  "type": "null"
                }
              ]
            }
          },
          "required": [
            "items",
            "nextCursor"
          ]
        },
        "idempotencyReplayed": {
          "type": "boolean"
        }
      },
      "required": [
        "data"
      ]
    },
    "getProjectReviewSessionInput": {
      "type": "object",
      "additionalProperties": false,
      "properties": {
        "sessionId": {
          "type": "string",
          "minLength": 1,
          "maxLength": 512,
          "pattern": "^[^\\s]+$"
        }
      },
      "required": [
        "sessionId"
      ]
    },
    "getProjectReviewSessionOutput": {
      "type": "object",
      "additionalProperties": false,
      "properties": {
        "data": {
          "$ref": "#/$defs/ReviewSession"
        },
        "idempotencyReplayed": {
          "type": "boolean"
        }
      },
      "required": [
        "data"
      ]
    },
    "reviseProjectReviewSessionInput": {
      "type": "object",
      "additionalProperties": false,
      "properties": {
        "sessionId": {
          "type": "string",
          "minLength": 1,
          "maxLength": 512,
          "pattern": "^[^\\s]+$"
        },
        "title": {
          "type": "string",
          "maxLength": 200
        },
        "purposeMarkdown": {
          "type": "string",
          "maxLength": 32768
        },
        "targets": {
          "type": "array",
          "items": {
            "$ref": "#/$defs/ExactTarget"
          },
          "maxItems": 100,
          "minItems": 1
        }
      },
      "required": [
        "sessionId",
        "targets"
      ]
    },
    "reviseProjectReviewSessionOutput": {
      "type": "object",
      "additionalProperties": false,
      "properties": {
        "data": {
          "$ref": "#/$defs/ReviewSession"
        },
        "idempotencyReplayed": {
          "type": "boolean"
        }
      },
      "required": [
        "data"
      ]
    },
    "getProjectReviewManifestInput": {
      "type": "object",
      "additionalProperties": false,
      "properties": {
        "sessionId": {
          "type": "string",
          "minLength": 1,
          "maxLength": 512,
          "pattern": "^[^\\s]+$"
        },
        "revisionId": {
          "type": "string",
          "minLength": 1,
          "maxLength": 512,
          "pattern": "^[^\\s]+$"
        }
      },
      "required": [
        "sessionId",
        "revisionId"
      ]
    },
    "getProjectReviewManifestOutput": {
      "type": "object",
      "additionalProperties": false,
      "properties": {
        "data": {
          "$ref": "#/$defs/ReviewManifest"
        },
        "idempotencyReplayed": {
          "type": "boolean"
        }
      },
      "required": [
        "data"
      ]
    },
    "updateProjectReviewSessionInput": {
      "type": "object",
      "additionalProperties": false,
      "properties": {
        "sessionId": {
          "type": "string",
          "minLength": 1,
          "maxLength": 512,
          "pattern": "^[^\\s]+$"
        },
        "title": {
          "type": "string",
          "maxLength": 200
        },
        "purposeMarkdown": {
          "type": "string",
          "maxLength": 32768
        },
        "visibility": {
          "type": "string",
          "enum": [
            "workspace",
            "participants"
          ]
        }
      },
      "required": [
        "sessionId"
      ]
    },
    "updateProjectReviewSessionOutput": {
      "type": "object",
      "additionalProperties": false,
      "properties": {
        "data": {
          "$ref": "#/$defs/ReviewSession"
        },
        "idempotencyReplayed": {
          "type": "boolean"
        }
      },
      "required": [
        "data"
      ]
    },
    "archiveProjectReviewSessionInput": {
      "type": "object",
      "additionalProperties": false,
      "properties": {
        "sessionId": {
          "type": "string",
          "minLength": 1,
          "maxLength": 512,
          "pattern": "^[^\\s]+$"
        }
      },
      "required": [
        "sessionId"
      ]
    },
    "archiveProjectReviewSessionOutput": {
      "type": "object",
      "additionalProperties": false,
      "properties": {
        "data": {
          "$ref": "#/$defs/ReviewSession"
        },
        "idempotencyReplayed": {
          "type": "boolean"
        }
      },
      "required": [
        "data"
      ]
    },
    "restoreProjectReviewSessionInput": {
      "type": "object",
      "additionalProperties": false,
      "properties": {
        "sessionId": {
          "type": "string",
          "minLength": 1,
          "maxLength": 512,
          "pattern": "^[^\\s]+$"
        }
      },
      "required": [
        "sessionId"
      ]
    },
    "restoreProjectReviewSessionOutput": {
      "type": "object",
      "additionalProperties": false,
      "properties": {
        "data": {
          "$ref": "#/$defs/ReviewSession"
        },
        "idempotencyReplayed": {
          "type": "boolean"
        }
      },
      "required": [
        "data"
      ]
    },
    "listProjectReviewRevisionsInput": {
      "type": "object",
      "additionalProperties": false,
      "properties": {
        "sessionId": {
          "type": "string",
          "minLength": 1,
          "maxLength": 512,
          "pattern": "^[^\\s]+$"
        },
        "cursor": {
          "type": "string",
          "minLength": 1,
          "maxLength": 2048,
          "pattern": "^[^\\s]+$"
        },
        "limit": {
          "type": "integer",
          "minimum": 1,
          "maximum": 100
        }
      },
      "required": [
        "sessionId"
      ]
    },
    "listProjectReviewRevisionsOutput": {
      "type": "object",
      "additionalProperties": false,
      "properties": {
        "data": {
          "type": "object",
          "additionalProperties": false,
          "properties": {
            "items": {
              "type": "array",
              "items": {
                "$ref": "#/$defs/ReviewManifest"
              },
              "maxItems": 100,
              "minItems": 0
            },
            "nextCursor": {
              "anyOf": [
                {
                  "type": "string",
                  "minLength": 1,
                  "maxLength": 2048,
                  "pattern": "^[^\\s]+$"
                },
                {
                  "type": "null"
                }
              ]
            }
          },
          "required": [
            "items",
            "nextCursor"
          ]
        },
        "idempotencyReplayed": {
          "type": "boolean"
        }
      },
      "required": [
        "data"
      ]
    },
    "listProjectReviewTargetsInput": {
      "type": "object",
      "additionalProperties": false,
      "properties": {
        "sessionId": {
          "type": "string",
          "minLength": 1,
          "maxLength": 512,
          "pattern": "^[^\\s]+$"
        },
        "cursor": {
          "type": "string",
          "minLength": 1,
          "maxLength": 2048,
          "pattern": "^[^\\s]+$"
        },
        "limit": {
          "type": "integer",
          "minimum": 1,
          "maximum": 100
        }
      },
      "required": [
        "sessionId"
      ]
    },
    "listProjectReviewTargetsOutput": {
      "type": "object",
      "additionalProperties": false,
      "properties": {
        "data": {
          "type": "object",
          "additionalProperties": false,
          "properties": {
            "items": {
              "type": "array",
              "items": {
                "$ref": "#/$defs/ReviewTargetState"
              },
              "maxItems": 100,
              "minItems": 0
            },
            "total": {
              "type": "integer",
              "minimum": 0,
              "maximum": 9007199254740991
            },
            "nextCursor": {
              "anyOf": [
                {
                  "type": "string",
                  "minLength": 1,
                  "maxLength": 512,
                  "pattern": "^[^\\s]+$"
                },
                {
                  "type": "null"
                }
              ]
            }
          },
          "required": [
            "items",
            "total",
            "nextCursor"
          ]
        },
        "idempotencyReplayed": {
          "type": "boolean"
        }
      },
      "required": [
        "data"
      ]
    },
    "ReviewTargetState": {
      "type": "object",
      "additionalProperties": false,
      "properties": {
        "target": {
          "$ref": "#/$defs/ExactTarget"
        },
        "status": {
          "type": "string",
          "enum": [
            "available",
            "unavailable"
          ]
        }
      },
      "required": [
        "target",
        "status"
      ]
    },
    "setProjectReviewParticipantInput": {
      "type": "object",
      "additionalProperties": false,
      "properties": {
        "sessionId": {
          "type": "string",
          "minLength": 1,
          "maxLength": 512,
          "pattern": "^[^\\s]+$"
        },
        "actor": {
          "type": "object",
          "additionalProperties": false,
          "properties": {
            "type": {
              "type": "string",
              "enum": [
                "user",
                "agent"
              ]
            },
            "id": {
              "type": "string",
              "minLength": 1,
              "maxLength": 512,
              "pattern": "^[^\\s]+$"
            }
          },
          "required": [
            "type",
            "id"
          ]
        },
        "role": {
          "type": "string",
          "enum": [
            "manager",
            "contributor",
            "reviewer"
          ]
        },
        "grantId": {
          "type": "string",
          "minLength": 1,
          "maxLength": 512,
          "pattern": "^[^\\s]+$"
        }
      },
      "required": [
        "sessionId",
        "actor",
        "role"
      ]
    },
    "setProjectReviewParticipantOutput": {
      "type": "object",
      "additionalProperties": false,
      "properties": {
        "data": {
          "$ref": "#/$defs/ReviewSession"
        },
        "idempotencyReplayed": {
          "type": "boolean"
        }
      },
      "required": [
        "data"
      ]
    },
    "removeProjectReviewParticipantInput": {
      "type": "object",
      "additionalProperties": false,
      "properties": {
        "sessionId": {
          "type": "string",
          "minLength": 1,
          "maxLength": 512,
          "pattern": "^[^\\s]+$"
        },
        "actor": {
          "type": "object",
          "additionalProperties": false,
          "properties": {
            "type": {
              "type": "string",
              "enum": [
                "user",
                "agent"
              ]
            },
            "id": {
              "type": "string",
              "minLength": 1,
              "maxLength": 512,
              "pattern": "^[^\\s]+$"
            }
          },
          "required": [
            "type",
            "id"
          ]
        }
      },
      "required": [
        "sessionId",
        "actor"
      ]
    },
    "removeProjectReviewParticipantOutput": {
      "type": "object",
      "additionalProperties": false,
      "properties": {
        "data": {
          "$ref": "#/$defs/ReviewSession"
        },
        "idempotencyReplayed": {
          "type": "boolean"
        }
      },
      "required": [
        "data"
      ]
    },
    "listProjectReviewDiscussionInput": {
      "type": "object",
      "additionalProperties": false,
      "properties": {
        "sessionId": {
          "type": "string",
          "minLength": 1,
          "maxLength": 512,
          "pattern": "^[^\\s]+$"
        },
        "cursor": {
          "type": "string",
          "minLength": 1,
          "maxLength": 2048,
          "pattern": "^[^\\s]+$"
        },
        "limit": {
          "type": "integer",
          "minimum": 1,
          "maximum": 100
        }
      },
      "required": [
        "sessionId"
      ]
    },
    "listProjectReviewDiscussionOutput": {
      "type": "object",
      "additionalProperties": false,
      "properties": {
        "data": {
          "type": "object",
          "additionalProperties": false,
          "properties": {
            "items": {
              "type": "array",
              "items": {
                "$ref": "#/$defs/SessionDiscussion"
              },
              "maxItems": 100,
              "minItems": 0
            },
            "nextCursor": {
              "anyOf": [
                {
                  "type": "string",
                  "minLength": 1,
                  "maxLength": 2048,
                  "pattern": "^[^\\s]+$"
                },
                {
                  "type": "null"
                }
              ]
            }
          },
          "required": [
            "items",
            "nextCursor"
          ]
        },
        "idempotencyReplayed": {
          "type": "boolean"
        }
      },
      "required": [
        "data"
      ]
    },
    "SessionDiscussion": {
      "type": "object",
      "additionalProperties": false,
      "properties": {
        "threadId": {
          "type": "string",
          "minLength": 1,
          "maxLength": 512,
          "pattern": "^[^\\s]+$"
        },
        "revisionId": {
          "type": "string",
          "minLength": 1,
          "maxLength": 512,
          "pattern": "^[^\\s]+$"
        },
        "comments": {
          "type": "array",
          "items": {
            "$ref": "#/$defs/SessionDiscussionComment"
          },
          "maxItems": 100,
          "minItems": 0
        },
        "hasOlderComments": {
          "type": "boolean"
        },
        "context": {
          "$ref": "#/$defs/ReviewArtifactContext"
        }
      },
      "required": [
        "threadId",
        "revisionId",
        "comments",
        "hasOlderComments"
      ]
    },
    "SessionDiscussionComment": {
      "type": "object",
      "additionalProperties": false,
      "properties": {
        "id": {
          "type": "string",
          "minLength": 1,
          "maxLength": 512,
          "pattern": "^[^\\s]+$"
        },
        "bodyMarkdown": {
          "type": "string",
          "maxLength": 20000
        },
        "actor": {
          "$ref": "#/$defs/Actor"
        },
        "createdAt": {
          "type": "string",
          "pattern": "^\\d{4}-\\d{2}-\\d{2}T\\d{2}:\\d{2}:\\d{2}(?:\\.\\d+)?(?:Z|[+-]\\d{2}:\\d{2})$"
        },
        "actorLabel": {
          "type": "string",
          "maxLength": 200
        }
      },
      "required": [
        "id",
        "bodyMarkdown",
        "actor",
        "createdAt"
      ]
    },
    "Actor": {
      "type": "object",
      "additionalProperties": false,
      "properties": {
        "type": {
          "type": "string",
          "enum": [
            "user",
            "agent",
            "service",
            "system"
          ]
        },
        "id": {
          "type": "string",
          "minLength": 1,
          "maxLength": 512,
          "pattern": "^[^\\s]+$"
        }
      },
      "required": [
        "type",
        "id"
      ]
    },
    "ReviewArtifactContext": {
      "type": "object",
      "additionalProperties": false,
      "properties": {
        "sessionRevisionId": {
          "type": "string",
          "minLength": 1,
          "maxLength": 512,
          "pattern": "^[^\\s]+$"
        },
        "target": {
          "$ref": "#/$defs/ExactTarget"
        },
        "file": {
          "anyOf": [
            {
              "type": "string",
              "minLength": 1,
              "maxLength": 1000,
              "pattern": "^(?!/)(?!.*(?:^|/)\\.\\.?(?:/|$))[^\\\\\\u0000]+$"
            },
            {
              "type": "null"
            }
          ]
        },
        "anchor": {
          "anyOf": [
            {
              "type": "string",
              "maxLength": 500,
              "pattern": "^[^\\u0000-\\u001f]*$"
            },
            {
              "type": "null"
            }
          ]
        },
        "lineStart": {
          "type": "integer",
          "minimum": 1,
          "maximum": 9007199254740991
        },
        "lineEnd": {
          "type": "integer",
          "minimum": 1,
          "maximum": 9007199254740991
        },
        "mapping": {
          "type": "string",
          "maxLength": 650,
          "minLength": 1,
          "pattern": "^[^\\u0000-\\u001f]+$"
        },
        "mappedSource": {
          "type": "integer",
          "minimum": 0,
          "maximum": 9
        }
      },
      "required": [
        "sessionRevisionId",
        "target"
      ]
    },
    "createProjectReviewDiscussionInput": {
      "type": "object",
      "additionalProperties": false,
      "properties": {
        "sessionId": {
          "type": "string",
          "minLength": 1,
          "maxLength": 512,
          "pattern": "^[^\\s]+$"
        },
        "bodyMarkdown": {
          "type": "string",
          "maxLength": 20000
        },
        "context": {
          "$ref": "#/$defs/ReviewArtifactContext"
        },
        "requestDecision": {
          "type": "boolean"
        },
        "poll": {
          "type": "object"
        }
      },
      "required": [
        "sessionId",
        "bodyMarkdown"
      ]
    },
    "createProjectReviewDiscussionOutput": {
      "type": "object",
      "additionalProperties": false,
      "properties": {
        "data": {
          "$ref": "#/$defs/ReviewSession"
        },
        "idempotencyReplayed": {
          "type": "boolean"
        }
      },
      "required": [
        "data"
      ]
    },
    "listProjectReviewDiscussionCommentsInput": {
      "type": "object",
      "additionalProperties": false,
      "properties": {
        "sessionId": {
          "type": "string",
          "minLength": 1,
          "maxLength": 512,
          "pattern": "^[^\\s]+$"
        },
        "threadId": {
          "type": "string",
          "minLength": 1,
          "maxLength": 512,
          "pattern": "^[^\\s]+$"
        },
        "cursor": {
          "type": "string",
          "minLength": 1,
          "maxLength": 2048,
          "pattern": "^[^\\s]+$"
        },
        "limit": {
          "type": "integer",
          "minimum": 1,
          "maximum": 100
        }
      },
      "required": [
        "sessionId",
        "threadId"
      ]
    },
    "listProjectReviewDiscussionCommentsOutput": {
      "type": "object",
      "additionalProperties": false,
      "properties": {
        "data": {
          "type": "object",
          "additionalProperties": false,
          "properties": {
            "items": {
              "type": "array",
              "items": {
                "$ref": "#/$defs/SessionDiscussionComment"
              },
              "maxItems": 100,
              "minItems": 0
            },
            "nextCursor": {
              "anyOf": [
                {
                  "type": "string",
                  "minLength": 1,
                  "maxLength": 2048,
                  "pattern": "^[^\\s]+$"
                },
                {
                  "type": "null"
                }
              ]
            }
          },
          "required": [
            "items",
            "nextCursor"
          ]
        },
        "idempotencyReplayed": {
          "type": "boolean"
        }
      },
      "required": [
        "data"
      ]
    },
    "replyProjectReviewDiscussionInput": {
      "type": "object",
      "additionalProperties": false,
      "properties": {
        "sessionId": {
          "type": "string",
          "minLength": 1,
          "maxLength": 512,
          "pattern": "^[^\\s]+$"
        },
        "threadId": {
          "type": "string",
          "minLength": 1,
          "maxLength": 512,
          "pattern": "^[^\\s]+$"
        },
        "bodyMarkdown": {
          "type": "string",
          "maxLength": 20000
        }
      },
      "required": [
        "sessionId",
        "threadId",
        "bodyMarkdown"
      ]
    },
    "replyProjectReviewDiscussionOutput": {
      "type": "object",
      "additionalProperties": false,
      "properties": {
        "data": {
          "$ref": "#/$defs/ReviewSession"
        },
        "idempotencyReplayed": {
          "type": "boolean"
        }
      },
      "required": [
        "data"
      ]
    },
    "requestProjectReviewInput": {
      "type": "object",
      "additionalProperties": false,
      "properties": {
        "sessionId": {
          "type": "string",
          "minLength": 1,
          "maxLength": 512,
          "pattern": "^[^\\s]+$"
        },
        "manifestSha256": {
          "type": "string",
          "pattern": "^[a-f0-9]{64}$"
        },
        "recipientIds": {
          "type": "array",
          "items": {
            "type": "string",
            "minLength": 1,
            "maxLength": 512,
            "pattern": "^[^\\s]+$"
          },
          "maxItems": 100,
          "minItems": 1
        },
        "messageMarkdown": {
          "type": "string",
          "maxLength": 32768
        }
      },
      "required": [
        "sessionId",
        "manifestSha256",
        "recipientIds"
      ]
    },
    "requestProjectReviewOutput": {
      "type": "object",
      "additionalProperties": false,
      "properties": {
        "data": {
          "type": "object",
          "additionalProperties": false,
          "properties": {
            "interactionId": {
              "type": "string",
              "minLength": 1,
              "maxLength": 512,
              "pattern": "^[^\\s]+$"
            },
            "interactionRevisionId": {
              "type": "string",
              "minLength": 1,
              "maxLength": 512,
              "pattern": "^[^\\s]+$"
            }
          },
          "required": [
            "interactionId",
            "interactionRevisionId"
          ]
        },
        "idempotencyReplayed": {
          "type": "boolean"
        }
      },
      "required": [
        "data"
      ]
    },
    "requestProjectAcceptanceInput": {
      "type": "object",
      "additionalProperties": false,
      "properties": {
        "sessionId": {
          "type": "string",
          "minLength": 1,
          "maxLength": 512,
          "pattern": "^[^\\s]+$"
        },
        "target": {
          "$ref": "#/$defs/ReviewAcceptanceTarget"
        },
        "consequence": {
          "type": "string",
          "maxLength": 2000,
          "minLength": 1
        },
        "approvalPolicy": {
          "type": "object",
          "maxProperties": 100,
          "additionalProperties": true
        }
      },
      "required": [
        "sessionId",
        "target",
        "consequence"
      ]
    },
    "ReviewAcceptanceTarget": {
      "type": "object",
      "additionalProperties": false,
      "properties": {
        "version": {
          "const": 1
        },
        "sessionId": {
          "type": "string",
          "minLength": 1,
          "maxLength": 512,
          "pattern": "^[^\\s]+$"
        },
        "sessionRevisionId": {
          "type": "string",
          "minLength": 1,
          "maxLength": 512,
          "pattern": "^[^\\s]+$"
        },
        "revisionSetFingerprint": {
          "type": "string",
          "pattern": "^[a-f0-9]{64}$"
        },
        "manifestSha256": {
          "type": "string",
          "pattern": "^[a-f0-9]{64}$"
        },
        "scope": {
          "type": "string",
          "enum": [
            "deliverable",
            "session"
          ]
        },
        "targets": {
          "type": "array",
          "items": {
            "$ref": "#/$defs/ExactTarget"
          },
          "maxItems": 100,
          "minItems": 1
        },
        "supportingRevisions": {
          "type": "array",
          "items": {
            "type": "object",
            "additionalProperties": false,
            "properties": {
              "kind": {
                "type": "string",
                "enum": [
                  "requirement",
                  "evidence"
                ]
              },
              "id": {
                "type": "string",
                "minLength": 1,
                "maxLength": 512,
                "pattern": "^[^\\s]+$"
              },
              "revisionId": {
                "type": "string",
                "minLength": 1,
                "maxLength": 512,
                "pattern": "^[^\\s]+$"
              },
              "sha256": {
                "type": "string",
                "pattern": "^[a-f0-9]{64}$"
              }
            },
            "required": [
              "kind",
              "id",
              "revisionId",
              "sha256"
            ]
          },
          "maxItems": 100,
          "minItems": 0
        }
      },
      "required": [
        "version",
        "sessionId",
        "sessionRevisionId",
        "revisionSetFingerprint",
        "manifestSha256",
        "scope",
        "targets",
        "supportingRevisions"
      ]
    },
    "requestProjectAcceptanceOutput": {
      "type": "object",
      "additionalProperties": false,
      "properties": {
        "data": {
          "type": "object",
          "additionalProperties": false,
          "properties": {
            "interactionId": {
              "type": "string",
              "minLength": 1,
              "maxLength": 512,
              "pattern": "^[^\\s]+$"
            },
            "interactionRevisionId": {
              "type": "string",
              "minLength": 1,
              "maxLength": 512,
              "pattern": "^[^\\s]+$"
            },
            "actionId": {
              "type": "string",
              "minLength": 1,
              "maxLength": 512,
              "pattern": "^[^\\s]+$"
            }
          },
          "required": [
            "interactionId",
            "interactionRevisionId",
            "actionId"
          ]
        },
        "idempotencyReplayed": {
          "type": "boolean"
        }
      },
      "required": [
        "data"
      ]
    },
    "getProjectAcceptanceInput": {
      "type": "object",
      "additionalProperties": false,
      "properties": {
        "sessionId": {
          "type": "string",
          "minLength": 1,
          "maxLength": 512,
          "pattern": "^[^\\s]+$"
        },
        "after": {
          "type": "string",
          "minLength": 1,
          "maxLength": 512,
          "pattern": "^[^\\s]+$"
        }
      },
      "required": [
        "sessionId"
      ]
    },
    "getProjectAcceptanceOutput": {
      "type": "object",
      "additionalProperties": false,
      "properties": {
        "data": {
          "type": "object",
          "additionalProperties": false,
          "properties": {
            "items": {
              "type": "array",
              "items": {
                "$ref": "#/$defs/ExactAcceptance"
              },
              "maxItems": 25,
              "minItems": 0
            },
            "nextAfter": {
              "anyOf": [
                {
                  "type": "string",
                  "minLength": 1,
                  "maxLength": 512,
                  "pattern": "^[^\\s]+$"
                },
                {
                  "type": "null"
                }
              ]
            }
          },
          "required": [
            "items",
            "nextAfter"
          ]
        },
        "idempotencyReplayed": {
          "type": "boolean"
        }
      },
      "required": [
        "data"
      ]
    },
    "ExactAcceptance": {
      "type": "object",
      "additionalProperties": false,
      "properties": {
        "interactionId": {
          "type": "string",
          "minLength": 1,
          "maxLength": 512,
          "pattern": "^[^\\s]+$"
        },
        "interactionRevisionId": {
          "type": "string",
          "minLength": 1,
          "maxLength": 512,
          "pattern": "^[^\\s]+$"
        },
        "actionId": {
          "type": "string",
          "minLength": 1,
          "maxLength": 512,
          "pattern": "^[^\\s]+$"
        },
        "actionFingerprint": {
          "type": "string",
          "pattern": "^[a-f0-9]{64}$"
        },
        "target": {
          "$ref": "#/$defs/ReviewAcceptanceTarget"
        },
        "currency": {
          "type": "string",
          "enum": [
            "current",
            "stale"
          ]
        },
        "status": {
          "type": "string",
          "enum": [
            "pending",
            "accepted",
            "rejected",
            "requested_changes",
            "stale",
            "expired",
            "revoked",
            "unsatisfiable"
          ]
        },
        "approval": {
          "anyOf": [
            {
              "type": "object",
              "additionalProperties": false,
              "properties": {
                "actionId": {
                  "type": "string",
                  "minLength": 1,
                  "maxLength": 512,
                  "pattern": "^[^\\s]+$"
                },
                "state": {
                  "type": "string",
                  "enum": [
                    "pending",
                    "approved",
                    "rejected",
                    "expired",
                    "unsatisfiable"
                  ]
                },
                "approvals": {
                  "type": "integer",
                  "minimum": 0,
                  "maximum": 9007199254740991
                },
                "required": {
                  "type": "integer",
                  "minimum": 0,
                  "maximum": 9007199254740991
                },
                "completedSteps": {
                  "type": "integer",
                  "minimum": 0,
                  "maximum": 9007199254740991
                },
                "totalSteps": {
                  "type": "integer",
                  "minimum": 0,
                  "maximum": 9007199254740991
                }
              },
              "required": [
                "actionId",
                "state",
                "approvals",
                "required",
                "completedSteps",
                "totalSteps"
              ]
            },
            {
              "type": "null"
            }
          ]
        },
        "receipts": {
          "type": "array",
          "items": {
            "type": "object",
            "additionalProperties": false,
            "properties": {
              "id": {
                "type": "string",
                "minLength": 1,
                "maxLength": 512,
                "pattern": "^[^\\s]+$"
              },
              "outcome": {
                "type": "string",
                "maxLength": 40
              },
              "proposalFingerprint": {
                "type": "string",
                "pattern": "^[a-f0-9]{64}$"
              },
              "decidedAt": {
                "type": "string",
                "maxLength": 40
              },
              "contentPurged": {
                "type": "boolean"
              }
            },
            "required": [
              "id",
              "outcome",
              "proposalFingerprint",
              "decidedAt",
              "contentPurged"
            ]
          },
          "maxItems": 100,
          "minItems": 0
        }
      },
      "required": [
        "interactionId",
        "interactionRevisionId",
        "actionId",
        "actionFingerprint",
        "target",
        "currency",
        "status",
        "approval",
        "receipts"
      ]
    },
    "compareProjectReviewRevisionsInput": {
      "type": "object",
      "additionalProperties": false,
      "properties": {
        "sessionId": {
          "type": "string",
          "minLength": 1,
          "maxLength": 512,
          "pattern": "^[^\\s]+$"
        },
        "fromRevisionId": {
          "type": "string",
          "minLength": 1,
          "maxLength": 512,
          "pattern": "^[^\\s]+$"
        },
        "toRevisionId": {
          "type": "string",
          "minLength": 1,
          "maxLength": 512,
          "pattern": "^[^\\s]+$"
        },
        "offset": {
          "type": "integer",
          "minimum": 0,
          "maximum": 1000000
        }
      },
      "required": [
        "sessionId",
        "fromRevisionId",
        "toRevisionId"
      ]
    },
    "compareProjectReviewRevisionsOutput": {
      "type": "object",
      "additionalProperties": false,
      "properties": {
        "data": {
          "$ref": "#/$defs/RevisionImpact"
        },
        "idempotencyReplayed": {
          "type": "boolean"
        }
      },
      "required": [
        "data"
      ]
    },
    "RevisionImpact": {
      "type": "object",
      "additionalProperties": false,
      "properties": {
        "status": {
          "type": "string",
          "enum": [
            "available",
            "unavailable"
          ]
        },
        "reason": {
          "type": "string",
          "maxLength": 2000
        },
        "fromRevisionId": {
          "type": "string",
          "minLength": 1,
          "maxLength": 512,
          "pattern": "^[^\\s]+$"
        },
        "toRevisionId": {
          "type": "string",
          "minLength": 1,
          "maxLength": 512,
          "pattern": "^[^\\s]+$"
        },
        "items": {
          "type": "array",
          "items": {
            "type": "object",
            "additionalProperties": false,
            "properties": {
              "identity": {
                "type": "string",
                "maxLength": 2048
              },
              "path": {
                "type": "string",
                "maxLength": 2048
              },
              "sha256": {
                "type": "string",
                "pattern": "^[a-f0-9]{64}$"
              },
              "kind": {
                "type": "string",
                "maxLength": 2048
              },
              "href": {
                "type": "string",
                "maxLength": 8192
              },
              "uncertainty": {
                "type": "string",
                "maxLength": 2000
              },
              "status": {
                "type": "string",
                "enum": [
                  "added",
                  "removed",
                  "changed",
                  "moved"
                ]
              },
              "previousPath": {
                "type": "string",
                "maxLength": 2048
              },
              "previousHref": {
                "type": "string",
                "maxLength": 8192
              },
              "comparisonHref": {
                "type": "string",
                "maxLength": 8192
              },
              "provenance": {
                "const": "deterministic"
              }
            },
            "required": [
              "identity",
              "path",
              "sha256",
              "kind",
              "status",
              "provenance"
            ]
          },
          "maxItems": 100,
          "minItems": 0
        },
        "counts": {
          "type": "object",
          "additionalProperties": false,
          "properties": {
            "added": {
              "type": "integer",
              "minimum": 0,
              "maximum": 9007199254740991
            },
            "removed": {
              "type": "integer",
              "minimum": 0,
              "maximum": 9007199254740991
            },
            "changed": {
              "type": "integer",
              "minimum": 0,
              "maximum": 9007199254740991
            },
            "moved": {
              "type": "integer",
              "minimum": 0,
              "maximum": 9007199254740991
            }
          },
          "required": [
            "added",
            "removed",
            "changed",
            "moved"
          ]
        },
        "total": {
          "type": "integer",
          "minimum": 0,
          "maximum": 9007199254740991
        },
        "nextOffset": {
          "anyOf": [
            {
              "type": "integer",
              "minimum": 0,
              "maximum": 9007199254740991
            },
            {
              "type": "null"
            }
          ]
        }
      },
      "required": [
        "status",
        "fromRevisionId",
        "toRevisionId",
        "items",
        "counts",
        "total"
      ]
    },
    "listProjectReviewActivityInput": {
      "type": "object",
      "additionalProperties": false,
      "properties": {
        "sessionId": {
          "type": "string",
          "minLength": 1,
          "maxLength": 512,
          "pattern": "^[^\\s]+$"
        },
        "cursor": {
          "type": "string",
          "minLength": 1,
          "maxLength": 4096,
          "pattern": "^[^\\s]+$"
        },
        "limit": {
          "type": "integer",
          "minimum": 1,
          "maximum": 100
        },
        "waitMs": {
          "type": "integer",
          "minimum": 0,
          "maximum": 10000
        }
      },
      "required": [
        "sessionId"
      ]
    },
    "listProjectReviewActivityOutput": {
      "type": "object",
      "additionalProperties": false,
      "properties": {
        "data": {
          "type": "object",
          "additionalProperties": false,
          "properties": {
            "items": {
              "type": "array",
              "items": {
                "$ref": "#/$defs/Activity"
              },
              "maxItems": 100,
              "minItems": 0
            },
            "nextCursor": {
              "type": "string",
              "minLength": 1,
              "maxLength": 4096,
              "pattern": "^[^\\s]+$"
            },
            "hasMore": {
              "type": "boolean"
            },
            "outcome": {
              "type": "string",
              "enum": [
                "events",
                "idle",
                "timeout",
                "canceled"
              ]
            }
          },
          "required": [
            "items",
            "nextCursor",
            "hasMore",
            "outcome"
          ]
        },
        "idempotencyReplayed": {
          "type": "boolean"
        }
      },
      "required": [
        "data"
      ]
    },
    "Activity": {
      "type": "object",
      "additionalProperties": false,
      "properties": {
        "id": {
          "type": "string",
          "minLength": 1,
          "maxLength": 512,
          "pattern": "^[^\\s]+$"
        },
        "eventType": {
          "type": "string",
          "minLength": 1,
          "maxLength": 512,
          "pattern": "^[^\\s]+$"
        },
        "occurredAt": {
          "type": "string",
          "pattern": "^\\d{4}-\\d{2}-\\d{2}T\\d{2}:\\d{2}:\\d{2}(?:\\.\\d+)?(?:Z|[+-]\\d{2}:\\d{2})$"
        },
        "resource": {
          "type": "object",
          "additionalProperties": false,
          "properties": {
            "type": {
              "type": "string",
              "maxLength": 80
            },
            "id": {
              "type": "string",
              "minLength": 1,
              "maxLength": 512,
              "pattern": "^[^\\s]+$"
            }
          },
          "required": [
            "type",
            "id"
          ]
        },
        "aggregateVersion": {
          "type": "integer",
          "minimum": 1,
          "maximum": 9007199254740991
        },
        "retrievalUrl": {
          "type": "string",
          "maxLength": 2048
        },
        "change": {
          "type": "string",
          "maxLength": 200
        }
      },
      "required": [
        "id",
        "eventType",
        "occurredAt",
        "resource",
        "aggregateVersion",
        "retrievalUrl",
        "change"
      ]
    },
    "listProjectReviewFeedbackInput": {
      "type": "object",
      "additionalProperties": false,
      "properties": {
        "sessionId": {
          "type": "string",
          "minLength": 1,
          "maxLength": 512,
          "pattern": "^[^\\s]+$"
        },
        "cursor": {
          "type": "string",
          "minLength": 1,
          "maxLength": 4096,
          "pattern": "^[^\\s]+$"
        },
        "limit": {
          "type": "integer",
          "minimum": 1,
          "maximum": 100
        },
        "waitMs": {
          "type": "integer",
          "minimum": 0,
          "maximum": 10000
        }
      },
      "required": [
        "sessionId"
      ]
    },
    "listProjectReviewFeedbackOutput": {
      "type": "object",
      "additionalProperties": false,
      "properties": {
        "data": {
          "type": "object",
          "additionalProperties": false,
          "properties": {
            "items": {
              "type": "array",
              "items": {
                "$ref": "#/$defs/Activity"
              },
              "maxItems": 100,
              "minItems": 0
            },
            "nextCursor": {
              "type": "string",
              "minLength": 1,
              "maxLength": 4096,
              "pattern": "^[^\\s]+$"
            },
            "hasMore": {
              "type": "boolean"
            },
            "outcome": {
              "type": "string",
              "enum": [
                "events",
                "idle",
                "timeout",
                "canceled"
              ]
            }
          },
          "required": [
            "items",
            "nextCursor",
            "hasMore",
            "outcome"
          ]
        },
        "idempotencyReplayed": {
          "type": "boolean"
        }
      },
      "required": [
        "data"
      ]
    }
  }
}