Skip to main content
Glama

Render Mermaid as text

render_ascii
Read-onlyIdempotent

Render a Mermaid source string to text. Returns { ok, text }. useAscii true → plain ASCII (+,-,|); false/absent → Unicode box drawing (┌,─,│). targetWidth sets a hard terminal display-cell bound; impossible bounds return a typed error.

Tool call template

Replace each placeholder with a value matching the input schema. Only required parameters are included; add optional parameters as needed.

{
  "id": 1,
  "jsonrpc": "2.0",
  "method": "tools/call",
  "params": {
    "arguments": {
      "source": "<source>"
    },
    "name": "render_ascii"
  }
}

Input Schema

NameRequiredDescriptionDefault
sourceYesMermaid source.
optionsNoShared advanced RenderOptions object, including style/palette/config/security.
useAsciiNotrue = ASCII characters, false = Unicode (default).
targetWidthNoHard maximum line width in terminal display cells.

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed11 schema fields changed
    • changedInput schema / properties / options / properties / architecture / properties / visual / properties / groupHeaderHeight / description
      Previous value: -"Architecture group-header height."New value: +"Requested minimum Architecture group-header height; expands to fit measured title text."
    • addedInput schema / properties / options / properties / graphLayout
      Added value: +{
      +  "anyOf": [
      +    {
      +      "additionalProperties": false,
      +      "description": "ELK graph layout.",
      +      "properties": {
      +        "backend": {
      +          "const": "elk",
      +          "type": "string"
      +        },
      +        "fallback": {
      +          "enum": [
      +            "none"
      +          ],
      +          "type": "string"
      +        }
      +      },
      +      "required": [
      +        "backend"
      +      ],
      +      "type": "object"
      +    },
      +    {
      +      "additionalProperties": false,
      +      "description": "Owned graph layout with optional ELK fallback.",
      +      "properties": {
      +        "backend": {
      +          "const": "agentic",
      +          "type": "string"
      +        },
      +        "fallback": {
      +          "enum": [
      +            "none",
      +            "elk"
      +          ],
      +          "type": "string"
      +        }
      +      },
      +      "required": [
      +        "backend"
      +      ],
      +      "type": "object"
      +    }
      +  ],
      +  "x-agentic-mermaid-applicable-builtin-families": [
      +    "flowchart",
      +    "state",
      +    "architecture",
      +    "class",
      +    "er",
      +    "requirement"
      +  ],
      +  "x-agentic-mermaid-terminal": "projected",
      +  "x-agentic-mermaid-terminal-note": "selects pixel placement and optional graphical companion evidence, not terminal-cell placement"
      +}
    • addedInput schema / properties / options / properties / kanban
      Added value: +{
      +  "additionalProperties": false,
      +  "description": "Kanban layout controls.",
      +  "properties": {
      +    "maxWidth": {
      +      "description": "Best-effort width budget for wrapping whole Kanban columns into rows.",
      +      "exclusiveMinimum": 0,
      +      "type": "number"
      +    }
      +  },
      +  "type": "object",
      +  "x-agentic-mermaid-applicable-builtin-families": [
      +    "kanban"
      +  ],
      +  "x-agentic-mermaid-terminal": "not-applicable",
      +  "x-agentic-mermaid-terminal-note": "terminal layout uses its own targetWidth"
      +}
    • changedInput schema / properties / options / properties / layerSpacing / x-agentic-mermaid-applicable-builtin-families
      Previous value: -[
      -  "flowchart",
      -  "state",
      -  "class",
      -  "er",
      -  "architecture"
      -]New value: +[
      +  "flowchart",
      +  "state",
      +  "class",
      +  "er",
      +  "architecture",
      +  "c4"
      +]
    • addedInput schema / properties / options / properties / layoutHints
      Added value: +{
      +  "additionalProperties": false,
      +  "properties": {
      +    "adjacent": {
      +      "items": {
      +        "items": {
      +          "type": "string"
      +        },
      +        "minItems": 2,
      +        "type": "array"
      +      },
      +      "type": "array"
      +    },
      +    "ranks": {
      +      "additionalProperties": {
      +        "maximum": 10000,
      +        "minimum": 0,
      +        "type": "integer"
      +      },
      +      "type": "object"
      +    },
      +    "shortEdges": {
      +      "items": {
      +        "type": "string"
      +      },
      +      "type": "array"
      +    }
      +  },
      +  "type": "object",
      +  "x-agentic-mermaid-applicable-builtin-families": [
      +    "flowchart",
      +    "state"
      +  ],
      +  "x-agentic-mermaid-terminal": "not-applicable",
      +  "x-agentic-mermaid-terminal-note": "not used by terminals"
      +}
    • addedInput schema / properties / options / properties / layoutSafety
      Added value: +{
      +  "default": "report",
      +  "description": "Require a passed final native layout certificate.",
      +  "enum": [
      +    "report",
      +    "strict"
      +  ],
      +  "type": "string",
      +  "x-agentic-mermaid-terminal": "consumed"
      +}
    • changedInput schema / properties / options / properties / nodeSpacing / x-agentic-mermaid-applicable-builtin-families
      Previous value: -[
      -  "flowchart",
      -  "state",
      -  "class",
      -  "er",
      -  "architecture"
      -]New value: +[
      +  "flowchart",
      +  "state",
      +  "class",
      +  "er",
      +  "architecture",
      +  "c4"
      +]
    • changedInput schema / properties / options / properties / padding / x-agentic-mermaid-applicable-builtin-families
      Previous value: -[
      -  "flowchart",
      -  "state",
      -  "architecture"
      -]New value: +[
      +  "flowchart",
      +  "state",
      +  "architecture",
      +  "c4"
      +]
    • addedInput schema / properties / options / properties / pie
      Added value: +{
      +  "additionalProperties": false,
      +  "description": "Pie layout controls.",
      +  "properties": {
      +    "maxWidth": {
      +      "description": "Best-effort graphical width budget; authored legend placement retains precedence.",
      +      "exclusiveMinimum": 0,
      +      "type": "number"
      +    }
      +  },
      +  "type": "object",
      +  "x-agentic-mermaid-applicable-builtin-families": [
      +    "pie"
      +  ],
      +  "x-agentic-mermaid-terminal": "not-applicable",
      +  "x-agentic-mermaid-terminal-note": "terminal layout uses its own targetWidth"
      +}
    • addedInput schema / properties / options / properties / radar
      Added value: +{
      +  "additionalProperties": false,
      +  "description": "Radar layout controls.",
      +  "properties": {
      +    "maxWidth": {
      +      "description": "Best-effort graphical width budget; authored frames retain precedence.",
      +      "exclusiveMinimum": 0,
      +      "type": "number"
      +    }
      +  },
      +  "type": "object",
      +  "x-agentic-mermaid-applicable-builtin-families": [
      +    "radar"
      +  ],
      +  "x-agentic-mermaid-terminal": "not-applicable",
      +  "x-agentic-mermaid-terminal-note": "terminal layout uses its own targetWidth"
      +}
    • changedInput schema / properties / options / properties / shadow / x-agentic-mermaid-applicable-builtin-families
      Previous value: -[
      -  "flowchart",
      -  "state",
      -  "sequence",
      -  "timeline",
      -  "class",
      -  "er",
      -  "journey",
      -  "xychart",
      -  "pie",
      -  "quadrant",
      -  "gantt",
      -  "mindmap",
      -  "gitgraph"
      -]New value: +[
      +  "flowchart",
      +  "state",
      +  "sequence",
      +  "timeline",
      +  "class",
      +  "er",
      +  "journey",
      +  "xychart",
      +  "pie",
      +  "quadrant",
      +  "gantt",
      +  "mindmap",
      +  "gitgraph",
      +  "sankey"
      +]
  2. Changed5 schema fields changed
    • changedInput schema / properties / options / properties / embedFontImport / default
      Previous value: -trueNew value: +false
    • removedInput schema / properties / options / properties / idPrefix / default
      Removed value: -""
    • changedInput schema / properties / options / properties / idPrefix / description
      Previous value: -"Namespace generated SVG definition IDs and local references."New value: +"Non-empty namespace for generated SVG definition IDs and local references."
    • changedInput schema / properties / options / properties / idPrefix / pattern
      Previous value: -"^[A-Za-z0-9_.:-]*$"New value: +"^[A-Za-z0-9_.:-]+$"
    • changedInput schema / properties / options / properties / style / anyOf
      Previous value: -[
      -  {
      -    "anyOf": [
      -      {
      -        "description": "Registered Style or Palette name.",
      -        "type": "string"
      -      },
      -      {
      -        "additionalProperties": false,
      -        "description": "A partial declarative style record for Agentic Mermaid rendering. All fields, including formatVersion, are optional on input; resolved and registered specs normalize formatVersion to 1.",
      -        "properties": {
      -          "$schema": {
      -            "description": "Optional JSON Schema pointer for file-backed styles; ignored while rendering.",
      -            "type": "string"
      -          },
      -          "backdrop": {
      -            "description": "Flat page furniture drawn behind the diagram.",
      -            "enum": [
      -              "plain",
      -              "paper-ruled",
      -              "grid"
      -            ],
      -            "type": "string"
      -          },
      -          "blurb": {
      -            "description": "Short human-readable description used by discovery surfaces.",
      -            "type": "string"
      -          },
      -          "bowing": {
      -            "description": "Rough.js line bowing.",
      -            "maximum": 10,
      -            "minimum": 0,
      -            "type": "number"
      -          },
      -          "colors": {
      -            "additionalProperties": false,
      -            "description": "Partial palette of safe, non-fetching CSS color tokens. Runtime validation applies the stricter safe-color policy.",
      -            "properties": {
      -              "accent": {
      -                "description": "Accent paint for emphasis and data series. Must be a safe, non-fetching CSS color.",
      -                "type": "string",
      -                "x-agentic-mermaid-runtime-validator": "safeCssColor"
      -              },
      -              "bg": {
      -                "description": "Diagram page background. Must be a safe, non-fetching CSS color.",
      -                "type": "string",
      -                "x-agentic-mermaid-runtime-validator": "safeCssColor"
      -              },
      -              "border": {
      -                "description": "Node and group border paint. Must be a safe, non-fetching CSS color.",
      -                "type": "string",
      -                "x-agentic-mermaid-runtime-validator": "safeCssColor"
      -              },
      -              "fg": {
      -                "description": "Primary text and foreground paint. Must be a safe, non-fetching CSS color.",
      -                "type": "string",
      -                "x-agentic-mermaid-runtime-validator": "safeCssColor"
      -              },
      -              "line": {
      -                "description": "Connector and secondary line paint. Must be a safe, non-fetching CSS color.",
      -                "type": "string",
      -                "x-agentic-mermaid-runtime-validator": "safeCssColor"
      -              },
      -              "muted": {
      -                "description": "Muted text and secondary data paint. Must be a safe, non-fetching CSS color.",
      -                "type": "string",
      -                "x-agentic-mermaid-runtime-validator": "safeCssColor"
      -              },
      -              "surface": {
      -                "description": "Node and group surface fill. Must be a safe, non-fetching CSS color.",
      -                "type": "string",
      -                "x-agentic-mermaid-runtime-validator": "safeCssColor"
      -              }
      -            },
      -            "type": "object"
      -          },
      -          "fill": {
      -            "description": "Fill policy for rough/hybrid rendering; none and solid require a final stack that activates one of those backends.",
      -            "enum": [
      -              "none",
      -              "hachure",
      -              "solid",
      -              "wash"
      -            ],
      -            "type": "string"
      -          },
      -          "fillWeight": {
      -            "description": "Hachure line weight; requires fill hachure in the final stack.",
      -            "exclusiveMinimum": 0,
      -            "maximum": 20,
      -            "type": "number"
      -          },
      -          "font": {
      -            "description": "Safe, non-fetching CSS font family or stack; the rendering environment supplies the font face.",
      -            "type": "string",
      -            "x-agentic-mermaid-runtime-validator": "safeCssFontFamily"
      -          },
      -          "formatVersion": {
      -            "const": 1,
      -            "description": "Persisted wire-format version. Optional on input and normalized to 1 on output."
      -          },
      -          "hachureAngle": {
      -            "description": "Hachure line angle in degrees; requires fill hachure in the final stack.",
      -            "maximum": 360,
      -            "minimum": -360,
      -            "type": "number"
      -          },
      -          "hachureGap": {
      -            "description": "Gap between hachure lines; requires fill hachure in the final stack.",
      -            "exclusiveMinimum": 0,
      -            "maximum": 100,
      -            "type": "number"
      -          },
      -          "intent": {
      -            "description": "Advisory intent metadata for pickers and quality tooling.",
      -            "enum": [
      -              "premium",
      -              "draft",
      -              "lofi"
      -            ],
      -            "type": "string"
      -          },
      -          "mono": {
      -            "description": "Advisory monochrome contract: express tone through shading and weight.",
      -            "type": "boolean"
      -          },
      -          "name": {
      -            "description": "Canonical look:name or palette:name identity; required only when registering a style.",
      -            "type": "string"
      -          },
      -          "passes": {
      -            "description": "Number of sketch strokes; 1 is single-pass and 2 is the usual double stroke.",
      -            "maximum": 8,
      -            "minimum": 1,
      -            "type": "integer"
      -          },
      -          "roughness": {
      -            "description": "Rough.js stroke irregularity.",
      -            "maximum": 10,
      -            "minimum": 0,
      -            "type": "number"
      -          },
      -          "stroke": {
      -            "description": "Stroke treatment; crisp is the default renderer.",
      -            "enum": [
      -              "crisp",
      -              "jittered",
      -              "freehand"
      -            ],
      -            "type": "string"
      -          },
      -          "strokeWidth": {
      -            "description": "Base stroke width in SVG user units.",
      -            "exclusiveMinimum": 0,
      -            "maximum": 20,
      -            "type": "number"
      -          },
      -          "washEdge": {
      -            "description": "Watercolor edge-darkening opacity; requires fill wash in the final stack.",
      -            "maximum": 1,
      -            "minimum": 0,
      -            "type": "number"
      -          },
      -          "washOpacity": {
      -            "description": "Watercolor glaze opacity; requires fill wash in the final stack.",
      -            "maximum": 1,
      -            "minimum": 0,
      -            "type": "number"
      -          }
      -        },
      -        "type": "object"
      -      }
      -    ],
      -    "x-agentic-mermaid-validation-expectation": "a registered Style name or StyleSpec"
      -  },
      -  {
      -    "description": "Style stack merged from left to right.",
      -    "items": {
      -      "anyOf": [
      -        {
      -          "description": "Registered Style or Palette name.",
      -          "type": "string"
      -        },
      -        {
      -          "additionalProperties": false,
      -          "description": "A partial declarative style record for Agentic Mermaid rendering. All fields, including formatVersion, are optional on input; resolved and registered specs normalize formatVersion to 1.",
      -          "properties": {
      -            "$schema": {
      -              "description": "Optional JSON Schema pointer for file-backed styles; ignored while rendering.",
      -              "type": "string"
      -            },
      -            "backdrop": {
      -              "description": "Flat page furniture drawn behind the diagram.",
      -              "enum": [
      -                "plain",
      -                "paper-ruled",
      -                "grid"
      -              ],
      -              "type": "string"
      -            },
      -            "blurb": {
      -              "description": "Short human-readable description used by discovery surfaces.",
      -              "type": "string"
      -            },
      -            "bowing": {
      -              "description": "Rough.js line bowing.",
      -              "maximum": 10,
      -              "minimum": 0,
      -              "type": "number"
      -            },
      -            "colors": {
      -              "additionalProperties": false,
      -              "description": "Partial palette of safe, non-fetching CSS color tokens. Runtime validation applies the stricter safe-color policy.",
      -              "properties": {
      -                "accent": {
      -                  "description": "Accent paint for emphasis and data series. Must be a safe, non-fetching CSS color.",
      -                  "type": "string",
      -                  "x-agentic-mermaid-runtime-validator": "safeCssColor"
      -                },
      -                "bg": {
      -                  "description": "Diagram page background. Must be a safe, non-fetching CSS color.",
      -                  "type": "string",
      -                  "x-agentic-mermaid-runtime-validator": "safeCssColor"
      -                },
      -                "border": {
      -                  "description": "Node and group border paint. Must be a safe, non-fetching CSS color.",
      -                  "type": "string",
      -                  "x-agentic-mermaid-runtime-validator": "safeCssColor"
      -                },
      -                "fg": {
      -                  "description": "Primary text and foreground paint. Must be a safe, non-fetching CSS color.",
      -                  "type": "string",
      -                  "x-agentic-mermaid-runtime-validator": "safeCssColor"
      -                },
      -                "line": {
      -                  "description": "Connector and secondary line paint. Must be a safe, non-fetching CSS color.",
      -                  "type": "string",
      -                  "x-agentic-mermaid-runtime-validator": "safeCssColor"
      -                },
      -                "muted": {
      -                  "description": "Muted text and secondary data paint. Must be a safe, non-fetching CSS color.",
      -                  "type": "string",
      -                  "x-agentic-mermaid-runtime-validator": "safeCssColor"
      -                },
      -                "surface": {
      -                  "description": "Node and group surface fill. Must be a safe, non-fetching CSS color.",
      -                  "type": "string",
      -                  "x-agentic-mermaid-runtime-validator": "safeCssColor"
      -                }
      -              },
      -              "type": "object"
      -            },
      -            "fill": {
      -              "description": "Fill policy for rough/hybrid rendering; none and solid require a final stack that activates one of those backends.",
      -              "enum": [
      -                "none",
      -                "hachure",
      -                "solid",
      -                "wash"
      -              ],
      -              "type": "string"
      -            },
      -            "fillWeight": {
      -              "description": "Hachure line weight; requires fill hachure in the final stack.",
      -              "exclusiveMinimum": 0,
      -              "maximum": 20,
      -              "type": "number"
      -            },
      -            "font": {
      -              "description": "Safe, non-fetching CSS font family or stack; the rendering environment supplies the font face.",
      -              "type": "string",
      -              "x-agentic-mermaid-runtime-validator": "safeCssFontFamily"
      -            },
      -            "formatVersion": {
      -              "const": 1,
      -              "description": "Persisted wire-format version. Optional on input and normalized to 1 on output."
      -            },
      -            "hachureAngle": {
      -              "description": "Hachure line angle in degrees; requires fill hachure in the final stack.",
      -              "maximum": 360,
      -              "minimum": -360,
      -              "type": "number"
      -            },
      -            "hachureGap": {
      -              "description": "Gap between hachure lines; requires fill hachure in the final stack.",
      -              "exclusiveMinimum": 0,
      -              "maximum": 100,
      -              "type": "number"
      -            },
      -            "intent": {
      -              "description": "Advisory intent metadata for pickers and quality tooling.",
      -              "enum": [
      -                "premium",
      -                "draft",
      -                "lofi"
      -              ],
      -              "type": "string"
      -            },
      -            "mono": {
      -              "description": "Advisory monochrome contract: express tone through shading and weight.",
      -              "type": "boolean"
      -            },
      -            "name": {
      -              "description": "Canonical look:name or palette:name identity; required only when registering a style.",
      -              "type": "string"
      -            },
      -            "passes": {
      -              "description": "Number of sketch strokes; 1 is single-pass and 2 is the usual double stroke.",
      -              "maximum": 8,
      -              "minimum": 1,
      -              "type": "integer"
      -            },
      -            "roughness": {
      -              "description": "Rough.js stroke irregularity.",
      -              "maximum": 10,
      -              "minimum": 0,
      -              "type": "number"
      -            },
      -            "stroke": {
      -              "description": "Stroke treatment; crisp is the default renderer.",
      -              "enum": [
      -                "crisp",
      -                "jittered",
      -                "freehand"
      -              ],
      -              "type": "string"
      -            },
      -            "strokeWidth": {
      -              "description": "Base stroke width in SVG user units.",
      -              "exclusiveMinimum": 0,
      -              "maximum": 20,
      -              "type": "number"
      -            },
      -            "washEdge": {
      -              "description": "Watercolor edge-darkening opacity; requires fill wash in the final stack.",
      -              "maximum": 1,
      -              "minimum": 0,
      -              "type": "number"
      -            },
      -            "washOpacity": {
      -              "description": "Watercolor glaze opacity; requires fill wash in the final stack.",
      -              "maximum": 1,
      -              "minimum": 0,
      -              "type": "number"
      -            }
      -          },
      -          "type": "object"
      -        }
      -      ],
      -      "x-agentic-mermaid-validation-expectation": "a registered Style name or StyleSpec"
      -    },
      -    "type": "array"
      -  }
      -]New value: +[
      +  {
      +    "anyOf": [
      +      {
      +        "description": "Registered Style or Palette name.",
      +        "type": "string"
      +      },
      +      {
      +        "additionalProperties": false,
      +        "description": "A partial declarative style record for Agentic Mermaid rendering. All fields, including formatVersion, are optional on input; resolved and registered specs normalize formatVersion to 1.",
      +        "maxProperties": 24,
      +        "properties": {
      +          "$schema": {
      +            "description": "Optional JSON Schema pointer for file-backed styles; ignored while rendering.",
      +            "type": "string"
      +          },
      +          "backdrop": {
      +            "description": "Flat page furniture drawn behind the diagram.",
      +            "enum": [
      +              "plain",
      +              "paper-ruled",
      +              "grid"
      +            ],
      +            "type": "string"
      +          },
      +          "bindings": {
      +            "description": "Ordered equality bindings from authored/domain meaning to semantic slots.",
      +            "items": {
      +              "additionalProperties": false,
      +              "maxProperties": 4,
      +              "properties": {
      +                "channel": {
      +                  "enum": [
      +                    "category"
      +                  ],
      +                  "type": "string"
      +                },
      +                "role": {
      +                  "enum": [
      +                    "group-header",
      +                    "actor",
      +                    "relationship",
      +                    "pie-slice",
      +                    "legend",
      +                    "bar",
      +                    "series",
      +                    "point",
      +                    "task",
      +                    "milestone"
      +                  ],
      +                  "type": "string"
      +                },
      +                "slot": {
      +                  "not": {
      +                    "enum": [
      +                      "__proto__",
      +                      "constructor",
      +                      "prototype"
      +                    ]
      +                  },
      +                  "pattern": "^[A-Za-z][A-Za-z0-9._-]{0,63}$",
      +                  "type": "string"
      +                },
      +                "value": {
      +                  "maxLength": 256,
      +                  "minLength": 1,
      +                  "pattern": "^[^\\r\\n\\u0000]+$",
      +                  "type": "string"
      +                }
      +              },
      +              "required": [
      +                "channel",
      +                "value",
      +                "slot"
      +              ],
      +              "type": "object"
      +            },
      +            "maxItems": 4096,
      +            "type": "array"
      +          },
      +          "blurb": {
      +            "description": "Short human-readable description used by discovery surfaces.",
      +            "type": "string"
      +          },
      +          "bowing": {
      +            "description": "Rough.js line bowing.",
      +            "maximum": 10,
      +            "minimum": 0,
      +            "type": "number"
      +          },
      +          "colors": {
      +            "additionalProperties": false,
      +            "description": "Partial palette of safe, non-fetching CSS color tokens. Runtime validation applies the stricter safe-color policy.",
      +            "maxProperties": 7,
      +            "properties": {
      +              "accent": {
      +                "description": "Accent paint for emphasis and data series. Must be a safe, non-fetching CSS color.",
      +                "type": "string",
      +                "x-agentic-mermaid-runtime-validator": "safeCssColor"
      +              },
      +              "bg": {
      +                "description": "Diagram page background. Must be a safe, non-fetching CSS color.",
      +                "type": "string",
      +                "x-agentic-mermaid-runtime-validator": "safeCssColor"
      +              },
      +              "border": {
      +                "description": "Node and group border paint. Must be a safe, non-fetching CSS color.",
      +                "type": "string",
      +                "x-agentic-mermaid-runtime-validator": "safeCssColor"
      +              },
      +              "fg": {
      +                "description": "Primary text and foreground paint. Must be a safe, non-fetching CSS color.",
      +                "type": "string",
      +                "x-agentic-mermaid-runtime-validator": "safeCssColor"
      +              },
      +              "line": {
      +                "description": "Connector and secondary line paint. Must be a safe, non-fetching CSS color.",
      +                "type": "string",
      +                "x-agentic-mermaid-runtime-validator": "safeCssColor"
      +              },
      +              "muted": {
      +                "description": "Muted text and secondary data paint. Must be a safe, non-fetching CSS color.",
      +                "type": "string",
      +                "x-agentic-mermaid-runtime-validator": "safeCssColor"
      +              },
      +              "surface": {
      +                "description": "Node and group surface fill. Must be a safe, non-fetching CSS color.",
      +                "type": "string",
      +                "x-agentic-mermaid-runtime-validator": "safeCssColor"
      +              }
      +            },
      +            "type": "object"
      +          },
      +          "constraints": {
      +            "description": "Closed inspect-only brand constraints with warn or error actions.",
      +            "items": {
      +              "oneOf": [
      +                {
      +                  "additionalProperties": false,
      +                  "properties": {
      +                    "action": {
      +                      "enum": [
      +                        "warn",
      +                        "error"
      +                      ],
      +                      "type": "string"
      +                    },
      +                    "kind": {
      +                      "const": "contrast"
      +                    },
      +                    "minimum": {
      +                      "maximum": 21,
      +                      "minimum": 1,
      +                      "type": "number"
      +                    },
      +                    "role": {
      +                      "enum": [
      +                        "node",
      +                        "edge",
      +                        "edge-label",
      +                        "group",
      +                        "group-header",
      +                        "label",
      +                        "actor",
      +                        "lifeline",
      +                        "activation",
      +                        "message",
      +                        "block",
      +                        "note",
      +                        "class-box",
      +                        "member",
      +                        "entity",
      +                        "attribute",
      +                        "relationship",
      +                        "cardinality",
      +                        "pie-slice",
      +                        "legend",
      +                        "bar",
      +                        "series",
      +                        "point",
      +                        "axis",
      +                        "grid",
      +                        "plate",
      +                        "section",
      +                        "task",
      +                        "milestone",
      +                        "marker-line",
      +                        "rail",
      +                        "period",
      +                        "event",
      +                        "score",
      +                        "actor-pill",
      +                        "service",
      +                        "junction",
      +                        "icon",
      +                        "title",
      +                        "defs",
      +                        "prelude",
      +                        "chrome"
      +                      ],
      +                      "type": "string"
      +                    }
      +                  },
      +                  "required": [
      +                    "kind",
      +                    "action"
      +                  ],
      +                  "type": "object"
      +                },
      +                {
      +                  "additionalProperties": false,
      +                  "properties": {
      +                    "action": {
      +                      "enum": [
      +                        "warn",
      +                        "error"
      +                      ],
      +                      "type": "string"
      +                    },
      +                    "kind": {
      +                      "const": "accent-area"
      +                    },
      +                    "maxFraction": {
      +                      "maximum": 1,
      +                      "minimum": 0,
      +                      "type": "number"
      +                    }
      +                  },
      +                  "required": [
      +                    "kind",
      +                    "action",
      +                    "maxFraction"
      +                  ],
      +                  "type": "object"
      +                },
      +                {
      +                  "additionalProperties": false,
      +                  "properties": {
      +                    "action": {
      +                      "enum": [
      +                        "warn",
      +                        "error"
      +                      ],
      +                      "type": "string"
      +                    },
      +                    "kind": {
      +                      "const": "mono-role"
      +                    },
      +                    "role": {
      +                      "enum": [
      +                        "node",
      +                        "edge",
      +                        "edge-label",
      +                        "group",
      +                        "group-header",
      +                        "label",
      +                        "actor",
      +                        "lifeline",
      +                        "activation",
      +                        "message",
      +                        "block",
      +                        "note",
      +                        "class-box",
      +                        "member",
      +                        "entity",
      +                        "attribute",
      +                        "relationship",
      +                        "cardinality",
      +                        "pie-slice",
      +                        "legend",
      +                        "bar",
      +                        "series",
      +                        "point",
      +                        "axis",
      +                        "grid",
      +                        "plate",
      +                        "section",
      +                        "task",
      +                        "milestone",
      +                        "marker-line",
      +                        "rail",
      +                        "period",
      +                        "event",
      +                        "score",
      +                        "actor-pill",
      +                        "service",
      +                        "junction",
      +                        "icon",
      +                        "title",
      +                        "defs",
      +                        "prelude",
      +                        "chrome"
      +                      ],
      +                      "type": "string"
      +                    }
      +                  },
      +                  "required": [
      +                    "kind",
      +                    "action",
      +                    "role"
      +                  ],
      +                  "type": "object"
      +                }
      +              ]
      +            },
      +            "maxItems": 4096,
      +            "type": "array"
      +          },
      +          "fill": {
      +            "description": "Fill policy for rough/hybrid rendering; none and solid require a final stack that activates one of those backends.",
      +            "enum": [
      +              "none",
      +              "hachure",
      +              "solid",
      +              "wash"
      +            ],
      +            "type": "string"
      +          },
      +          "fillWeight": {
      +            "description": "Hachure line weight; requires fill hachure in the final stack.",
      +            "exclusiveMinimum": 0,
      +            "maximum": 20,
      +            "type": "number"
      +          },
      +          "font": {
      +            "description": "Safe, non-fetching CSS font family or stack; the rendering environment supplies the font face.",
      +            "type": "string",
      +            "x-agentic-mermaid-runtime-validator": "safeCssFontFamily"
      +          },
      +          "formatVersion": {
      +            "const": 1,
      +            "description": "Persisted wire-format version. Optional on input and normalized to 1 on output."
      +          },
      +          "hachureAngle": {
      +            "description": "Hachure line angle in degrees; requires fill hachure in the final stack.",
      +            "maximum": 360,
      +            "minimum": -360,
      +            "type": "number"
      +          },
      +          "hachureGap": {
      +            "description": "Gap between hachure lines; requires fill hachure in the final stack.",
      +            "exclusiveMinimum": 0,
      +            "maximum": 100,
      +            "type": "number"
      +          },
      +          "intent": {
      +            "description": "Advisory intent metadata for pickers and quality tooling.",
      +            "enum": [
      +              "premium",
      +              "draft",
      +              "lofi"
      +            ],
      +            "type": "string"
      +          },
      +          "mono": {
      +            "description": "Advisory monochrome contract: express tone through shading and weight.",
      +            "type": "boolean"
      +          },
      +          "name": {
      +            "description": "Canonical look:name or palette:name identity; required only when registering a style.",
      +            "type": "string"
      +          },
      +          "passes": {
      +            "description": "Number of sketch strokes; 1 is single-pass and 2 is the usual double stroke.",
      +            "maximum": 8,
      +            "minimum": 1,
      +            "type": "integer"
      +          },
      +          "roles": {
      +            "additionalProperties": false,
      +            "description": "Partial semantic SceneRole defaults. Family-authored styling remains authoritative.",
      +            "properties": {
      +              "actor": {
      +                "additionalProperties": false,
      +                "maxProperties": 11,
      +                "properties": {
      +                  "borderColor": {
      +                    "description": "Border paint.",
      +                    "type": "string",
      +                    "x-agentic-mermaid-runtime-validator": "safeStylePaint"
      +                  },
      +                  "cornerRadius": {
      +                    "description": "Applicable corner radius.",
      +                    "maximum": 256,
      +                    "minimum": 0,
      +                    "type": "number"
      +                  },
      +                  "fillColor": {
      +                    "description": "Surface fill paint.",
      +                    "type": "string",
      +                    "x-agentic-mermaid-runtime-validator": "safeStylePaint"
      +                  },
      +                  "fontSize": {
      +                    "description": "Font size in SVG user units.",
      +                    "maximum": 256,
      +                    "minimum": 1,
      +                    "type": "number"
      +                  },
      +                  "fontWeight": {
      +                    "description": "CSS numeric font weight.",
      +                    "maximum": 1000,
      +                    "minimum": 1,
      +                    "type": "number"
      +                  },
      +                  "letterSpacing": {
      +                    "description": "Letter spacing in SVG user units.",
      +                    "maximum": 4,
      +                    "minimum": -2,
      +                    "type": "number"
      +                  },
      +                  "lineWidth": {
      +                    "description": "Border or connector width.",
      +                    "exclusiveMinimum": 0,
      +                    "maximum": 20,
      +                    "type": "number"
      +                  },
      +                  "paddingX": {
      +                    "description": "Horizontal role padding.",
      +                    "maximum": 256,
      +                    "minimum": 0,
      +                    "type": "number"
      +                  },
      +                  "paddingY": {
      +                    "description": "Vertical role padding.",
      +                    "maximum": 256,
      +                    "minimum": 0,
      +                    "type": "number"
      +                  },
      +                  "textColor": {
      +                    "description": "Text paint.",
      +                    "type": "string",
      +                    "x-agentic-mermaid-runtime-validator": "safeStylePaint"
      +                  },
      +                  "textTransform": {
      +                    "description": "Text transformation.",
      +                    "enum": [
      +                      "uppercase",
      +                      "lowercase",
      +                      "capitalize"
      +                    ],
      +                    "type": "string"
      +                  }
      +                },
      +                "type": "object"
      +              },
      +              "bar": {
      +                "additionalProperties": false,
      +                "maxProperties": 4,
      +                "properties": {
      +                  "borderColor": {
      +                    "description": "Border paint.",
      +                    "type": "string",
      +                    "x-agentic-mermaid-runtime-validator": "safeStylePaint"
      +                  },
      +                  "fillColor": {
      +                    "description": "Surface fill paint.",
      +                    "type": "string",
      +                    "x-agentic-mermaid-runtime-validator": "safeStylePaint"
      +                  },
      +                  "lineWidth": {
      +                    "description": "Border or connector width.",
      +                    "exclusiveMinimum": 0,
      +                    "maximum": 20,
      +                    "type": "number"
      +                  },
      +                  "strokeColor": {
      +                    "description": "Connector stroke paint.",
      +                    "type": "string",
      +                    "x-agentic-mermaid-runtime-validator": "safeStylePaint"
      +                  }
      +                },
      +                "type": "object"
      +              },
      +              "edge": {
      +                "additionalProperties": false,
      +                "maxProperties": 8,
      +                "properties": {
      +                  "bendRadius": {
      +                    "description": "Applicable connector bend radius.",
      +                    "maximum": 256,
      +                    "minimum": 0,
      +                    "type": "number"
      +                  },
      +                  "fontSize": {
      +                    "description": "Font size in SVG user units.",
      +                    "maximum": 256,
      +                    "minimum": 1,
      +                    "type": "number"
      +                  },
      +                  "fontWeight": {
      +                    "description": "CSS numeric font weight.",
      +                    "maximum": 1000,
      +                    "minimum": 1,
      +                    "type": "number"
      +                  },
      +                  "letterSpacing": {
      +                    "description": "Letter spacing in SVG user units.",
      +                    "maximum": 4,
      +                    "minimum": -2,
      +                    "type": "number"
      +                  },
      +                  "lineWidth": {
      +                    "description": "Border or connector width.",
      +                    "exclusiveMinimum": 0,
      +                    "maximum": 20,
      +                    "type": "number"
      +                  },
      +                  "strokeColor": {
      +                    "description": "Connector stroke paint.",
      +                    "type": "string",
      +                    "x-agentic-mermaid-runtime-validator": "safeStylePaint"
      +                  },
      +                  "textColor": {
      +                    "description": "Text paint.",
      +                    "type": "string",
      +                    "x-agentic-mermaid-runtime-validator": "safeStylePaint"
      +                  },
      +                  "textTransform": {
      +                    "description": "Text transformation.",
      +                    "enum": [
      +                      "uppercase",
      +                      "lowercase",
      +                      "capitalize"
      +                    ],
      +                    "type": "string"
      +                  }
      +                },
      +                "type": "object"
      +              },
      +              "group": {
      +                "additionalProperties": false,
      +                "maxProperties": 13,
      +                "properties": {
      +                  "borderColor": {
      +                    "description": "Border paint.",
      +                    "type": "string",
      +                    "x-agentic-mermaid-runtime-validator": "safeStylePaint"
      +                  },
      +                  "cornerRadius": {
      +                    "description": "Applicable corner radius.",
      +                    "maximum": 256,
      +                    "minimum": 0,
      +                    "type": "number"
      +                  },
      +                  "fillColor": {
      +                    "description": "Surface fill paint.",
      +                    "type": "string",
      +                    "x-agentic-mermaid-runtime-validator": "safeStylePaint"
      +                  },
      +                  "fontFamily": {
      +                    "description": "Safe font family/stack for roles whose descriptor exposes family-specific typography.",
      +                    "type": "string",
      +                    "x-agentic-mermaid-runtime-validator": "safeCssFontFamily"
      +                  },
      +                  "fontSize": {
      +                    "description": "Font size in SVG user units.",
      +                    "maximum": 256,
      +                    "minimum": 1,
      +                    "type": "number"
      +                  },
      +                  "fontWeight": {
      +                    "description": "CSS numeric font weight.",
      +                    "maximum": 1000,
      +                    "minimum": 1,
      +                    "type": "number"
      +                  },
      +                  "headerFillColor": {
      +                    "description": "Group header surface paint.",
      +                    "type": "string",
      +                    "x-agentic-mermaid-runtime-validator": "safeStylePaint"
      +                  },
      +                  "letterSpacing": {
      +                    "description": "Letter spacing in SVG user units.",
      +                    "maximum": 4,
      +                    "minimum": -2,
      +                    "type": "number"
      +                  },
      +                  "lineWidth": {
      +                    "description": "Border or connector width.",
      +                    "exclusiveMinimum": 0,
      +                    "maximum": 20,
      +                    "type": "number"
      +                  },
      +                  "paddingX": {
      +                    "description": "Horizontal role padding.",
      +                    "maximum": 256,
      +                    "minimum": 0,
      +                    "type": "number"
      +                  },
      +                  "paddingY": {
      +                    "description": "Vertical role padding.",
      +                    "maximum": 256,
      +                    "minimum": 0,
      +                    "type": "number"
      +                  },
      +                  "textColor": {
      +                    "description": "Text paint.",
      +                    "type": "string",
      +                    "x-agentic-mermaid-runtime-validator": "safeStylePaint"
      +                  },
      +                  "textTransform": {
      +                    "description": "Text transformation.",
      +                    "enum": [
      +                      "uppercase",
      +                      "lowercase",
      +                      "capitalize"
      +                    ],
      +                    "type": "string"
      +                  }
      +                },
      +                "type": "object"
      +              },
      +              "group-header": {
      +                "additionalProperties": false,
      +                "maxProperties": 11,
      +                "properties": {
      +                  "borderColor": {
      +                    "description": "Border paint.",
      +                    "type": "string",
      +                    "x-agentic-mermaid-runtime-validator": "safeStylePaint"
      +                  },
      +                  "cue": {
      +                    "description": "Non-color semantic cue on roles whose family renderer exposes a cue projection.",
      +                    "enum": [
      +                      "none",
      +                      "outline",
      +                      "double-line",
      +                      "pattern"
      +                    ],
      +                    "type": "string"
      +                  },
      +                  "fillColor": {
      +                    "description": "Surface fill paint.",
      +                    "type": "string",
      +                    "x-agentic-mermaid-runtime-validator": "safeStylePaint"
      +                  },
      +                  "fontFamily": {
      +                    "description": "Safe font family/stack for roles whose descriptor exposes family-specific typography.",
      +                    "type": "string",
      +                    "x-agentic-mermaid-runtime-validator": "safeCssFontFamily"
      +                  },
      +                  "fontSize": {
      +                    "description": "Font size in SVG user units.",
      +                    "maximum": 256,
      +                    "minimum": 1,
      +                    "type": "number"
      +                  },
      +                  "fontWeight": {
      +                    "description": "CSS numeric font weight.",
      +                    "maximum": 1000,
      +                    "minimum": 1,
      +                    "type": "number"
      +                  },
      +                  "letterSpacing": {
      +                    "description": "Letter spacing in SVG user units.",
      +                    "maximum": 4,
      +                    "minimum": -2,
      +                    "type": "number"
      +                  },
      +                  "lineWidth": {
      +                    "description": "Border or connector width.",
      +                    "exclusiveMinimum": 0,
      +                    "maximum": 20,
      +                    "type": "number"
      +                  },
      +                  "strokeColor": {
      +                    "description": "Connector stroke paint.",
      +                    "type": "string",
      +                    "x-agentic-mermaid-runtime-validator": "safeStylePaint"
      +                  },
      +                  "textColor": {
      +                    "description": "Text paint.",
      +                    "type": "string",
      +                    "x-agentic-mermaid-runtime-validator": "safeStylePaint"
      +                  },
      +                  "textTransform": {
      +                    "description": "Text transformation.",
      +                    "enum": [
      +                      "uppercase",
      +                      "lowercase",
      +                      "capitalize"
      +                    ],
      +                    "type": "string"
      +                  }
      +                },
      +                "type": "object"
      +              },
      +              "label": {
      +                "additionalProperties": false,
      +                "maxProperties": 5,
      +                "properties": {
      +                  "fontSize": {
      +                    "description": "Font size in SVG user units.",
      +                    "maximum": 256,
      +                    "minimum": 1,
      +                    "type": "number"
      +                  },
      +                  "fontWeight": {
      +                    "description": "CSS numeric font weight.",
      +                    "maximum": 1000,
      +                    "minimum": 1,
      +                    "type": "number"
      +                  },
      +                  "letterSpacing": {
      +                    "description": "Letter spacing in SVG user units.",
      +                    "maximum": 4,
      +                    "minimum": -2,
      +                    "type": "number"
      +                  },
      +                  "textColor": {
      +                    "description": "Text paint.",
      +                    "type": "string",
      +                    "x-agentic-mermaid-runtime-validator": "safeStylePaint"
      +                  },
      +                  "textTransform": {
      +                    "description": "Text transformation.",
      +                    "enum": [
      +                      "uppercase",
      +                      "lowercase",
      +                      "capitalize"
      +                    ],
      +                    "type": "string"
      +                  }
      +                },
      +                "type": "object"
      +              },
      +              "legend": {
      +                "additionalProperties": false,
      +                "maxProperties": 5,
      +                "properties": {
      +                  "borderColor": {
      +                    "description": "Border paint.",
      +                    "type": "string",
      +                    "x-agentic-mermaid-runtime-validator": "safeStylePaint"
      +                  },
      +                  "fillColor": {
      +                    "description": "Surface fill paint.",
      +                    "type": "string",
      +                    "x-agentic-mermaid-runtime-validator": "safeStylePaint"
      +                  },
      +                  "lineWidth": {
      +                    "description": "Border or connector width.",
      +                    "exclusiveMinimum": 0,
      +                    "maximum": 20,
      +                    "type": "number"
      +                  },
      +                  "strokeColor": {
      +                    "description": "Connector stroke paint.",
      +                    "type": "string",
      +                    "x-agentic-mermaid-runtime-validator": "safeStylePaint"
      +                  },
      +                  "textColor": {
      +                    "description": "Text paint.",
      +                    "type": "string",
      +                    "x-agentic-mermaid-runtime-validator": "safeStylePaint"
      +                  }
      +                },
      +                "type": "object"
      +              },
      +              "milestone": {
      +                "additionalProperties": false,
      +                "maxProperties": 5,
      +                "properties": {
      +                  "borderColor": {
      +                    "description": "Border paint.",
      +                    "type": "string",
      +                    "x-agentic-mermaid-runtime-validator": "safeStylePaint"
      +                  },
      +                  "cue": {
      +                    "description": "Non-color semantic cue on roles whose family renderer exposes a cue projection.",
      +                    "enum": [
      +                      "none",
      +                      "outline",
      +                      "double-line",
      +                      "pattern"
      +                    ],
      +                    "type": "string"
      +                  },
      +                  "fillColor": {
      +                    "description": "Surface fill paint.",
      +                    "type": "string",
      +                    "x-agentic-mermaid-runtime-validator": "safeStylePaint"
      +                  },
      +                  "lineWidth": {
      +                    "description": "Border or connector width.",
      +                    "exclusiveMinimum": 0,
      +                    "maximum": 20,
      +                    "type": "number"
      +                  },
      +                  "strokeColor": {
      +                    "description": "Connector stroke paint.",
      +                    "type": "string",
      +                    "x-agentic-mermaid-runtime-validator": "safeStylePaint"
      +                  }
      +                },
      +                "type": "object"
      +              },
      +              "node": {
      +                "additionalProperties": false,
      +                "maxProperties": 11,
      +                "properties": {
      +                  "borderColor": {
      +                    "description": "Border paint.",
      +                    "type": "string",
      +                    "x-agentic-mermaid-runtime-validator": "safeStylePaint"
      +                  },
      +                  "cornerRadius": {
      +                    "description": "Applicable corner radius.",
      +                    "maximum": 256,
      +                    "minimum": 0,
      +                    "type": "number"
      +                  },
      +                  "fillColor": {
      +                    "description": "Surface fill paint.",
      +                    "type": "string",
      +                    "x-agentic-mermaid-runtime-validator": "safeStylePaint"
      +                  },
      +                  "fontSize": {
      +                    "description": "Font size in SVG user units.",
      +                    "maximum": 256,
      +                    "minimum": 1,
      +                    "type": "number"
      +                  },
      +                  "fontWeight": {
      +                    "description": "CSS numeric font weight.",
      +                    "maximum": 1000,
      +                    "minimum": 1,
      +                    "type": "number"
      +                  },
      +                  "letterSpacing": {
      +                    "description": "Letter spacing in SVG user units.",
      +                    "maximum": 4,
      +                    "minimum": -2,
      +                    "type": "number"
      +                  },
      +                  "lineWidth": {
      +                    "description": "Border or connector width.",
      +                    "exclusiveMinimum": 0,
      +                    "maximum": 20,
      +                    "type": "number"
      +                  },
      +                  "paddingX": {
      +                    "description": "Horizontal role padding.",
      +                    "maximum": 256,
      +                    "minimum": 0,
      +                    "type": "number"
      +                  },
      +                  "paddingY": {
      +                    "description": "Vertical role padding.",
      +                    "maximum": 256,
      +                    "minimum": 0,
      +                    "type": "number"
      +                  },
      +                  "textColor": {
      +                    "description": "Text paint.",
      +                    "type": "string",
      +                    "x-agentic-mermaid-runtime-validator": "safeStylePaint"
      +                  },
      +                  "textTransform": {
      +                    "description": "Text transformation.",
      +                    "enum": [
      +                      "uppercase",
      +                      "lowercase",
      +                      "capitalize"
      +                    ],
      +                    "type": "string"
      +                  }
      +                },
      +                "type": "object"
      +              },
      +              "pie-slice": {
      +                "additionalProperties": false,
      +                "maxProperties": 5,
      +                "properties": {
      +                  "borderColor": {
      +                    "description": "Border paint.",
      +                    "type": "string",
      +                    "x-agentic-mermaid-runtime-validator": "safeStylePaint"
      +                  },
      +                  "cue": {
      +                    "description": "Non-color semantic cue on roles whose family renderer exposes a cue projection.",
      +                    "enum": [
      +                      "none",
      +                      "outline",
      +                      "double-line",
      +                      "pattern"
      +                    ],
      +                    "type": "string"
      +                  },
      +                  "fillColor": {
      +                    "description": "Surface fill paint.",
      +                    "type": "string",
      +                    "x-agentic-mermaid-runtime-validator": "safeStylePaint"
      +                  },
      +                  "lineWidth": {
      +                    "description": "Border or connector width.",
      +                    "exclusiveMinimum": 0,
      +                    "maximum": 20,
      +                    "type": "number"
      +                  },
      +                  "strokeColor": {
      +                    "description": "Connector stroke paint.",
      +                    "type": "string",
      +                    "x-agentic-mermaid-runtime-validator": "safeStylePaint"
      +                  }
      +                },
      +                "type": "object"
      +              },
      +              "point": {
      +                "additionalProperties": false,
      +                "maxProperties": 4,
      +                "properties": {
      +                  "borderColor": {
      +                    "description": "Border paint.",
      +                    "type": "string",
      +                    "x-agentic-mermaid-runtime-validator": "safeStylePaint"
      +                  },
      +                  "fillColor": {
      +                    "description": "Surface fill paint.",
      +                    "type": "string",
      +                    "x-agentic-mermaid-runtime-validator": "safeStylePaint"
      +                  },
      +                  "lineWidth": {
      +                    "description": "Border or connector width.",
      +                    "exclusiveMinimum": 0,
      +                    "maximum": 20,
      +                    "type": "number"
      +                  },
      +                  "strokeColor": {
      +                    "description": "Connector stroke paint.",
      +                    "type": "string",
      +                    "x-agentic-mermaid-runtime-validator": "safeStylePaint"
      +                  }
      +                },
      +                "type": "object"
      +              },
      +              "relationship": {
      +                "additionalProperties": false,
      +                "maxProperties": 8,
      +                "properties": {
      +                  "bendRadius": {
      +                    "description": "Applicable connector bend radius.",
      +                    "maximum": 256,
      +                    "minimum": 0,
      +                    "type": "number"
      +                  },
      +                  "fontSize": {
      +                    "description": "Font size in SVG user units.",
      +                    "maximum": 256,
      +                    "minimum": 1,
      +                    "type": "number"
      +                  },
      +                  "fontWeight": {
      +                    "description": "CSS numeric font weight.",
      +                    "maximum": 1000,
      +                    "minimum": 1,
      +                    "type": "number"
      +                  },
      +                  "letterSpacing": {
      +                    "description": "Letter spacing in SVG user units.",
      +                    "maximum": 4,
      +                    "minimum": -2,
      +                    "type": "number"
      +                  },
      +                  "lineWidth": {
      +                    "description": "Border or connector width.",
      +                    "exclusiveMinimum": 0,
      +                    "maximum": 20,
      +                    "type": "number"
      +                  },
      +                  "strokeColor": {
      +                    "description": "Connector stroke paint.",
      +                    "type": "string",
      +                    "x-agentic-mermaid-runtime-validator": "safeStylePaint"
      +                  },
      +                  "textColor": {
      +                    "description": "Text paint.",
      +                    "type": "string",
      +                    "x-agentic-mermaid-runtime-validator": "safeStylePaint"
      +                  },
      +                  "textTransform": {
      +                    "description": "Text transformation.",
      +                    "enum": [
      +                      "uppercase",
      +                      "lowercase",
      +                      "capitalize"
      +                    ],
      +                    "type": "string"
      +                  }
      +                },
      +                "type": "object"
      +              },
      +              "series": {
      +                "additionalProperties": false,
      +                "maxProperties": 3,
      +                "properties": {
      +                  "borderColor": {
      +                    "description": "Border paint.",
      +                    "type": "string",
      +                    "x-agentic-mermaid-runtime-validator": "safeStylePaint"
      +                  },
      +                  "lineWidth": {
      +                    "description": "Border or connector width.",
      +                    "exclusiveMinimum": 0,
      +                    "maximum": 20,
      +                    "type": "number"
      +                  },
      +                  "strokeColor": {
      +                    "description": "Connector stroke paint.",
      +                    "type": "string",
      +                    "x-agentic-mermaid-runtime-validator": "safeStylePaint"
      +                  }
      +                },
      +                "type": "object"
      +              },
      +              "task": {
      +                "additionalProperties": false,
      +                "maxProperties": 5,
      +                "properties": {
      +                  "borderColor": {
      +                    "description": "Border paint.",
      +                    "type": "string",
      +                    "x-agentic-mermaid-runtime-validator": "safeStylePaint"
      +                  },
      +                  "cue": {
      +                    "description": "Non-color semantic cue on roles whose family renderer exposes a cue projection.",
      +                    "enum": [
      +                      "none",
      +                      "outline",
      +                      "double-line",
      +                      "pattern"
      +                    ],
      +                    "type": "string"
      +                  },
      +                  "fillColor": {
      +                    "description": "Surface fill paint.",
      +                    "type": "string",
      +                    "x-agentic-mermaid-runtime-validator": "safeStylePaint"
      +                  },
      +                  "lineWidth": {
      +                    "description": "Border or connector width.",
      +                    "exclusiveMinimum": 0,
      +                    "maximum": 20,
      +                    "type": "number"
      +                  },
      +                  "strokeColor": {
      +                    "description": "Connector stroke paint.",
      +                    "type": "string",
      +                    "x-agentic-mermaid-runtime-validator": "safeStylePaint"
      +                  }
      +                },
      +                "type": "object"
      +              }
      +            },
      +            "type": "object"
      +          },
      +          "roughness": {
      +            "description": "Rough.js stroke irregularity.",
      +            "maximum": 10,
      +            "minimum": 0,
      +            "type": "number"
      +          },
      +          "semanticSlots": {
      +            "additionalProperties": {
      +              "additionalProperties": false,
      +              "maxProperties": 16,
      +              "properties": {
      +                "bendRadius": {
      +                  "description": "Applicable connector bend radius.",
      +                  "maximum": 256,
      +                  "minimum": 0,
      +                  "type": "number"
      +                },
      +                "borderColor": {
      +                  "description": "Border paint.",
      +                  "type": "string",
      +                  "x-agentic-mermaid-runtime-validator": "safeStylePaint"
      +                },
      +                "cornerRadius": {
      +                  "description": "Applicable corner radius.",
      +                  "maximum": 256,
      +                  "minimum": 0,
      +                  "type": "number"
      +                },
      +                "cue": {
      +                  "description": "Non-color semantic cue on roles whose family renderer exposes a cue projection.",
      +                  "enum": [
      +                    "none",
      +                    "outline",
      +                    "double-line",
      +                    "pattern"
      +                  ],
      +                  "type": "string"
      +                },
      +                "fillColor": {
      +                  "description": "Surface fill paint.",
      +                  "type": "string",
      +                  "x-agentic-mermaid-runtime-validator": "safeStylePaint"
      +                },
      +                "fontFamily": {
      +                  "description": "Safe font family/stack for roles whose descriptor exposes family-specific typography.",
      +                  "type": "string",
      +                  "x-agentic-mermaid-runtime-validator": "safeCssFontFamily"
      +                },
      +                "fontSize": {
      +                  "description": "Font size in SVG user units.",
      +                  "maximum": 256,
      +                  "minimum": 1,
      +                  "type": "number"
      +                },
      +                "fontWeight": {
      +                  "description": "CSS numeric font weight.",
      +                  "maximum": 1000,
      +                  "minimum": 1,
      +                  "type": "number"
      +                },
      +                "headerFillColor": {
      +                  "description": "Group header surface paint.",
      +                  "type": "string",
      +                  "x-agentic-mermaid-runtime-validator": "safeStylePaint"
      +                },
      +                "letterSpacing": {
      +                  "description": "Letter spacing in SVG user units.",
      +                  "maximum": 4,
      +                  "minimum": -2,
      +                  "type": "number"
      +                },
      +                "lineWidth": {
      +                  "description": "Border or connector width.",
      +                  "exclusiveMinimum": 0,
      +                  "maximum": 20,
      +                  "type": "number"
      +                },
      +                "paddingX": {
      +                  "description": "Horizontal role padding.",
      +                  "maximum": 256,
      +                  "minimum": 0,
      +                  "type": "number"
      +                },
      +                "paddingY": {
      +                  "description": "Vertical role padding.",
      +                  "maximum": 256,
      +                  "minimum": 0,
      +                  "type": "number"
      +                },
      +                "strokeColor": {
      +                  "description": "Connector stroke paint.",
      +                  "type": "string",
      +                  "x-agentic-mermaid-runtime-validator": "safeStylePaint"
      +                },
      +                "textColor": {
      +                  "description": "Text paint.",
      +                  "type": "string",
      +                  "x-agentic-mermaid-runtime-validator": "safeStylePaint"
      +                },
      +                "textTransform": {
      +                  "description": "Text transformation.",
      +                  "enum": [
      +                    "uppercase",
      +                    "lowercase",
      +                    "capitalize"
      +                  ],
      +                  "type": "string"
      +                }
      +              },
      +              "type": "object"
      +            },
      +            "description": "Named brand-neutral role-style slots selected by semantic bindings.",
      +            "maxProperties": 4096,
      +            "propertyNames": {
      +              "not": {
      +                "enum": [
      +                  "__proto__",
      +                  "constructor",
      +                  "prototype"
      +                ]
      +              },
      +              "pattern": "^[A-Za-z][A-Za-z0-9._-]{0,63}$"
      +            },
      +            "type": "object"
      +          },
      +          "stroke": {
      +            "description": "Stroke treatment; crisp is the default renderer.",
      +            "enum": [
      +              "crisp",
      +              "jittered",
      +              "freehand"
      +            ],
      +            "type": "string"
      +          },
      +          "strokeWidth": {
      +            "description": "Base stroke width in SVG user units.",
      +            "exclusiveMinimum": 0,
      +            "maximum": 20,
      +            "type": "number"
      +          },
      +          "washEdge": {
      +            "description": "Watercolor edge-darkening opacity; requires fill wash in the final stack.",
      +            "maximum": 1,
      +            "minimum": 0,
      +            "type": "number"
      +          },
      +          "washOpacity": {
      +            "description": "Watercolor glaze opacity; requires fill wash in the final stack.",
      +            "maximum": 1,
      +            "minimum": 0,
      +            "type": "number"
      +          }
      +        },
      +        "type": "object"
      +      }
      +    ],
      +    "x-agentic-mermaid-validation-expectation": "a registered Style name or StyleSpec"
      +  },
      +  {
      +    "description": "Style stack merged from left to right.",
      +    "items": {
      +      "anyOf": [
      +        {
      +          "description": "Registered Style or Palette name.",
      +          "type": "string"
      +        },
      +        {
      +          "additionalProperties": false,
      +          "description": "A partial declarative style record for Agentic Mermaid rendering. All fields, including formatVersion, are optional on input; resolved and registered specs normalize formatVersion to 1.",
      +          "maxProperties": 24,
      +          "properties": {
      +            "$schema": {
      +              "description": "Optional JSON Schema pointer for file-backed styles; ignored while rendering.",
      +              "type": "string"
      +            },
      +            "backdrop": {
      +              "description": "Flat page furniture drawn behind the diagram.",
      +              "enum": [
      +                "plain",
      +                "paper-ruled",
      +                "grid"
      +              ],
      +              "type": "string"
      +            },
      +            "bindings": {
      +              "description": "Ordered equality bindings from authored/domain meaning to semantic slots.",
      +              "items": {
      +                "additionalProperties": false,
      +                "maxProperties": 4,
      +                "properties": {
      +                  "channel": {
      +                    "enum": [
      +                      "category"
      +                    ],
      +                    "type": "string"
      +                  },
      +                  "role": {
      +                    "enum": [
      +                      "group-header",
      +                      "actor",
      +                      "relationship",
      +                      "pie-slice",
      +                      "legend",
      +                      "bar",
      +                      "series",
      +                      "point",
      +                      "task",
      +                      "milestone"
      +                    ],
      +                    "type": "string"
      +                  },
      +                  "slot": {
      +                    "not": {
      +                      "enum": [
      +                        "__proto__",
      +                        "constructor",
      +                        "prototype"
      +                      ]
      +                    },
      +                    "pattern": "^[A-Za-z][A-Za-z0-9._-]{0,63}$",
      +                    "type": "string"
      +                  },
      +                  "value": {
      +                    "maxLength": 256,
      +                    "minLength": 1,
      +                    "pattern": "^[^\\r\\n\\u0000]+$",
      +                    "type": "string"
      +                  }
      +                },
      +                "required": [
      +                  "channel",
      +                  "value",
      +                  "slot"
      +                ],
      +                "type": "object"
      +              },
      +              "maxItems": 4096,
      +              "type": "array"
      +            },
      +            "blurb": {
      +              "description": "Short human-readable description used by discovery surfaces.",
      +              "type": "string"
      +            },
      +            "bowing": {
      +              "description": "Rough.js line bowing.",
      +              "maximum": 10,
      +              "minimum": 0,
      +              "type": "number"
      +            },
      +            "colors": {
      +              "additionalProperties": false,
      +              "description": "Partial palette of safe, non-fetching CSS color tokens. Runtime validation applies the stricter safe-color policy.",
      +              "maxProperties": 7,
      +              "properties": {
      +                "accent": {
      +                  "description": "Accent paint for emphasis and data series. Must be a safe, non-fetching CSS color.",
      +                  "type": "string",
      +                  "x-agentic-mermaid-runtime-validator": "safeCssColor"
      +                },
      +                "bg": {
      +                  "description": "Diagram page background. Must be a safe, non-fetching CSS color.",
      +                  "type": "string",
      +                  "x-agentic-mermaid-runtime-validator": "safeCssColor"
      +                },
      +                "border": {
      +                  "description": "Node and group border paint. Must be a safe, non-fetching CSS color.",
      +                  "type": "string",
      +                  "x-agentic-mermaid-runtime-validator": "safeCssColor"
      +                },
      +                "fg": {
      +                  "description": "Primary text and foreground paint. Must be a safe, non-fetching CSS color.",
      +                  "type": "string",
      +                  "x-agentic-mermaid-runtime-validator": "safeCssColor"
      +                },
      +                "line": {
      +                  "description": "Connector and secondary line paint. Must be a safe, non-fetching CSS color.",
      +                  "type": "string",
      +                  "x-agentic-mermaid-runtime-validator": "safeCssColor"
      +                },
      +                "muted": {
      +                  "description": "Muted text and secondary data paint. Must be a safe, non-fetching CSS color.",
      +                  "type": "string",
      +                  "x-agentic-mermaid-runtime-validator": "safeCssColor"
      +                },
      +                "surface": {
      +                  "description": "Node and group surface fill. Must be a safe, non-fetching CSS color.",
      +                  "type": "string",
      +                  "x-agentic-mermaid-runtime-validator": "safeCssColor"
      +                }
      +              },
      +              "type": "object"
      +            },
      +            "constraints": {
      +              "description": "Closed inspect-only brand constraints with warn or error actions.",
      +              "items": {
      +                "oneOf": [
      +                  {
      +                    "additionalProperties": false,
      +                    "properties": {
      +                      "action": {
      +                        "enum": [
      +                          "warn",
      +                          "error"
      +                        ],
      +                        "type": "string"
      +                      },
      +                      "kind": {
      +                        "const": "contrast"
      +                      },
      +                      "minimum": {
      +                        "maximum": 21,
      +                        "minimum": 1,
      +                        "type": "number"
      +                      },
      +                      "role": {
      +                        "enum": [
      +                          "node",
      +                          "edge",
      +                          "edge-label",
      +                          "group",
      +                          "group-header",
      +                          "label",
      +                          "actor",
      +                          "lifeline",
      +                          "activation",
      +                          "message",
      +                          "block",
      +                          "note",
      +                          "class-box",
      +                          "member",
      +                          "entity",
      +                          "attribute",
      +                          "relationship",
      +                          "cardinality",
      +                          "pie-slice",
      +                          "legend",
      +                          "bar",
      +                          "series",
      +                          "point",
      +                          "axis",
      +                          "grid",
      +                          "plate",
      +                          "section",
      +                          "task",
      +                          "milestone",
      +                          "marker-line",
      +                          "rail",
      +                          "period",
      +                          "event",
      +                          "score",
      +                          "actor-pill",
      +                          "service",
      +                          "junction",
      +                          "icon",
      +                          "title",
      +                          "defs",
      +                          "prelude",
      +                          "chrome"
      +                        ],
      +                        "type": "string"
      +                      }
      +                    },
      +                    "required": [
      +                      "kind",
      +                      "action"
      +                    ],
      +                    "type": "object"
      +                  },
      +                  {
      +                    "additionalProperties": false,
      +                    "properties": {
      +                      "action": {
      +                        "enum": [
      +                          "warn",
      +                          "error"
      +                        ],
      +                        "type": "string"
      +                      },
      +                      "kind": {
      +                        "const": "accent-area"
      +                      },
      +                      "maxFraction": {
      +                        "maximum": 1,
      +                        "minimum": 0,
      +                        "type": "number"
      +                      }
      +                    },
      +                    "required": [
      +                      "kind",
      +                      "action",
      +                      "maxFraction"
      +                    ],
      +                    "type": "object"
      +                  },
      +                  {
      +                    "additionalProperties": false,
      +                    "properties": {
      +                      "action": {
      +                        "enum": [
      +                          "warn",
      +                          "error"
      +                        ],
      +                        "type": "string"
      +                      },
      +                      "kind": {
      +                        "const": "mono-role"
      +                      },
      +                      "role": {
      +                        "enum": [
      +                          "node",
      +                          "edge",
      +                          "edge-label",
      +                          "group",
      +                          "group-header",
      +                          "label",
      +                          "actor",
      +                          "lifeline",
      +                          "activation",
      +                          "message",
      +                          "block",
      +                          "note",
      +                          "class-box",
      +                          "member",
      +                          "entity",
      +                          "attribute",
      +                          "relationship",
      +                          "cardinality",
      +                          "pie-slice",
      +                          "legend",
      +                          "bar",
      +                          "series",
      +                          "point",
      +                          "axis",
      +                          "grid",
      +                          "plate",
      +                          "section",
      +                          "task",
      +                          "milestone",
      +                          "marker-line",
      +                          "rail",
      +                          "period",
      +                          "event",
      +                          "score",
      +                          "actor-pill",
      +                          "service",
      +                          "junction",
      +                          "icon",
      +                          "title",
      +                          "defs",
      +                          "prelude",
      +                          "chrome"
      +                        ],
      +                        "type": "string"
      +                      }
      +                    },
      +                    "required": [
      +                      "kind",
      +                      "action",
      +                      "role"
      +                    ],
      +                    "type": "object"
      +                  }
      +                ]
      +              },
      +              "maxItems": 4096,
      +              "type": "array"
      +            },
      +            "fill": {
      +              "description": "Fill policy for rough/hybrid rendering; none and solid require a final stack that activates one of those backends.",
      +              "enum": [
      +                "none",
      +                "hachure",
      +                "solid",
      +                "wash"
      +              ],
      +              "type": "string"
      +            },
      +            "fillWeight": {
      +              "description": "Hachure line weight; requires fill hachure in the final stack.",
      +              "exclusiveMinimum": 0,
      +              "maximum": 20,
      +              "type": "number"
      +            },
      +            "font": {
      +              "description": "Safe, non-fetching CSS font family or stack; the rendering environment supplies the font face.",
      +              "type": "string",
      +              "x-agentic-mermaid-runtime-validator": "safeCssFontFamily"
      +            },
      +            "formatVersion": {
      +              "const": 1,
      +              "description": "Persisted wire-format version. Optional on input and normalized to 1 on output."
      +            },
      +            "hachureAngle": {
      +              "description": "Hachure line angle in degrees; requires fill hachure in the final stack.",
      +              "maximum": 360,
      +              "minimum": -360,
      +              "type": "number"
      +            },
      +            "hachureGap": {
      +              "description": "Gap between hachure lines; requires fill hachure in the final stack.",
      +              "exclusiveMinimum": 0,
      +              "maximum": 100,
      +              "type": "number"
      +            },
      +            "intent": {
      +              "description": "Advisory intent metadata for pickers and quality tooling.",
      +              "enum": [
      +                "premium",
      +                "draft",
      +                "lofi"
      +              ],
      +              "type": "string"
      +            },
      +            "mono": {
      +              "description": "Advisory monochrome contract: express tone through shading and weight.",
      +              "type": "boolean"
      +            },
      +            "name": {
      +              "description": "Canonical look:name or palette:name identity; required only when registering a style.",
      +              "type": "string"
      +            },
      +            "passes": {
      +              "description": "Number of sketch strokes; 1 is single-pass and 2 is the usual double stroke.",
      +              "maximum": 8,
      +              "minimum": 1,
      +              "type": "integer"
      +            },
      +            "roles": {
      +              "additionalProperties": false,
      +              "description": "Partial semantic SceneRole defaults. Family-authored styling remains authoritative.",
      +              "properties": {
      +                "actor": {
      +                  "additionalProperties": false,
      +                  "maxProperties": 11,
      +                  "properties": {
      +                    "borderColor": {
      +                      "description": "Border paint.",
      +                      "type": "string",
      +                      "x-agentic-mermaid-runtime-validator": "safeStylePaint"
      +                    },
      +                    "cornerRadius": {
      +                      "description": "Applicable corner radius.",
      +                      "maximum": 256,
      +                      "minimum": 0,
      +                      "type": "number"
      +                    },
      +                    "fillColor": {
      +                      "description": "Surface fill paint.",
      +                      "type": "string",
      +                      "x-agentic-mermaid-runtime-validator": "safeStylePaint"
      +                    },
      +                    "fontSize": {
      +                      "description": "Font size in SVG user units.",
      +                      "maximum": 256,
      +                      "minimum": 1,
      +                      "type": "number"
      +                    },
      +                    "fontWeight": {
      +                      "description": "CSS numeric font weight.",
      +                      "maximum": 1000,
      +                      "minimum": 1,
      +                      "type": "number"
      +                    },
      +                    "letterSpacing": {
      +                      "description": "Letter spacing in SVG user units.",
      +                      "maximum": 4,
      +                      "minimum": -2,
      +                      "type": "number"
      +                    },
      +                    "lineWidth": {
      +                      "description": "Border or connector width.",
      +                      "exclusiveMinimum": 0,
      +                      "maximum": 20,
      +                      "type": "number"
      +                    },
      +                    "paddingX": {
      +                      "description": "Horizontal role padding.",
      +                      "maximum": 256,
      +                      "minimum": 0,
      +                      "type": "number"
      +                    },
      +                    "paddingY": {
      +                      "description": "Vertical role padding.",
      +                      "maximum": 256,
      +                      "minimum": 0,
      +                      "type": "number"
      +                    },
      +                    "textColor": {
      +                      "description": "Text paint.",
      +                      "type": "string",
      +                      "x-agentic-mermaid-runtime-validator": "safeStylePaint"
      +                    },
      +                    "textTransform": {
      +                      "description": "Text transformation.",
      +                      "enum": [
      +                        "uppercase",
      +                        "lowercase",
      +                        "capitalize"
      +                      ],
      +                      "type": "string"
      +                    }
      +                  },
      +                  "type": "object"
      +                },
      +                "bar": {
      +                  "additionalProperties": false,
      +                  "maxProperties": 4,
      +                  "properties": {
      +                    "borderColor": {
      +                      "description": "Border paint.",
      +                      "type": "string",
      +                      "x-agentic-mermaid-runtime-validator": "safeStylePaint"
      +                    },
      +                    "fillColor": {
      +                      "description": "Surface fill paint.",
      +                      "type": "string",
      +                      "x-agentic-mermaid-runtime-validator": "safeStylePaint"
      +                    },
      +                    "lineWidth": {
      +                      "description": "Border or connector width.",
      +                      "exclusiveMinimum": 0,
      +                      "maximum": 20,
      +                      "type": "number"
      +                    },
      +                    "strokeColor": {
      +                      "description": "Connector stroke paint.",
      +                      "type": "string",
      +                      "x-agentic-mermaid-runtime-validator": "safeStylePaint"
      +                    }
      +                  },
      +                  "type": "object"
      +                },
      +                "edge": {
      +                  "additionalProperties": false,
      +                  "maxProperties": 8,
      +                  "properties": {
      +                    "bendRadius": {
      +                      "description": "Applicable connector bend radius.",
      +                      "maximum": 256,
      +                      "minimum": 0,
      +                      "type": "number"
      +                    },
      +                    "fontSize": {
      +                      "description": "Font size in SVG user units.",
      +                      "maximum": 256,
      +                      "minimum": 1,
      +                      "type": "number"
      +                    },
      +                    "fontWeight": {
      +                      "description": "CSS numeric font weight.",
      +                      "maximum": 1000,
      +                      "minimum": 1,
      +                      "type": "number"
      +                    },
      +                    "letterSpacing": {
      +                      "description": "Letter spacing in SVG user units.",
      +                      "maximum": 4,
      +                      "minimum": -2,
      +                      "type": "number"
      +                    },
      +                    "lineWidth": {
      +                      "description": "Border or connector width.",
      +                      "exclusiveMinimum": 0,
      +                      "maximum": 20,
      +                      "type": "number"
      +                    },
      +                    "strokeColor": {
      +                      "description": "Connector stroke paint.",
      +                      "type": "string",
      +                      "x-agentic-mermaid-runtime-validator": "safeStylePaint"
      +                    },
      +                    "textColor": {
      +                      "description": "Text paint.",
      +                      "type": "string",
      +                      "x-agentic-mermaid-runtime-validator": "safeStylePaint"
      +                    },
      +                    "textTransform": {
      +                      "description": "Text transformation.",
      +                      "enum": [
      +                        "uppercase",
      +                        "lowercase",
      +                        "capitalize"
      +                      ],
      +                      "type": "string"
      +                    }
      +                  },
      +                  "type": "object"
      +                },
      +                "group": {
      +                  "additionalProperties": false,
      +                  "maxProperties": 13,
      +                  "properties": {
      +                    "borderColor": {
      +                      "description": "Border paint.",
      +                      "type": "string",
      +                      "x-agentic-mermaid-runtime-validator": "safeStylePaint"
      +                    },
      +                    "cornerRadius": {
      +                      "description": "Applicable corner radius.",
      +                      "maximum": 256,
      +                      "minimum": 0,
      +                      "type": "number"
      +                    },
      +                    "fillColor": {
      +                      "description": "Surface fill paint.",
      +                      "type": "string",
      +                      "x-agentic-mermaid-runtime-validator": "safeStylePaint"
      +                    },
      +                    "fontFamily": {
      +                      "description": "Safe font family/stack for roles whose descriptor exposes family-specific typography.",
      +                      "type": "string",
      +                      "x-agentic-mermaid-runtime-validator": "safeCssFontFamily"
      +                    },
      +                    "fontSize": {
      +                      "description": "Font size in SVG user units.",
      +                      "maximum": 256,
      +                      "minimum": 1,
      +                      "type": "number"
      +                    },
      +                    "fontWeight": {
      +                      "description": "CSS numeric font weight.",
      +                      "maximum": 1000,
      +                      "minimum": 1,
      +                      "type": "number"
      +                    },
      +                    "headerFillColor": {
      +                      "description": "Group header surface paint.",
      +                      "type": "string",
      +                      "x-agentic-mermaid-runtime-validator": "safeStylePaint"
      +                    },
      +                    "letterSpacing": {
      +                      "description": "Letter spacing in SVG user units.",
      +                      "maximum": 4,
      +                      "minimum": -2,
      +                      "type": "number"
      +                    },
      +                    "lineWidth": {
      +                      "description": "Border or connector width.",
      +                      "exclusiveMinimum": 0,
      +                      "maximum": 20,
      +                      "type": "number"
      +                    },
      +                    "paddingX": {
      +                      "description": "Horizontal role padding.",
      +                      "maximum": 256,
      +                      "minimum": 0,
      +                      "type": "number"
      +                    },
      +                    "paddingY": {
      +                      "description": "Vertical role padding.",
      +                      "maximum": 256,
      +                      "minimum": 0,
      +                      "type": "number"
      +                    },
      +                    "textColor": {
      +                      "description": "Text paint.",
      +                      "type": "string",
      +                      "x-agentic-mermaid-runtime-validator": "safeStylePaint"
      +                    },
      +                    "textTransform": {
      +                      "description": "Text transformation.",
      +                      "enum": [
      +                        "uppercase",
      +                        "lowercase",
      +                        "capitalize"
      +                      ],
      +                      "type": "string"
      +                    }
      +                  },
      +                  "type": "object"
      +                },
      +                "group-header": {
      +                  "additionalProperties": false,
      +                  "maxProperties": 11,
      +                  "properties": {
      +                    "borderColor": {
      +                      "description": "Border paint.",
      +                      "type": "string",
      +                      "x-agentic-mermaid-runtime-validator": "safeStylePaint"
      +                    },
      +                    "cue": {
      +                      "description": "Non-color semantic cue on roles whose family renderer exposes a cue projection.",
      +                      "enum": [
      +                        "none",
      +                        "outline",
      +                        "double-line",
      +                        "pattern"
      +                      ],
      +                      "type": "string"
      +                    },
      +                    "fillColor": {
      +                      "description": "Surface fill paint.",
      +                      "type": "string",
      +                      "x-agentic-mermaid-runtime-validator": "safeStylePaint"
      +                    },
      +                    "fontFamily": {
      +                      "description": "Safe font family/stack for roles whose descriptor exposes family-specific typography.",
      +                      "type": "string",
      +                      "x-agentic-mermaid-runtime-validator": "safeCssFontFamily"
      +                    },
      +                    "fontSize": {
      +                      "description": "Font size in SVG user units.",
      +                      "maximum": 256,
      +                      "minimum": 1,
      +                      "type": "number"
      +                    },
      +                    "fontWeight": {
      +                      "description": "CSS numeric font weight.",
      +                      "maximum": 1000,
      +                      "minimum": 1,
      +                      "type": "number"
      +                    },
      +                    "letterSpacing": {
      +                      "description": "Letter spacing in SVG user units.",
      +                      "maximum": 4,
      +                      "minimum": -2,
      +                      "type": "number"
      +                    },
      +                    "lineWidth": {
      +                      "description": "Border or connector width.",
      +                      "exclusiveMinimum": 0,
      +                      "maximum": 20,
      +                      "type": "number"
      +                    },
      +                    "strokeColor": {
      +                      "description": "Connector stroke paint.",
      +                      "type": "string",
      +                      "x-agentic-mermaid-runtime-validator": "safeStylePaint"
      +                    },
      +                    "textColor": {
      +                      "description": "Text paint.",
      +                      "type": "string",
      +                      "x-agentic-mermaid-runtime-validator": "safeStylePaint"
      +                    },
      +                    "textTransform": {
      +                      "description": "Text transformation.",
      +                      "enum": [
      +                        "uppercase",
      +                        "lowercase",
      +                        "capitalize"
      +                      ],
      +                      "type": "string"
      +                    }
      +                  },
      +                  "type": "object"
      +                },
      +                "label": {
      +                  "additionalProperties": false,
      +                  "maxProperties": 5,
      +                  "properties": {
      +                    "fontSize": {
      +                      "description": "Font size in SVG user units.",
      +                      "maximum": 256,
      +                      "minimum": 1,
      +                      "type": "number"
      +                    },
      +                    "fontWeight": {
      +                      "description": "CSS numeric font weight.",
      +                      "maximum": 1000,
      +                      "minimum": 1,
      +                      "type": "number"
      +                    },
      +                    "letterSpacing": {
      +                      "description": "Letter spacing in SVG user units.",
      +                      "maximum": 4,
      +                      "minimum": -2,
      +                      "type": "number"
      +                    },
      +                    "textColor": {
      +                      "description": "Text paint.",
      +                      "type": "string",
      +                      "x-agentic-mermaid-runtime-validator": "safeStylePaint"
      +                    },
      +                    "textTransform": {
      +                      "description": "Text transformation.",
      +                      "enum": [
      +                        "uppercase",
      +                        "lowercase",
      +                        "capitalize"
      +                      ],
      +                      "type": "string"
      +                    }
      +                  },
      +                  "type": "object"
      +                },
      +                "legend": {
      +                  "additionalProperties": false,
      +                  "maxProperties": 5,
      +                  "properties": {
      +                    "borderColor": {
      +                      "description": "Border paint.",
      +                      "type": "string",
      +                      "x-agentic-mermaid-runtime-validator": "safeStylePaint"
      +                    },
      +                    "fillColor": {
      +                      "description": "Surface fill paint.",
      +                      "type": "string",
      +                      "x-agentic-mermaid-runtime-validator": "safeStylePaint"
      +                    },
      +                    "lineWidth": {
      +                      "description": "Border or connector width.",
      +                      "exclusiveMinimum": 0,
      +                      "maximum": 20,
      +                      "type": "number"
      +                    },
      +                    "strokeColor": {
      +                      "description": "Connector stroke paint.",
      +                      "type": "string",
      +                      "x-agentic-mermaid-runtime-validator": "safeStylePaint"
      +                    },
      +                    "textColor": {
      +                      "description": "Text paint.",
      +                      "type": "string",
      +                      "x-agentic-mermaid-runtime-validator": "safeStylePaint"
      +                    }
      +                  },
      +                  "type": "object"
      +                },
      +                "milestone": {
      +                  "additionalProperties": false,
      +                  "maxProperties": 5,
      +                  "properties": {
      +                    "borderColor": {
      +                      "description": "Border paint.",
      +                      "type": "string",
      +                      "x-agentic-mermaid-runtime-validator": "safeStylePaint"
      +                    },
      +                    "cue": {
      +                      "description": "Non-color semantic cue on roles whose family renderer exposes a cue projection.",
      +                      "enum": [
      +                        "none",
      +                        "outline",
      +                        "double-line",
      +                        "pattern"
      +                      ],
      +                      "type": "string"
      +                    },
      +                    "fillColor": {
      +                      "description": "Surface fill paint.",
      +                      "type": "string",
      +                      "x-agentic-mermaid-runtime-validator": "safeStylePaint"
      +                    },
      +                    "lineWidth": {
      +                      "description": "Border or connector width.",
      +                      "exclusiveMinimum": 0,
      +                      "maximum": 20,
      +                      "type": "number"
      +                    },
      +                    "strokeColor": {
      +                      "description": "Connector stroke paint.",
      +                      "type": "string",
      +                      "x-agentic-mermaid-runtime-validator": "safeStylePaint"
      +                    }
      +                  },
      +                  "type": "object"
      +                },
      +                "node": {
      +                  "additionalProperties": false,
      +                  "maxProperties": 11,
      +                  "properties": {
      +                    "borderColor": {
      +                      "description": "Border paint.",
      +                      "type": "string",
      +                      "x-agentic-mermaid-runtime-validator": "safeStylePaint"
      +                    },
      +                    "cornerRadius": {
      +                      "description": "Applicable corner radius.",
      +                      "maximum": 256,
      +                      "minimum": 0,
      +                      "type": "number"
      +                    },
      +                    "fillColor": {
      +                      "description": "Surface fill paint.",
      +                      "type": "string",
      +                      "x-agentic-mermaid-runtime-validator": "safeStylePaint"
      +                    },
      +                    "fontSize": {
      +                      "description": "Font size in SVG user units.",
      +                      "maximum": 256,
      +                      "minimum": 1,
      +                      "type": "number"
      +                    },
      +                    "fontWeight": {
      +                      "description": "CSS numeric font weight.",
      +                      "maximum": 1000,
      +                      "minimum": 1,
      +                      "type": "number"
      +                    },
      +                    "letterSpacing": {
      +                      "description": "Letter spacing in SVG user units.",
      +                      "maximum": 4,
      +                      "minimum": -2,
      +                      "type": "number"
      +                    },
      +                    "lineWidth": {
      +                      "description": "Border or connector width.",
      +                      "exclusiveMinimum": 0,
      +                      "maximum": 20,
      +                      "type": "number"
      +                    },
      +                    "paddingX": {
      +                      "description": "Horizontal role padding.",
      +                      "maximum": 256,
      +                      "minimum": 0,
      +                      "type": "number"
      +                    },
      +                    "paddingY": {
      +                      "description": "Vertical role padding.",
      +                      "maximum": 256,
      +                      "minimum": 0,
      +                      "type": "number"
      +                    },
      +                    "textColor": {
      +                      "description": "Text paint.",
      +                      "type": "string",
      +                      "x-agentic-mermaid-runtime-validator": "safeStylePaint"
      +                    },
      +                    "textTransform": {
      +                      "description": "Text transformation.",
      +                      "enum": [
      +                        "uppercase",
      +                        "lowercase",
      +                        "capitalize"
      +                      ],
      +                      "type": "string"
      +                    }
      +                  },
      +                  "type": "object"
      +                },
      +                "pie-slice": {
      +                  "additionalProperties": false,
      +                  "maxProperties": 5,
      +                  "properties": {
      +                    "borderColor": {
      +                      "description": "Border paint.",
      +                      "type": "string",
      +                      "x-agentic-mermaid-runtime-validator": "safeStylePaint"
      +                    },
      +                    "cue": {
      +                      "description": "Non-color semantic cue on roles whose family renderer exposes a cue projection.",
      +                      "enum": [
      +                        "none",
      +                        "outline",
      +                        "double-line",
      +                        "pattern"
      +                      ],
      +                      "type": "string"
      +                    },
      +                    "fillColor": {
      +                      "description": "Surface fill paint.",
      +                      "type": "string",
      +                      "x-agentic-mermaid-runtime-validator": "safeStylePaint"
      +                    },
      +                    "lineWidth": {
      +                      "description": "Border or connector width.",
      +                      "exclusiveMinimum": 0,
      +                      "maximum": 20,
      +                      "type": "number"
      +                    },
      +                    "strokeColor": {
      +                      "description": "Connector stroke paint.",
      +                      "type": "string",
      +                      "x-agentic-mermaid-runtime-validator": "safeStylePaint"
      +                    }
      +                  },
      +                  "type": "object"
      +                },
      +                "point": {
      +                  "additionalProperties": false,
      +                  "maxProperties": 4,
      +                  "properties": {
      +                    "borderColor": {
      +                      "description": "Border paint.",
      +                      "type": "string",
      +                      "x-agentic-mermaid-runtime-validator": "safeStylePaint"
      +                    },
      +                    "fillColor": {
      +                      "description": "Surface fill paint.",
      +                      "type": "string",
      +                      "x-agentic-mermaid-runtime-validator": "safeStylePaint"
      +                    },
      +                    "lineWidth": {
      +                      "description": "Border or connector width.",
      +                      "exclusiveMinimum": 0,
      +                      "maximum": 20,
      +                      "type": "number"
      +                    },
      +                    "strokeColor": {
      +                      "description": "Connector stroke paint.",
      +                      "type": "string",
      +                      "x-agentic-mermaid-runtime-validator": "safeStylePaint"
      +                    }
      +                  },
      +                  "type": "object"
      +                },
      +                "relationship": {
      +                  "additionalProperties": false,
      +                  "maxProperties": 8,
      +                  "properties": {
      +                    "bendRadius": {
      +                      "description": "Applicable connector bend radius.",
      +                      "maximum": 256,
      +                      "minimum": 0,
      +                      "type": "number"
      +                    },
      +                    "fontSize": {
      +                      "description": "Font size in SVG user units.",
      +                      "maximum": 256,
      +                      "minimum": 1,
      +                      "type": "number"
      +                    },
      +                    "fontWeight": {
      +                      "description": "CSS numeric font weight.",
      +                      "maximum": 1000,
      +                      "minimum": 1,
      +                      "type": "number"
      +                    },
      +                    "letterSpacing": {
      +                      "description": "Letter spacing in SVG user units.",
      +                      "maximum": 4,
      +                      "minimum": -2,
      +                      "type": "number"
      +                    },
      +                    "lineWidth": {
      +                      "description": "Border or connector width.",
      +                      "exclusiveMinimum": 0,
      +                      "maximum": 20,
      +                      "type": "number"
      +                    },
      +                    "strokeColor": {
      +                      "description": "Connector stroke paint.",
      +                      "type": "string",
      +                      "x-agentic-mermaid-runtime-validator": "safeStylePaint"
      +                    },
      +                    "textColor": {
      +                      "description": "Text paint.",
      +                      "type": "string",
      +                      "x-agentic-mermaid-runtime-validator": "safeStylePaint"
      +                    },
      +                    "textTransform": {
      +                      "description": "Text transformation.",
      +                      "enum": [
      +                        "uppercase",
      +                        "lowercase",
      +                        "capitalize"
      +                      ],
      +                      "type": "string"
      +                    }
      +                  },
      +                  "type": "object"
      +                },
      +                "series": {
      +                  "additionalProperties": false,
      +                  "maxProperties": 3,
      +                  "properties": {
      +                    "borderColor": {
      +                      "description": "Border paint.",
      +                      "type": "string",
      +                      "x-agentic-mermaid-runtime-validator": "safeStylePaint"
      +                    },
      +                    "lineWidth": {
      +                      "description": "Border or connector width.",
      +                      "exclusiveMinimum": 0,
      +                      "maximum": 20,
      +                      "type": "number"
      +                    },
      +                    "strokeColor": {
      +                      "description": "Connector stroke paint.",
      +                      "type": "string",
      +                      "x-agentic-mermaid-runtime-validator": "safeStylePaint"
      +                    }
      +                  },
      +                  "type": "object"
      +                },
      +                "task": {
      +                  "additionalProperties": false,
      +                  "maxProperties": 5,
      +                  "properties": {
      +                    "borderColor": {
      +                      "description": "Border paint.",
      +                      "type": "string",
      +                      "x-agentic-mermaid-runtime-validator": "safeStylePaint"
      +                    },
      +                    "cue": {
      +                      "description": "Non-color semantic cue on roles whose family renderer exposes a cue projection.",
      +                      "enum": [
      +                        "none",
      +                        "outline",
      +                        "double-line",
      +                        "pattern"
      +                      ],
      +                      "type": "string"
      +                    },
      +                    "fillColor": {
      +                      "description": "Surface fill paint.",
      +                      "type": "string",
      +                      "x-agentic-mermaid-runtime-validator": "safeStylePaint"
      +                    },
      +                    "lineWidth": {
      +                      "description": "Border or connector width.",
      +                      "exclusiveMinimum": 0,
      +                      "maximum": 20,
      +                      "type": "number"
      +                    },
      +                    "strokeColor": {
      +                      "description": "Connector stroke paint.",
      +                      "type": "string",
      +                      "x-agentic-mermaid-runtime-validator": "safeStylePaint"
      +                    }
      +                  },
      +                  "type": "object"
      +                }
      +              },
      +              "type": "object"
      +            },
      +            "roughness": {
      +              "description": "Rough.js stroke irregularity.",
      +              "maximum": 10,
      +              "minimum": 0,
      +              "type": "number"
      +            },
      +            "semanticSlots": {
      +              "additionalProperties": {
      +                "additionalProperties": false,
      +                "maxProperties": 16,
      +                "properties": {
      +                  "bendRadius": {
      +                    "description": "Applicable connector bend radius.",
      +                    "maximum": 256,
      +                    "minimum": 0,
      +                    "type": "number"
      +                  },
      +                  "borderColor": {
      +                    "description": "Border paint.",
      +                    "type": "string",
      +                    "x-agentic-mermaid-runtime-validator": "safeStylePaint"
      +                  },
      +                  "cornerRadius": {
      +                    "description": "Applicable corner radius.",
      +                    "maximum": 256,
      +                    "minimum": 0,
      +                    "type": "number"
      +                  },
      +                  "cue": {
      +                    "description": "Non-color semantic cue on roles whose family renderer exposes a cue projection.",
      +                    "enum": [
      +                      "none",
      +                      "outline",
      +                      "double-line",
      +                      "pattern"
      +                    ],
      +                    "type": "string"
      +                  },
      +                  "fillColor": {
      +                    "description": "Surface fill paint.",
      +                    "type": "string",
      +                    "x-agentic-mermaid-runtime-validator": "safeStylePaint"
      +                  },
      +                  "fontFamily": {
      +                    "description": "Safe font family/stack for roles whose descriptor exposes family-specific typography.",
      +                    "type": "string",
      +                    "x-agentic-mermaid-runtime-validator": "safeCssFontFamily"
      +                  },
      +                  "fontSize": {
      +                    "description": "Font size in SVG user units.",
      +                    "maximum": 256,
      +                    "minimum": 1,
      +                    "type": "number"
      +                  },
      +                  "fontWeight": {
      +                    "description": "CSS numeric font weight.",
      +                    "maximum": 1000,
      +                    "minimum": 1,
      +                    "type": "number"
      +                  },
      +                  "headerFillColor": {
      +                    "description": "Group header surface paint.",
      +                    "type": "string",
      +                    "x-agentic-mermaid-runtime-validator": "safeStylePaint"
      +                  },
      +                  "letterSpacing": {
      +                    "description": "Letter spacing in SVG user units.",
      +                    "maximum": 4,
      +                    "minimum": -2,
      +                    "type": "number"
      +                  },
      +                  "lineWidth": {
      +                    "description": "Border or connector width.",
      +                    "exclusiveMinimum": 0,
      +                    "maximum": 20,
      +                    "type": "number"
      +                  },
      +                  "paddingX": {
      +                    "description": "Horizontal role padding.",
      +                    "maximum": 256,
      +                    "minimum": 0,
      +                    "type": "number"
      +                  },
      +                  "paddingY": {
      +                    "description": "Vertical role padding.",
      +                    "maximum": 256,
      +                    "minimum": 0,
      +                    "type": "number"
      +                  },
      +                  "strokeColor": {
      +                    "description": "Connector stroke paint.",
      +                    "type": "string",
      +                    "x-agentic-mermaid-runtime-validator": "safeStylePaint"
      +                  },
      +                  "textColor": {
      +                    "description": "Text paint.",
      +                    "type": "string",
      +                    "x-agentic-mermaid-runtime-validator": "safeStylePaint"
      +                  },
      +                  "textTransform": {
      +                    "description": "Text transformation.",
      +                    "enum": [
      +                      "uppercase",
      +                      "lowercase",
      +                      "capitalize"
      +                    ],
      +                    "type": "string"
      +                  }
      +                },
      +                "type": "object"
      +              },
      +              "description": "Named brand-neutral role-style slots selected by semantic bindings.",
      +              "maxProperties": 4096,
      +              "propertyNames": {
      +                "not": {
      +                  "enum": [
      +                    "__proto__",
      +                    "constructor",
      +                    "prototype"
      +                  ]
      +                },
      +                "pattern": "^[A-Za-z][A-Za-z0-9._-]{0,63}$"
      +              },
      +              "type": "object"
      +            },
      +            "stroke": {
      +              "description": "Stroke treatment; crisp is the default renderer.",
      +              "enum": [
      +                "crisp",
      +                "jittered",
      +                "freehand"
      +              ],
      +              "type": "string"
      +            },
      +            "strokeWidth": {
      +              "description": "Base stroke width in SVG user units.",
      +              "exclusiveMinimum": 0,
      +              "maximum": 20,
      +              "type": "number"
      +            },
      +            "washEdge": {
      +              "description": "Watercolor edge-darkening opacity; requires fill wash in the final stack.",
      +              "maximum": 1,
      +              "minimum": 0,
      +              "type": "number"
      +            },
      +            "washOpacity": {
      +              "description": "Watercolor glaze opacity; requires fill wash in the final stack.",
      +              "maximum": 1,
      +              "minimum": 0,
      +              "type": "number"
      +            }
      +          },
      +          "type": "object"
      +        }
      +      ],
      +      "x-agentic-mermaid-validation-expectation": "a registered Style name or StyleSpec"
      +    },
      +    "type": "array"
      +  }
      +]
  3. Changed2 schema fields changed
    • addedInput schema / additionalProperties
      Added value: +false
    • addedInput schema / properties / options
      Added value: +{
      +  "$defs": {
      +    "jsonValue": {
      +      "anyOf": [
      +        {
      +          "type": "null"
      +        },
      +        {
      +          "type": "string"
      +        },
      +        {
      +          "type": "number"
      +        },
      +        {
      +          "type": "boolean"
      +        },
      +        {
      +          "items": {
      +            "$ref": "#/$defs/jsonValue"
      +          },
      +          "type": "array"
      +        },
      +        {
      +          "additionalProperties": {
      +            "$ref": "#/$defs/jsonValue"
      +          },
      +          "type": "object"
      +        }
      +      ],
      +      "description": "A finite, acyclic JSON value without prototype keys.",
      +      "x-agentic-mermaid-validation-expectation": "a finite, acyclic JSON value without prototype keys"
      +    }
      +  },
      +  "$id": "https://agentic-mermaid.dev/schemas/render-options.schema.json",
      +  "$schema": "https://json-schema.org/draft/2020-12/schema",
      +  "additionalProperties": false,
      +  "description": "Shared advanced RenderOptions object, including style/palette/config/security.",
      +  "properties": {
      +    "accent": {
      +      "description": "Arrowhead, highlight, and data accent color.",
      +      "type": "string",
      +      "x-agentic-mermaid-runtime-validator": "safeCssPaint",
      +      "x-agentic-mermaid-terminal": "consumed"
      +    },
      +    "architecture": {
      +      "additionalProperties": false,
      +      "description": "Architecture renderer visual metric and paint overrides.",
      +      "properties": {
      +        "visual": {
      +          "additionalProperties": false,
      +          "description": "Sparse architecture visual overrides merged over resolved defaults.",
      +          "properties": {
      +            "edgeBendRadius": {
      +              "description": "Architecture connector bend radius.",
      +              "minimum": 0,
      +              "type": "number"
      +            },
      +            "edgeFontSize": {
      +              "description": "Architecture connector-label font size.",
      +              "exclusiveMinimum": 0,
      +              "type": "number"
      +            },
      +            "edgeFontWeight": {
      +              "description": "Architecture connector-label font weight.",
      +              "maximum": 1000,
      +              "minimum": 1,
      +              "type": "number"
      +            },
      +            "edgeLetterSpacing": {
      +              "description": "Architecture connector-label letter spacing.",
      +              "type": "number"
      +            },
      +            "edgeLineWidth": {
      +              "description": "Architecture connector width.",
      +              "minimum": 0,
      +              "type": "number"
      +            },
      +            "edgeStroke": {
      +              "description": "Architecture connector color.",
      +              "type": "string",
      +              "x-agentic-mermaid-runtime-validator": "safeCssPaint"
      +            },
      +            "edgeText": {
      +              "description": "Architecture connector-label color.",
      +              "type": "string",
      +              "x-agentic-mermaid-runtime-validator": "safeCssPaint"
      +            },
      +            "edgeTextTransform": {
      +              "description": "Architecture connector-label text transform.",
      +              "enum": [
      +                "uppercase",
      +                "lowercase",
      +                "capitalize"
      +              ],
      +              "type": "string"
      +            },
      +            "groupBorder": {
      +              "description": "Architecture group border color.",
      +              "type": "string",
      +              "x-agentic-mermaid-runtime-validator": "safeCssPaint"
      +            },
      +            "groupCornerRadius": {
      +              "description": "Architecture group corner radius.",
      +              "minimum": 0,
      +              "type": "number"
      +            },
      +            "groupFont": {
      +              "description": "Architecture group-label font family.",
      +              "type": "string",
      +              "x-agentic-mermaid-runtime-validator": "safeCssFontFamily"
      +            },
      +            "groupFontSize": {
      +              "description": "Architecture group-label font size.",
      +              "exclusiveMinimum": 0,
      +              "type": "number"
      +            },
      +            "groupFontWeight": {
      +              "description": "Architecture group-label font weight.",
      +              "maximum": 1000,
      +              "minimum": 1,
      +              "type": "number"
      +            },
      +            "groupHeaderHeight": {
      +              "description": "Architecture group-header height.",
      +              "exclusiveMinimum": 0,
      +              "type": "number"
      +            },
      +            "groupHeaderSurface": {
      +              "description": "Architecture group-header surface color.",
      +              "type": "string",
      +              "x-agentic-mermaid-runtime-validator": "safeCssPaint"
      +            },
      +            "groupLabelPaddingX": {
      +              "description": "Horizontal padding around architecture group labels.",
      +              "minimum": 0,
      +              "type": "number"
      +            },
      +            "groupLetterSpacing": {
      +              "description": "Architecture group-label letter spacing.",
      +              "type": "number"
      +            },
      +            "groupLineWidth": {
      +              "description": "Architecture group border width.",
      +              "minimum": 0,
      +              "type": "number"
      +            },
      +            "groupPaddingX": {
      +              "description": "Horizontal padding inside architecture groups.",
      +              "minimum": 0,
      +              "type": "number"
      +            },
      +            "groupPaddingY": {
      +              "description": "Vertical padding inside architecture groups.",
      +              "minimum": 0,
      +              "type": "number"
      +            },
      +            "groupSurface": {
      +              "description": "Architecture group surface color.",
      +              "type": "string",
      +              "x-agentic-mermaid-runtime-validator": "safeCssPaint"
      +            },
      +            "groupText": {
      +              "description": "Architecture group-label color.",
      +              "type": "string",
      +              "x-agentic-mermaid-runtime-validator": "safeCssPaint"
      +            },
      +            "groupTextTransform": {
      +              "description": "Architecture group-label text transform.",
      +              "enum": [
      +                "uppercase",
      +                "lowercase",
      +                "capitalize"
      +              ],
      +              "type": "string"
      +            },
      +            "iconSize": {
      +              "description": "Architecture group icon size.",
      +              "exclusiveMinimum": 0,
      +              "type": "number"
      +            },
      +            "junctionInnerRadius": {
      +              "description": "Architecture junction inner radius.",
      +              "minimum": 0,
      +              "type": "number"
      +            },
      +            "junctionOuterRadius": {
      +              "description": "Architecture junction outer radius.",
      +              "exclusiveMinimum": 0,
      +              "type": "number"
      +            },
      +            "serviceBorder": {
      +              "description": "Architecture service border color.",
      +              "type": "string",
      +              "x-agentic-mermaid-runtime-validator": "safeCssPaint"
      +            },
      +            "serviceCornerRadius": {
      +              "description": "Architecture service corner radius.",
      +              "minimum": 0,
      +              "type": "number"
      +            },
      +            "serviceFontSize": {
      +              "description": "Architecture service-label font size.",
      +              "exclusiveMinimum": 0,
      +              "type": "number"
      +            },
      +            "serviceFontWeight": {
      +              "description": "Architecture service-label font weight.",
      +              "maximum": 1000,
      +              "minimum": 1,
      +              "type": "number"
      +            },
      +            "serviceIconSize": {
      +              "description": "Architecture service icon size.",
      +              "exclusiveMinimum": 0,
      +              "type": "number"
      +            },
      +            "serviceLetterSpacing": {
      +              "description": "Architecture service-label letter spacing.",
      +              "type": "number"
      +            },
      +            "serviceLineWidth": {
      +              "description": "Architecture service border width.",
      +              "minimum": 0,
      +              "type": "number"
      +            },
      +            "servicePaddingX": {
      +              "description": "Horizontal padding inside architecture services.",
      +              "minimum": 0,
      +              "type": "number"
      +            },
      +            "servicePaddingY": {
      +              "description": "Vertical padding inside architecture services.",
      +              "minimum": 0,
      +              "type": "number"
      +            },
      +            "serviceSurface": {
      +              "description": "Architecture service surface color.",
      +              "type": "string",
      +              "x-agentic-mermaid-runtime-validator": "safeCssPaint"
      +            },
      +            "serviceText": {
      +              "description": "Architecture service-label color.",
      +              "type": "string",
      +              "x-agentic-mermaid-runtime-validator": "safeCssPaint"
      +            },
      +            "serviceTextTransform": {
      +              "description": "Architecture service-label text transform.",
      +              "enum": [
      +                "uppercase",
      +                "lowercase",
      +                "capitalize"
      +              ],
      +              "type": "string"
      +            }
      +          },
      +          "type": "object",
      +          "x-agentic-mermaid-runtime-validator": "architectureVisual"
      +        }
      +      },
      +      "type": "object",
      +      "x-agentic-mermaid-applicable-builtin-families": [
      +        "architecture"
      +      ],
      +      "x-agentic-mermaid-terminal": "not-applicable",
      +      "x-agentic-mermaid-terminal-note": "this option configures graphical architecture rendering"
      +    },
      +    "bg": {
      +      "default": "#FFFFFF",
      +      "description": "Background color or CSS variable.",
      +      "type": "string",
      +      "x-agentic-mermaid-runtime-validator": "safeCssPaint",
      +      "x-agentic-mermaid-terminal": "consumed"
      +    },
      +    "border": {
      +      "description": "Node and group border color.",
      +      "type": "string",
      +      "x-agentic-mermaid-runtime-validator": "safeCssPaint",
      +      "x-agentic-mermaid-terminal": "consumed"
      +    },
      +    "class": {
      +      "additionalProperties": false,
      +      "description": "Class-diagram rendering controls.",
      +      "properties": {
      +        "hierarchicalNamespaces": {
      +          "default": true,
      +          "description": "Nest namespace compounds.",
      +          "type": "boolean"
      +        }
      +      },
      +      "type": "object",
      +      "x-agentic-mermaid-applicable-builtin-families": [
      +        "class"
      +      ],
      +      "x-agentic-mermaid-terminal": "not-applicable",
      +      "x-agentic-mermaid-terminal-note": "this option configures graphical class layout"
      +    },
      +    "compact": {
      +      "default": false,
      +      "description": "Compact SVG serialization while preserving agent hooks.",
      +      "type": "boolean",
      +      "x-agentic-mermaid-terminal": "not-applicable",
      +      "x-agentic-mermaid-terminal-note": "compact controls SVG serialization"
      +    },
      +    "componentSpacing": {
      +      "description": "Spacing between disconnected graph components for compatible extension families; no built-in family currently consumes it.",
      +      "minimum": 0,
      +      "type": "number",
      +      "x-agentic-mermaid-applicable-builtin-families": [],
      +      "x-agentic-mermaid-terminal": "not-applicable",
      +      "x-agentic-mermaid-terminal-note": "terminal layout has a cell-grid spacing contract"
      +    },
      +    "embedFontImport": {
      +      "default": true,
      +      "description": "Embed the Google Fonts import in SVG styles; PNG forces this off for offline rasterization.",
      +      "type": "boolean",
      +      "x-agentic-mermaid-terminal": "not-applicable",
      +      "x-agentic-mermaid-terminal-note": "terminal output embeds no web-font import"
      +    },
      +    "fg": {
      +      "default": "#27272A",
      +      "description": "Primary foreground and text color.",
      +      "type": "string",
      +      "x-agentic-mermaid-runtime-validator": "safeCssPaint",
      +      "x-agentic-mermaid-terminal": "consumed"
      +    },
      +    "font": {
      +      "default": "Inter",
      +      "description": "CSS font family or stack.",
      +      "type": "string",
      +      "x-agentic-mermaid-runtime-validator": "safeCssFontFamily",
      +      "x-agentic-mermaid-terminal": "projected",
      +      "x-agentic-mermaid-terminal-note": "the host terminal owns the font face"
      +    },
      +    "gantt": {
      +      "additionalProperties": false,
      +      "description": "Gantt dependency and critical-path overlays.",
      +      "properties": {
      +        "criticalPath": {
      +          "default": false,
      +          "description": "Emphasize critical-path tasks and connectors.",
      +          "type": "boolean"
      +        },
      +        "dependencyArrows": {
      +          "default": false,
      +          "description": "Draw scheduled dependency connectors.",
      +          "type": "boolean"
      +        }
      +      },
      +      "type": "object",
      +      "x-agentic-mermaid-applicable-builtin-families": [
      +        "gantt"
      +      ],
      +      "x-agentic-mermaid-terminal": "not-applicable",
      +      "x-agentic-mermaid-terminal-note": "graphical Gantt connector emphasis is not represented in cells"
      +    },
      +    "ganttToday": {
      +      "description": "Explicit deterministic date for the Gantt today marker.",
      +      "type": "string",
      +      "x-agentic-mermaid-applicable-builtin-families": [
      +        "gantt"
      +      ],
      +      "x-agentic-mermaid-terminal": "consumed"
      +    },
      +    "idPrefix": {
      +      "default": "",
      +      "description": "Namespace generated SVG definition IDs and local references.",
      +      "pattern": "^[A-Za-z0-9_.:-]*$",
      +      "type": "string",
      +      "x-agentic-mermaid-terminal": "not-applicable",
      +      "x-agentic-mermaid-terminal-note": "terminal output has no SVG definition ids"
      +    },
      +    "interactive": {
      +      "default": false,
      +      "description": "Enable hover tooltips for supported chart data points.",
      +      "type": "boolean",
      +      "x-agentic-mermaid-applicable-builtin-families": [
      +        "xychart",
      +        "pie",
      +        "quadrant"
      +      ],
      +      "x-agentic-mermaid-terminal": "projected",
      +      "x-agentic-mermaid-terminal-note": "terminal output is a static semantic projection"
      +    },
      +    "journey": {
      +      "additionalProperties": false,
      +      "description": "User-journey graphical controls.",
      +      "properties": {
      +        "experienceCurve": {
      +          "default": true,
      +          "description": "Connect journey score markers with an experience curve.",
      +          "type": "boolean"
      +        }
      +      },
      +      "type": "object",
      +      "x-agentic-mermaid-applicable-builtin-families": [
      +        "journey"
      +      ],
      +      "x-agentic-mermaid-terminal": "not-applicable",
      +      "x-agentic-mermaid-terminal-note": "experience curves are graphical-only"
      +    },
      +    "layerSpacing": {
      +      "default": 40,
      +      "description": "Vertical spacing between graph layers.",
      +      "minimum": 0,
      +      "type": "number",
      +      "x-agentic-mermaid-applicable-builtin-families": [
      +        "flowchart",
      +        "state",
      +        "class",
      +        "er",
      +        "architecture"
      +      ],
      +      "x-agentic-mermaid-terminal": "not-applicable",
      +      "x-agentic-mermaid-terminal-note": "terminal layout has a cell-grid spacing contract"
      +    },
      +    "line": {
      +      "description": "Connector and secondary-line color.",
      +      "type": "string",
      +      "x-agentic-mermaid-runtime-validator": "safeCssPaint",
      +      "x-agentic-mermaid-terminal": "consumed"
      +    },
      +    "mermaidConfig": {
      +      "additionalProperties": {
      +        "$ref": "#/$defs/jsonValue"
      +      },
      +      "description": "Mermaid-style recursive runtime configuration.",
      +      "type": "object",
      +      "x-agentic-mermaid-terminal": "consumed"
      +    },
      +    "muted": {
      +      "description": "Secondary text and label color.",
      +      "type": "string",
      +      "x-agentic-mermaid-runtime-validator": "safeCssPaint",
      +      "x-agentic-mermaid-terminal": "projected",
      +      "x-agentic-mermaid-terminal-note": "terminal themes have no dedicated muted-text role"
      +    },
      +    "nodeSpacing": {
      +      "default": 24,
      +      "description": "Horizontal spacing between sibling nodes.",
      +      "minimum": 0,
      +      "type": "number",
      +      "x-agentic-mermaid-applicable-builtin-families": [
      +        "flowchart",
      +        "state",
      +        "class",
      +        "er",
      +        "architecture"
      +      ],
      +      "x-agentic-mermaid-terminal": "not-applicable",
      +      "x-agentic-mermaid-terminal-note": "terminal layout has a cell-grid spacing contract"
      +    },
      +    "padding": {
      +      "default": 40,
      +      "description": "Canvas padding in SVG user units.",
      +      "minimum": 0,
      +      "type": "number",
      +      "x-agentic-mermaid-applicable-builtin-families": [
      +        "flowchart",
      +        "state",
      +        "architecture"
      +      ],
      +      "x-agentic-mermaid-terminal": "not-applicable",
      +      "x-agentic-mermaid-terminal-note": "terminal output uses paddingX, paddingY, and boxBorderPadding"
      +    },
      +    "security": {
      +      "default": "default",
      +      "description": "Active SVG content is rejected in every mode; strict additionally rejects every external reference. Raw Mermaid themeCSS is rejected in both modes.",
      +      "enum": [
      +        "default",
      +        "strict"
      +      ],
      +      "type": "string",
      +      "x-agentic-mermaid-terminal": "not-applicable",
      +      "x-agentic-mermaid-terminal-note": "terminal text has its own control-character and HTML-color safety projection"
      +    },
      +    "seed": {
      +      "default": 0,
      +      "description": "Deterministic re-roll seed for stochastic Styles.",
      +      "type": "number",
      +      "x-agentic-mermaid-terminal": "not-applicable",
      +      "x-agentic-mermaid-terminal-note": "terminal glyph geometry is deterministic and has no stochastic ink"
      +    },
      +    "shadow": {
      +      "default": false,
      +      "description": "Paint explicit drop shadows on node shapes.",
      +      "type": "boolean",
      +      "x-agentic-mermaid-applicable-builtin-families": [
      +        "flowchart",
      +        "state",
      +        "sequence",
      +        "timeline",
      +        "class",
      +        "er",
      +        "journey",
      +        "xychart",
      +        "pie",
      +        "quadrant",
      +        "gantt",
      +        "mindmap",
      +        "gitgraph"
      +      ],
      +      "x-agentic-mermaid-terminal": "projected",
      +      "x-agentic-mermaid-terminal-note": "elevation projects to borders and labels"
      +    },
      +    "style": {
      +      "anyOf": [
      +        {
      +          "anyOf": [
      +            {
      +              "description": "Registered Style or Palette name.",
      +              "type": "string"
      +            },
      +            {
      +              "additionalProperties": false,
      +              "description": "A partial declarative style record for Agentic Mermaid rendering. All fields, including formatVersion, are optional on input; resolved and registered specs normalize formatVersion to 1.",
      +              "properties": {
      +                "$schema": {
      +                  "description": "Optional JSON Schema pointer for file-backed styles; ignored while rendering.",
      +                  "type": "string"
      +                },
      +                "backdrop": {
      +                  "description": "Flat page furniture drawn behind the diagram.",
      +                  "enum": [
      +                    "plain",
      +                    "paper-ruled",
      +                    "grid"
      +                  ],
      +                  "type": "string"
      +                },
      +                "blurb": {
      +                  "description": "Short human-readable description used by discovery surfaces.",
      +                  "type": "string"
      +                },
      +                "bowing": {
      +                  "description": "Rough.js line bowing.",
      +                  "maximum": 10,
      +                  "minimum": 0,
      +                  "type": "number"
      +                },
      +                "colors": {
      +                  "additionalProperties": false,
      +                  "description": "Partial palette of safe, non-fetching CSS color tokens. Runtime validation applies the stricter safe-color policy.",
      +                  "properties": {
      +                    "accent": {
      +                      "description": "Accent paint for emphasis and data series. Must be a safe, non-fetching CSS color.",
      +                      "type": "string",
      +                      "x-agentic-mermaid-runtime-validator": "safeCssColor"
      +                    },
      +                    "bg": {
      +                      "description": "Diagram page background. Must be a safe, non-fetching CSS color.",
      +                      "type": "string",
      +                      "x-agentic-mermaid-runtime-validator": "safeCssColor"
      +                    },
      +                    "border": {
      +                      "description": "Node and group border paint. Must be a safe, non-fetching CSS color.",
      +                      "type": "string",
      +                      "x-agentic-mermaid-runtime-validator": "safeCssColor"
      +                    },
      +                    "fg": {
      +                      "description": "Primary text and foreground paint. Must be a safe, non-fetching CSS color.",
      +                      "type": "string",
      +                      "x-agentic-mermaid-runtime-validator": "safeCssColor"
      +                    },
      +                    "line": {
      +                      "description": "Connector and secondary line paint. Must be a safe, non-fetching CSS color.",
      +                      "type": "string",
      +                      "x-agentic-mermaid-runtime-validator": "safeCssColor"
      +                    },
      +                    "muted": {
      +                      "description": "Muted text and secondary data paint. Must be a safe, non-fetching CSS color.",
      +                      "type": "string",
      +                      "x-agentic-mermaid-runtime-validator": "safeCssColor"
      +                    },
      +                    "surface": {
      +                      "description": "Node and group surface fill. Must be a safe, non-fetching CSS color.",
      +                      "type": "string",
      +                      "x-agentic-mermaid-runtime-validator": "safeCssColor"
      +                    }
      +                  },
      +                  "type": "object"
      +                },
      +                "fill": {
      +                  "description": "Fill policy for rough/hybrid rendering; none and solid require a final stack that activates one of those backends.",
      +                  "enum": [
      +                    "none",
      +                    "hachure",
      +                    "solid",
      +                    "wash"
      +                  ],
      +                  "type": "string"
      +                },
      +                "fillWeight": {
      +                  "description": "Hachure line weight; requires fill hachure in the final stack.",
      +                  "exclusiveMinimum": 0,
      +                  "maximum": 20,
      +                  "type": "number"
      +                },
      +                "font": {
      +                  "description": "Safe, non-fetching CSS font family or stack; the rendering environment supplies the font face.",
      +                  "type": "string",
      +                  "x-agentic-mermaid-runtime-validator": "safeCssFontFamily"
      +                },
      +                "formatVersion": {
      +                  "const": 1,
      +                  "description": "Persisted wire-format version. Optional on input and normalized to 1 on output."
      +                },
      +                "hachureAngle": {
      +                  "description": "Hachure line angle in degrees; requires fill hachure in the final stack.",
      +                  "maximum": 360,
      +                  "minimum": -360,
      +                  "type": "number"
      +                },
      +                "hachureGap": {
      +                  "description": "Gap between hachure lines; requires fill hachure in the final stack.",
      +                  "exclusiveMinimum": 0,
      +                  "maximum": 100,
      +                  "type": "number"
      +                },
      +                "intent": {
      +                  "description": "Advisory intent metadata for pickers and quality tooling.",
      +                  "enum": [
      +                    "premium",
      +                    "draft",
      +                    "lofi"
      +                  ],
      +                  "type": "string"
      +                },
      +                "mono": {
      +                  "description": "Advisory monochrome contract: express tone through shading and weight.",
      +                  "type": "boolean"
      +                },
      +                "name": {
      +                  "description": "Canonical look:name or palette:name identity; required only when registering a style.",
      +                  "type": "string"
      +                },
      +                "passes": {
      +                  "description": "Number of sketch strokes; 1 is single-pass and 2 is the usual double stroke.",
      +                  "maximum": 8,
      +                  "minimum": 1,
      +                  "type": "integer"
      +                },
      +                "roughness": {
      +                  "description": "Rough.js stroke irregularity.",
      +                  "maximum": 10,
      +                  "minimum": 0,
      +                  "type": "number"
      +                },
      +                "stroke": {
      +                  "description": "Stroke treatment; crisp is the default renderer.",
      +                  "enum": [
      +                    "crisp",
      +                    "jittered",
      +                    "freehand"
      +                  ],
      +                  "type": "string"
      +                },
      +                "strokeWidth": {
      +                  "description": "Base stroke width in SVG user units.",
      +                  "exclusiveMinimum": 0,
      +                  "maximum": 20,
      +                  "type": "number"
      +                },
      +                "washEdge": {
      +                  "description": "Watercolor edge-darkening opacity; requires fill wash in the final stack.",
      +                  "maximum": 1,
      +                  "minimum": 0,
      +                  "type": "number"
      +                },
      +                "washOpacity": {
      +                  "description": "Watercolor glaze opacity; requires fill wash in the final stack.",
      +                  "maximum": 1,
      +                  "minimum": 0,
      +                  "type": "number"
      +                }
      +              },
      +              "type": "object"
      +            }
      +          ],
      +          "x-agentic-mermaid-validation-expectation": "a registered Style name or StyleSpec"
      +        },
      +        {
      +          "description": "Style stack merged from left to right.",
      +          "items": {
      +            "anyOf": [
      +              {
      +                "description": "Registered Style or Palette name.",
      +                "type": "string"
      +              },
      +              {
      +                "additionalProperties": false,
      +                "description": "A partial declarative style record for Agentic Mermaid rendering. All fields, including formatVersion, are optional on input; resolved and registered specs normalize formatVersion to 1.",
      +                "properties": {
      +                  "$schema": {
      +                    "description": "Optional JSON Schema pointer for file-backed styles; ignored while rendering.",
      +                    "type": "string"
      +                  },
      +                  "backdrop": {
      +                    "description": "Flat page furniture drawn behind the diagram.",
      +                    "enum": [
      +                      "plain",
      +                      "paper-ruled",
      +                      "grid"
      +                    ],
      +                    "type": "string"
      +                  },
      +                  "blurb": {
      +                    "description": "Short human-readable description used by discovery surfaces.",
      +                    "type": "string"
      +                  },
      +                  "bowing": {
      +                    "description": "Rough.js line bowing.",
      +                    "maximum": 10,
      +                    "minimum": 0,
      +                    "type": "number"
      +                  },
      +                  "colors": {
      +                    "additionalProperties": false,
      +                    "description": "Partial palette of safe, non-fetching CSS color tokens. Runtime validation applies the stricter safe-color policy.",
      +                    "properties": {
      +                      "accent": {
      +                        "description": "Accent paint for emphasis and data series. Must be a safe, non-fetching CSS color.",
      +                        "type": "string",
      +                        "x-agentic-mermaid-runtime-validator": "safeCssColor"
      +                      },
      +                      "bg": {
      +                        "description": "Diagram page background. Must be a safe, non-fetching CSS color.",
      +                        "type": "string",
      +                        "x-agentic-mermaid-runtime-validator": "safeCssColor"
      +                      },
      +                      "border": {
      +                        "description": "Node and group border paint. Must be a safe, non-fetching CSS color.",
      +                        "type": "string",
      +                        "x-agentic-mermaid-runtime-validator": "safeCssColor"
      +                      },
      +                      "fg": {
      +                        "description": "Primary text and foreground paint. Must be a safe, non-fetching CSS color.",
      +                        "type": "string",
      +                        "x-agentic-mermaid-runtime-validator": "safeCssColor"
      +                      },
      +                      "line": {
      +                        "description": "Connector and secondary line paint. Must be a safe, non-fetching CSS color.",
      +                        "type": "string",
      +                        "x-agentic-mermaid-runtime-validator": "safeCssColor"
      +                      },
      +                      "muted": {
      +                        "description": "Muted text and secondary data paint. Must be a safe, non-fetching CSS color.",
      +                        "type": "string",
      +                        "x-agentic-mermaid-runtime-validator": "safeCssColor"
      +                      },
      +                      "surface": {
      +                        "description": "Node and group surface fill. Must be a safe, non-fetching CSS color.",
      +                        "type": "string",
      +                        "x-agentic-mermaid-runtime-validator": "safeCssColor"
      +                      }
      +                    },
      +                    "type": "object"
      +                  },
      +                  "fill": {
      +                    "description": "Fill policy for rough/hybrid rendering; none and solid require a final stack that activates one of those backends.",
      +                    "enum": [
      +                      "none",
      +                      "hachure",
      +                      "solid",
      +                      "wash"
      +                    ],
      +                    "type": "string"
      +                  },
      +                  "fillWeight": {
      +                    "description": "Hachure line weight; requires fill hachure in the final stack.",
      +                    "exclusiveMinimum": 0,
      +                    "maximum": 20,
      +                    "type": "number"
      +                  },
      +                  "font": {
      +                    "description": "Safe, non-fetching CSS font family or stack; the rendering environment supplies the font face.",
      +                    "type": "string",
      +                    "x-agentic-mermaid-runtime-validator": "safeCssFontFamily"
      +                  },
      +                  "formatVersion": {
      +                    "const": 1,
      +                    "description": "Persisted wire-format version. Optional on input and normalized to 1 on output."
      +                  },
      +                  "hachureAngle": {
      +                    "description": "Hachure line angle in degrees; requires fill hachure in the final stack.",
      +                    "maximum": 360,
      +                    "minimum": -360,
      +                    "type": "number"
      +                  },
      +                  "hachureGap": {
      +                    "description": "Gap between hachure lines; requires fill hachure in the final stack.",
      +                    "exclusiveMinimum": 0,
      +                    "maximum": 100,
      +                    "type": "number"
      +                  },
      +                  "intent": {
      +                    "description": "Advisory intent metadata for pickers and quality tooling.",
      +                    "enum": [
      +                      "premium",
      +                      "draft",
      +                      "lofi"
      +                    ],
      +                    "type": "string"
      +                  },
      +                  "mono": {
      +                    "description": "Advisory monochrome contract: express tone through shading and weight.",
      +                    "type": "boolean"
      +                  },
      +                  "name": {
      +                    "description": "Canonical look:name or palette:name identity; required only when registering a style.",
      +                    "type": "string"
      +                  },
      +                  "passes": {
      +                    "description": "Number of sketch strokes; 1 is single-pass and 2 is the usual double stroke.",
      +                    "maximum": 8,
      +                    "minimum": 1,
      +                    "type": "integer"
      +                  },
      +                  "roughness": {
      +                    "description": "Rough.js stroke irregularity.",
      +                    "maximum": 10,
      +                    "minimum": 0,
      +                    "type": "number"
      +                  },
      +                  "stroke": {
      +                    "description": "Stroke treatment; crisp is the default renderer.",
      +                    "enum": [
      +                      "crisp",
      +                      "jittered",
      +                      "freehand"
      +                    ],
      +                    "type": "string"
      +                  },
      +                  "strokeWidth": {
      +                    "description": "Base stroke width in SVG user units.",
      +                    "exclusiveMinimum": 0,
      +                    "maximum": 20,
      +                    "type": "number"
      +                  },
      +                  "washEdge": {
      +                    "description": "Watercolor edge-darkening opacity; requires fill wash in the final stack.",
      +                    "maximum": 1,
      +                    "minimum": 0,
      +                    "type": "number"
      +                  },
      +                  "washOpacity": {
      +                    "description": "Watercolor glaze opacity; requires fill wash in the final stack.",
      +                    "maximum": 1,
      +                    "minimum": 0,
      +                    "type": "number"
      +                  }
      +                },
      +                "type": "object"
      +              }
      +            ],
      +            "x-agentic-mermaid-validation-expectation": "a registered Style name or StyleSpec"
      +          },
      +          "type": "array"
      +        }
      +      ],
      +      "description": "A registered name, inline StyleSpec, or left-to-right stack of either.",
      +      "x-agentic-mermaid-runtime-validator": "styleInput",
      +      "x-agentic-mermaid-terminal": "consumed"
      +    },
      +    "surface": {
      +      "description": "Node and group surface color.",
      +      "type": "string",
      +      "x-agentic-mermaid-runtime-validator": "safeCssPaint",
      +      "x-agentic-mermaid-terminal": "projected",
      +      "x-agentic-mermaid-terminal-note": "terminal cells do not paint graphical surfaces"
      +    },
      +    "timeline": {
      +      "additionalProperties": false,
      +      "description": "Timeline layout controls.",
      +      "properties": {
      +        "maxWidth": {
      +          "description": "Best-effort width budget for horizontal timelines.",
      +          "exclusiveMinimum": 0,
      +          "type": "number"
      +        }
      +      },
      +      "type": "object",
      +      "x-agentic-mermaid-applicable-builtin-families": [
      +        "timeline"
      +      ],
      +      "x-agentic-mermaid-terminal": "not-applicable",
      +      "x-agentic-mermaid-terminal-note": "terminal output uses maxWidth or targetWidth"
      +    },
      +    "transparent": {
      +      "default": false,
      +      "description": "Omit the painted SVG canvas background.",
      +      "type": "boolean",
      +      "x-agentic-mermaid-terminal": "projected",
      +      "x-agentic-mermaid-terminal-note": "terminal output has no painted canvas background"
      +    },
      +    "wrappingWidth": {
      +      "description": "Flowchart measured-label wrapping budget in pixels.",
      +      "exclusiveMinimum": 0,
      +      "type": "number",
      +      "x-agentic-mermaid-applicable-builtin-families": [
      +        "flowchart"
      +      ],
      +      "x-agentic-mermaid-terminal": "not-applicable",
      +      "x-agentic-mermaid-terminal-note": "terminal output uses maxWidth or targetWidth"
      +    }
      +  },
      +  "type": "object"
      +}
  4. Changed1 schema field changed
    • addedInput schema / properties / targetWidth
      Added value: +{
      +  "description": "Hard maximum line width in terminal display cells.",
      +  "minimum": 1,
      +  "type": "integer"
      +}
  5. First observed

