{
  "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": "#/components/schemas/ProjectAgentExactTarget"
      },
      "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"
  ]
}