{
  "type": "object",
  "properties": {
    "action": {
      "type": "string",
      "enum": [
        "create",
        "list",
        "get",
        "status",
        "progress_policy_get",
        "progress_policy_set",
        "update",
        "archive",
        "restore",
        "complete",
        "resources_list",
        "resources_link",
        "resources_unlink",
        "relationships_list",
        "relationships_link",
        "relationships_unlink",
        "participants_list",
        "participants_set",
        "participants_remove",
        "references_list",
        "references_link",
        "references_unlink",
        "history",
        "workspaces_link",
        "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/createProjectInput"
        },
        "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/listProjectsInput"
        },
        "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/getProjectInput"
        },
        "etag": {
          "type": "string",
          "maxLength": 1024
        },
        "idempotencyKey": {
          "type": "string",
          "maxLength": 200,
          "minLength": 1
        }
      },
      "required": [
        "action",
        "input"
      ]
    },
    {
      "type": "object",
      "additionalProperties": false,
      "properties": {
        "action": {
          "const": "status"
        },
        "input": {
          "$ref": "#/$defs/getProjectStatusInput"
        },
        "etag": {
          "type": "string",
          "maxLength": 1024
        },
        "idempotencyKey": {
          "type": "string",
          "maxLength": 200,
          "minLength": 1
        }
      },
      "required": [
        "action",
        "input"
      ]
    },
    {
      "type": "object",
      "additionalProperties": false,
      "properties": {
        "action": {
          "const": "progress_policy_get"
        },
        "input": {
          "$ref": "#/$defs/getProjectProgressPolicyInput"
        },
        "etag": {
          "type": "string",
          "maxLength": 1024
        },
        "idempotencyKey": {
          "type": "string",
          "maxLength": 200,
          "minLength": 1
        }
      },
      "required": [
        "action",
        "input"
      ]
    },
    {
      "type": "object",
      "additionalProperties": false,
      "properties": {
        "action": {
          "const": "progress_policy_set"
        },
        "input": {
          "$ref": "#/$defs/setProjectProgressPolicyInput"
        },
        "etag": {
          "type": "string",
          "maxLength": 1024
        },
        "idempotencyKey": {
          "type": "string",
          "maxLength": 200,
          "minLength": 1
        }
      },
      "required": [
        "action",
        "input",
        "etag",
        "idempotencyKey"
      ]
    },
    {
      "type": "object",
      "additionalProperties": false,
      "properties": {
        "action": {
          "const": "update"
        },
        "input": {
          "$ref": "#/$defs/updateProjectInput"
        },
        "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/archiveProjectInput"
        },
        "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/restoreProjectInput"
        },
        "etag": {
          "type": "string",
          "maxLength": 1024
        },
        "idempotencyKey": {
          "type": "string",
          "maxLength": 200,
          "minLength": 1
        }
      },
      "required": [
        "action",
        "input",
        "etag",
        "idempotencyKey"
      ]
    },
    {
      "type": "object",
      "additionalProperties": false,
      "properties": {
        "action": {
          "const": "complete"
        },
        "input": {
          "$ref": "#/$defs/completeProjectInput"
        },
        "etag": {
          "type": "string",
          "maxLength": 1024
        },
        "idempotencyKey": {
          "type": "string",
          "maxLength": 200,
          "minLength": 1
        }
      },
      "required": [
        "action",
        "input",
        "etag",
        "idempotencyKey"
      ]
    },
    {
      "type": "object",
      "additionalProperties": false,
      "properties": {
        "action": {
          "const": "resources_list"
        },
        "input": {
          "$ref": "#/$defs/listProjectResourcesInput"
        },
        "etag": {
          "type": "string",
          "maxLength": 1024
        },
        "idempotencyKey": {
          "type": "string",
          "maxLength": 200,
          "minLength": 1
        }
      },
      "required": [
        "action",
        "input"
      ]
    },
    {
      "type": "object",
      "additionalProperties": false,
      "properties": {
        "action": {
          "const": "resources_link"
        },
        "input": {
          "$ref": "#/$defs/linkProjectResourceInput"
        },
        "etag": {
          "type": "string",
          "maxLength": 1024
        },
        "idempotencyKey": {
          "type": "string",
          "maxLength": 200,
          "minLength": 1
        }
      },
      "required": [
        "action",
        "input",
        "etag",
        "idempotencyKey"
      ]
    },
    {
      "type": "object",
      "additionalProperties": false,
      "properties": {
        "action": {
          "const": "resources_unlink"
        },
        "input": {
          "$ref": "#/$defs/unlinkProjectResourceInput"
        },
        "etag": {
          "type": "string",
          "maxLength": 1024
        },
        "idempotencyKey": {
          "type": "string",
          "maxLength": 200,
          "minLength": 1
        }
      },
      "required": [
        "action",
        "input",
        "etag",
        "idempotencyKey"
      ]
    },
    {
      "type": "object",
      "additionalProperties": false,
      "properties": {
        "action": {
          "const": "relationships_list"
        },
        "input": {
          "$ref": "#/$defs/listProjectRelationshipsInput"
        },
        "etag": {
          "type": "string",
          "maxLength": 1024
        },
        "idempotencyKey": {
          "type": "string",
          "maxLength": 200,
          "minLength": 1
        }
      },
      "required": [
        "action",
        "input"
      ]
    },
    {
      "type": "object",
      "additionalProperties": false,
      "properties": {
        "action": {
          "const": "relationships_link"
        },
        "input": {
          "$ref": "#/$defs/linkProjectRelationshipInput"
        },
        "etag": {
          "type": "string",
          "maxLength": 1024
        },
        "idempotencyKey": {
          "type": "string",
          "maxLength": 200,
          "minLength": 1
        }
      },
      "required": [
        "action",
        "input",
        "etag",
        "idempotencyKey"
      ]
    },
    {
      "type": "object",
      "additionalProperties": false,
      "properties": {
        "action": {
          "const": "relationships_unlink"
        },
        "input": {
          "$ref": "#/$defs/unlinkProjectRelationshipInput"
        },
        "etag": {
          "type": "string",
          "maxLength": 1024
        },
        "idempotencyKey": {
          "type": "string",
          "maxLength": 200,
          "minLength": 1
        }
      },
      "required": [
        "action",
        "input",
        "etag",
        "idempotencyKey"
      ]
    },
    {
      "type": "object",
      "additionalProperties": false,
      "properties": {
        "action": {
          "const": "participants_list"
        },
        "input": {
          "$ref": "#/$defs/listProjectParticipantsInput"
        },
        "etag": {
          "type": "string",
          "maxLength": 1024
        },
        "idempotencyKey": {
          "type": "string",
          "maxLength": 200,
          "minLength": 1
        }
      },
      "required": [
        "action",
        "input"
      ]
    },
    {
      "type": "object",
      "additionalProperties": false,
      "properties": {
        "action": {
          "const": "participants_set"
        },
        "input": {
          "$ref": "#/$defs/setProjectParticipantInput"
        },
        "etag": {
          "type": "string",
          "maxLength": 1024
        },
        "idempotencyKey": {
          "type": "string",
          "maxLength": 200,
          "minLength": 1
        }
      },
      "required": [
        "action",
        "input",
        "etag",
        "idempotencyKey"
      ]
    },
    {
      "type": "object",
      "additionalProperties": false,
      "properties": {
        "action": {
          "const": "participants_remove"
        },
        "input": {
          "$ref": "#/$defs/removeProjectParticipantInput"
        },
        "etag": {
          "type": "string",
          "maxLength": 1024
        },
        "idempotencyKey": {
          "type": "string",
          "maxLength": 200,
          "minLength": 1
        }
      },
      "required": [
        "action",
        "input",
        "etag",
        "idempotencyKey"
      ]
    },
    {
      "type": "object",
      "additionalProperties": false,
      "properties": {
        "action": {
          "const": "references_list"
        },
        "input": {
          "$ref": "#/$defs/listProjectExternalReferencesInput"
        },
        "etag": {
          "type": "string",
          "maxLength": 1024
        },
        "idempotencyKey": {
          "type": "string",
          "maxLength": 200,
          "minLength": 1
        }
      },
      "required": [
        "action",
        "input"
      ]
    },
    {
      "type": "object",
      "additionalProperties": false,
      "properties": {
        "action": {
          "const": "references_link"
        },
        "input": {
          "$ref": "#/$defs/linkProjectExternalReferenceInput"
        },
        "etag": {
          "type": "string",
          "maxLength": 1024
        },
        "idempotencyKey": {
          "type": "string",
          "maxLength": 200,
          "minLength": 1
        }
      },
      "required": [
        "action",
        "input",
        "etag",
        "idempotencyKey"
      ]
    },
    {
      "type": "object",
      "additionalProperties": false,
      "properties": {
        "action": {
          "const": "references_unlink"
        },
        "input": {
          "$ref": "#/$defs/unlinkProjectExternalReferenceInput"
        },
        "etag": {
          "type": "string",
          "maxLength": 1024
        },
        "idempotencyKey": {
          "type": "string",
          "maxLength": 200,
          "minLength": 1
        }
      },
      "required": [
        "action",
        "input",
        "etag",
        "idempotencyKey"
      ]
    },
    {
      "type": "object",
      "additionalProperties": false,
      "properties": {
        "action": {
          "const": "history"
        },
        "input": {
          "$ref": "#/$defs/listProjectChangesInput"
        },
        "etag": {
          "type": "string",
          "maxLength": 1024
        },
        "idempotencyKey": {
          "type": "string",
          "maxLength": 200,
          "minLength": 1
        }
      },
      "required": [
        "action",
        "input"
      ]
    },
    {
      "type": "object",
      "additionalProperties": false,
      "properties": {
        "action": {
          "const": "workspaces_link"
        },
        "input": {
          "$ref": "#/$defs/linkProjectWorkspaceInput"
        },
        "etag": {
          "type": "string",
          "maxLength": 1024
        },
        "idempotencyKey": {
          "type": "string",
          "maxLength": 200,
          "minLength": 1
        }
      },
      "required": [
        "action",
        "input",
        "etag",
        "idempotencyKey"
      ]
    },
    {
      "type": "object",
      "additionalProperties": false,
      "properties": {
        "action": {
          "const": "activity"
        },
        "input": {
          "$ref": "#/$defs/listProjectActivityInput"
        },
        "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/listProjectFeedbackInput"
        },
        "etag": {
          "type": "string",
          "maxLength": 1024
        },
        "idempotencyKey": {
          "type": "string",
          "maxLength": 200,
          "minLength": 1
        }
      },
      "required": [
        "action",
        "input"
      ]
    }
  ],
  "$defs": {
    "createProjectInput": {
      "type": "object",
      "additionalProperties": false,
      "properties": {
        "workspaceId": {
          "type": "string",
          "minLength": 1,
          "maxLength": 512,
          "pattern": "^[^\\s]+$"
        },
        "name": {
          "type": "string",
          "maxLength": 200,
          "minLength": 1
        },
        "descriptionMarkdown": {
          "type": "string",
          "maxLength": 32768
        },
        "objectivesMarkdown": {
          "type": "string",
          "maxLength": 32768
        },
        "contextMarkdown": {
          "type": "string",
          "maxLength": 32768
        },
        "visibility": {
          "type": "string",
          "enum": [
            "workspace",
            "participants"
          ]
        }
      },
      "required": [
        "workspaceId",
        "name"
      ]
    },
    "createProjectOutput": {
      "type": "object",
      "additionalProperties": false,
      "properties": {
        "data": {
          "$ref": "#/$defs/Project"
        },
        "idempotencyReplayed": {
          "type": "boolean"
        }
      },
      "required": [
        "data"
      ]
    },
    "Project": {
      "type": "object",
      "additionalProperties": false,
      "properties": {
        "id": {
          "type": "string",
          "minLength": 1,
          "maxLength": 512,
          "pattern": "^[^\\s]+$"
        },
        "initialWorkspaceId": {
          "type": "string",
          "minLength": 1,
          "maxLength": 512,
          "pattern": "^[^\\s]+$"
        },
        "name": {
          "type": "string",
          "maxLength": 200
        },
        "descriptionMarkdown": {
          "type": "string",
          "maxLength": 32768
        },
        "objectivesMarkdown": {
          "type": "string",
          "maxLength": 32768
        },
        "contextMarkdown": {
          "type": "string",
          "maxLength": 32768
        },
        "visibility": {
          "type": "string",
          "enum": [
            "workspace",
            "participants"
          ]
        },
        "lifecycle": {
          "type": "string",
          "enum": [
            "active",
            "completed",
            "archived"
          ]
        },
        "version": {
          "type": "integer",
          "minimum": 1,
          "maximum": 9007199254740991
        },
        "ownerViewerId": {
          "type": "string",
          "minLength": 1,
          "maxLength": 512,
          "pattern": "^[^\\s]+$"
        },
        "creator": {
          "$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})$"
        },
        "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"
            }
          ]
        }
      },
      "required": [
        "id",
        "initialWorkspaceId",
        "name",
        "descriptionMarkdown",
        "objectivesMarkdown",
        "visibility",
        "lifecycle",
        "version"
      ]
    },
    "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"
      ]
    },
    "listProjectsInput": {
      "type": "object",
      "additionalProperties": false,
      "properties": {
        "cursor": {
          "type": "string",
          "minLength": 1,
          "maxLength": 2048,
          "pattern": "^[^\\s]+$"
        },
        "limit": {
          "type": "integer",
          "minimum": 1,
          "maximum": 100
        },
        "workspaceId": {
          "type": "string",
          "minLength": 1,
          "maxLength": 512,
          "pattern": "^[^\\s]+$"
        },
        "search": {
          "type": "string",
          "maxLength": 200
        },
        "lifecycle": {
          "type": "string",
          "enum": [
            "active",
            "completed",
            "archived"
          ]
        },
        "visibility": {
          "type": "string",
          "enum": [
            "workspace",
            "participants"
          ]
        },
        "sort": {
          "type": "string",
          "enum": [
            "recent",
            "name"
          ]
        }
      },
      "required": [
        "workspaceId"
      ]
    },
    "listProjectsOutput": {
      "type": "object",
      "additionalProperties": false,
      "properties": {
        "data": {
          "type": "object",
          "additionalProperties": false,
          "properties": {
            "items": {
              "type": "array",
              "items": {
                "$ref": "#/$defs/Project"
              },
              "maxItems": 100,
              "minItems": 0
            },
            "nextCursor": {
              "anyOf": [
                {
                  "type": "string",
                  "minLength": 1,
                  "maxLength": 2048,
                  "pattern": "^[^\\s]+$"
                },
                {
                  "type": "null"
                }
              ]
            }
          },
          "required": [
            "items",
            "nextCursor"
          ]
        },
        "idempotencyReplayed": {
          "type": "boolean"
        }
      },
      "required": [
        "data"
      ]
    },
    "getProjectInput": {
      "type": "object",
      "additionalProperties": false,
      "properties": {
        "projectId": {
          "type": "string",
          "minLength": 1,
          "maxLength": 512,
          "pattern": "^[^\\s]+$"
        }
      },
      "required": [
        "projectId"
      ]
    },
    "getProjectOutput": {
      "type": "object",
      "additionalProperties": false,
      "properties": {
        "data": {
          "$ref": "#/$defs/Project"
        },
        "idempotencyReplayed": {
          "type": "boolean"
        }
      },
      "required": [
        "data"
      ]
    },
    "getProjectStatusInput": {
      "type": "object",
      "additionalProperties": false,
      "properties": {
        "projectId": {
          "type": "string",
          "minLength": 1,
          "maxLength": 512,
          "pattern": "^[^\\s]+$"
        },
        "cursor": {
          "type": "string",
          "minLength": 1,
          "maxLength": 4096,
          "pattern": "^[^\\s]+$"
        }
      },
      "required": [
        "projectId"
      ]
    },
    "getProjectStatusOutput": {
      "type": "object",
      "additionalProperties": false,
      "properties": {
        "data": {
          "$ref": "#/$defs/Progress"
        },
        "idempotencyReplayed": {
          "type": "boolean"
        }
      },
      "required": [
        "data"
      ]
    },
    "Progress": {
      "type": "object",
      "additionalProperties": false,
      "properties": {
        "items": {
          "type": "array",
          "items": {
            "$ref": "#/$defs/ProgressItem"
          },
          "maxItems": 1000,
          "minItems": 0
        },
        "nextAfter": {
          "anyOf": [
            {
              "type": "string",
              "minLength": 1,
              "maxLength": 4096,
              "pattern": "^[^\\s]+$"
            },
            {
              "type": "null"
            }
          ]
        },
        "projection": {
          "type": "string",
          "enum": [
            "current",
            "pending",
            "failed"
          ]
        },
        "countsScope": {
          "const": "visible_page"
        },
        "counts": {
          "type": "object",
          "additionalProperties": false,
          "properties": {
            "visible": {
              "type": "integer",
              "minimum": 0,
              "maximum": 9007199254740991
            },
            "reportedComplete": {
              "type": "integer",
              "minimum": 0,
              "maximum": 9007199254740991
            },
            "accepted": {
              "type": "integer",
              "minimum": 0,
              "maximum": 9007199254740991
            },
            "needsAttention": {
              "type": "integer",
              "minimum": 0,
              "maximum": 9007199254740991
            }
          },
          "required": [
            "visible",
            "reportedComplete",
            "accepted",
            "needsAttention"
          ]
        }
      },
      "required": [
        "items",
        "nextAfter",
        "projection",
        "countsScope",
        "counts"
      ]
    },
    "ProgressItem": {
      "type": "object",
      "additionalProperties": false,
      "properties": {
        "id": {
          "type": "string",
          "minLength": 1,
          "maxLength": 512,
          "pattern": "^[^\\s]+$"
        },
        "title": {
          "type": "string",
          "maxLength": 200
        },
        "href": {
          "type": "string",
          "maxLength": 4096
        },
        "sessionId": {
          "type": "string",
          "minLength": 1,
          "maxLength": 512,
          "pattern": "^[^\\s]+$"
        },
        "target": {
          "$ref": "#/$defs/ReviewAcceptanceTarget"
        },
        "recordId": {
          "type": "string",
          "minLength": 1,
          "maxLength": 512,
          "pattern": "^[^\\s]+$"
        },
        "recordVersion": {
          "type": "integer",
          "minimum": 1,
          "maximum": 9007199254740991
        },
        "trackerId": {
          "type": "string",
          "minLength": 1,
          "maxLength": 512,
          "pattern": "^[^\\s]+$"
        },
        "relationVersion": {
          "type": "integer",
          "minimum": 1,
          "maximum": 9007199254740991
        },
        "execution": {
          "type": "string",
          "enum": [
            "reported_complete",
            "in_progress",
            "not_configured"
          ]
        },
        "artifact": {
          "type": "string",
          "enum": [
            "available",
            "source_unavailable"
          ]
        },
        "review": {
          "type": "string",
          "enum": [
            "ready",
            "requested_changes",
            "open_concerns",
            "not_ready"
          ]
        },
        "acceptance": {
          "type": "string",
          "enum": [
            "not_required",
            "not_requested",
            "pending",
            "accepted",
            "stale",
            "requested_changes",
            "rejected",
            "expired",
            "revoked",
            "unsatisfiable",
            "unknown"
          ]
        },
        "verification": {
          "type": "string",
          "enum": [
            "independently_verified",
            "reported",
            "failed",
            "unknown"
          ]
        },
        "openConcerns": {
          "type": "integer",
          "minimum": 0,
          "maximum": 9007199254740991
        },
        "blockers": {
          "type": "array",
          "items": {
            "type": "string",
            "maxLength": 100
          },
          "maxItems": 10,
          "minItems": 0
        },
        "state": {
          "type": "string",
          "enum": [
            "working",
            "ready_for_review",
            "requested_changes",
            "accepted",
            "stale",
            "blocked"
          ]
        },
        "decision": {
          "anyOf": [
            {
              "type": "object",
              "additionalProperties": false,
              "properties": {
                "interactionId": {
                  "type": "string",
                  "minLength": 1,
                  "maxLength": 512,
                  "pattern": "^[^\\s]+$"
                },
                "actionId": {
                  "type": "string",
                  "minLength": 1,
                  "maxLength": 512,
                  "pattern": "^[^\\s]+$"
                },
                "status": {
                  "type": "string",
                  "maxLength": 100
                },
                "receiptIds": {
                  "type": "array",
                  "items": {
                    "type": "string",
                    "minLength": 1,
                    "maxLength": 512,
                    "pattern": "^[^\\s]+$"
                  },
                  "maxItems": 100,
                  "minItems": 0
                },
                "href": {
                  "type": "string",
                  "maxLength": 4096
                }
              },
              "required": [
                "interactionId",
                "actionId",
                "status",
                "receiptIds",
                "href"
              ]
            },
            {
              "type": "null"
            }
          ]
        },
        "nextAction": {
          "type": "object",
          "additionalProperties": false,
          "properties": {
            "label": {
              "type": "string",
              "maxLength": 100
            },
            "href": {
              "type": "string",
              "maxLength": 4096
            },
            "rule": {
              "$ref": "#/$defs/ProgressRule"
            }
          },
          "required": [
            "label",
            "href"
          ]
        }
      },
      "required": [
        "id",
        "title",
        "href",
        "sessionId",
        "target",
        "execution",
        "artifact",
        "review",
        "acceptance",
        "verification",
        "openConcerns",
        "blockers",
        "state",
        "decision",
        "nextAction"
      ]
    },
    "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"
      ]
    },
    "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"
      ]
    },
    "ProgressRule": {
      "type": "object",
      "additionalProperties": false,
      "properties": {
        "state": {
          "type": "string",
          "enum": [
            "working",
            "ready_for_review",
            "requested_changes",
            "accepted",
            "stale",
            "blocked"
          ]
        },
        "label": {
          "type": "string",
          "maxLength": 100
        },
        "executionValue": {
          "type": [
            "string",
            "boolean"
          ],
          "maxLength": 100
        },
        "mode": {
          "type": "string",
          "enum": [
            "suggest",
            "automatic"
          ]
        }
      },
      "required": [
        "state",
        "label",
        "mode"
      ]
    },
    "getProjectProgressPolicyInput": {
      "type": "object",
      "additionalProperties": false,
      "properties": {
        "projectId": {
          "type": "string",
          "minLength": 1,
          "maxLength": 512,
          "pattern": "^[^\\s]+$"
        }
      },
      "required": [
        "projectId"
      ]
    },
    "getProjectProgressPolicyOutput": {
      "type": "object",
      "additionalProperties": false,
      "properties": {
        "data": {
          "type": "object",
          "additionalProperties": false,
          "properties": {
            "policy": {
              "$ref": "#/$defs/ProgressPolicy"
            },
            "version": {
              "type": "integer",
              "minimum": 0,
              "maximum": 9007199254740991
            }
          },
          "required": [
            "policy",
            "version"
          ]
        },
        "idempotencyReplayed": {
          "type": "boolean"
        }
      },
      "required": [
        "data"
      ]
    },
    "ProgressPolicy": {
      "type": "object",
      "additionalProperties": false,
      "properties": {
        "executionField": {
          "type": "string",
          "maxLength": 64
        },
        "completeValues": {
          "type": "array",
          "items": {
            "type": [
              "string",
              "boolean"
            ],
            "maxLength": 100
          },
          "maxItems": 100,
          "minItems": 0
        },
        "rules": {
          "type": "array",
          "items": {
            "$ref": "#/$defs/ProgressRule"
          },
          "maxItems": 6,
          "minItems": 0
        }
      },
      "required": [
        "completeValues",
        "rules"
      ]
    },
    "setProjectProgressPolicyInput": {
      "type": "object",
      "additionalProperties": false,
      "properties": {
        "projectId": {
          "type": "string",
          "minLength": 1,
          "maxLength": 512,
          "pattern": "^[^\\s]+$"
        },
        "policy": {
          "$ref": "#/$defs/ProgressPolicy"
        }
      },
      "required": [
        "projectId",
        "policy"
      ]
    },
    "setProjectProgressPolicyOutput": {
      "type": "object",
      "additionalProperties": false,
      "properties": {
        "data": {
          "type": "object",
          "additionalProperties": false,
          "properties": {
            "policy": {
              "$ref": "#/$defs/ProgressPolicy"
            },
            "version": {
              "type": "integer",
              "minimum": 0,
              "maximum": 9007199254740991
            }
          },
          "required": [
            "policy",
            "version"
          ]
        },
        "idempotencyReplayed": {
          "type": "boolean"
        }
      },
      "required": [
        "data"
      ]
    },
    "updateProjectInput": {
      "type": "object",
      "additionalProperties": false,
      "properties": {
        "projectId": {
          "type": "string",
          "minLength": 1,
          "maxLength": 512,
          "pattern": "^[^\\s]+$"
        },
        "name": {
          "type": "string",
          "maxLength": 200,
          "minLength": 1
        },
        "descriptionMarkdown": {
          "type": "string",
          "maxLength": 32768
        },
        "objectivesMarkdown": {
          "type": "string",
          "maxLength": 32768
        },
        "contextMarkdown": {
          "type": "string",
          "maxLength": 32768
        },
        "visibility": {
          "type": "string",
          "enum": [
            "workspace",
            "participants"
          ]
        }
      },
      "required": [
        "projectId"
      ]
    },
    "updateProjectOutput": {
      "type": "object",
      "additionalProperties": false,
      "properties": {
        "data": {
          "$ref": "#/$defs/Project"
        },
        "idempotencyReplayed": {
          "type": "boolean"
        }
      },
      "required": [
        "data"
      ]
    },
    "archiveProjectInput": {
      "type": "object",
      "additionalProperties": false,
      "properties": {
        "projectId": {
          "type": "string",
          "minLength": 1,
          "maxLength": 512,
          "pattern": "^[^\\s]+$"
        }
      },
      "required": [
        "projectId"
      ]
    },
    "archiveProjectOutput": {
      "type": "object",
      "additionalProperties": false,
      "properties": {
        "data": {
          "$ref": "#/$defs/Project"
        },
        "idempotencyReplayed": {
          "type": "boolean"
        }
      },
      "required": [
        "data"
      ]
    },
    "restoreProjectInput": {
      "type": "object",
      "additionalProperties": false,
      "properties": {
        "projectId": {
          "type": "string",
          "minLength": 1,
          "maxLength": 512,
          "pattern": "^[^\\s]+$"
        }
      },
      "required": [
        "projectId"
      ]
    },
    "restoreProjectOutput": {
      "type": "object",
      "additionalProperties": false,
      "properties": {
        "data": {
          "$ref": "#/$defs/Project"
        },
        "idempotencyReplayed": {
          "type": "boolean"
        }
      },
      "required": [
        "data"
      ]
    },
    "completeProjectInput": {
      "type": "object",
      "additionalProperties": false,
      "properties": {
        "projectId": {
          "type": "string",
          "minLength": 1,
          "maxLength": 512,
          "pattern": "^[^\\s]+$"
        }
      },
      "required": [
        "projectId"
      ]
    },
    "completeProjectOutput": {
      "type": "object",
      "additionalProperties": false,
      "properties": {
        "data": {
          "$ref": "#/$defs/Project"
        },
        "idempotencyReplayed": {
          "type": "boolean"
        }
      },
      "required": [
        "data"
      ]
    },
    "listProjectResourcesInput": {
      "type": "object",
      "additionalProperties": false,
      "properties": {
        "projectId": {
          "type": "string",
          "minLength": 1,
          "maxLength": 512,
          "pattern": "^[^\\s]+$"
        },
        "cursor": {
          "type": "string",
          "minLength": 1,
          "maxLength": 512,
          "pattern": "^[^\\s]+$"
        },
        "limit": {
          "type": "integer",
          "minimum": 1,
          "maximum": 100
        },
        "section": {
          "type": "string",
          "enum": [
            "work",
            "reviews"
          ]
        }
      },
      "required": [
        "projectId"
      ]
    },
    "listProjectResourcesOutput": {
      "type": "object",
      "additionalProperties": false,
      "properties": {
        "data": {
          "type": "object",
          "additionalProperties": false,
          "properties": {
            "items": {
              "type": "array",
              "items": {
                "$ref": "#/$defs/ResourceLink"
              },
              "maxItems": 100,
              "minItems": 0
            },
            "nextCursor": {
              "anyOf": [
                {
                  "type": "string",
                  "minLength": 1,
                  "maxLength": 512,
                  "pattern": "^[^\\s]+$"
                },
                {
                  "type": "null"
                }
              ]
            }
          },
          "required": [
            "items",
            "nextCursor"
          ]
        },
        "idempotencyReplayed": {
          "type": "boolean"
        }
      },
      "required": [
        "data"
      ]
    },
    "ResourceLink": {
      "type": "object",
      "additionalProperties": false,
      "properties": {
        "id": {
          "type": "string",
          "minLength": 1,
          "maxLength": 512,
          "pattern": "^[^\\s]+$"
        },
        "projectId": {
          "type": "string",
          "minLength": 1,
          "maxLength": 512,
          "pattern": "^[^\\s]+$"
        },
        "target": {
          "$ref": "#/$defs/Resource"
        },
        "pinnedRevisionId": {
          "anyOf": [
            {
              "type": "string",
              "minLength": 1,
              "maxLength": 512,
              "pattern": "^[^\\s]+$"
            },
            {
              "type": "null"
            }
          ]
        },
        "purpose": {
          "type": "string",
          "maxLength": 200
        },
        "orderKey": {
          "type": "string",
          "minLength": 1,
          "maxLength": 512,
          "pattern": "^[^\\s]+$"
        }
      },
      "required": [
        "id",
        "projectId",
        "target",
        "pinnedRevisionId",
        "purpose",
        "orderKey"
      ]
    },
    "linkProjectResourceInput": {
      "type": "object",
      "additionalProperties": false,
      "properties": {
        "projectId": {
          "type": "string",
          "minLength": 1,
          "maxLength": 512,
          "pattern": "^[^\\s]+$"
        },
        "target": {
          "$ref": "#/$defs/Resource"
        },
        "pinnedRevisionId": {
          "type": "string",
          "minLength": 1,
          "maxLength": 512,
          "pattern": "^[^\\s]+$"
        },
        "purpose": {
          "type": "string",
          "maxLength": 200
        }
      },
      "required": [
        "projectId",
        "target"
      ]
    },
    "linkProjectResourceOutput": {
      "type": "object",
      "additionalProperties": false,
      "properties": {
        "data": {
          "$ref": "#/$defs/ResourceLink"
        },
        "idempotencyReplayed": {
          "type": "boolean"
        }
      },
      "required": [
        "data"
      ]
    },
    "unlinkProjectResourceInput": {
      "type": "object",
      "additionalProperties": false,
      "properties": {
        "projectId": {
          "type": "string",
          "minLength": 1,
          "maxLength": 512,
          "pattern": "^[^\\s]+$"
        },
        "linkId": {
          "type": "string",
          "minLength": 1,
          "maxLength": 512,
          "pattern": "^[^\\s]+$"
        }
      },
      "required": [
        "projectId",
        "linkId"
      ]
    },
    "unlinkProjectResourceOutput": {
      "type": "object",
      "additionalProperties": false,
      "properties": {
        "data": {
          "type": "object",
          "additionalProperties": false,
          "properties": {
            "removed": {
              "const": true
            }
          },
          "required": [
            "removed"
          ]
        },
        "idempotencyReplayed": {
          "type": "boolean"
        }
      },
      "required": [
        "data"
      ]
    },
    "listProjectRelationshipsInput": {
      "type": "object",
      "additionalProperties": false,
      "properties": {
        "projectId": {
          "type": "string",
          "minLength": 1,
          "maxLength": 512,
          "pattern": "^[^\\s]+$"
        },
        "cursor": {
          "type": "string",
          "minLength": 1,
          "maxLength": 512,
          "pattern": "^[^\\s]+$"
        },
        "limit": {
          "type": "integer",
          "minimum": 1,
          "maximum": 100
        }
      },
      "required": [
        "projectId"
      ]
    },
    "listProjectRelationshipsOutput": {
      "type": "object",
      "additionalProperties": false,
      "properties": {
        "data": {
          "type": "object",
          "additionalProperties": false,
          "properties": {
            "items": {
              "type": "array",
              "items": {
                "$ref": "#/$defs/Relationship"
              },
              "maxItems": 100,
              "minItems": 0
            },
            "nextCursor": {
              "anyOf": [
                {
                  "type": "string",
                  "minLength": 1,
                  "maxLength": 512,
                  "pattern": "^[^\\s]+$"
                },
                {
                  "type": "null"
                }
              ]
            }
          },
          "required": [
            "items",
            "nextCursor"
          ]
        },
        "idempotencyReplayed": {
          "type": "boolean"
        }
      },
      "required": [
        "data"
      ]
    },
    "Relationship": {
      "type": "object",
      "additionalProperties": false,
      "properties": {
        "id": {
          "type": "string",
          "minLength": 1,
          "maxLength": 512,
          "pattern": "^[^\\s]+$"
        },
        "projectId": {
          "type": "string",
          "minLength": 1,
          "maxLength": 512,
          "pattern": "^[^\\s]+$"
        },
        "targetProjectId": {
          "type": "string",
          "minLength": 1,
          "maxLength": 512,
          "pattern": "^[^\\s]+$"
        },
        "relation": {
          "type": "string",
          "enum": [
            "related",
            "implements"
          ]
        },
        "version": {
          "type": "integer",
          "minimum": 1,
          "maximum": 9007199254740991
        }
      },
      "required": [
        "id",
        "projectId",
        "targetProjectId",
        "relation",
        "version"
      ]
    },
    "linkProjectRelationshipInput": {
      "type": "object",
      "additionalProperties": false,
      "properties": {
        "projectId": {
          "type": "string",
          "minLength": 1,
          "maxLength": 512,
          "pattern": "^[^\\s]+$"
        },
        "targetProjectId": {
          "type": "string",
          "minLength": 1,
          "maxLength": 512,
          "pattern": "^[^\\s]+$"
        },
        "relation": {
          "type": "string",
          "enum": [
            "related",
            "implements"
          ]
        }
      },
      "required": [
        "projectId",
        "targetProjectId",
        "relation"
      ]
    },
    "linkProjectRelationshipOutput": {
      "type": "object",
      "additionalProperties": false,
      "properties": {
        "data": {
          "$ref": "#/$defs/Relationship"
        },
        "idempotencyReplayed": {
          "type": "boolean"
        }
      },
      "required": [
        "data"
      ]
    },
    "unlinkProjectRelationshipInput": {
      "type": "object",
      "additionalProperties": false,
      "properties": {
        "projectId": {
          "type": "string",
          "minLength": 1,
          "maxLength": 512,
          "pattern": "^[^\\s]+$"
        },
        "relationshipId": {
          "type": "string",
          "minLength": 1,
          "maxLength": 512,
          "pattern": "^[^\\s]+$"
        }
      },
      "required": [
        "projectId",
        "relationshipId"
      ]
    },
    "unlinkProjectRelationshipOutput": {
      "type": "object",
      "additionalProperties": false,
      "properties": {
        "data": {
          "type": "object",
          "additionalProperties": false,
          "properties": {
            "removed": {
              "const": true
            }
          },
          "required": [
            "removed"
          ]
        },
        "idempotencyReplayed": {
          "type": "boolean"
        }
      },
      "required": [
        "data"
      ]
    },
    "listProjectParticipantsInput": {
      "type": "object",
      "additionalProperties": false,
      "properties": {
        "projectId": {
          "type": "string",
          "minLength": 1,
          "maxLength": 512,
          "pattern": "^[^\\s]+$"
        },
        "cursor": {
          "type": "string",
          "minLength": 1,
          "maxLength": 512,
          "pattern": "^[^\\s]+$"
        },
        "limit": {
          "type": "integer",
          "minimum": 1,
          "maximum": 100
        }
      },
      "required": [
        "projectId"
      ]
    },
    "listProjectParticipantsOutput": {
      "type": "object",
      "additionalProperties": false,
      "properties": {
        "data": {
          "type": "object",
          "additionalProperties": false,
          "properties": {
            "items": {
              "type": "array",
              "items": {
                "$ref": "#/$defs/ProjectParticipant"
              },
              "maxItems": 100,
              "minItems": 0
            },
            "nextCursor": {
              "anyOf": [
                {
                  "type": "string",
                  "minLength": 1,
                  "maxLength": 512,
                  "pattern": "^[^\\s]+$"
                },
                {
                  "type": "null"
                }
              ]
            }
          },
          "required": [
            "items",
            "nextCursor"
          ]
        },
        "idempotencyReplayed": {
          "type": "boolean"
        }
      },
      "required": [
        "data"
      ]
    },
    "ProjectParticipant": {
      "type": "object",
      "additionalProperties": false,
      "properties": {
        "id": {
          "type": "string",
          "minLength": 1,
          "maxLength": 512,
          "pattern": "^[^\\s]+$"
        },
        "projectId": {
          "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": {
          "anyOf": [
            {
              "type": "string",
              "minLength": 1,
              "maxLength": 512,
              "pattern": "^[^\\s]+$"
            },
            {
              "type": "null"
            }
          ]
        },
        "version": {
          "type": "integer",
          "minimum": 1,
          "maximum": 9007199254740991
        }
      },
      "required": [
        "id",
        "projectId",
        "actor",
        "role",
        "grantId",
        "version"
      ]
    },
    "setProjectParticipantInput": {
      "type": "object",
      "additionalProperties": false,
      "properties": {
        "projectId": {
          "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": [
        "projectId",
        "actor",
        "role"
      ]
    },
    "setProjectParticipantOutput": {
      "type": "object",
      "additionalProperties": false,
      "properties": {
        "data": {
          "$ref": "#/$defs/ProjectParticipant"
        },
        "idempotencyReplayed": {
          "type": "boolean"
        }
      },
      "required": [
        "data"
      ]
    },
    "removeProjectParticipantInput": {
      "type": "object",
      "additionalProperties": false,
      "properties": {
        "projectId": {
          "type": "string",
          "minLength": 1,
          "maxLength": 512,
          "pattern": "^[^\\s]+$"
        },
        "participantId": {
          "type": "string",
          "minLength": 1,
          "maxLength": 512,
          "pattern": "^[^\\s]+$"
        }
      },
      "required": [
        "projectId",
        "participantId"
      ]
    },
    "removeProjectParticipantOutput": {
      "type": "object",
      "additionalProperties": false,
      "properties": {
        "data": {
          "type": "object",
          "additionalProperties": false,
          "properties": {
            "removed": {
              "const": true
            }
          },
          "required": [
            "removed"
          ]
        },
        "idempotencyReplayed": {
          "type": "boolean"
        }
      },
      "required": [
        "data"
      ]
    },
    "listProjectExternalReferencesInput": {
      "type": "object",
      "additionalProperties": false,
      "properties": {
        "projectId": {
          "type": "string",
          "minLength": 1,
          "maxLength": 512,
          "pattern": "^[^\\s]+$"
        },
        "cursor": {
          "type": "string",
          "minLength": 1,
          "maxLength": 512,
          "pattern": "^[^\\s]+$"
        },
        "limit": {
          "type": "integer",
          "minimum": 1,
          "maximum": 100
        }
      },
      "required": [
        "projectId"
      ]
    },
    "listProjectExternalReferencesOutput": {
      "type": "object",
      "additionalProperties": false,
      "properties": {
        "data": {
          "type": "object",
          "additionalProperties": false,
          "properties": {
            "items": {
              "type": "array",
              "items": {
                "$ref": "#/$defs/ProjectExternalReference"
              },
              "maxItems": 100,
              "minItems": 0
            },
            "nextCursor": {
              "anyOf": [
                {
                  "type": "string",
                  "minLength": 1,
                  "maxLength": 512,
                  "pattern": "^[^\\s]+$"
                },
                {
                  "type": "null"
                }
              ]
            }
          },
          "required": [
            "items",
            "nextCursor"
          ]
        },
        "idempotencyReplayed": {
          "type": "boolean"
        }
      },
      "required": [
        "data"
      ]
    },
    "ProjectExternalReference": {
      "type": "object",
      "additionalProperties": false,
      "properties": {
        "id": {
          "type": "string",
          "minLength": 1,
          "maxLength": 512,
          "pattern": "^[^\\s]+$"
        },
        "projectId": {
          "type": "string",
          "minLength": 1,
          "maxLength": 512,
          "pattern": "^[^\\s]+$"
        },
        "url": {
          "type": "string",
          "maxLength": 2048
        },
        "purpose": {
          "type": "string",
          "maxLength": 200
        }
      },
      "required": [
        "id",
        "projectId",
        "url",
        "purpose"
      ]
    },
    "linkProjectExternalReferenceInput": {
      "type": "object",
      "additionalProperties": false,
      "properties": {
        "projectId": {
          "type": "string",
          "minLength": 1,
          "maxLength": 512,
          "pattern": "^[^\\s]+$"
        },
        "url": {
          "type": "string",
          "maxLength": 2048
        },
        "purpose": {
          "type": "string",
          "maxLength": 200
        }
      },
      "required": [
        "projectId",
        "url"
      ]
    },
    "linkProjectExternalReferenceOutput": {
      "type": "object",
      "additionalProperties": false,
      "properties": {
        "data": {
          "$ref": "#/$defs/ProjectExternalReference"
        },
        "idempotencyReplayed": {
          "type": "boolean"
        }
      },
      "required": [
        "data"
      ]
    },
    "unlinkProjectExternalReferenceInput": {
      "type": "object",
      "additionalProperties": false,
      "properties": {
        "projectId": {
          "type": "string",
          "minLength": 1,
          "maxLength": 512,
          "pattern": "^[^\\s]+$"
        },
        "referenceId": {
          "type": "string",
          "minLength": 1,
          "maxLength": 512,
          "pattern": "^[^\\s]+$"
        }
      },
      "required": [
        "projectId",
        "referenceId"
      ]
    },
    "unlinkProjectExternalReferenceOutput": {
      "type": "object",
      "additionalProperties": false,
      "properties": {
        "data": {
          "type": "object",
          "additionalProperties": false,
          "properties": {
            "removed": {
              "const": true
            }
          },
          "required": [
            "removed"
          ]
        },
        "idempotencyReplayed": {
          "type": "boolean"
        }
      },
      "required": [
        "data"
      ]
    },
    "listProjectChangesInput": {
      "type": "object",
      "additionalProperties": false,
      "properties": {
        "projectId": {
          "type": "string",
          "minLength": 1,
          "maxLength": 512,
          "pattern": "^[^\\s]+$"
        },
        "cursor": {
          "type": "string",
          "minLength": 1,
          "maxLength": 512,
          "pattern": "^[^\\s]+$"
        },
        "limit": {
          "type": "integer",
          "minimum": 1,
          "maximum": 100
        }
      },
      "required": [
        "projectId"
      ]
    },
    "listProjectChangesOutput": {
      "type": "object",
      "additionalProperties": false,
      "properties": {
        "data": {
          "type": "object",
          "additionalProperties": false,
          "properties": {
            "items": {
              "type": "array",
              "items": {
                "$ref": "#/$defs/ProjectChange"
              },
              "maxItems": 100,
              "minItems": 0
            },
            "nextCursor": {
              "anyOf": [
                {
                  "type": "string",
                  "minLength": 1,
                  "maxLength": 512,
                  "pattern": "^[^\\s]+$"
                },
                {
                  "type": "null"
                }
              ]
            }
          },
          "required": [
            "items",
            "nextCursor"
          ]
        },
        "idempotencyReplayed": {
          "type": "boolean"
        }
      },
      "required": [
        "data"
      ]
    },
    "ProjectChange": {
      "type": "object",
      "additionalProperties": false,
      "properties": {
        "id": {
          "type": "string",
          "minLength": 1,
          "maxLength": 512,
          "pattern": "^[^\\s]+$"
        },
        "projectId": {
          "type": "string",
          "minLength": 1,
          "maxLength": 512,
          "pattern": "^[^\\s]+$"
        },
        "version": {
          "type": "integer",
          "minimum": 1,
          "maximum": 9007199254740991
        },
        "operation": {
          "type": "string",
          "minLength": 1,
          "maxLength": 512,
          "pattern": "^[^\\s]+$"
        },
        "actor": {
          "$ref": "#/$defs/Actor"
        },
        "occurredAt": {
          "type": "string",
          "pattern": "^\\d{4}-\\d{2}-\\d{2}T\\d{2}:\\d{2}:\\d{2}(?:\\.\\d+)?(?:Z|[+-]\\d{2}:\\d{2})$"
        }
      },
      "required": [
        "id",
        "projectId",
        "version",
        "operation",
        "actor",
        "occurredAt"
      ]
    },
    "linkProjectWorkspaceInput": {
      "type": "object",
      "additionalProperties": false,
      "properties": {
        "projectId": {
          "type": "string",
          "minLength": 1,
          "maxLength": 512,
          "pattern": "^[^\\s]+$"
        },
        "workspaceId": {
          "type": "string",
          "minLength": 1,
          "maxLength": 512,
          "pattern": "^[^\\s]+$"
        }
      },
      "required": [
        "projectId",
        "workspaceId"
      ]
    },
    "linkProjectWorkspaceOutput": {
      "type": "object",
      "additionalProperties": false,
      "properties": {
        "data": {
          "type": "object",
          "additionalProperties": false,
          "properties": {
            "linked": {
              "const": true
            }
          },
          "required": [
            "linked"
          ]
        },
        "idempotencyReplayed": {
          "type": "boolean"
        }
      },
      "required": [
        "data"
      ]
    },
    "listProjectActivityInput": {
      "type": "object",
      "additionalProperties": false,
      "properties": {
        "projectId": {
          "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": [
        "projectId"
      ]
    },
    "listProjectActivityOutput": {
      "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"
      ]
    },
    "listProjectFeedbackInput": {
      "type": "object",
      "additionalProperties": false,
      "properties": {
        "projectId": {
          "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": [
        "projectId"
      ]
    },
    "listProjectFeedbackOutput": {
      "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"
      ]
    }
  }
}