TDQS

A4.2/5.0
Behavior4/5

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

Annotations already cover the safety profile (readOnly, idempotent, non-destructive), so the bar is lower; the description still adds real behavior: glyph set selection via useAscii, targetWidth as a hard display-cell bound, and that impossible bounds produce a typed error. It does not contradict any annotation.

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?

Three tight sentences: purpose first, return shape second, then the two terminal-relevant knobs. Zero filler, no restatement of the title.

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?

With no output schema, the description usefully declares the { ok, text } return shape and the failure mode for bad widths. It is silent on the options bag (style, security, layoutSafety) even though many sub-options are marked not-applicable to terminal output, which is a modest gap.

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?

Schema coverage is 100%, so 3 is the baseline; the description still adds value by explaining the observable effect of useAscii (+, -, | vs ┌,─,│) and that targetWidth is a hard cell bound whose violation yields a typed error. The large nested options object is not discussed, keeping it short of 5.

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+resource ('Render a Mermaid source string to text') and pins the output medium, which cleanly separates it from render_png and render_svg. An agent can pick it without opening the schema.

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

Usage Guidelines3/5

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

Usage is only implied: 'to text' hints at terminal/plain-text contexts, but the description never states when to prefer this over render_svg, render_png, or build/execute. No explicit exclusions or prerequisites are given.

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

Try in Browser

Glama MCP Gateway

Add one secure layer between your agents and this server.