{
  "package": {
    "name": "@teamgrid/mcp-server",
    "sourceCommit": "b0e4b3dfa4afd74822a73b8b5e8b647236f273ce",
    "sourceRepository": "TeamGrid/developer-platform",
    "version": "1.2.2"
  },
  "annotations": {
    "readOnlyHint": false,
    "destructiveHint": true,
    "idempotentHint": true,
    "openWorldHint": false
  },
  "contract": {
    "domain": "tasks-write",
    "concurrency": "conditional",
    "idempotency": false,
    "coreCas": false
  },
  "outputSchema": {
    "type": "object",
    "properties": {
      "data": {
        "$ref": "#/$defs/TaskRecurrence"
      },
      "meta": {
        "additionalProperties": false,
        "properties": {
          "requestId": {
            "type": "string",
            "description": "Unique identifier assigned to the API request for tracing and support."
          },
          "privateResource": {
            "type": "object",
            "additionalProperties": false,
            "required": [
              "uri",
              "maxBytes",
              "readMethod"
            ],
            "properties": {
              "uri": {
                "type": "string",
                "pattern": "^teamgrid://(?:files|exports)/[A-Za-z0-9_.:%-]+$"
              },
              "maxBytes": {
                "const": 1048576
              },
              "readMethod": {
                "const": "resources/read"
              }
            }
          },
          "etag": {
            "type": "string",
            "pattern": "^\"[\\x21\\x23-\\x7e]{1,256}\"$"
          },
          "resume": {
            "type": "object",
            "additionalProperties": false,
            "required": [
              "tool",
              "arguments"
            ],
            "properties": {
              "tool": {
                "enum": [
                  "teamgrid_project_lifecycle_operation_get",
                  "teamgrid_planned_work_operation_get",
                  "teamgrid_task_recurrence_operation_get",
                  "teamgrid_export_get"
                ]
              },
              "arguments": {
                "type": "object",
                "additionalProperties": false,
                "required": [
                  "id"
                ],
                "properties": {
                  "id": {
                    "type": "string",
                    "minLength": 1,
                    "maxLength": 128
                  }
                }
              }
            }
          },
          "outcome": {
            "enum": [
              "completed",
              "accepted",
              "partial",
              "unknown",
              "failed"
            ]
          },
          "omittedFields": {
            "type": "array",
            "items": {
              "type": "string"
            }
          },
          "contentReadTool": {
            "const": "teamgrid_document_get"
          },
          "contentPage": {
            "type": "object",
            "additionalProperties": false,
            "properties": {
              "unit": {
                "const": "utf16"
              },
              "offset": {
                "type": "integer",
                "minimum": 0
              },
              "nextOffset": {
                "type": [
                  "integer",
                  "null"
                ],
                "minimum": 0
              },
              "totalLength": {
                "type": "integer",
                "minimum": 0
              },
              "complete": {
                "type": "boolean"
              },
              "revision": {
                "type": [
                  "string",
                  "null"
                ]
              }
            },
            "required": [
              "unit",
              "offset",
              "nextOffset",
              "totalLength",
              "complete",
              "revision"
            ]
          },
          "search": {
            "type": "object",
            "additionalProperties": false,
            "properties": {
              "complete": {
                "const": false
              },
              "indexed": {
                "const": true
              },
              "returned": {
                "type": "integer",
                "minimum": 0
              },
              "limit": {
                "type": "integer",
                "minimum": 1,
                "maximum": 50
              },
              "continuation": {
                "const": "narrow-query-or-list"
              },
              "verification": {
                "const": "read-by-id"
              }
            },
            "required": [
              "complete",
              "indexed",
              "returned",
              "limit",
              "continuation",
              "verification"
            ]
          }
        },
        "required": [
          "requestId"
        ],
        "type": "object",
        "description": "Public API representation of meta."
      }
    },
    "required": [
      "data",
      "meta"
    ],
    "additionalProperties": false,
    "$defs": {
      "TaskRecurrence": {
        "additionalProperties": false,
        "properties": {
          "attributes": {
            "additionalProperties": false,
            "properties": {
              "attentionCode": {
                "type": [
                  "string",
                  "null"
                ],
                "description": "The attention code associated with this task recurrence attributes."
              },
              "createdAt": {
                "format": "date-time",
                "type": "string",
                "description": "Timestamp at which the resource was created."
              },
              "currentDefinition": {
                "additionalProperties": false,
                "properties": {
                  "costClass": {
                    "enum": [
                      "low",
                      "medium",
                      "high",
                      "async"
                    ],
                    "type": "string",
                    "description": "Canonical cost class value for this task recurrence attributes current definition."
                  },
                  "definitionHash": {
                    "pattern": "^[a-f0-9]{64}$",
                    "type": "string",
                    "description": "The definition hash associated with this task recurrence attributes current definition."
                  },
                  "engineVersion": {
                    "const": "recurrence-v1",
                    "type": "string",
                    "description": "The engine version associated with this task recurrence attributes current definition."
                  },
                  "id": {
                    "maxLength": 128,
                    "minLength": 1,
                    "type": "string",
                    "description": "Stable TeamGrid identifier for this resource."
                  },
                  "policy": {
                    "description": "The policy associated with this task recurrence attributes current definition.",
                    "$ref": "#/$defs/TaskRecurrencePolicyInput"
                  },
                  "schemaVersion": {
                    "const": 1,
                    "type": "integer",
                    "description": "The schema version associated with this task recurrence attributes current definition."
                  },
                  "summary": {
                    "additionalProperties": true,
                    "maxProperties": 256,
                    "type": "object",
                    "description": "Short human-readable summary."
                  },
                  "template": {
                    "description": "The template associated with this task recurrence attributes current definition.",
                    "$ref": "#/$defs/TaskRecurrenceTemplateInput"
                  },
                  "version": {
                    "minimum": 1,
                    "type": "integer",
                    "description": "The version associated with this task recurrence attributes current definition."
                  }
                },
                "required": [
                  "costClass",
                  "definitionHash",
                  "engineVersion",
                  "id",
                  "policy",
                  "schemaVersion",
                  "summary",
                  "template",
                  "version"
                ],
                "type": "object",
                "description": "The current definition associated with this task recurrence attributes."
              },
              "developerUpdatedAt": {
                "format": "date-time",
                "type": "string",
                "description": "ISO 8601 timestamp for developer updated at."
              },
              "name": {
                "type": [
                  "string",
                  "null"
                ],
                "description": "Human-readable name of the resource."
              },
              "owner": {
                "additionalProperties": false,
                "properties": {
                  "id": {
                    "maxLength": 256,
                    "minLength": 1,
                    "type": "string",
                    "description": "Stable TeamGrid identifier for this resource."
                  },
                  "kind": {
                    "enum": [
                      "developerPrincipal",
                      "user"
                    ],
                    "type": "string",
                    "description": "Canonical kind value for this task recurrence attributes owner."
                  }
                },
                "required": [
                  "id",
                  "kind"
                ],
                "type": "object",
                "description": "The owner associated with this task recurrence attributes."
              },
              "replayed": {
                "type": "boolean",
                "description": "Whether replayed applies to this task recurrence attributes."
              },
              "resourceContext": {
                "additionalProperties": true,
                "maxProperties": 256,
                "type": "object",
                "description": "The resource context associated with this task recurrence attributes."
              },
              "revision": {
                "pattern": "^[a-f0-9]{64}$",
                "type": "string",
                "description": "Strong resource revision used for optimistic concurrency control."
              },
              "status": {
                "enum": [
                  "active",
                  "paused",
                  "suspended",
                  "needs_attention",
                  "ended",
                  "archived"
                ],
                "type": "string",
                "description": "Canonical status of the resource or operation."
              },
              "updatedAt": {
                "format": "date-time",
                "type": "string",
                "description": "Timestamp of the most recent successful update."
              }
            },
            "required": [
              "attentionCode",
              "createdAt",
              "currentDefinition",
              "developerUpdatedAt",
              "name",
              "owner",
              "replayed",
              "resourceContext",
              "revision",
              "status",
              "updatedAt"
            ],
            "type": "object",
            "description": "The attributes associated with this task recurrence."
          },
          "id": {
            "type": "string",
            "description": "Stable TeamGrid identifier for this resource."
          },
          "type": {
            "const": "taskRecurrence",
            "description": "Canonical type discriminator for this resource."
          }
        },
        "required": [
          "type",
          "id",
          "attributes"
        ],
        "type": "object",
        "description": "Public API representation of task recurrence."
      },
      "TaskRecurrencePolicyInput": {
        "additionalProperties": false,
        "description": "Canonical, strictly discriminated recurrence-v1 policy.",
        "properties": {
          "candidates": {
            "description": "The candidates associated with this task recurrence policy.",
            "$ref": "#/$defs/TaskRecurrenceCandidateSource"
          },
          "conditions": {
            "items": {
              "$ref": "#/$defs/TaskRecurrenceCondition"
            },
            "maxItems": 64,
            "type": "array",
            "description": "The conditions associated with this task recurrence policy."
          },
          "engineVersion": {
            "const": "recurrence-v1",
            "type": "string",
            "description": "The engine version associated with this task recurrence policy."
          },
          "limits": {
            "additionalProperties": false,
            "properties": {
              "maxOccurrences": {
                "minimum": 1,
                "type": [
                  "integer",
                  "null"
                ],
                "description": "The max occurrences associated with this task recurrence policy limits."
              },
              "until": {
                "maxLength": 32,
                "type": [
                  "string",
                  "null"
                ],
                "description": "The until associated with this task recurrence policy limits."
              }
            },
            "required": [
              "maxOccurrences",
              "until"
            ],
            "type": "object",
            "description": "The limits associated with this task recurrence policy."
          },
          "materialization": {
            "additionalProperties": false,
            "allOf": [
              {
                "else": {
                  "properties": {
                    "catchUpLimit": false
                  }
                },
                "if": {
                  "properties": {
                    "catchUp": {
                      "const": "bounded"
                    }
                  },
                  "required": [
                    "catchUp"
                  ]
                },
                "then": {
                  "properties": {
                    "catchUpLimit": {
                      "maximum": 100,
                      "minimum": 1,
                      "type": "integer"
                    }
                  },
                  "required": [
                    "catchUpLimit"
                  ]
                }
              }
            ],
            "properties": {
              "catchUp": {
                "enum": [
                  "all",
                  "bounded",
                  "latest",
                  "none"
                ],
                "type": "string",
                "description": "Canonical catch up value for this task recurrence policy materialization."
              },
              "catchUpLimit": {
                "maximum": 100,
                "minimum": 1,
                "type": "integer",
                "description": "The catch up limit associated with this task recurrence policy materialization."
              },
              "lead": {
                "allOf": [
                  {
                    "$ref": "#/$defs/TaskRecurrenceDuration"
                  },
                  {
                    "properties": {
                      "value": {
                        "minimum": 0,
                        "type": "integer",
                        "description": "Canonical value represented by this field."
                      }
                    },
                    "type": "object"
                  }
                ],
                "description": "The lead associated with this task recurrence policy materialization."
              },
              "overlap": {
                "enum": [
                  "allow",
                  "defer",
                  "latest-only",
                  "pause-series",
                  "skip"
                ],
                "type": "string",
                "description": "Canonical overlap value for this task recurrence policy materialization."
              }
            },
            "required": [
              "catchUp",
              "lead",
              "overlap"
            ],
            "type": "object",
            "description": "The materialization associated with this task recurrence policy."
          },
          "schemaVersion": {
            "const": 1,
            "type": "integer",
            "description": "The schema version associated with this task recurrence policy."
          },
          "timeBasis": {
            "additionalProperties": false,
            "properties": {
              "disambiguation": {
                "enum": [
                  "compatible",
                  "earlier",
                  "later",
                  "reject"
                ],
                "type": "string",
                "description": "Canonical disambiguation value for this task recurrence policy time basis."
              },
              "mode": {
                "enum": [
                  "elapsed",
                  "wall-clock"
                ],
                "type": "string",
                "description": "Canonical mode value for this task recurrence policy time basis."
              },
              "timeZone": {
                "maxLength": 128,
                "minLength": 1,
                "type": "string",
                "description": "The time zone associated with this task recurrence policy time basis."
              }
            },
            "required": [
              "disambiguation",
              "mode",
              "timeZone"
            ],
            "type": "object",
            "description": "The time basis associated with this task recurrence policy."
          },
          "transforms": {
            "items": {
              "$ref": "#/$defs/TaskRecurrenceTransform"
            },
            "maxItems": 64,
            "type": "array",
            "description": "The transforms associated with this task recurrence policy."
          }
        },
        "required": [
          "candidates",
          "conditions",
          "engineVersion",
          "limits",
          "materialization",
          "schemaVersion",
          "timeBasis",
          "transforms"
        ],
        "type": "object"
      },
      "TaskRecurrenceCandidateSource": {
        "oneOf": [
          {
            "additionalProperties": false,
            "properties": {
              "nodeId": {
                "maxLength": 128,
                "minLength": 1,
                "pattern": "^[A-Za-z0-9_.:-]+$",
                "type": "string",
                "description": "The node id associated with this task recurrence candidate source."
              },
              "op": {
                "const": "calendarRule",
                "type": "string",
                "description": "The op associated with this task recurrence candidate source."
              },
              "rule": {
                "description": "The rule associated with this task recurrence candidate source.",
                "$ref": "#/$defs/TaskRecurrenceCalendarRule"
              }
            },
            "required": [
              "nodeId",
              "op",
              "rule"
            ],
            "type": "object"
          },
          {
            "additionalProperties": false,
            "properties": {
              "nodeId": {
                "maxLength": 128,
                "minLength": 1,
                "pattern": "^[A-Za-z0-9_.:-]+$",
                "type": "string",
                "description": "The node id associated with this task recurrence candidate source."
              },
              "op": {
                "const": "dateSet",
                "type": "string",
                "description": "The op associated with this task recurrence candidate source."
              },
              "dates": {
                "items": {
                  "pattern": "^\\d{4}-\\d{2}-\\d{2}T\\d{2}:\\d{2}(?::\\d{2})?$",
                  "type": "string"
                },
                "maxItems": 500,
                "minItems": 1,
                "type": "array",
                "description": "The dates associated with this task recurrence candidate source."
              }
            },
            "required": [
              "nodeId",
              "op",
              "dates"
            ],
            "type": "object"
          },
          {
            "additionalProperties": false,
            "properties": {
              "nodeId": {
                "maxLength": 128,
                "minLength": 1,
                "pattern": "^[A-Za-z0-9_.:-]+$",
                "type": "string",
                "description": "The node id associated with this task recurrence candidate source."
              },
              "op": {
                "const": "monthSet",
                "type": "string",
                "description": "The op associated with this task recurrence candidate source."
              },
              "months": {
                "items": {
                  "maximum": 12,
                  "minimum": 1,
                  "type": "integer"
                },
                "maxItems": 12,
                "minItems": 1,
                "type": "array",
                "description": "The months associated with this task recurrence candidate source."
              }
            },
            "required": [
              "nodeId",
              "op",
              "months"
            ],
            "type": "object"
          },
          {
            "additionalProperties": false,
            "properties": {
              "nodeId": {
                "maxLength": 128,
                "minLength": 1,
                "pattern": "^[A-Za-z0-9_.:-]+$",
                "type": "string",
                "description": "The node id associated with this task recurrence candidate source."
              },
              "op": {
                "const": "sequence",
                "type": "string",
                "description": "The op associated with this task recurrence candidate source."
              },
              "anchorLocal": {
                "pattern": "^\\d{4}-\\d{2}-\\d{2}T\\d{2}:\\d{2}(?::\\d{2})?$",
                "type": "string",
                "description": "The anchor local associated with this task recurrence candidate source."
              },
              "intervals": {
                "items": {
                  "allOf": [
                    {
                      "$ref": "#/$defs/TaskRecurrenceDuration"
                    },
                    {
                      "properties": {
                        "value": {
                          "minimum": 0,
                          "type": "integer",
                          "description": "Canonical value represented by this field."
                        }
                      },
                      "type": "object"
                    }
                  ]
                },
                "maxItems": 500,
                "minItems": 1,
                "type": "array",
                "description": "The intervals associated with this task recurrence candidate source."
              }
            },
            "required": [
              "nodeId",
              "op",
              "anchorLocal",
              "intervals"
            ],
            "type": "object"
          },
          {
            "additionalProperties": false,
            "properties": {
              "nodeId": {
                "maxLength": 128,
                "minLength": 1,
                "pattern": "^[A-Za-z0-9_.:-]+$",
                "type": "string",
                "description": "The node id associated with this task recurrence candidate source."
              },
              "op": {
                "const": "afterOccurrenceEvent",
                "type": "string",
                "description": "The op associated with this task recurrence candidate source."
              },
              "completionMode": {
                "enum": [
                  "every-completion-transition",
                  "first-completion-only"
                ],
                "type": "string",
                "description": "Canonical completion mode value for this task recurrence candidate source."
              },
              "delay": {
                "allOf": [
                  {
                    "$ref": "#/$defs/TaskRecurrenceDuration"
                  },
                  {
                    "properties": {
                      "value": {
                        "minimum": 0,
                        "type": "integer",
                        "description": "Canonical value represented by this field."
                      }
                    },
                    "type": "object"
                  }
                ],
                "description": "The delay associated with this task recurrence candidate source."
              },
              "event": {
                "enum": [
                  "completed",
                  "created",
                  "reopened"
                ],
                "type": "string",
                "description": "Canonical TeamGrid event name."
              }
            },
            "required": [
              "nodeId",
              "op",
              "event"
            ],
            "type": "object"
          },
          {
            "additionalProperties": false,
            "properties": {
              "nodeId": {
                "maxLength": 128,
                "minLength": 1,
                "pattern": "^[A-Za-z0-9_.:-]+$",
                "type": "string",
                "description": "The node id associated with this task recurrence candidate source."
              },
              "op": {
                "const": "afterProjectEvent",
                "type": "string",
                "description": "The op associated with this task recurrence candidate source."
              },
              "delay": {
                "allOf": [
                  {
                    "$ref": "#/$defs/TaskRecurrenceDuration"
                  },
                  {
                    "properties": {
                      "value": {
                        "minimum": 0,
                        "type": "integer",
                        "description": "Canonical value represented by this field."
                      }
                    },
                    "type": "object"
                  }
                ],
                "description": "The delay associated with this task recurrence candidate source."
              },
              "event": {
                "enum": [
                  "archived",
                  "completed",
                  "created",
                  "reopened",
                  "restored"
                ],
                "type": "string",
                "description": "Canonical TeamGrid event name."
              },
              "projectId": {
                "maxLength": 256,
                "minLength": 1,
                "pattern": "^[A-Za-z0-9_.:-]+$",
                "type": "string",
                "description": "Identifier of the related project."
              }
            },
            "required": [
              "nodeId",
              "op",
              "event",
              "projectId"
            ],
            "type": "object"
          },
          {
            "additionalProperties": false,
            "properties": {
              "nodeId": {
                "maxLength": 128,
                "minLength": 1,
                "pattern": "^[A-Za-z0-9_.:-]+$",
                "type": "string",
                "description": "The node id associated with this task recurrence candidate source."
              },
              "op": {
                "const": "externalEvent",
                "type": "string",
                "description": "The op associated with this task recurrence candidate source."
              },
              "delay": {
                "allOf": [
                  {
                    "$ref": "#/$defs/TaskRecurrenceDuration"
                  },
                  {
                    "properties": {
                      "value": {
                        "minimum": 0,
                        "type": "integer",
                        "description": "Canonical value represented by this field."
                      }
                    },
                    "type": "object"
                  }
                ],
                "description": "The delay associated with this task recurrence candidate source."
              },
              "eventType": {
                "maxLength": 128,
                "minLength": 1,
                "pattern": "^[A-Za-z][A-Za-z0-9_.:-]{0,127}$",
                "type": "string",
                "description": "The event type associated with this task recurrence candidate source."
              },
              "sourceId": {
                "maxLength": 128,
                "minLength": 1,
                "pattern": "^[A-Za-z0-9_.:-]+$",
                "type": "string",
                "description": "The source id associated with this task recurrence candidate source."
              }
            },
            "required": [
              "nodeId",
              "op",
              "eventType"
            ],
            "type": "object"
          },
          {
            "additionalProperties": false,
            "properties": {
              "op": {
                "const": "union",
                "type": "string",
                "description": "The op associated with this task recurrence candidate source."
              },
              "sources": {
                "items": {
                  "$ref": "#/$defs/TaskRecurrenceCandidateSource"
                },
                "maxItems": 32,
                "minItems": 1,
                "type": "array",
                "description": "The sources associated with this task recurrence candidate source."
              }
            },
            "required": [
              "op",
              "sources"
            ],
            "type": "object"
          },
          {
            "additionalProperties": false,
            "properties": {
              "op": {
                "const": "intersection",
                "type": "string",
                "description": "The op associated with this task recurrence candidate source."
              },
              "sources": {
                "items": {
                  "$ref": "#/$defs/TaskRecurrenceCandidateSource"
                },
                "maxItems": 32,
                "minItems": 1,
                "type": "array",
                "description": "The sources associated with this task recurrence candidate source."
              }
            },
            "required": [
              "op",
              "sources"
            ],
            "type": "object"
          },
          {
            "additionalProperties": false,
            "properties": {
              "op": {
                "const": "difference",
                "type": "string",
                "description": "The op associated with this task recurrence candidate source."
              },
              "exclude": {
                "description": "The exclude associated with this task recurrence candidate source.",
                "$ref": "#/$defs/TaskRecurrenceCandidateSource"
              },
              "include": {
                "description": "The include associated with this task recurrence candidate source.",
                "$ref": "#/$defs/TaskRecurrenceCandidateSource"
              }
            },
            "required": [
              "op",
              "exclude",
              "include"
            ],
            "type": "object"
          },
          {
            "additionalProperties": false,
            "properties": {
              "op": {
                "const": "deduplicate",
                "type": "string",
                "description": "The op associated with this task recurrence candidate source."
              },
              "granularity": {
                "enum": [
                  "instant",
                  "day",
                  "minute"
                ],
                "type": "string",
                "description": "Canonical granularity value for this task recurrence candidate source."
              },
              "source": {
                "description": "The source associated with this task recurrence candidate source.",
                "$ref": "#/$defs/TaskRecurrenceCandidateSource"
              }
            },
            "required": [
              "op",
              "granularity",
              "source"
            ],
            "type": "object"
          }
        ],
        "description": "Public API representation of task recurrence candidate source."
      },
      "TaskRecurrenceCalendarRule": {
        "additionalProperties": false,
        "properties": {
          "byHour": {
            "items": {
              "maximum": 23,
              "minimum": 0,
              "type": "integer"
            },
            "maxItems": 24,
            "type": "array",
            "description": "The by hour associated with this task recurrence calendar rule."
          },
          "byMinute": {
            "items": {
              "maximum": 59,
              "minimum": 0,
              "type": "integer"
            },
            "maxItems": 60,
            "type": "array",
            "description": "The by minute associated with this task recurrence calendar rule."
          },
          "byMonth": {
            "items": {
              "maximum": 12,
              "minimum": 1,
              "type": "integer"
            },
            "maxItems": 12,
            "type": "array",
            "description": "The by month associated with this task recurrence calendar rule."
          },
          "byMonthDay": {
            "items": {
              "maximum": 31,
              "minimum": -31,
              "not": {
                "const": 0
              },
              "type": "integer"
            },
            "maxItems": 62,
            "type": "array",
            "description": "The by month day associated with this task recurrence calendar rule."
          },
          "bySetPosition": {
            "items": {
              "maximum": 366,
              "minimum": -366,
              "not": {
                "const": 0
              },
              "type": "integer"
            },
            "maxItems": 732,
            "type": "array",
            "description": "The by set position associated with this task recurrence calendar rule."
          },
          "byWeekDay": {
            "items": {
              "maximum": 6,
              "minimum": 0,
              "type": "integer"
            },
            "maxItems": 7,
            "type": "array",
            "description": "The by week day associated with this task recurrence calendar rule."
          },
          "frequency": {
            "enum": [
              "minutely",
              "hourly",
              "daily",
              "weekly",
              "monthly",
              "yearly"
            ],
            "type": "string",
            "description": "Canonical frequency value for this task recurrence calendar rule."
          },
          "interval": {
            "default": 1,
            "maximum": 1000000,
            "minimum": 1,
            "type": "integer",
            "description": "The interval associated with this task recurrence calendar rule."
          },
          "invalidDayHandling": {
            "enum": [
              "next-valid-day",
              "omit",
              "previous-valid-day"
            ],
            "type": "string",
            "description": "Canonical invalid day handling value for this task recurrence calendar rule."
          },
          "startLocal": {
            "pattern": "^\\d{4}-\\d{2}-\\d{2}T\\d{2}:\\d{2}(?::\\d{2})?$",
            "type": "string",
            "description": "The start local associated with this task recurrence calendar rule."
          },
          "weekStart": {
            "maximum": 6,
            "minimum": 0,
            "type": "integer",
            "description": "The week start associated with this task recurrence calendar rule."
          }
        },
        "required": [
          "frequency",
          "startLocal"
        ],
        "type": "object",
        "description": "Public API representation of task recurrence calendar rule."
      },
      "TaskRecurrenceDuration": {
        "additionalProperties": false,
        "allOf": [
          {
            "if": {
              "properties": {
                "unit": {
                  "const": "business-day"
                }
              },
              "required": [
                "unit"
              ]
            },
            "then": {
              "properties": {
                "value": {
                  "maximum": 10000,
                  "minimum": -10000,
                  "type": "integer"
                }
              }
            }
          }
        ],
        "properties": {
          "unit": {
            "enum": [
              "minute",
              "hour",
              "day",
              "week",
              "month",
              "year",
              "business-day"
            ],
            "type": "string",
            "description": "Canonical unit value for this task recurrence duration."
          },
          "value": {
            "maximum": 1000000,
            "minimum": -1000000,
            "type": "integer",
            "description": "Canonical value represented by this field."
          }
        },
        "required": [
          "unit",
          "value"
        ],
        "type": "object",
        "description": "Public API representation of task recurrence duration."
      },
      "TaskRecurrenceCondition": {
        "oneOf": [
          {
            "additionalProperties": false,
            "properties": {
              "op": {
                "const": "all",
                "type": "string",
                "description": "The op associated with this task recurrence condition."
              },
              "conditions": {
                "items": {
                  "$ref": "#/$defs/TaskRecurrenceCondition"
                },
                "maxItems": 64,
                "type": "array",
                "description": "The conditions associated with this task recurrence condition."
              }
            },
            "required": [
              "op",
              "conditions"
            ],
            "type": "object"
          },
          {
            "additionalProperties": false,
            "properties": {
              "op": {
                "const": "any",
                "type": "string",
                "description": "The op associated with this task recurrence condition."
              },
              "conditions": {
                "items": {
                  "$ref": "#/$defs/TaskRecurrenceCondition"
                },
                "maxItems": 64,
                "type": "array",
                "description": "The conditions associated with this task recurrence condition."
              }
            },
            "required": [
              "op",
              "conditions"
            ],
            "type": "object"
          },
          {
            "additionalProperties": false,
            "properties": {
              "op": {
                "const": "not",
                "type": "string",
                "description": "The op associated with this task recurrence condition."
              },
              "condition": {
                "description": "The condition associated with this task recurrence condition.",
                "$ref": "#/$defs/TaskRecurrenceCondition"
              }
            },
            "required": [
              "op",
              "condition"
            ],
            "type": "object"
          },
          {
            "additionalProperties": false,
            "properties": {
              "op": {
                "const": "exists",
                "type": "string",
                "description": "The op associated with this task recurrence condition."
              },
              "value": {
                "description": "Canonical value represented by this field.",
                "$ref": "#/$defs/TaskRecurrenceConditionValue"
              }
            },
            "required": [
              "op",
              "value"
            ],
            "type": "object"
          },
          {
            "additionalProperties": false,
            "properties": {
              "op": {
                "const": "eq",
                "type": "string",
                "description": "The op associated with this task recurrence condition."
              },
              "left": {
                "description": "The left associated with this task recurrence condition.",
                "$ref": "#/$defs/TaskRecurrenceConditionValue"
              },
              "right": {
                "description": "The right associated with this task recurrence condition.",
                "$ref": "#/$defs/TaskRecurrenceConditionValue"
              }
            },
            "required": [
              "op",
              "left",
              "right"
            ],
            "type": "object"
          },
          {
            "additionalProperties": false,
            "properties": {
              "op": {
                "const": "neq",
                "type": "string",
                "description": "The op associated with this task recurrence condition."
              },
              "left": {
                "description": "The left associated with this task recurrence condition.",
                "$ref": "#/$defs/TaskRecurrenceConditionValue"
              },
              "right": {
                "description": "The right associated with this task recurrence condition.",
                "$ref": "#/$defs/TaskRecurrenceConditionValue"
              }
            },
            "required": [
              "op",
              "left",
              "right"
            ],
            "type": "object"
          },
          {
            "additionalProperties": false,
            "properties": {
              "op": {
                "const": "lt",
                "type": "string",
                "description": "The op associated with this task recurrence condition."
              },
              "left": {
                "description": "The left associated with this task recurrence condition.",
                "$ref": "#/$defs/TaskRecurrenceConditionValue"
              },
              "right": {
                "description": "The right associated with this task recurrence condition.",
                "$ref": "#/$defs/TaskRecurrenceConditionValue"
              }
            },
            "required": [
              "op",
              "left",
              "right"
            ],
            "type": "object"
          },
          {
            "additionalProperties": false,
            "properties": {
              "op": {
                "const": "lte",
                "type": "string",
                "description": "The op associated with this task recurrence condition."
              },
              "left": {
                "description": "The left associated with this task recurrence condition.",
                "$ref": "#/$defs/TaskRecurrenceConditionValue"
              },
              "right": {
                "description": "The right associated with this task recurrence condition.",
                "$ref": "#/$defs/TaskRecurrenceConditionValue"
              }
            },
            "required": [
              "op",
              "left",
              "right"
            ],
            "type": "object"
          },
          {
            "additionalProperties": false,
            "properties": {
              "op": {
                "const": "gt",
                "type": "string",
                "description": "The op associated with this task recurrence condition."
              },
              "left": {
                "description": "The left associated with this task recurrence condition.",
                "$ref": "#/$defs/TaskRecurrenceConditionValue"
              },
              "right": {
                "description": "The right associated with this task recurrence condition.",
                "$ref": "#/$defs/TaskRecurrenceConditionValue"
              }
            },
            "required": [
              "op",
              "left",
              "right"
            ],
            "type": "object"
          },
          {
            "additionalProperties": false,
            "properties": {
              "op": {
                "const": "gte",
                "type": "string",
                "description": "The op associated with this task recurrence condition."
              },
              "left": {
                "description": "The left associated with this task recurrence condition.",
                "$ref": "#/$defs/TaskRecurrenceConditionValue"
              },
              "right": {
                "description": "The right associated with this task recurrence condition.",
                "$ref": "#/$defs/TaskRecurrenceConditionValue"
              }
            },
            "required": [
              "op",
              "left",
              "right"
            ],
            "type": "object"
          },
          {
            "additionalProperties": false,
            "properties": {
              "op": {
                "const": "in",
                "type": "string",
                "description": "The op associated with this task recurrence condition."
              },
              "left": {
                "description": "The left associated with this task recurrence condition.",
                "$ref": "#/$defs/TaskRecurrenceConditionValue"
              },
              "right": {
                "items": {
                  "$ref": "#/$defs/TaskRecurrenceConditionValue"
                },
                "maxItems": 100,
                "type": "array",
                "description": "The right associated with this task recurrence condition."
              }
            },
            "required": [
              "op",
              "left",
              "right"
            ],
            "type": "object"
          }
        ],
        "description": "Public API representation of task recurrence condition."
      },
      "TaskRecurrenceConditionValue": {
        "oneOf": [
          {
            "type": [
              "boolean",
              "number",
              "string",
              "null"
            ]
          },
          {
            "additionalProperties": false,
            "properties": {
              "ref": {
                "maxLength": 256,
                "pattern": "^(event\\.[A-Za-z0-9_.:-]+|occurrence\\.(scheduledFor|scheduledDate)|previousOccurrence\\.(archived|completed|exists|state)|project\\.(active|archived|completed|exists)|series\\.(status|occurrenceCount)|customField\\.[A-Za-z0-9_.:-]+)$",
                "type": "string",
                "description": "The ref associated with this task recurrence condition value."
              }
            },
            "required": [
              "ref"
            ],
            "type": "object"
          }
        ],
        "description": "Public API representation of task recurrence condition value."
      },
      "TaskRecurrenceTransform": {
        "oneOf": [
          {
            "additionalProperties": false,
            "properties": {
              "op": {
                "const": "offset",
                "type": "string",
                "description": "The op associated with this task recurrence transform."
              },
              "unit": {
                "enum": [
                  "minute",
                  "hour",
                  "day",
                  "week",
                  "month",
                  "year",
                  "business-day"
                ],
                "type": "string",
                "description": "Canonical unit value for this task recurrence transform."
              },
              "unitMode": {
                "enum": [
                  "elapsed",
                  "wall-clock"
                ],
                "type": "string",
                "description": "Canonical unit mode value for this task recurrence transform."
              },
              "value": {
                "maximum": 1000000,
                "minimum": -1000000,
                "type": "integer",
                "description": "Canonical value represented by this field."
              }
            },
            "required": [
              "op",
              "unit",
              "value"
            ],
            "type": "object",
            "allOf": [
              {
                "if": {
                  "properties": {
                    "unit": {
                      "const": "business-day"
                    }
                  },
                  "required": [
                    "unit"
                  ]
                },
                "then": {
                  "properties": {
                    "value": {
                      "maximum": 10000,
                      "minimum": -10000,
                      "type": "integer"
                    }
                  }
                }
              }
            ]
          },
          {
            "additionalProperties": false,
            "properties": {
              "op": {
                "const": "nthBusinessDay",
                "type": "string",
                "description": "The op associated with this task recurrence transform."
              },
              "calendarBinding": {
                "enum": [
                  "assignee",
                  "project",
                  "series"
                ],
                "type": "string",
                "description": "Canonical calendar binding value for this task recurrence transform."
              },
              "period": {
                "enum": [
                  "month",
                  "quarter",
                  "year"
                ],
                "type": "string",
                "description": "Canonical period value for this task recurrence transform."
              },
              "position": {
                "maximum": 366,
                "minimum": -366,
                "not": {
                  "const": 0
                },
                "type": "integer",
                "description": "The position associated with this task recurrence transform."
              }
            },
            "required": [
              "op",
              "period",
              "position"
            ],
            "type": "object"
          },
          {
            "additionalProperties": false,
            "properties": {
              "op": {
                "const": "shiftToBusinessTime",
                "type": "string",
                "description": "The op associated with this task recurrence transform."
              },
              "calendarBinding": {
                "enum": [
                  "assignee",
                  "project",
                  "series"
                ],
                "type": "string",
                "description": "Canonical calendar binding value for this task recurrence transform."
              },
              "direction": {
                "enum": [
                  "next",
                  "previous"
                ],
                "type": "string",
                "description": "Canonical direction value for this task recurrence transform."
              },
              "includeAbsences": {
                "type": "boolean",
                "description": "Whether include absences applies to this task recurrence transform."
              }
            },
            "required": [
              "op",
              "direction"
            ],
            "type": "object"
          },
          {
            "additionalProperties": false,
            "properties": {
              "op": {
                "const": "snapToWorkingTime",
                "type": "string",
                "description": "The op associated with this task recurrence transform."
              },
              "calendarBinding": {
                "enum": [
                  "assignee",
                  "project",
                  "series"
                ],
                "type": "string",
                "description": "Canonical calendar binding value for this task recurrence transform."
              },
              "direction": {
                "enum": [
                  "next",
                  "previous"
                ],
                "type": "string",
                "description": "Canonical direction value for this task recurrence transform."
              },
              "includeAbsences": {
                "type": "boolean",
                "description": "Whether include absences applies to this task recurrence transform."
              }
            },
            "required": [
              "op",
              "direction"
            ],
            "type": "object"
          },
          {
            "additionalProperties": false,
            "properties": {
              "op": {
                "const": "setLocalTime",
                "type": "string",
                "description": "The op associated with this task recurrence transform."
              },
              "hour": {
                "maximum": 23,
                "minimum": 0,
                "type": "integer",
                "description": "The hour associated with this task recurrence transform."
              },
              "minute": {
                "maximum": 59,
                "minimum": 0,
                "type": "integer",
                "description": "The minute associated with this task recurrence transform."
              }
            },
            "required": [
              "op",
              "hour",
              "minute"
            ],
            "type": "object"
          },
          {
            "additionalProperties": false,
            "properties": {
              "op": {
                "const": "limit",
                "type": "string",
                "description": "The op associated with this task recurrence transform."
              },
              "count": {
                "maximum": 1000000,
                "minimum": 1,
                "type": "integer",
                "description": "The count associated with this task recurrence transform."
              },
              "start": {
                "maxLength": 32,
                "minLength": 10,
                "type": "string",
                "description": "Start timestamp of the represented interval."
              },
              "until": {
                "maxLength": 32,
                "minLength": 10,
                "type": "string",
                "description": "The until associated with this task recurrence transform."
              }
            },
            "required": [
              "op"
            ],
            "type": "object",
            "anyOf": [
              {
                "properties": {
                  "count": {
                    "type": "integer",
                    "description": "The count associated with this task recurrence transform."
                  }
                },
                "required": [
                  "count"
                ],
                "type": "object"
              },
              {
                "properties": {
                  "start": {
                    "type": "string",
                    "description": "Start timestamp of the represented interval."
                  }
                },
                "required": [
                  "start"
                ],
                "type": "object"
              },
              {
                "properties": {
                  "until": {
                    "type": "string",
                    "description": "The until associated with this task recurrence transform."
                  }
                },
                "required": [
                  "until"
                ],
                "type": "object"
              }
            ]
          },
          {
            "additionalProperties": false,
            "properties": {
              "op": {
                "const": "excludeDateSet",
                "type": "string",
                "description": "The op associated with this task recurrence transform."
              },
              "dates": {
                "items": {
                  "pattern": "^\\d{4}-\\d{2}-\\d{2}$",
                  "type": "string"
                },
                "maxItems": 500,
                "minItems": 1,
                "type": "array",
                "description": "The dates associated with this task recurrence transform."
              }
            },
            "required": [
              "op",
              "dates"
            ],
            "type": "object"
          },
          {
            "additionalProperties": false,
            "properties": {
              "op": {
                "const": "excludePeriod",
                "type": "string",
                "description": "The op associated with this task recurrence transform."
              },
              "end": {
                "maxLength": 32,
                "minLength": 10,
                "type": "string",
                "description": "End timestamp of the represented interval."
              },
              "start": {
                "maxLength": 32,
                "minLength": 10,
                "type": "string",
                "description": "Start timestamp of the represented interval."
              }
            },
            "required": [
              "op",
              "end",
              "start"
            ],
            "type": "object"
          },
          {
            "additionalProperties": false,
            "properties": {
              "op": {
                "const": "mapToDueAndPlanningDates",
                "type": "string",
                "description": "The op associated with this task recurrence transform."
              },
              "dueOffset": {
                "description": "The due offset associated with this task recurrence transform.",
                "$ref": "#/$defs/TaskRecurrenceDuration"
              },
              "plannedEndOffset": {
                "description": "The planned end offset associated with this task recurrence transform.",
                "$ref": "#/$defs/TaskRecurrenceDuration"
              },
              "plannedStartOffset": {
                "description": "The planned start offset associated with this task recurrence transform.",
                "$ref": "#/$defs/TaskRecurrenceDuration"
              }
            },
            "required": [
              "op"
            ],
            "type": "object"
          }
        ],
        "description": "Public API representation of task recurrence transform."
      },
      "TaskRecurrenceTemplateInput": {
        "additionalProperties": false,
        "description": "Exact recurrence-approved task template projection.",
        "properties": {
          "billable": {
            "type": "boolean",
            "description": "Whether this time or service can be billed."
          },
          "contactId": {
            "maxLength": 256,
            "minLength": 1,
            "pattern": "^[A-Za-z0-9_.:-]+$",
            "type": "string",
            "description": "Identifier of the related contact."
          },
          "customFieldValues": {
            "additionalProperties": {
              "oneOf": [
                {
                  "type": [
                    "boolean",
                    "number",
                    "string",
                    "null"
                  ]
                },
                {
                  "items": {
                    "type": [
                      "boolean",
                      "number",
                      "string",
                      "null"
                    ]
                  },
                  "maxItems": 250,
                  "type": "array"
                }
              ]
            },
            "maxProperties": 256,
            "type": "object",
            "description": "The custom field values associated with this task recurrence template."
          },
          "description": {
            "maxLength": 200000,
            "type": "string",
            "description": "Human-readable description of the resource."
          },
          "descriptionFormat": {
            "enum": [
              "markdown-v1",
              "plain-text"
            ],
            "type": "string",
            "description": "How to interpret the task description. Legacy and unmarked descriptions are plain-text; markdown-v1 enables TeamGrid Markdown."
          },
          "groupId": {
            "maxLength": 256,
            "minLength": 1,
            "pattern": "^[A-Za-z0-9_.:-]+$",
            "type": "string",
            "description": "Identifier of the related workspace group."
          },
          "listId": {
            "maxLength": 256,
            "minLength": 1,
            "pattern": "^[A-Za-z0-9_.:-]+$",
            "type": "string",
            "description": "Identifier of the related task list."
          },
          "name": {
            "maxLength": 1000,
            "minLength": 1,
            "type": "string",
            "description": "Human-readable name of the resource."
          },
          "personalListId": {
            "maxLength": 256,
            "minLength": 1,
            "pattern": "^[A-Za-z0-9_.:-]+$",
            "type": "string",
            "description": "The personal list id associated with this task recurrence template."
          },
          "plannedTime": {
            "maximum": 100000000,
            "minimum": 0,
            "type": "number",
            "description": "Planned effort in minutes."
          },
          "projectId": {
            "maxLength": 256,
            "minLength": 1,
            "pattern": "^[A-Za-z0-9_.:-]+$",
            "type": "string",
            "description": "Identifier of the related project."
          },
          "serviceId": {
            "maxLength": 256,
            "minLength": 1,
            "pattern": "^[A-Za-z0-9_.:-]+$",
            "type": "string",
            "description": "Identifier of the related service."
          },
          "subscriberIds": {
            "items": {
              "maxLength": 256,
              "minLength": 1,
              "pattern": "^[A-Za-z0-9_.:-]+$",
              "type": "string"
            },
            "maxItems": 250,
            "type": "array",
            "description": "Ordered set of subscriber identifiers associated with this task recurrence template."
          },
          "subTasks": {
            "items": {
              "additionalProperties": false,
              "properties": {
                "order": {
                  "maximum": 100000000,
                  "minimum": -100000000,
                  "type": "number",
                  "description": "The order associated with this task recurrence template sub tasks."
                },
                "title": {
                  "maxLength": 5000,
                  "minLength": 1,
                  "type": "string",
                  "description": "Human-readable title of the resource."
                }
              },
              "required": [
                "title"
              ],
              "type": "object"
            },
            "maxItems": 500,
            "type": "array",
            "description": "The sub tasks associated with this task recurrence template."
          },
          "tagIds": {
            "items": {
              "maxLength": 256,
              "minLength": 1,
              "pattern": "^[A-Za-z0-9_.:-]+$",
              "type": "string"
            },
            "maxItems": 250,
            "type": "array",
            "description": "Ordered set of tag identifiers associated with this task recurrence template."
          },
          "userId": {
            "maxLength": 256,
            "minLength": 1,
            "pattern": "^[A-Za-z0-9_.:-]+$",
            "type": "string",
            "description": "Identifier of the related workspace user."
          }
        },
        "required": [
          "name"
        ],
        "type": "object"
      }
    }
  },
  "profileOutputSchemas": {},
  "exposure": "gated-write",
  "apiOperations": [
    {
      "href": "/api/v1/reference/operations/restoretaskrecurrence/",
      "method": "POST",
      "operationId": "restoreTaskRecurrence",
      "path": "/task-recurrences/{id}/restore"
    }
  ],
  "availableIn": [
    "full",
    "tasks-write"
  ],
  "baseProfile": "full",
  "description": "Restore a task recurrence. Changes the selected workspace under current API permissions. Read the target first; submit its exact ETag. On conflict, review the current state before making a new decision. Changes can affect future automated actions; inspect the definition and schedule first.",
  "inputSchema": {
    "type": "object",
    "properties": {
      "workspaceId": {
        "type": "string",
        "minLength": 1,
        "maxLength": 128,
        "description": "Workspace returned by teamgrid_workspace_get and selected for this exact action."
      },
      "id": {
        "maxLength": 128,
        "minLength": 1,
        "type": "string"
      },
      "expectedRevision": {
        "pattern": "^\"tr1-[a-f0-9]{64}\"$",
        "type": "string",
        "description": "Exact strong ETag (including quotes) from the read reviewed for this action. Never replace it automatically after a conflict."
      }
    },
    "required": [
      "workspaceId",
      "id",
      "expectedRevision"
    ],
    "additionalProperties": false
  },
  "profileInputSchemas": {},
  "name": "teamgrid_task_recurrence_restore",
  "scopes": {
    "optional": [],
    "conditional": [],
    "required": [
      "task-recurrences:write",
      "tasks:read",
      "tasks:write",
      "workspace:read"
    ]
  },
  "security": {
    "classification": "workspace-mutation",
    "summary": "This changes workspace state and may trigger business or external effects. Use its exact scope, revision and idempotency contract; profile selection grants no authority."
  },
  "output": {
    "format": "A compact mutation receipt includes target and revision when available; outcome metadata distinguishes accepted, complete, partial and uncertain results.",
    "kind": "mutation-receipt",
    "maxSerializedBytes": 262144,
    "pagination": null,
    "redactions": [],
    "searchLimit": null
  },
  "examplePrompt": "Prepare a teamgrid_task_recurrence_restore operation for my chosen target. Resolve IDs, read current state and revisions, show the intended change, then report its confirmed or uncertain outcome without automatic retries.",
  "typicalErrors": [
    {
      "condition": "The selected tool profile or allow/deny filter excludes `teamgrid_task_recurrence_restore`.",
      "result": "The tool is not advertised to the host. Select the narrowest profile that contains it and restart the host."
    },
    {
      "condition": "`id` is missing or violates this tool’s exact input schema, including any pattern or length restriction.",
      "result": "MCP input validation rejects the call before an API request is made."
    },
    {
      "condition": "The credential lacks `task-recurrences:write` and `tasks:read` and `tasks:write` and `workspace:read` or cannot access the requested resource.",
      "result": "The tool preserves a safe API error code such as `insufficient_scope`, with redacted detail and available status/request metadata."
    },
    {
      "condition": "The connection ends while awaiting the write result.",
      "result": "Inspect the outcome and status/resume information. An interrupted wait does not prove rollback; never blindly repeat the write."
    },
    {
      "condition": "An unknown input property is supplied.",
      "result": "The strict input schema rejects the call before an API request is made."
    }
  ]
}
