{
  "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"
              ]
            }
          }
        }
      }
    }
  }
}