Skip to main content
Glama
borystam

mcp-visual-design-studio

by borystam

document_apply

Destructive

Apply validated batches of text, style, layout, page, element, and comment changes to a visual design document in one atomic operation.

Instructions

Apply one atomic validated batch of text, rich text, styles, layout, page, element or comment operations. Coordinates are CSS pixels. A style patch merges fields; text/runs should be updated together. Example operations entry: {"type":"update_element","elementId":"existing_element_id","patch":{"text":"Updated copy"}}. A token binding uses patch:{"tokenBindings":{"color":"color.primary"}}. Read the saved document to get actual IDs and expectedRevision. Supports groups with stack/grid children. Inspect before editing.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
batchYes
documentIdYes

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed9 schema fields changedv0.2.0
    • addedInput schema / $defs / __schema0 / properties / componentSource
      Added value: +{
      +  "additionalProperties": false,
      +  "properties": {
      +    "componentId": {
      +      "pattern": "^[A-Za-z0-9_-]{1,100}$",
      +      "type": "string"
      +    },
      +    "systemId": {
      +      "pattern": "^[A-Za-z0-9_-]{1,100}$",
      +      "type": "string"
      +    },
      +    "systemVersion": {
      +      "maxLength": 64,
      +      "pattern": "^(?:0|[1-9][0-9]*)\\.(?:0|[1-9][0-9]*)\\.(?:0|[1-9][0-9]*)(?:-[A-Za-z0-9]+(?:[.-][A-Za-z0-9]+)*)?$",
      +      "type": "string"
      +    },
      +    "variant": {
      +      "pattern": "^[A-Za-z0-9_-]{1,100}$",
      +      "type": "string"
      +    }
      +  },
      +  "required": [
      +    "systemId",
      +    "systemVersion",
      +    "componentId"
      +  ],
      +  "type": "object"
      +}
    • removedInput schema / $defs / __schema0 / properties / style / properties / fontFamily / enum
      Removed value: -[
      -  "Inter",
      -  "Lora",
      -  "monospace",
      -  "sans-serif",
      -  "serif"
      -]
    • addedInput schema / $defs / __schema0 / properties / style / properties / fontFamily / pattern
      Added value: +"^[A-Za-z][A-Za-z0-9 _-]{0,79}$"
    • removedInput schema / $defs / __schema0 / properties / style / properties / fontWeight / anyOf
      Removed value: -[
      -  {
      -    "const": 400,
      -    "type": "number"
      -  },
      -  {
      -    "const": 500,
      -    "type": "number"
      -  },
      -  {
      -    "const": 600,
      -    "type": "number"
      -  },
      -  {
      -    "const": 700,
      -    "type": "number"
      -  }
      -]
    • addedInput schema / $defs / __schema0 / properties / style / properties / fontWeight / maximum
      Added value: +900
    • addedInput schema / $defs / __schema0 / properties / style / properties / fontWeight / minimum
      Added value: +100
    • addedInput schema / $defs / __schema0 / properties / style / properties / fontWeight / type
      Added value: +"integer"
    • addedInput schema / $defs / __schema0 / properties / tokenBindings
      Added value: +{
      +  "additionalProperties": false,
      +  "properties": {
      +    "background": {
      +      "maxLength": 200,
      +      "pattern": "^[A-Za-z][A-Za-z0-9_-]*(?:\\.[A-Za-z0-9_-]+)*$",
      +      "type": "string"
      +    },
      +    "borderColor": {
      +      "maxLength": 200,
      +      "pattern": "^[A-Za-z][A-Za-z0-9_-]*(?:\\.[A-Za-z0-9_-]+)*$",
      +      "type": "string"
      +    },
      +    "borderRadius": {
      +      "maxLength": 200,
      +      "pattern": "^[A-Za-z][A-Za-z0-9_-]*(?:\\.[A-Za-z0-9_-]+)*$",
      +      "type": "string"
      +    },
      +    "borderWidth": {
      +      "maxLength": 200,
      +      "pattern": "^[A-Za-z][A-Za-z0-9_-]*(?:\\.[A-Za-z0-9_-]+)*$",
      +      "type": "string"
      +    },
      +    "color": {
      +      "maxLength": 200,
      +      "pattern": "^[A-Za-z][A-Za-z0-9_-]*(?:\\.[A-Za-z0-9_-]+)*$",
      +      "type": "string"
      +    },
      +    "fontFamily": {
      +      "maxLength": 200,
      +      "pattern": "^[A-Za-z][A-Za-z0-9_-]*(?:\\.[A-Za-z0-9_-]+)*$",
      +      "type": "string"
      +    },
      +    "fontSize": {
      +      "maxLength": 200,
      +      "pattern": "^[A-Za-z][A-Za-z0-9_-]*(?:\\.[A-Za-z0-9_-]+)*$",
      +      "type": "string"
      +    },
      +    "fontWeight": {
      +      "maxLength": 200,
      +      "pattern": "^[A-Za-z][A-Za-z0-9_-]*(?:\\.[A-Za-z0-9_-]+)*$",
      +      "type": "string"
      +    },
      +    "gap": {
      +      "maxLength": 200,
      +      "pattern": "^[A-Za-z][A-Za-z0-9_-]*(?:\\.[A-Za-z0-9_-]+)*$",
      +      "type": "string"
      +    },
      +    "letterSpacing": {
      +      "maxLength": 200,
      +      "pattern": "^[A-Za-z][A-Za-z0-9_-]*(?:\\.[A-Za-z0-9_-]+)*$",
      +      "type": "string"
      +    },
      +    "lineHeight": {
      +      "maxLength": 200,
      +      "pattern": "^[A-Za-z][A-Za-z0-9_-]*(?:\\.[A-Za-z0-9_-]+)*$",
      +      "type": "string"
      +    },
      +    "opacity": {
      +      "maxLength": 200,
      +      "pattern": "^[A-Za-z][A-Za-z0-9_-]*(?:\\.[A-Za-z0-9_-]+)*$",
      +      "type": "string"
      +    },
      +    "padding": {
      +      "maxLength": 200,
      +      "pattern": "^[A-Za-z][A-Za-z0-9_-]*(?:\\.[A-Za-z0-9_-]+)*$",
      +      "type": "string"
      +    }
      +  },
      +  "type": "object"
      +}
    • changedInput schema / properties / batch / properties / operations / items / oneOf
      Previous value: -[
      -  {
      -    "additionalProperties": false,
      -    "properties": {
      -      "patch": {
      -        "additionalProperties": false,
      -        "properties": {
      -          "brand": {
      -            "additionalProperties": false,
      -            "properties": {
      -              "colors": {
      -                "additionalProperties": {
      -                  "pattern": "^(?:#[0-9a-fA-F]{3,4}|#[0-9a-fA-F]{6}|#[0-9a-fA-F]{8}|transparent)$",
      -                  "type": "string"
      -                },
      -                "propertyNames": {
      -                  "pattern": "^[A-Za-z0-9_-]{1,100}$",
      -                  "type": "string"
      -                },
      -                "type": "object"
      -              },
      -              "components": {
      -                "items": {
      -                  "$ref": "#/$defs/__schema0"
      -                },
      -                "maxItems": 200,
      -                "type": "array"
      -              },
      -              "fonts": {
      -                "additionalProperties": false,
      -                "properties": {
      -                  "body": {
      -                    "enum": [
      -                      "Inter",
      -                      "Lora",
      -                      "monospace",
      -                      "sans-serif",
      -                      "serif"
      -                    ],
      -                    "type": "string"
      -                  },
      -                  "heading": {
      -                    "enum": [
      -                      "Inter",
      -                      "Lora",
      -                      "monospace",
      -                      "sans-serif",
      -                      "serif"
      -                    ],
      -                    "type": "string"
      -                  }
      -                },
      -                "required": [
      -                  "heading",
      -                  "body"
      -                ],
      -                "type": "object"
      -              },
      -              "id": {
      -                "pattern": "^[A-Za-z0-9_-]{1,100}$",
      -                "type": "string"
      -              },
      -              "logoAssetId": {
      -                "pattern": "^[A-Za-z0-9_-]{1,100}$",
      -                "type": "string"
      -              },
      -              "name": {
      -                "maxLength": 200,
      -                "minLength": 1,
      -                "type": "string"
      -              }
      -            },
      -            "required": [
      -              "id",
      -              "name",
      -              "colors",
      -              "fonts",
      -              "components"
      -            ],
      -            "type": "object"
      -          },
      -          "name": {
      -            "maxLength": 200,
      -            "minLength": 1,
      -            "type": "string"
      -          }
      -        },
      -        "type": "object"
      -      },
      -      "type": {
      -        "const": "set_document",
      -        "type": "string"
      -      }
      -    },
      -    "required": [
      -      "type",
      -      "patch"
      -    ],
      -    "type": "object"
      -  },
      -  {
      -    "additionalProperties": false,
      -    "properties": {
      -      "index": {
      -        "maximum": 5000,
      -        "minimum": 0,
      -        "type": "integer"
      -      },
      -      "page": {
      -        "additionalProperties": false,
      -        "properties": {
      -          "background": {
      -            "pattern": "^(?:#[0-9a-fA-F]{3,4}|#[0-9a-fA-F]{6}|#[0-9a-fA-F]{8}|transparent)$",
      -            "type": "string"
      -          },
      -          "elements": {
      -            "items": {
      -              "$ref": "#/$defs/__schema0"
      -            },
      -            "maxItems": 5000,
      -            "type": "array"
      -          },
      -          "height": {
      -            "maximum": 10000,
      -            "minimum": 1,
      -            "type": "number"
      -          },
      -          "id": {
      -            "pattern": "^[A-Za-z0-9_-]{1,100}$",
      -            "type": "string"
      -          },
      -          "name": {
      -            "maxLength": 200,
      -            "minLength": 1,
      -            "type": "string"
      -          },
      -          "width": {
      -            "maximum": 10000,
      -            "minimum": 1,
      -            "type": "number"
      -          }
      -        },
      -        "required": [
      -          "id",
      -          "name",
      -          "width",
      -          "height",
      -          "background",
      -          "elements"
      -        ],
      -        "type": "object"
      -      },
      -      "type": {
      -        "const": "add_page",
      -        "type": "string"
      -      }
      -    },
      -    "required": [
      -      "type",
      -      "page"
      -    ],
      -    "type": "object"
      -  },
      -  {
      -    "additionalProperties": false,
      -    "properties": {
      -      "pageId": {
      -        "pattern": "^[A-Za-z0-9_-]{1,100}$",
      -        "type": "string"
      -      },
      -      "patch": {
      -        "additionalProperties": false,
      -        "properties": {
      -          "background": {
      -            "pattern": "^(?:#[0-9a-fA-F]{3,4}|#[0-9a-fA-F]{6}|#[0-9a-fA-F]{8}|transparent)$",
      -            "type": "string"
      -          },
      -          "height": {
      -            "maximum": 10000,
      -            "minimum": 0.1,
      -            "type": "number"
      -          },
      -          "name": {
      -            "maxLength": 200,
      -            "minLength": 1,
      -            "type": "string"
      -          },
      -          "width": {
      -            "maximum": 10000,
      -            "minimum": 0.1,
      -            "type": "number"
      -          }
      -        },
      -        "type": "object"
      -      },
      -      "type": {
      -        "const": "update_page",
      -        "type": "string"
      -      }
      -    },
      -    "required": [
      -      "type",
      -      "pageId",
      -      "patch"
      -    ],
      -    "type": "object"
      -  },
      -  {
      -    "additionalProperties": false,
      -    "properties": {
      -      "index": {
      -        "maximum": 5000,
      -        "minimum": 0,
      -        "type": "integer"
      -      },
      -      "pageId": {
      -        "pattern": "^[A-Za-z0-9_-]{1,100}$",
      -        "type": "string"
      -      },
      -      "type": {
      -        "const": "move_page",
      -        "type": "string"
      -      }
      -    },
      -    "required": [
      -      "type",
      -      "pageId",
      -      "index"
      -    ],
      -    "type": "object"
      -  },
      -  {
      -    "additionalProperties": false,
      -    "properties": {
      -      "pageId": {
      -        "pattern": "^[A-Za-z0-9_-]{1,100}$",
      -        "type": "string"
      -      },
      -      "type": {
      -        "const": "delete_page",
      -        "type": "string"
      -      }
      -    },
      -    "required": [
      -      "type",
      -      "pageId"
      -    ],
      -    "type": "object"
      -  },
      -  {
      -    "additionalProperties": false,
      -    "properties": {
      -      "element": {
      -        "$ref": "#/$defs/__schema0"
      -      },
      -      "index": {
      -        "maximum": 5000,
      -        "minimum": 0,
      -        "type": "integer"
      -      },
      -      "pageId": {
      -        "pattern": "^[A-Za-z0-9_-]{1,100}$",
      -        "type": "string"
      -      },
      -      "parentId": {
      -        "pattern": "^[A-Za-z0-9_-]{1,100}$",
      -        "type": "string"
      -      },
      -      "type": {
      -        "const": "add_element",
      -        "type": "string"
      -      }
      -    },
      -    "required": [
      -      "type",
      -      "pageId",
      -      "element"
      -    ],
      -    "type": "object"
      -  },
      -  {
      -    "additionalProperties": false,
      -    "properties": {
      -      "elementId": {
      -        "pattern": "^[A-Za-z0-9_-]{1,100}$",
      -        "type": "string"
      -      },
      -      "patch": {
      -        "additionalProperties": false,
      -        "properties": {
      -          "assetId": {
      -            "pattern": "^[A-Za-z0-9_-]{1,100}$",
      -            "type": "string"
      -          },
      -          "cells": {
      -            "items": {
      -              "items": {
      -                "maxLength": 10000,
      -                "type": "string"
      -              },
      -              "maxItems": 100,
      -              "type": "array"
      -            },
      -            "maxItems": 500,
      -            "type": "array"
      -          },
      -          "columns": {
      -            "maximum": 100,
      -            "minimum": 1,
      -            "type": "integer"
      -          },
      -          "crop": {
      -            "additionalProperties": false,
      -            "properties": {
      -              "x": {
      -                "maximum": 100,
      -                "minimum": 0,
      -                "type": "number"
      -              },
      -              "y": {
      -                "maximum": 100,
      -                "minimum": 0,
      -                "type": "number"
      -              }
      -            },
      -            "required": [
      -              "x",
      -              "y"
      -            ],
      -            "type": "object"
      -          },
      -          "fit": {
      -            "enum": [
      -              "cover",
      -              "contain",
      -              "fill"
      -            ],
      -            "type": "string"
      -          },
      -          "gap": {
      -            "maximum": 1000,
      -            "minimum": 0,
      -            "type": "number"
      -          },
      -          "height": {
      -            "maximum": 10000,
      -            "minimum": 0.1,
      -            "type": "number"
      -          },
      -          "href": {
      -            "anyOf": [
      -              {
      -                "maxLength": 2048,
      -                "type": "string"
      -              },
      -              {
      -                "type": "null"
      -              }
      -            ]
      -          },
      -          "layout": {
      -            "enum": [
      -              "position",
      -              "stack",
      -              "grid"
      -            ],
      -            "type": "string"
      -          },
      -          "list": {
      -            "enum": [
      -              "none",
      -              "bullet",
      -              "number"
      -            ],
      -            "type": "string"
      -          },
      -          "name": {
      -            "maxLength": 200,
      -            "minLength": 1,
      -            "type": "string"
      -          },
      -          "runs": {
      -            "items": {
      -              "additionalProperties": false,
      -              "properties": {
      -                "bold": {
      -                  "type": "boolean"
      -                },
      -                "href": {
      -                  "maxLength": 2048,
      -                  "type": "string"
      -                },
      -                "italic": {
      -                  "type": "boolean"
      -                },
      -                "text": {
      -                  "maxLength": 100000,
      -                  "type": "string"
      -                },
      -                "underline": {
      -                  "type": "boolean"
      -                }
      -              },
      -              "required": [
      -                "text"
      -              ],
      -              "type": "object"
      -            },
      -            "maxItems": 1000,
      -            "type": "array"
      -          },
      -          "style": {
      -            "additionalProperties": false,
      -            "properties": {
      -              "background": {
      -                "pattern": "^(?:#[0-9a-fA-F]{3,4}|#[0-9a-fA-F]{6}|#[0-9a-fA-F]{8}|transparent)$",
      -                "type": "string"
      -              },
      -              "borderColor": {
      -                "pattern": "^(?:#[0-9a-fA-F]{3,4}|#[0-9a-fA-F]{6}|#[0-9a-fA-F]{8}|transparent)$",
      -                "type": "string"
      -              },
      -              "borderRadius": {
      -                "maximum": 5000,
      -                "minimum": 0,
      -                "type": "number"
      -              },
      -              "borderWidth": {
      -                "maximum": 100,
      -                "minimum": 0,
      -                "type": "number"
      -              },
      -              "color": {
      -                "pattern": "^(?:#[0-9a-fA-F]{3,4}|#[0-9a-fA-F]{6}|#[0-9a-fA-F]{8}|transparent)$",
      -                "type": "string"
      -              },
      -              "fontFamily": {
      -                "enum": [
      -                  "Inter",
      -                  "Lora",
      -                  "monospace",
      -                  "sans-serif",
      -                  "serif"
      -                ],
      -                "type": "string"
      -              },
      -              "fontSize": {
      -                "maximum": 1000,
      -                "minimum": 1,
      -                "type": "number"
      -              },
      -              "fontStyle": {
      -                "enum": [
      -                  "normal",
      -                  "italic"
      -                ],
      -                "type": "string"
      -              },
      -              "fontWeight": {
      -                "anyOf": [
      -                  {
      -                    "const": 400,
      -                    "type": "number"
      -                  },
      -                  {
      -                    "const": 500,
      -                    "type": "number"
      -                  },
      -                  {
      -                    "const": 600,
      -                    "type": "number"
      -                  },
      -                  {
      -                    "const": 700,
      -                    "type": "number"
      -                  }
      -                ]
      -              },
      -              "letterSpacing": {
      -                "maximum": 100,
      -                "minimum": -20,
      -                "type": "number"
      -              },
      -              "lineHeight": {
      -                "maximum": 5,
      -                "minimum": 0.5,
      -                "type": "number"
      -              },
      -              "opacity": {
      -                "maximum": 1,
      -                "minimum": 0,
      -                "type": "number"
      -              },
      -              "padding": {
      -                "maximum": 1000,
      -                "minimum": 0,
      -                "type": "number"
      -              },
      -              "textAlign": {
      -                "enum": [
      -                  "left",
      -                  "center",
      -                  "right",
      -                  "justify"
      -                ],
      -                "type": "string"
      -              },
      -              "textDecoration": {
      -                "enum": [
      -                  "none",
      -                  "underline",
      -                  "line-through"
      -                ],
      -                "type": "string"
      -              }
      -            },
      -            "type": "object"
      -          },
      -          "text": {
      -            "maxLength": 100000,
      -            "type": "string"
      -          },
      -          "width": {
      -            "maximum": 10000,
      -            "minimum": 0.1,
      -            "type": "number"
      -          },
      -          "x": {
      -            "maximum": 10000,
      -            "minimum": -10000,
      -            "type": "number"
      -          },
      -          "y": {
      -            "maximum": 10000,
      -            "minimum": -10000,
      -            "type": "number"
      -          }
      -        },
      -        "type": "object"
      -      },
      -      "type": {
      -        "const": "update_element",
      -        "type": "string"
      -      }
      -    },
      -    "required": [
      -      "type",
      -      "elementId",
      -      "patch"
      -    ],
      -    "type": "object"
      -  },
      -  {
      -    "additionalProperties": false,
      -    "properties": {
      -      "elementId": {
      -        "pattern": "^[A-Za-z0-9_-]{1,100}$",
      -        "type": "string"
      -      },
      -      "index": {
      -        "maximum": 5000,
      -        "minimum": 0,
      -        "type": "integer"
      -      },
      -      "pageId": {
      -        "pattern": "^[A-Za-z0-9_-]{1,100}$",
      -        "type": "string"
      -      },
      -      "parentId": {
      -        "pattern": "^[A-Za-z0-9_-]{1,100}$",
      -        "type": "string"
      -      },
      -      "type": {
      -        "const": "move_element",
      -        "type": "string"
      -      }
      -    },
      -    "required": [
      -      "type",
      -      "elementId",
      -      "pageId",
      -      "index"
      -    ],
      -    "type": "object"
      -  },
      -  {
      -    "additionalProperties": false,
      -    "properties": {
      -      "elementId": {
      -        "pattern": "^[A-Za-z0-9_-]{1,100}$",
      -        "type": "string"
      -      },
      -      "type": {
      -        "const": "delete_element",
      -        "type": "string"
      -      }
      -    },
      -    "required": [
      -      "type",
      -      "elementId"
      -    ],
      -    "type": "object"
      -  },
      -  {
      -    "additionalProperties": false,
      -    "properties": {
      -      "comment": {
      -        "additionalProperties": false,
      -        "properties": {
      -          "author": {
      -            "maxLength": 200,
      -            "minLength": 1,
      -            "type": "string"
      -          },
      -          "createdAt": {
      -            "format": "date-time",
      -            "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z))$",
      -            "type": "string"
      -          },
      -          "elementId": {
      -            "pattern": "^[A-Za-z0-9_-]{1,100}$",
      -            "type": "string"
      -          },
      -          "id": {
      -            "pattern": "^[A-Za-z0-9_-]{1,100}$",
      -            "type": "string"
      -          },
      -          "pageId": {
      -            "pattern": "^[A-Za-z0-9_-]{1,100}$",
      -            "type": "string"
      -          },
      -          "resolved": {
      -            "type": "boolean"
      -          },
      -          "text": {
      -            "maxLength": 10000,
      -            "minLength": 1,
      -            "type": "string"
      -          }
      -        },
      -        "required": [
      -          "id",
      -          "text",
      -          "author",
      -          "createdAt",
      -          "resolved"
      -        ],
      -        "type": "object"
      -      },
      -      "type": {
      -        "const": "add_comment",
      -        "type": "string"
      -      }
      -    },
      -    "required": [
      -      "type",
      -      "comment"
      -    ],
      -    "type": "object"
      -  },
      -  {
      -    "additionalProperties": false,
      -    "properties": {
      -      "commentId": {
      -        "pattern": "^[A-Za-z0-9_-]{1,100}$",
      -        "type": "string"
      -      },
      -      "patch": {
      -        "additionalProperties": false,
      -        "properties": {
      -          "resolved": {
      -            "type": "boolean"
      -          },
      -          "text": {
      -            "maxLength": 10000,
      -            "minLength": 1,
      -            "type": "string"
      -          }
      -        },
      -        "type": "object"
      -      },
      -      "type": {
      -        "const": "update_comment",
      -        "type": "string"
      -      }
      -    },
      -    "required": [
      -      "type",
      -      "commentId",
      -      "patch"
      -    ],
      -    "type": "object"
      -  },
      -  {
      -    "additionalProperties": false,
      -    "properties": {
      -      "asset": {
      -        "additionalProperties": false,
      -        "properties": {
      -          "bytes": {
      -            "maximum": 20971520,
      -            "minimum": 1,
      -            "type": "integer"
      -          },
      -          "id": {
      -            "pattern": "^[A-Za-z0-9_-]{1,100}$",
      -            "type": "string"
      -          },
      -          "mime": {
      -            "enum": [
      -              "image/png",
      -              "image/jpeg",
      -              "image/webp",
      -              "image/gif",
      -              "image/svg+xml"
      -            ],
      -            "type": "string"
      -          },
      -          "name": {
      -            "maxLength": 200,
      -            "minLength": 1,
      -            "type": "string"
      -          },
      -          "sha256": {
      -            "pattern": "^[a-f0-9]{64}$",
      -            "type": "string"
      -          }
      -        },
      -        "required": [
      -          "id",
      -          "name",
      -          "mime",
      -          "bytes",
      -          "sha256"
      -        ],
      -        "type": "object"
      -      },
      -      "type": {
      -        "const": "register_asset",
      -        "type": "string"
      -      }
      -    },
      -    "required": [
      -      "type",
      -      "asset"
      -    ],
      -    "type": "object"
      -  }
      -]New value: +[
      +  {
      +    "additionalProperties": false,
      +    "properties": {
      +      "patch": {
      +        "additionalProperties": false,
      +        "properties": {
      +          "brand": {
      +            "additionalProperties": false,
      +            "properties": {
      +              "colors": {
      +                "additionalProperties": {
      +                  "pattern": "^(?:#[0-9a-fA-F]{3,4}|#[0-9a-fA-F]{6}|#[0-9a-fA-F]{8}|transparent)$",
      +                  "type": "string"
      +                },
      +                "propertyNames": {
      +                  "pattern": "^[A-Za-z0-9_-]{1,100}$",
      +                  "type": "string"
      +                },
      +                "type": "object"
      +              },
      +              "components": {
      +                "items": {
      +                  "$ref": "#/$defs/__schema0"
      +                },
      +                "maxItems": 200,
      +                "type": "array"
      +              },
      +              "fonts": {
      +                "additionalProperties": false,
      +                "properties": {
      +                  "body": {
      +                    "pattern": "^[A-Za-z][A-Za-z0-9 _-]{0,79}$",
      +                    "type": "string"
      +                  },
      +                  "heading": {
      +                    "pattern": "^[A-Za-z][A-Za-z0-9 _-]{0,79}$",
      +                    "type": "string"
      +                  }
      +                },
      +                "required": [
      +                  "heading",
      +                  "body"
      +                ],
      +                "type": "object"
      +              },
      +              "id": {
      +                "pattern": "^[A-Za-z0-9_-]{1,100}$",
      +                "type": "string"
      +              },
      +              "logoAssetId": {
      +                "pattern": "^[A-Za-z0-9_-]{1,100}$",
      +                "type": "string"
      +              },
      +              "name": {
      +                "maxLength": 200,
      +                "minLength": 1,
      +                "type": "string"
      +              }
      +            },
      +            "required": [
      +              "id",
      +              "name",
      +              "colors",
      +              "fonts",
      +              "components"
      +            ],
      +            "type": "object"
      +          },
      +          "designSystem": {
      +            "anyOf": [
      +              {
      +                "additionalProperties": false,
      +                "properties": {
      +                  "assets": {
      +                    "additionalProperties": {
      +                      "additionalProperties": false,
      +                      "properties": {
      +                        "bytes": {
      +                          "maximum": 20971520,
      +                          "minimum": 1,
      +                          "type": "integer"
      +                        },
      +                        "id": {
      +                          "pattern": "^[A-Za-z0-9_-]{1,100}$",
      +                          "type": "string"
      +                        },
      +                        "mime": {
      +                          "enum": [
      +                            "image/png",
      +                            "image/jpeg",
      +                            "image/webp",
      +                            "image/gif",
      +                            "image/svg+xml",
      +                            "font/woff2",
      +                            "font/woff",
      +                            "font/ttf",
      +                            "font/otf"
      +                          ],
      +                          "type": "string"
      +                        },
      +                        "name": {
      +                          "maxLength": 200,
      +                          "minLength": 1,
      +                          "type": "string"
      +                        },
      +                        "sha256": {
      +                          "pattern": "^[a-f0-9]{64}$",
      +                          "type": "string"
      +                        }
      +                      },
      +                      "required": [
      +                        "id",
      +                        "name",
      +                        "mime",
      +                        "bytes",
      +                        "sha256"
      +                      ],
      +                      "type": "object"
      +                    },
      +                    "default": {},
      +                    "propertyNames": {
      +                      "pattern": "^[A-Za-z0-9_-]{1,100}$",
      +                      "type": "string"
      +                    },
      +                    "type": "object"
      +                  },
      +                  "components": {
      +                    "default": [],
      +                    "items": {
      +                      "additionalProperties": false,
      +                      "properties": {
      +                        "description": {
      +                          "maxLength": 4000,
      +                          "type": "string"
      +                        },
      +                        "element": {
      +                          "$ref": "#/$defs/__schema0"
      +                        },
      +                        "id": {
      +                          "pattern": "^[A-Za-z0-9_-]{1,100}$",
      +                          "type": "string"
      +                        },
      +                        "name": {
      +                          "maxLength": 200,
      +                          "minLength": 1,
      +                          "type": "string"
      +                        },
      +                        "slots": {
      +                          "additionalProperties": {
      +                            "additionalProperties": false,
      +                            "properties": {
      +                              "elementId": {
      +                                "pattern": "^[A-Za-z0-9_-]{1,100}$",
      +                                "type": "string"
      +                              },
      +                              "type": {
      +                                "enum": [
      +                                  "text",
      +                                  "image"
      +                                ],
      +                                "type": "string"
      +                              }
      +                            },
      +                            "required": [
      +                              "type",
      +                              "elementId"
      +                            ],
      +                            "type": "object"
      +                          },
      +                          "default": {},
      +                          "propertyNames": {
      +                            "pattern": "^[A-Za-z0-9_-]{1,100}$",
      +                            "type": "string"
      +                          },
      +                          "type": "object"
      +                        },
      +                        "variants": {
      +                          "additionalProperties": {
      +                            "$ref": "#/$defs/__schema0"
      +                          },
      +                          "default": {},
      +                          "propertyNames": {
      +                            "pattern": "^[A-Za-z0-9_-]{1,100}$",
      +                            "type": "string"
      +                          },
      +                          "type": "object"
      +                        }
      +                      },
      +                      "required": [
      +                        "id",
      +                        "name",
      +                        "element"
      +                      ],
      +                      "type": "object"
      +                    },
      +                    "maxItems": 200,
      +                    "type": "array"
      +                  },
      +                  "fonts": {
      +                    "items": {
      +                      "additionalProperties": false,
      +                      "properties": {
      +                        "assetId": {
      +                          "pattern": "^[A-Za-z0-9_-]{1,100}$",
      +                          "type": "string"
      +                        },
      +                        "family": {
      +                          "pattern": "^[A-Za-z][A-Za-z0-9 _-]{0,79}$",
      +                          "type": "string"
      +                        },
      +                        "license": {
      +                          "maxLength": 4000,
      +                          "type": "string"
      +                        },
      +                        "style": {
      +                          "enum": [
      +                            "normal",
      +                            "italic"
      +                          ],
      +                          "type": "string"
      +                        },
      +                        "unicodeRange": {
      +                          "maxLength": 1024,
      +                          "type": "string"
      +                        },
      +                        "weight": {
      +                          "maximum": 900,
      +                          "minimum": 100,
      +                          "type": "integer"
      +                        }
      +                      },
      +                      "required": [
      +                        "family",
      +                        "assetId",
      +                        "weight",
      +                        "style"
      +                      ],
      +                      "type": "object"
      +                    },
      +                    "maxItems": 200,
      +                    "type": "array"
      +                  },
      +                  "guidelines": {
      +                    "default": [],
      +                    "items": {
      +                      "maxLength": 10000,
      +                      "minLength": 1,
      +                      "type": "string"
      +                    },
      +                    "maxItems": 200,
      +                    "type": "array"
      +                  },
      +                  "id": {
      +                    "pattern": "^[A-Za-z0-9_-]{1,100}$",
      +                    "type": "string"
      +                  },
      +                  "name": {
      +                    "maxLength": 200,
      +                    "minLength": 1,
      +                    "type": "string"
      +                  },
      +                  "roles": {
      +                    "additionalProperties": false,
      +                    "properties": {
      +                      "accentColor": {
      +                        "maxLength": 200,
      +                        "pattern": "^[A-Za-z][A-Za-z0-9_-]*(?:\\.[A-Za-z0-9_-]+)*$",
      +                        "type": "string"
      +                      },
      +                      "bodyFont": {
      +                        "maxLength": 200,
      +                        "pattern": "^[A-Za-z][A-Za-z0-9_-]*(?:\\.[A-Za-z0-9_-]+)*$",
      +                        "type": "string"
      +                      },
      +                      "headingFont": {
      +                        "maxLength": 200,
      +                        "pattern": "^[A-Za-z][A-Za-z0-9_-]*(?:\\.[A-Za-z0-9_-]+)*$",
      +                        "type": "string"
      +                      },
      +                      "pageBackground": {
      +                        "maxLength": 200,
      +                        "pattern": "^[A-Za-z][A-Za-z0-9_-]*(?:\\.[A-Za-z0-9_-]+)*$",
      +                        "type": "string"
      +                      },
      +                      "primaryColor": {
      +                        "maxLength": 200,
      +                        "pattern": "^[A-Za-z][A-Za-z0-9_-]*(?:\\.[A-Za-z0-9_-]+)*$",
      +                        "type": "string"
      +                      }
      +                    },
      +                    "type": "object"
      +                  },
      +                  "rules": {
      +                    "additionalProperties": false,
      +                    "properties": {
      +                      "minimumFontSize": {
      +                        "maximum": 1000,
      +                        "minimum": 1,
      +                        "type": "number"
      +                      },
      +                      "requireTokenBindings": {
      +                        "type": "boolean"
      +                      }
      +                    },
      +                    "type": "object"
      +                  },
      +                  "sources": {
      +                    "default": [],
      +                    "items": {
      +                      "additionalProperties": false,
      +                      "properties": {
      +                        "name": {
      +                          "maxLength": 200,
      +                          "minLength": 1,
      +                          "type": "string"
      +                        },
      +                        "url": {
      +                          "format": "uri",
      +                          "maxLength": 2048,
      +                          "type": "string"
      +                        }
      +                      },
      +                      "required": [
      +                        "name"
      +                      ],
      +                      "type": "object"
      +                    },
      +                    "maxItems": 100,
      +                    "type": "array"
      +                  },
      +                  "tokens": {
      +                    "additionalProperties": {
      +                      "oneOf": [
      +                        {
      +                          "additionalProperties": false,
      +                          "properties": {
      +                            "type": {
      +                              "const": "color",
      +                              "type": "string"
      +                            },
      +                            "value": {
      +                              "anyOf": [
      +                                {
      +                                  "pattern": "^(?:#[0-9a-fA-F]{3,4}|#[0-9a-fA-F]{6}|#[0-9a-fA-F]{8}|transparent)$",
      +                                  "type": "string"
      +                                },
      +                                {
      +                                  "additionalProperties": false,
      +                                  "properties": {
      +                                    "ref": {
      +                                      "maxLength": 200,
      +                                      "pattern": "^[A-Za-z][A-Za-z0-9_-]*(?:\\.[A-Za-z0-9_-]+)*$",
      +                                      "type": "string"
      +                                    }
      +                                  },
      +                                  "required": [
      +                                    "ref"
      +                                  ],
      +                                  "type": "object"
      +                                }
      +                              ]
      +                            }
      +                          },
      +                          "required": [
      +                            "type",
      +                            "value"
      +                          ],
      +                          "type": "object"
      +                        },
      +                        {
      +                          "additionalProperties": false,
      +                          "properties": {
      +                            "type": {
      +                              "const": "dimension",
      +                              "type": "string"
      +                            },
      +                            "value": {
      +                              "anyOf": [
      +                                {
      +                                  "maximum": 10000,
      +                                  "minimum": -10000,
      +                                  "type": "number"
      +                                },
      +                                {
      +                                  "additionalProperties": false,
      +                                  "properties": {
      +                                    "ref": {
      +                                      "maxLength": 200,
      +                                      "pattern": "^[A-Za-z][A-Za-z0-9_-]*(?:\\.[A-Za-z0-9_-]+)*$",
      +                                      "type": "string"
      +                                    }
      +                                  },
      +                                  "required": [
      +                                    "ref"
      +                                  ],
      +                                  "type": "object"
      +                                }
      +                              ]
      +                            }
      +                          },
      +                          "required": [
      +                            "type",
      +                            "value"
      +                          ],
      +                          "type": "object"
      +                        },
      +                        {
      +                          "additionalProperties": false,
      +                          "properties": {
      +                            "type": {
      +                              "const": "number",
      +                              "type": "string"
      +                            },
      +                            "value": {
      +                              "anyOf": [
      +                                {
      +                                  "maximum": 10000,
      +                                  "minimum": -10000,
      +                                  "type": "number"
      +                                },
      +                                {
      +                                  "additionalProperties": false,
      +                                  "properties": {
      +                                    "ref": {
      +                                      "maxLength": 200,
      +                                      "pattern": "^[A-Za-z][A-Za-z0-9_-]*(?:\\.[A-Za-z0-9_-]+)*$",
      +                                      "type": "string"
      +                                    }
      +                                  },
      +                                  "required": [
      +                                    "ref"
      +                                  ],
      +                                  "type": "object"
      +                                }
      +                              ]
      +                            }
      +                          },
      +                          "required": [
      +                            "type",
      +                            "value"
      +                          ],
      +                          "type": "object"
      +                        },
      +                        {
      +                          "additionalProperties": false,
      +                          "properties": {
      +                            "type": {
      +                              "const": "fontFamily",
      +                              "type": "string"
      +                            },
      +                            "value": {
      +                              "anyOf": [
      +                                {
      +                                  "pattern": "^[A-Za-z][A-Za-z0-9 _-]{0,79}$",
      +                                  "type": "string"
      +                                },
      +                                {
      +                                  "additionalProperties": false,
      +                                  "properties": {
      +                                    "ref": {
      +                                      "maxLength": 200,
      +                                      "pattern": "^[A-Za-z][A-Za-z0-9_-]*(?:\\.[A-Za-z0-9_-]+)*$",
      +                                      "type": "string"
      +                                    }
      +                                  },
      +                                  "required": [
      +                                    "ref"
      +                                  ],
      +                                  "type": "object"
      +                                }
      +                              ]
      +                            }
      +                          },
      +                          "required": [
      +                            "type",
      +                            "value"
      +                          ],
      +                          "type": "object"
      +                        },
      +                        {
      +                          "additionalProperties": false,
      +                          "properties": {
      +                            "type": {
      +                              "const": "fontWeight",
      +                              "type": "string"
      +                            },
      +                            "value": {
      +                              "anyOf": [
      +                                {
      +                                  "maximum": 900,
      +                                  "minimum": 100,
      +                                  "type": "integer"
      +                                },
      +                                {
      +                                  "additionalProperties": false,
      +                                  "properties": {
      +                                    "ref": {
      +                                      "maxLength": 200,
      +                                      "pattern": "^[A-Za-z][A-Za-z0-9_-]*(?:\\.[A-Za-z0-9_-]+)*$",
      +                                      "type": "string"
      +                                    }
      +                                  },
      +                                  "required": [
      +                                    "ref"
      +                                  ],
      +                                  "type": "object"
      +                                }
      +                              ]
      +                            }
      +                          },
      +                          "required": [
      +                            "type",
      +                            "value"
      +                          ],
      +                          "type": "object"
      +                        }
      +                      ]
      +                    },
      +                    "default": {},
      +                    "propertyNames": {
      +                      "maxLength": 200,
      +                      "pattern": "^[A-Za-z][A-Za-z0-9_-]*(?:\\.[A-Za-z0-9_-]+)*$",
      +                      "type": "string"
      +                    },
      +                    "type": "object"
      +                  },
      +                  "version": {
      +                    "maxLength": 64,
      +                    "pattern": "^(?:0|[1-9][0-9]*)\\.(?:0|[1-9][0-9]*)\\.(?:0|[1-9][0-9]*)(?:-[A-Za-z0-9]+(?:[.-][A-Za-z0-9]+)*)?$",
      +                    "type": "string"
      +                  }
      +                },
      +                "required": [
      +                  "id",
      +                  "name",
      +                  "version"
      +                ],
      +                "type": "object"
      +              },
      +              {
      +                "type": "null"
      +              }
      +            ]
      +          },
      +          "name": {
      +            "maxLength": 200,
      +            "minLength": 1,
      +            "type": "string"
      +          }
      +        },
      +        "type": "object"
      +      },
      +      "type": {
      +        "const": "set_document",
      +        "type": "string"
      +      }
      +    },
      +    "required": [
      +      "type",
      +      "patch"
      +    ],
      +    "type": "object"
      +  },
      +  {
      +    "additionalProperties": false,
      +    "properties": {
      +      "index": {
      +        "maximum": 5000,
      +        "minimum": 0,
      +        "type": "integer"
      +      },
      +      "page": {
      +        "additionalProperties": false,
      +        "properties": {
      +          "background": {
      +            "pattern": "^(?:#[0-9a-fA-F]{3,4}|#[0-9a-fA-F]{6}|#[0-9a-fA-F]{8}|transparent)$",
      +            "type": "string"
      +          },
      +          "backgroundToken": {
      +            "maxLength": 200,
      +            "pattern": "^[A-Za-z][A-Za-z0-9_-]*(?:\\.[A-Za-z0-9_-]+)*$",
      +            "type": "string"
      +          },
      +          "elements": {
      +            "items": {
      +              "$ref": "#/$defs/__schema0"
      +            },
      +            "maxItems": 5000,
      +            "type": "array"
      +          },
      +          "height": {
      +            "maximum": 10000,
      +            "minimum": 1,
      +            "type": "number"
      +          },
      +          "id": {
      +            "pattern": "^[A-Za-z0-9_-]{1,100}$",
      +            "type": "string"
      +          },
      +          "name": {
      +            "maxLength": 200,
      +            "minLength": 1,
      +            "type": "string"
      +          },
      +          "width": {
      +            "maximum": 10000,
      +            "minimum": 1,
      +            "type": "number"
      +          }
      +        },
      +        "required": [
      +          "id",
      +          "name",
      +          "width",
      +          "height",
      +          "background",
      +          "elements"
      +        ],
      +        "type": "object"
      +      },
      +      "type": {
      +        "const": "add_page",
      +        "type": "string"
      +      }
      +    },
      +    "required": [
      +      "type",
      +      "page"
      +    ],
      +    "type": "object"
      +  },
      +  {
      +    "additionalProperties": false,
      +    "properties": {
      +      "pageId": {
      +        "pattern": "^[A-Za-z0-9_-]{1,100}$",
      +        "type": "string"
      +      },
      +      "patch": {
      +        "additionalProperties": false,
      +        "properties": {
      +          "background": {
      +            "pattern": "^(?:#[0-9a-fA-F]{3,4}|#[0-9a-fA-F]{6}|#[0-9a-fA-F]{8}|transparent)$",
      +            "type": "string"
      +          },
      +          "backgroundToken": {
      +            "anyOf": [
      +              {
      +                "maxLength": 200,
      +                "pattern": "^[A-Za-z][A-Za-z0-9_-]*(?:\\.[A-Za-z0-9_-]+)*$",
      +                "type": "string"
      +              },
      +              {
      +                "type": "null"
      +              }
      +            ]
      +          },
      +          "height": {
      +            "maximum": 10000,
      +            "minimum": 0.1,
      +            "type": "number"
      +          },
      +          "name": {
      +            "maxLength": 200,
      +            "minLength": 1,
      +            "type": "string"
      +          },
      +          "width": {
      +            "maximum": 10000,
      +            "minimum": 0.1,
      +            "type": "number"
      +          }
      +        },
      +        "type": "object"
      +      },
      +      "type": {
      +        "const": "update_page",
      +        "type": "string"
      +      }
      +    },
      +    "required": [
      +      "type",
      +      "pageId",
      +      "patch"
      +    ],
      +    "type": "object"
      +  },
      +  {
      +    "additionalProperties": false,
      +    "properties": {
      +      "index": {
      +        "maximum": 5000,
      +        "minimum": 0,
      +        "type": "integer"
      +      },
      +      "pageId": {
      +        "pattern": "^[A-Za-z0-9_-]{1,100}$",
      +        "type": "string"
      +      },
      +      "type": {
      +        "const": "move_page",
      +        "type": "string"
      +      }
      +    },
      +    "required": [
      +      "type",
      +      "pageId",
      +      "index"
      +    ],
      +    "type": "object"
      +  },
      +  {
      +    "additionalProperties": false,
      +    "properties": {
      +      "pageId": {
      +        "pattern": "^[A-Za-z0-9_-]{1,100}$",
      +        "type": "string"
      +      },
      +      "type": {
      +        "const": "delete_page",
      +        "type": "string"
      +      }
      +    },
      +    "required": [
      +      "type",
      +      "pageId"
      +    ],
      +    "type": "object"
      +  },
      +  {
      +    "additionalProperties": false,
      +    "properties": {
      +      "element": {
      +        "$ref": "#/$defs/__schema0"
      +      },
      +      "index": {
      +        "maximum": 5000,
      +        "minimum": 0,
      +        "type": "integer"
      +      },
      +      "pageId": {
      +        "pattern": "^[A-Za-z0-9_-]{1,100}$",
      +        "type": "string"
      +      },
      +      "parentId": {
      +        "pattern": "^[A-Za-z0-9_-]{1,100}$",
      +        "type": "string"
      +      },
      +      "type": {
      +        "const": "add_element",
      +        "type": "string"
      +      }
      +    },
      +    "required": [
      +      "type",
      +      "pageId",
      +      "element"
      +    ],
      +    "type": "object"
      +  },
      +  {
      +    "additionalProperties": false,
      +    "properties": {
      +      "elementId": {
      +        "pattern": "^[A-Za-z0-9_-]{1,100}$",
      +        "type": "string"
      +      },
      +      "patch": {
      +        "additionalProperties": false,
      +        "properties": {
      +          "assetId": {
      +            "pattern": "^[A-Za-z0-9_-]{1,100}$",
      +            "type": "string"
      +          },
      +          "cells": {
      +            "items": {
      +              "items": {
      +                "maxLength": 10000,
      +                "type": "string"
      +              },
      +              "maxItems": 100,
      +              "type": "array"
      +            },
      +            "maxItems": 500,
      +            "type": "array"
      +          },
      +          "columns": {
      +            "maximum": 100,
      +            "minimum": 1,
      +            "type": "integer"
      +          },
      +          "componentSource": {
      +            "anyOf": [
      +              {
      +                "additionalProperties": false,
      +                "properties": {
      +                  "componentId": {
      +                    "pattern": "^[A-Za-z0-9_-]{1,100}$",
      +                    "type": "string"
      +                  },
      +                  "systemId": {
      +                    "pattern": "^[A-Za-z0-9_-]{1,100}$",
      +                    "type": "string"
      +                  },
      +                  "systemVersion": {
      +                    "maxLength": 64,
      +                    "pattern": "^(?:0|[1-9][0-9]*)\\.(?:0|[1-9][0-9]*)\\.(?:0|[1-9][0-9]*)(?:-[A-Za-z0-9]+(?:[.-][A-Za-z0-9]+)*)?$",
      +                    "type": "string"
      +                  },
      +                  "variant": {
      +                    "pattern": "^[A-Za-z0-9_-]{1,100}$",
      +                    "type": "string"
      +                  }
      +                },
      +                "required": [
      +                  "systemId",
      +                  "systemVersion",
      +                  "componentId"
      +                ],
      +                "type": "object"
      +              },
      +              {
      +                "type": "null"
      +              }
      +            ]
      +          },
      +          "crop": {
      +            "additionalProperties": false,
      +            "properties": {
      +              "x": {
      +                "maximum": 100,
      +                "minimum": 0,
      +                "type": "number"
      +              },
      +              "y": {
      +                "maximum": 100,
      +                "minimum": 0,
      +                "type": "number"
      +              }
      +            },
      +            "required": [
      +              "x",
      +              "y"
      +            ],
      +            "type": "object"
      +          },
      +          "fit": {
      +            "enum": [
      +              "cover",
      +              "contain",
      +              "fill"
      +            ],
      +            "type": "string"
      +          },
      +          "gap": {
      +            "maximum": 1000,
      +            "minimum": 0,
      +            "type": "number"
      +          },
      +          "height": {
      +            "maximum": 10000,
      +            "minimum": 0.1,
      +            "type": "number"
      +          },
      +          "href": {
      +            "anyOf": [
      +              {
      +                "maxLength": 2048,
      +                "type": "string"
      +              },
      +              {
      +                "type": "null"
      +              }
      +            ]
      +          },
      +          "layout": {
      +            "enum": [
      +              "position",
      +              "stack",
      +              "grid"
      +            ],
      +            "type": "string"
      +          },
      +          "list": {
      +            "enum": [
      +              "none",
      +              "bullet",
      +              "number"
      +            ],
      +            "type": "string"
      +          },
      +          "name": {
      +            "maxLength": 200,
      +            "minLength": 1,
      +            "type": "string"
      +          },
      +          "runs": {
      +            "items": {
      +              "additionalProperties": false,
      +              "properties": {
      +                "bold": {
      +                  "type": "boolean"
      +                },
      +                "href": {
      +                  "maxLength": 2048,
      +                  "type": "string"
      +                },
      +                "italic": {
      +                  "type": "boolean"
      +                },
      +                "text": {
      +                  "maxLength": 100000,
      +                  "type": "string"
      +                },
      +                "underline": {
      +                  "type": "boolean"
      +                }
      +              },
      +              "required": [
      +                "text"
      +              ],
      +              "type": "object"
      +            },
      +            "maxItems": 1000,
      +            "type": "array"
      +          },
      +          "style": {
      +            "additionalProperties": false,
      +            "properties": {
      +              "background": {
      +                "pattern": "^(?:#[0-9a-fA-F]{3,4}|#[0-9a-fA-F]{6}|#[0-9a-fA-F]{8}|transparent)$",
      +                "type": "string"
      +              },
      +              "borderColor": {
      +                "pattern": "^(?:#[0-9a-fA-F]{3,4}|#[0-9a-fA-F]{6}|#[0-9a-fA-F]{8}|transparent)$",
      +                "type": "string"
      +              },
      +              "borderRadius": {
      +                "maximum": 5000,
      +                "minimum": 0,
      +                "type": "number"
      +              },
      +              "borderWidth": {
      +                "maximum": 100,
      +                "minimum": 0,
      +                "type": "number"
      +              },
      +              "color": {
      +                "pattern": "^(?:#[0-9a-fA-F]{3,4}|#[0-9a-fA-F]{6}|#[0-9a-fA-F]{8}|transparent)$",
      +                "type": "string"
      +              },
      +              "fontFamily": {
      +                "pattern": "^[A-Za-z][A-Za-z0-9 _-]{0,79}$",
      +                "type": "string"
      +              },
      +              "fontSize": {
      +                "maximum": 1000,
      +                "minimum": 1,
      +                "type": "number"
      +              },
      +              "fontStyle": {
      +                "enum": [
      +                  "normal",
      +                  "italic"
      +                ],
      +                "type": "string"
      +              },
      +              "fontWeight": {
      +                "maximum": 900,
      +                "minimum": 100,
      +                "type": "integer"
      +              },
      +              "letterSpacing": {
      +                "maximum": 100,
      +                "minimum": -20,
      +                "type": "number"
      +              },
      +              "lineHeight": {
      +                "maximum": 5,
      +                "minimum": 0.5,
      +                "type": "number"
      +              },
      +              "opacity": {
      +                "maximum": 1,
      +                "minimum": 0,
      +                "type": "number"
      +              },
      +              "padding": {
      +                "maximum": 1000,
      +                "minimum": 0,
      +                "type": "number"
      +              },
      +              "textAlign": {
      +                "enum": [
      +                  "left",
      +                  "center",
      +                  "right",
      +                  "justify"
      +                ],
      +                "type": "string"
      +              },
      +              "textDecoration": {
      +                "enum": [
      +                  "none",
      +                  "underline",
      +                  "line-through"
      +                ],
      +                "type": "string"
      +              }
      +            },
      +            "type": "object"
      +          },
      +          "text": {
      +            "maxLength": 100000,
      +            "type": "string"
      +          },
      +          "tokenBindings": {
      +            "additionalProperties": false,
      +            "properties": {
      +              "background": {
      +                "anyOf": [
      +                  {
      +                    "maxLength": 200,
      +                    "pattern": "^[A-Za-z][A-Za-z0-9_-]*(?:\\.[A-Za-z0-9_-]+)*$",
      +                    "type": "string"
      +                  },
      +                  {
      +                    "type": "null"
      +                  }
      +                ]
      +              },
      +              "borderColor": {
      +                "anyOf": [
      +                  {
      +                    "maxLength": 200,
      +                    "pattern": "^[A-Za-z][A-Za-z0-9_-]*(?:\\.[A-Za-z0-9_-]+)*$",
      +                    "type": "string"
      +                  },
      +                  {
      +                    "type": "null"
      +                  }
      +                ]
      +              },
      +              "borderRadius": {
      +                "anyOf": [
      +                  {
      +                    "maxLength": 200,
      +                    "pattern": "^[A-Za-z][A-Za-z0-9_-]*(?:\\.[A-Za-z0-9_-]+)*$",
      +                    "type": "string"
      +                  },
      +                  {
      +                    "type": "null"
      +                  }
      +                ]
      +              },
      +              "borderWidth": {
      +                "anyOf": [
      +                  {
      +                    "maxLength": 200,
      +                    "pattern": "^[A-Za-z][A-Za-z0-9_-]*(?:\\.[A-Za-z0-9_-]+)*$",
      +                    "type": "string"
      +                  },
      +                  {
      +                    "type": "null"
      +                  }
      +                ]
      +              },
      +              "color": {
      +                "anyOf": [
      +                  {
      +                    "maxLength": 200,
      +                    "pattern": "^[A-Za-z][A-Za-z0-9_-]*(?:\\.[A-Za-z0-9_-]+)*$",
      +                    "type": "string"
      +                  },
      +                  {
      +                    "type": "null"
      +                  }
      +                ]
      +              },
      +              "fontFamily": {
      +                "anyOf": [
      +                  {
      +                    "maxLength": 200,
      +                    "pattern": "^[A-Za-z][A-Za-z0-9_-]*(?:\\.[A-Za-z0-9_-]+)*$",
      +                    "type": "string"
      +                  },
      +                  {
      +                    "type": "null"
      +                  }
      +                ]
      +              },
      +              "fontSize": {
      +                "anyOf": [
      +                  {
      +                    "maxLength": 200,
      +                    "pattern": "^[A-Za-z][A-Za-z0-9_-]*(?:\\.[A-Za-z0-9_-]+)*$",
      +                    "type": "string"
      +                  },
      +                  {
      +                    "type": "null"
      +                  }
      +                ]
      +              },
      +              "fontWeight": {
      +                "anyOf": [
      +                  {
      +                    "maxLength": 200,
      +                    "pattern": "^[A-Za-z][A-Za-z0-9_-]*(?:\\.[A-Za-z0-9_-]+)*$",
      +                    "type": "string"
      +                  },
      +                  {
      +                    "type": "null"
      +                  }
      +                ]
      +              },
      +              "gap": {
      +                "anyOf": [
      +                  {
      +                    "maxLength": 200,
      +                    "pattern": "^[A-Za-z][A-Za-z0-9_-]*(?:\\.[A-Za-z0-9_-]+)*$",
      +                    "type": "string"
      +                  },
      +                  {
      +                    "type": "null"
      +                  }
      +                ]
      +              },
      +              "letterSpacing": {
      +                "anyOf": [
      +                  {
      +                    "maxLength": 200,
      +                    "pattern": "^[A-Za-z][A-Za-z0-9_-]*(?:\\.[A-Za-z0-9_-]+)*$",
      +                    "type": "string"
      +                  },
      +                  {
      +                    "type": "null"
      +                  }
      +                ]
      +              },
      +              "lineHeight": {
      +                "anyOf": [
      +                  {
      +                    "maxLength": 200,
      +                    "pattern": "^[A-Za-z][A-Za-z0-9_-]*(?:\\.[A-Za-z0-9_-]+)*$",
      +                    "type": "string"
      +                  },
      +                  {
      +                    "type": "null"
      +                  }
      +                ]
      +              },
      +              "opacity": {
      +                "anyOf": [
      +                  {
      +                    "maxLength": 200,
      +                    "pattern": "^[A-Za-z][A-Za-z0-9_-]*(?:\\.[A-Za-z0-9_-]+)*$",
      +                    "type": "string"
      +                  },
      +                  {
      +                    "type": "null"
      +                  }
      +                ]
      +              },
      +              "padding": {
      +                "anyOf": [
      +                  {
      +                    "maxLength": 200,
      +                    "pattern": "^[A-Za-z][A-Za-z0-9_-]*(?:\\.[A-Za-z0-9_-]+)*$",
      +                    "type": "string"
      +                  },
      +                  {
      +                    "type": "null"
      +                  }
      +                ]
      +              }
      +            },
      +            "type": "object"
      +          },
      +          "width": {
      +            "maximum": 10000,
      +            "minimum": 0.1,
      +            "type": "number"
      +          },
      +          "x": {
      +            "maximum": 10000,
      +            "minimum": -10000,
      +            "type": "number"
      +          },
      +          "y": {
      +            "maximum": 10000,
      +            "minimum": -10000,
      +            "type": "number"
      +          }
      +        },
      +        "type": "object"
      +      },
      +      "type": {
      +        "const": "update_element",
      +        "type": "string"
      +      }
      +    },
      +    "required": [
      +      "type",
      +      "elementId",
      +      "patch"
      +    ],
      +    "type": "object"
      +  },
      +  {
      +    "additionalProperties": false,
      +    "properties": {
      +      "elementId": {
      +        "pattern": "^[A-Za-z0-9_-]{1,100}$",
      +        "type": "string"
      +      },
      +      "index": {
      +        "maximum": 5000,
      +        "minimum": 0,
      +        "type": "integer"
      +      },
      +      "pageId": {
      +        "pattern": "^[A-Za-z0-9_-]{1,100}$",
      +        "type": "string"
      +      },
      +      "parentId": {
      +        "pattern": "^[A-Za-z0-9_-]{1,100}$",
      +        "type": "string"
      +      },
      +      "type": {
      +        "const": "move_element",
      +        "type": "string"
      +      }
      +    },
      +    "required": [
      +      "type",
      +      "elementId",
      +      "pageId",
      +      "index"
      +    ],
      +    "type": "object"
      +  },
      +  {
      +    "additionalProperties": false,
      +    "properties": {
      +      "elementId": {
      +        "pattern": "^[A-Za-z0-9_-]{1,100}$",
      +        "type": "string"
      +      },
      +      "type": {
      +        "const": "delete_element",
      +        "type": "string"
      +      }
      +    },
      +    "required": [
      +      "type",
      +      "elementId"
      +    ],
      +    "type": "object"
      +  },
      +  {
      +    "additionalProperties": false,
      +    "properties": {
      +      "comment": {
      +        "additionalProperties": false,
      +        "properties": {
      +          "author": {
      +            "maxLength": 200,
      +            "minLength": 1,
      +            "type": "string"
      +          },
      +          "createdAt": {
      +            "format": "date-time",
      +            "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z))$",
      +            "type": "string"
      +          },
      +          "elementId": {
      +            "pattern": "^[A-Za-z0-9_-]{1,100}$",
      +            "type": "string"
      +          },
      +          "id": {
      +            "pattern": "^[A-Za-z0-9_-]{1,100}$",
      +            "type": "string"
      +          },
      +          "pageId": {
      +            "pattern": "^[A-Za-z0-9_-]{1,100}$",
      +            "type": "string"
      +          },
      +          "resolved": {
      +            "type": "boolean"
      +          },
      +          "text": {
      +            "maxLength": 10000,
      +            "minLength": 1,
      +            "type": "string"
      +          }
      +        },
      +        "required": [
      +          "id",
      +          "text",
      +          "author",
      +          "createdAt",
      +          "resolved"
      +        ],
      +        "type": "object"
      +      },
      +      "type": {
      +        "const": "add_comment",
      +        "type": "string"
      +      }
      +    },
      +    "required": [
      +      "type",
      +      "comment"
      +    ],
      +    "type": "object"
      +  },
      +  {
      +    "additionalProperties": false,
      +    "properties": {
      +      "commentId": {
      +        "pattern": "^[A-Za-z0-9_-]{1,100}$",
      +        "type": "string"
      +      },
      +      "patch": {
      +        "additionalProperties": false,
      +        "properties": {
      +          "resolved": {
      +            "type": "boolean"
      +          },
      +          "text": {
      +            "maxLength": 10000,
      +            "minLength": 1,
      +            "type": "string"
      +          }
      +        },
      +        "type": "object"
      +      },
      +      "type": {
      +        "const": "update_comment",
      +        "type": "string"
      +      }
      +    },
      +    "required": [
      +      "type",
      +      "commentId",
      +      "patch"
      +    ],
      +    "type": "object"
      +  },
      +  {
      +    "additionalProperties": false,
      +    "properties": {
      +      "asset": {
      +        "additionalProperties": false,
      +        "properties": {
      +          "bytes": {
      +            "maximum": 20971520,
      +            "minimum": 1,
      +            "type": "integer"
      +          },
      +          "id": {
      +            "pattern": "^[A-Za-z0-9_-]{1,100}$",
      +            "type": "string"
      +          },
      +          "mime": {
      +            "enum": [
      +              "image/png",
      +              "image/jpeg",
      +              "image/webp",
      +              "image/gif",
      +              "image/svg+xml",
      +              "font/woff2",
      +              "font/woff",
      +              "font/ttf",
      +              "font/otf"
      +            ],
      +            "type": "string"
      +          },
      +          "name": {
      +            "maxLength": 200,
      +            "minLength": 1,
      +            "type": "string"
      +          },
      +          "sha256": {
      +            "pattern": "^[a-f0-9]{64}$",
      +            "type": "string"
      +          }
      +        },
      +        "required": [
      +          "id",
      +          "name",
      +          "mime",
      +          "bytes",
      +          "sha256"
      +        ],
      +        "type": "object"
      +      },
      +      "type": {
      +        "const": "register_asset",
      +        "type": "string"
      +      }
      +    },
      +    "required": [
      +      "type",
      +      "asset"
      +    ],
      +    "type": "object"
      +  }
      +]
  2. First observedv0.1.1

