Skip to main content
Glama

Render Mermaid as SVG

render_svg
Read-onlyIdempotent

Render a Mermaid source string to themeable SVG. Returns { ok, svg }. Layout is deterministic: identical input produces identical geometry. The hosted boundary forces security:'strict' and embedFontImport:false.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
sourceYesMermaid source.
optionsNoShared advanced RenderOptions object. Styles accept a registered Look (crisp, hand-drawn, excalidraw, pen-and-ink, freehand, watercolor, blueprint, look:tufte, accessible-high-contrast, patent-drawing, status-dashboard, ops-schematic, chalkboard, risograph, architectural-plan, publication-figure), Palette (paper, dusk, zinc-light, zinc-dark, tokyo-night, tokyo-night-storm, tokyo-night-light, catppuccin-mocha, catppuccin-latte, nord, nord-light, dracula, github-light, github-dark, solarized-light, solarized-dark, one-dark, salmon, salmon-dark, tufte-dark), inline record, or left-to-right stack.

Schema Changelog

Changes observed during successful MCP inspections. Dates show when Glama detected each change.

  1. Changed11 schema fields changed
    • removedInput schema / properties / bg
      Removed value: -{
      -  "default": "#FFFFFF",
      -  "description": "Background color or CSS variable.",
      -  "type": "string",
      -  "x-agentic-mermaid-runtime-validator": "safeCssPaint",
      -  "x-agentic-mermaid-terminal": "consumed"
      -}
    • removedInput schema / properties / fg
      Removed value: -{
      -  "default": "#27272A",
      -  "description": "Primary foreground and text color.",
      -  "type": "string",
      -  "x-agentic-mermaid-runtime-validator": "safeCssPaint",
      -  "x-agentic-mermaid-terminal": "consumed"
      -}
    • changedInput schema / properties / options / description
      Previous value: -"Shared advanced RenderOptions object; compatibility conveniences override matching values. Styles accept a registered Look (crisp, hand-drawn, excalidraw, pen-and-ink, freehand, watercolor, blueprint, look:tufte, accessible-high-contrast, patent-drawing, status-dashboard, ops-schematic, chalkboard, risograph, architectural-plan, publication-figure), Palette (paper, dusk, zinc-light, zinc-dark, tokyo-night, tokyo-night-storm, tokyo-night-light, catppuccin-mocha, catppuccin-latte, nord, nord-light, dracula, github-light, github-dark, solarized-light, solarized-dark, one-dark, salmon, salmon-dark, palette:tufte, tufte-dark), inline record, or left-to-right stack."New value: +"Shared advanced RenderOptions object. Styles accept a registered Look (crisp, hand-drawn, excalidraw, pen-and-ink, freehand, watercolor, blueprint, look:tufte, accessible-high-contrast, patent-drawing, status-dashboard, ops-schematic, chalkboard, risograph, architectural-plan, publication-figure), Palette (paper, dusk, zinc-light, zinc-dark, tokyo-night, tokyo-night-storm, tokyo-night-light, catppuccin-mocha, catppuccin-latte, nord, nord-light, dracula, github-light, github-dark, solarized-light, solarized-dark, one-dark, salmon, salmon-dark, tufte-dark), inline record, or left-to-right stack."
    • 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"
      +  }
      +]
    • removedInput schema / properties / seed
      Removed value: -{
      -  "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"
      -}
    • removedInput schema / properties / style
      Removed value: -{
      -  "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": "Style: a registered Look (crisp, hand-drawn, excalidraw, pen-and-ink, freehand, watercolor, blueprint, look:tufte, accessible-high-contrast, patent-drawing, status-dashboard, ops-schematic, chalkboard, risograph, architectural-plan, publication-figure), Palette (paper, dusk, zinc-light, zinc-dark, tokyo-night, tokyo-night-storm, tokyo-night-light, catppuccin-mocha, catppuccin-latte, nord, nord-light, dracula, github-light, github-dark, solarized-light, solarized-dark, one-dark, salmon, salmon-dark, palette:tufte, tufte-dark), inline record, or left-to-right stack.",
      -  "x-agentic-mermaid-runtime-validator": "styleInput",
      -  "x-agentic-mermaid-terminal": "consumed"
      -}
    • removedInput schema / properties / theme
      Removed value: -{
      -  "deprecated": true,
      -  "description": "Deprecated compatibility input (one of: paper, dusk, zinc-light, zinc-dark, tokyo-night, tokyo-night-storm, tokyo-night-light, catppuccin-mocha, catppuccin-latte, nord, nord-light, dracula, github-light, github-dark, solarized-light, solarized-dark, one-dark, salmon, salmon-dark, tufte, tufte-dark); use style with a Palette name.",
      -  "enum": [
      -    "paper",
      -    "dusk",
      -    "zinc-light",
      -    "zinc-dark",
      -    "tokyo-night",
      -    "tokyo-night-storm",
      -    "tokyo-night-light",
      -    "catppuccin-mocha",
      -    "catppuccin-latte",
      -    "nord",
      -    "nord-light",
      -    "dracula",
      -    "github-light",
      -    "github-dark",
      -    "solarized-light",
      -    "solarized-dark",
      -    "one-dark",
      -    "salmon",
      -    "salmon-dark",
      -    "tufte",
      -    "tufte-dark"
      -  ],
      -  "type": "string",
      -  "x-agentic-mermaid-diagnostic": {
      -    "code": "THEME_INPUT_DEPRECATED",
      -    "message": "The render_svg theme field is a legacy compatibility input; use style with a Palette name instead.",
      -    "removal": {
      -      "date": "2027-01-31",
      -      "release": "0.3.0"
      -    }
      -  }
      -}
  2. Changed22 schema fields changed
    • addedInput schema / additionalProperties
      Added value: +false
    • addedInput schema / properties / bg / default
      Added value: +"#FFFFFF"
    • changedInput schema / properties / bg / description
      Previous value: -"Background CSS color (overrides theme)."New value: +"Background color or CSS variable."
    • addedInput schema / properties / bg / x-agentic-mermaid-runtime-validator
      Added value: +"safeCssPaint"
    • addedInput schema / properties / bg / x-agentic-mermaid-terminal
      Added value: +"consumed"
    • addedInput schema / properties / fg / default
      Added value: +"#27272A"
    • changedInput schema / properties / fg / description
      Previous value: -"Foreground CSS color (overrides theme)."New value: +"Primary foreground and text color."
    • addedInput schema / properties / fg / x-agentic-mermaid-runtime-validator
      Added value: +"safeCssPaint"
    • addedInput schema / properties / fg / x-agentic-mermaid-terminal
      Added value: +"consumed"
    • 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; compatibility conveniences override matching values. Styles accept a registered Look (crisp, hand-drawn, excalidraw, pen-and-ink, freehand, watercolor, blueprint, look:tufte, accessible-high-contrast, patent-drawing, status-dashboard, ops-schematic, chalkboard, risograph, architectural-plan, publication-figure), Palette (paper, dusk, zinc-light, zinc-dark, tokyo-night, tokyo-night-storm, tokyo-night-light, catppuccin-mocha, catppuccin-latte, nord, nord-light, dracula, github-light, github-dark, solarized-light, solarized-dark, one-dark, salmon, salmon-dark, palette:tufte, tufte-dark), inline record, or left-to-right stack.",
      +  "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"
      +}
    • addedInput schema / properties / seed / default
      Added value: +0
    • changedInput schema / properties / seed / description
      Previous value: -"Re-rolls ink wobble of styled looks; never moves layout."New value: +"Deterministic re-roll seed for stochastic Styles."
    • addedInput schema / properties / seed / x-agentic-mermaid-terminal
      Added value: +"not-applicable"
    • addedInput schema / properties / seed / x-agentic-mermaid-terminal-note
      Added value: +"terminal glyph geometry is deterministic and has no stochastic ink"
    • addedInput schema / properties / style / anyOf
      Added 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"
      +  }
      +]
    • changedInput schema / properties / style / description
      Previous value: -"Style: a name (one of: tufte, hand-drawn, excalidraw, pen-and-ink, freehand, watercolor, blueprint, accessible-high-contrast, patent-drawing, status-dashboard, ops-schematic, chalkboard, risograph, architectural-plan, cupertino, publication-figure; or any theme name), an inline style record, or an array stack merged left → right. A colors-only style is a theme."New value: +"Style: a registered Look (crisp, hand-drawn, excalidraw, pen-and-ink, freehand, watercolor, blueprint, look:tufte, accessible-high-contrast, patent-drawing, status-dashboard, ops-schematic, chalkboard, risograph, architectural-plan, publication-figure), Palette (paper, dusk, zinc-light, zinc-dark, tokyo-night, tokyo-night-storm, tokyo-night-light, catppuccin-mocha, catppuccin-latte, nord, nord-light, dracula, github-light, github-dark, solarized-light, solarized-dark, one-dark, salmon, salmon-dark, palette:tufte, tufte-dark), inline record, or left-to-right stack."
    • addedInput schema / properties / style / x-agentic-mermaid-runtime-validator
      Added value: +"styleInput"
    • addedInput schema / properties / style / x-agentic-mermaid-terminal
      Added value: +"consumed"
    • addedInput schema / properties / theme / deprecated
      Added value: +true
    • changedInput schema / properties / theme / description
      Previous value: -"Named theme (one of: paper, dusk, zinc-light, zinc-dark, tokyo-night, tokyo-night-storm, tokyo-night-light, catppuccin-mocha, catppuccin-latte, nord, nord-light, dracula, github-light, github-dark, solarized-light, solarized-dark, one-dark, salmon, salmon-dark, tufte, tufte-dark)."New value: +"Deprecated compatibility input (one of: paper, dusk, zinc-light, zinc-dark, tokyo-night, tokyo-night-storm, tokyo-night-light, catppuccin-mocha, catppuccin-latte, nord, nord-light, dracula, github-light, github-dark, solarized-light, solarized-dark, one-dark, salmon, salmon-dark, tufte, tufte-dark); use style with a Palette name."
    • addedInput schema / properties / theme / enum
      Added value: +[
      +  "paper",
      +  "dusk",
      +  "zinc-light",
      +  "zinc-dark",
      +  "tokyo-night",
      +  "tokyo-night-storm",
      +  "tokyo-night-light",
      +  "catppuccin-mocha",
      +  "catppuccin-latte",
      +  "nord",
      +  "nord-light",
      +  "dracula",
      +  "github-light",
      +  "github-dark",
      +  "solarized-light",
      +  "solarized-dark",
      +  "one-dark",
      +  "salmon",
      +  "salmon-dark",
      +  "tufte",
      +  "tufte-dark"
      +]
    • addedInput schema / properties / theme / x-agentic-mermaid-diagnostic
      Added value: +{
      +  "code": "THEME_INPUT_DEPRECATED",
      +  "message": "The render_svg theme field is a legacy compatibility input; use style with a Palette name instead.",
      +  "removal": {
      +    "date": "2027-01-31",
      +    "release": "0.3.0"
      +  }
      +}
  3. Changed1 schema field changed
    • changedInput schema / properties / style / description
      Previous value: -"Style: a name (hand-drawn, excalidraw, pen-and-ink, freehand, watercolor, blueprint, tufte, accessible-high-contrast, patent-drawing, status-dashboard, ops-schematic, chalkboard, risograph, architectural-plan, publication-figure, or any theme name), an inline style record, or an array stack merged left → right. A colors-only style is a theme."New value: +"Style: a name (one of: tufte, hand-drawn, excalidraw, pen-and-ink, freehand, watercolor, blueprint, accessible-high-contrast, patent-drawing, status-dashboard, ops-schematic, chalkboard, risograph, architectural-plan, cupertino, publication-figure; or any theme name), an inline style record, or an array stack merged left → right. A colors-only style is a theme."
  4. First observed

