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.

Input Schema

TableJSON 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. Dates show when Glama detected each change.

  1. 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"
      +  }
      +]
  2. 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"
      +}
  3. Changed1 schema field changed
    • addedInput schema / properties / targetWidth
      Added value: +{
      +  "description": "Hard maximum line width in terminal display cells.",
      +  "minimum": 1,
      +  "type": "integer"
      +}
  4. First observed

TDQS

A4.6/5.0
Behavior5/5

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

Annotations already declare readOnlyHint=true and idempotentHint=true, lowering the burden. The description adds valuable behavioral context: return shape, concrete ASCII vs Unicode glyphs (+,-,| vs ┌,─,│), default behavior when useAscii is absent, and a typed error for impossible targetWidth bounds. There is no contradiction with annotations.

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 sentences, front-loaded with the core purpose, and each subsequent sentence adds essential behavioral detail. No filler or repetition of schema content; it is efficiently structured.

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?

There is no output schema, so the description properly covers return shape and error behavior. It does not explain the extensive options object, but the schema already does, and the most terminal-relevant options (useAscii, targetWidth) are highlighted. This is complete enough for an agent to use the tool correctly.

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 description coverage is 100%, so the baseline is 3. The description adds meaningful details beyond the schema: it shows exact ASCII characters, specifies that absent useAscii defaults to Unicode, and reveals the error condition for targetWidth. These enrich the schema's brief descriptions without redundancy.

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 'Render a Mermaid source string to text,' clearly identifying the verb, resource, and output format. It distinguishes from sibling renderers (render_png/render_svg) by specifically targeting text output and even states the return shape ({ ok, text }).

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

Usage Guidelines4/5

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

The description does not explicitly name alternatives, but phrases like 'to text' and 'terminal display-cell bound' make the intended context (plain text/terminal rendering) very clear. It stops short of explicitly saying 'use this instead of render_png/render_svg,' so it is not a 5.

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.

TDQS

A4.4/5.0
Disambiguation4/5

Most tools have clear, distinct purposes: build and mutate are separated by create-vs-edit, describe and verify are separated by semantic-explain-vs-validate, and render_* variants differ by output format. The only potential ambiguity is between execute and build/mutate, but the descriptions explicitly steer users away from execute for straightforward structured edits.

Naming Consistency3/5

Tool names mix two conventions: bare verbs (build, describe, execute, mutate, verify) and verb_noun with underscore (describe_sdk, render_ascii, render_png, render_svg). While readable and lower-case throughout, the inconsistency prevents a higher score.

Tool Count5/5

9 tools is well within the 3-15 sweet spot and covers the domain of diagram authoring, editing, inspecting, verifying, and rendering without bloat. Each tool earns its place: build/mutate/execute for editing, describe/verify for analysis, render_* for output, and describe_sdk for schema discovery.

Completeness5/5

The tool set forms a complete lifecycle: create (build), edit (mutate, execute), inspect (describe, verify), and output (render_svg/png/ascii). describe_sdk provides schema discovery so agents can author valid operations. There are no obvious dead ends; even unsupported families are handled gracefully in the broader SDK design.