TDQS

A4.6/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Beyond the annotations, the description reveals valuable behavioral traits: the batch is atomic and validated, coordinates are CSS pixels, style patches merge fields, text/runs should be updated together, and token bindings use a specific patch shape. This meaningfully expands on readOnlyHint=false and destructiveHint=true without contradicting them.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is dense but well ordered: it front-loads the core purpose, then adds units, patch semantics, an example, token binding behavior, prerequisites, and group support. Every sentence contributes information an agent needs, with no filler or repetition of schema content.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a very complex tool with nested batches and many operation types, the description covers the essential operational context: atomicity, validation, coordinate units, patch behavior, token bindings, and the need to read the saved document first. It does not describe return values or failure modes, but the absence of an output schema makes those gaps more acceptable given the strong mutation guidance.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

With 0% schema description coverage, the description compensates by providing a concrete example operations entry and explaining non-obvious semantics like 'A style patch merges fields' and 'A token binding uses patch.' It does not fully explain every operation variant or the documentId parameter, but the schema already structurally covers those, and the description adds crucial usage meaning.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description opens with a specific verb and resource: 'Apply one atomic validated batch of text, rich text, styles, layout, page, element or comment operations.' This clearly identifies the tool as a document-mutation endpoint and differentiates it from sibling tools like design_system_apply or brand_apply by enumerating the document-level content types it operates on.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description gives clear usage context: 'Read the saved document to get actual IDs and expectedRevision' and 'Inspect before editing,' which tells an agent to fetch current state before mutating. It does not explicitly name alternatives or state when not to use the tool, so it stops short of full 5-level routing guidance.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.