TDQS

A4.4/5.0
Behavior5/5

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

Annotations already declare readOnlyHint=true, idempotentHint=true, and destructiveHint=false. The description adds meaningful behavioral details beyond those: deterministic layout ('identical input produces identical geometry') and hosted-boundary constraints ('forces security:\'strict\' and embedFontImport:false'). 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?

The description is three tight sentences: purpose, return shape, and behavioral constraints. It is front-loaded with the action and avoids redundant restatement of the title or annotations.

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

Completeness4/5

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

For a tool with a very large options schema, the description captures the core behavior, return shape, determinism, and security constraints. It does not cover error behavior or supported Mermaid families, but the schema and annotations compensate for most gaps, and the absence of an output schema is mitigated by the explicit { ok, svg } return note.

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

Parameters3/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 only the phrase 'source string' and 'themeable SVG,' while the schema fully documents both parameters and all nested option properties. No additional semantic value is provided beyond what the schema already contains.

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

Purpose5/5

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

The description opens with a specific verb and resource: 'Render a Mermaid source string to themeable SVG.' It also names the return shape ({ ok, svg }), clearly distinguishing this tool from sibling renderers like render_ascii and render_png by output format.

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

Usage Guidelines4/5

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

The description gives clear context that this tool produces SVG output, which differentiates it from ASCII and PNG rendering siblings. It does not explicitly name alternatives or provide when-to-use/when-not-to-use guidance, but the output-type framing is sufficient for basic selection.

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.