Skip to main content
Glama

Render Mermaid as PNG

render_png
Read-onlyIdempotent

Rasterize a Mermaid source string to PNG. Returns { ok, png_base64 }. Hosted rendering uses resvg-wasm with bundled fonts; bytes may differ from the local napi renderer, so hosted PNG is a convenience surface, not part of the byte-determinism contract. For file/URL artifacts use the local stdio server.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
fitToNoExactly one output width or height constraint.
scaleNoPositive output scale used when no fitTo constraint is supplied.
sourceYesMermaid source.
optionsNoShared advanced RenderOptions object.
backgroundNoPortable basic color or hex color painted behind the raster artifact.

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed8 schema fields changed
    • changedInput schema / properties / options / description
      Previous value: -"Shared advanced RenderOptions object; compatibility convenience fields above override matching values."New value: +"Shared advanced RenderOptions object."
    • 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": "A registered name, inline StyleSpec, or left-to-right stack of either.",
      -  "x-agentic-mermaid-runtime-validator": "styleInput",
      -  "x-agentic-mermaid-terminal": "consumed"
      -}
  2. Changed22 schema fields changed
    • addedInput schema / additionalProperties
      Added value: +false
    • changedInput schema / properties / background / description
      Previous value: -"CSS color string (default 'white')."New value: +"Portable basic color or hex color painted behind the raster artifact."
    • addedInput schema / properties / background / minLength
      Added value: +1
    • addedInput schema / properties / background / pattern
      Added value: +"^\\s*(?:#[0-9A-Fa-f]{3,4}|#[0-9A-Fa-f]{6}|#[0-9A-Fa-f]{8}|[tT][rR][aA][nN][sS][pP][aA][rR][eE][nN][tT]|[bB][lL][aA][cC][kK]|[sS][iI][lL][vV][eE][rR]|[gG][rR][aA][yY]|[gG][rR][eE][yY]|[wW][hH][iI][tT][eE]|[mM][aA][rR][oO][oO][nN]|[rR][eE][dD]|[pP][uU][rR][pP][lL][eE]|[fF][uU][cC][hH][sS][iI][aA]|[gG][rR][eE][eE][nN]|[lL][iI][mM][eE]|[oO][lL][iI][vV][eE]|[yY][eE][lL][lL][oO][wW]|[nN][aA][vV][yY]|[bB][lL][uU][eE]|[tT][eE][aA][lL]|[aA][qQ][uU][aA]|[oO][rR][aA][nN][gG][eE])\\s*$"
    • addedInput schema / properties / background / x-agentic-mermaid-receipt
      Added value: +"included"
    • addedInput schema / properties / background / x-agentic-mermaid-runtime-validator
      Added value: +"portablePngBackground"
    • addedInput schema / properties / background / x-agentic-mermaid-scope
      Added value: +"portable"
    • addedInput schema / properties / fitTo
      Added value: +{
      +  "additionalProperties": false,
      +  "description": "Exactly one output width or height constraint.",
      +  "oneOf": [
      +    {
      +      "required": [
      +        "width"
      +      ]
      +    },
      +    {
      +      "required": [
      +        "height"
      +      ]
      +    }
      +  ],
      +  "properties": {
      +    "height": {
      +      "description": "Exact output height in integer pixels.",
      +      "minimum": 1,
      +      "type": "integer"
      +    },
      +    "width": {
      +      "description": "Exact output width in integer pixels.",
      +      "minimum": 1,
      +      "type": "integer"
      +    }
      +  },
      +  "type": "object",
      +  "x-agentic-mermaid-receipt": "included",
      +  "x-agentic-mermaid-scope": "portable"
      +}
    • 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 convenience fields above override matching values.",
      +  "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 / scale / default
      Added value: +2
    • changedInput schema / properties / scale / description
      Previous value: -"Output scale multiplier (default 2 — retina; clamped to 0.1–8)."New value: +"Positive output scale used when no fitTo constraint is supplied."
    • addedInput schema / properties / scale / exclusiveMinimum
      Added value: +0
    • addedInput schema / properties / scale / x-agentic-mermaid-receipt
      Added value: +"included"
    • addedInput schema / properties / scale / x-agentic-mermaid-scope
      Added value: +"portable"
    • addedInput schema / properties / seed / default
      Added value: +0
    • changedInput schema / properties / seed / description
      Previous value: -"Ink seed for styled looks."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 name | record | stack (same as render_svg). Hosted rasterization bundles the built-in style faces; custom unbundled fonts use Inter with DejaVu per-glyph fallback."New value: +"A registered name, inline StyleSpec, or left-to-right stack of either."
    • addedInput schema / properties / style / x-agentic-mermaid-runtime-validator
      Added value: +"styleInput"
    • addedInput schema / properties / style / x-agentic-mermaid-terminal
      Added value: +"consumed"
  3. Changed1 schema field changed
    • changedInput schema / properties / style / description
      Previous value: -"Style name | record | stack (same as render_svg). Hosted rasterization bundles the built-in style faces; custom unbundled fonts fall back to DejaVu."New value: +"Style name | record | stack (same as render_svg). Hosted rasterization bundles the built-in style faces; custom unbundled fonts use Inter with DejaVu per-glyph fallback."
  4. First observed

TDQS

A4.2/5.0
Behavior4/5

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

Annotations already establish read-only, idempotent, non-destructive behavior. The description adds valuable context: hosted rendering uses resvg-wasm with bundled fonts, bytes may differ from the local napi renderer, and the return shape is { ok, png_base64 }. This goes beyond the annotations without contradicting them.

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

Conciseness5/5

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

The description is three sentences with no fluff. The first sentence states the core purpose and return format, the second adds a critical determinism caveat, and the third points to an alternative for different artifact types. Every sentence earns its place.

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?

Given the absence of an output schema, the description usefully states the return shape. It also covers the hosted/local distinction and determinism caveat. The schema is very rich and already documents all parameters. Minor gaps remain (e.g., error behavior, size limits), but overall the description is complete enough for an agent to invoke and interpret results.

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 each parameter already has a description. The tool description adds little new parameter-level meaning beyond confirming the source is a string and mentioning a distinction for file/URL artifacts. Since the schema carries the parameter burden, a baseline of 3 is appropriate.

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

Purpose5/5

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

The description opens with a specific verb+resource: 'Rasterize a Mermaid source string to PNG.' It also states the return shape '{ ok, png_base64 }' and explicitly distinguishes this tool from image-byte determinism and the local stdio server, making its scope clear relative to sibling tools like render_svg and render_ascii.

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: this is the hosted PNG renderer for Mermaid source strings, and it warns that hosted output is not part of the byte-determinism contract. It also provides an exclusion: 'For file/URL artifacts use the local stdio server.' It doesn't explicitly name sibling tools like render_svg, but the guidance is sufficient for most selection decisions.

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.