Endpoints: 28,729MCP servers: 18,413Payout addresses: 2,071Paid calls: 1,534Letters: 13Defects: 1,322counted just now
teppi

Server definition

Hash
sha256:3543495bb5e1d1358d1ac2f78c09c68a54b0377c462f26b68b832db550e48cad
What it is
What a remote MCP server returned when asked what it offers: 9 tools

The blob, as servednamed by its sha256

{ "instructions": "agentic-mermaid hosted MCP server (stateless). Direct tools render_svg, render_ascii, render_png, verify, and describe cover plain render/verify calls cheaply. Successful deterministic pure-tool results may be reused by a private server-side compute cache for up to 24 hours; execute, mutate, and build bypass it. HTTP /mcp responses themselves are cache-control: no-store, so clients must not infer response freshness from CDN headers. The x-agentic-mermaid-compute-cache response header reports hit, miss, mixed, bypass, or disabled. There is no layout seed — the library's optional style seed only re-rolls ink of styled looks. describe_sdk progressively discloses one family's version-matched mutation schema. Declarative mutate/build apply typed op lists and verify before emitting source; prefer them for straightforward structured edits. execute runs synchronous JavaScript against the typed mermaid.* SDK in an isolated on-demand sandbox for logic the ops don't express; async/await and Promise jobs are not supported, and network access is disabled. Inputs are capped at 64KB; for bigger diagrams, Code Mode artifacts, or file/URL PNG output, run the local stdio server (see https://agentic-mermaid.dev/docs/mcp/).", "tools": [ { "description": "Author a new Mermaid diagram from blank by folding a list of structured ops\nover an empty diagram of `family`. The declarative counterpart to hand-writing\nsource. Returns the same envelope as `mutate`:\n{ ok, family, source, verify } or { ok:false, family, opIndex, error }.\nCall `describe_sdk` for the family before authoring unfamiliar ops.", "inputSchema": { "additionalProperties": false, "properties": { "family": { "description": "Diagram family to author (one of: flowchart, state, sequence, timeline, class, er, journey, architecture, xychart, pie, quadrant, gantt, mindmap, gitgraph, radar).", "type": "string" }, "ops": { "description": "Non-empty ordered list of ops; each is { kind, ...fields }.", "items": { "type": "object" }, "minItems": 1, "type": "array" } }, "required": [ "family", "ops" ], "type": "object" }, "name": "build", "outputSchema": null }, { "description": "Describe a Mermaid diagram. format=text returns { ok, text } with\none or two summary sentences; format=json returns { ok, tree } with the AX tree;\nformat=facts returns { ok, facts } with deterministic semantic fact lines for\nmachine checking (for example edge A -> B : label, member Duck +quack()).", "inputSchema": { "additionalProperties": false, "properties": { "format": { "description": "text (default), json AX tree, or facts semantic read-back.", "enum": [ "text", "json", "facts" ], "type": "string" }, "source": { "description": "Mermaid source.", "type": "string" } }, "required": [ "source" ], "type": "object" }, "name": "describe", "outputSchema": null }, { "description": "Return version-matched mutation operations for one diagram family.\nUse detail=signatures for the compact op menu or detail=fields (default) for exact\nfield types, required flags, enum values, defaults, and constraints. Call this\nbefore build, mutate, or execute when the family schema is not already known.", "inputSchema": { "additionalProperties": false, "properties": { "detail": { "description": "signatures for a compact menu; fields for the complete schema (default).", "enum": [ "signatures", "fields" ], "type": "string" }, "family": { "description": "Diagram family whose mutation operations are needed.", "enum": [ "flowchart", "state", "sequence", "timeline", "class", "er", "journey", "architecture", "xychart", "pie", "quadrant", "gantt", "mindmap", "gitgraph", "radar" ], "type": "string" } }, "required": [ "family" ], "type": "object" }, "name": "describe_sdk", "outputSchema": null }, { "description": "Run JavaScript in an isolated sandbox; return a value.\nOne call composes edits. Submit JavaScript; declaration types are guidance.\nNo promises, async/await, dynamic import, or type annotations.\nHosted note: execute runs in an on-demand isolate and costs more than the direct\nrender_svg/render_ascii/render_png/verify/describe tools — prefer those for plain\nrender/verify calls. For straightforward structured edits, prefer the declarative\nmutate/build tools; reserve execute for logic the ops don't express.\nHosted mermaid.renderMermaidSVG*, renderMermaidASCII*, and\nlayoutMermaidWithReceipt calls force security:'strict' and\nembedFontImport:false; caller code cannot weaken that host policy.\n\nSDK declaration:\ntype DiagramKind = 'flowchart' | 'state' | 'sequence' | 'timeline' | 'class' | 'er' | 'journey' | 'architecture' | 'xychart' | 'pie' | 'quadrant' | 'gantt' | 'mindmap' | 'gitgraph' | 'radar'\ntype MutationOp = { kind: string; [field: string]: unknown }\ntype Result<T, E = { code: string; message: string }> = { ok: true; value: T } | { ok: false; error: E }\ninterface SourceLocation { readonly line: number; readonly col: number }\ninterface SourceMapSpans { readonly preserved: PreservedSourceSpans; readonly nodes: ReadonlyMap<string, SourceSpan>; readonly edges: ReadonlyMap<string, SourceSpan>; readonly groups: ReadonlyMap<string, SourceSpan>; readonly labels: ReadonlyMap<string, SourceSpan> }\ninterface SourceMap { readonly nodes: ReadonlyMap<string, SourceLocation>; readonly edges: ReadonlyMap<string, SourceLocation>; readonly groups: ReadonlyMap<string, SourceLocation>; readonly labels: ReadonlyMap<string, SourceLocation>; readonly spans?: SourceMapSpans }\ninterface ValidDiagram { readonly kind: DiagramKind; readonly source: SourceMap }\ntype ExternalFamilyId = `family:${string}`\ninterface ExtensionCompatibility {\n readonly [contract: string]: string | undefined\n readonly core?: string\n readonly scene?: string\n}\ninterface ExtensionProvenance { readonly owner: string; readonly source: string; readonly reference?: string }\ninterface ExtensionIdentity<Kind extends string = string> {\n readonly id: `${Kind}:${string}`\n readonly kind: Kind\n readonly version: string\n readonly compatibility: ExtensionCompatibility\n readonly provenance: ExtensionProvenance\n}\ninterface SourceSpanPoint { readonly offset: number; readonly line: number; readonly col: number }\ninterface SourceSpan { readonly start: SourceSpanPoint; readonly end: SourceSpanPoint }\ninterface PreservedSourceSpans {\n readonly source: SourceSpan\n readonly wrapper?: SourceSpan\n readonly frontmatter?: SourceSpan\n readonly initDirectives?: readonly SourceSpan[]\n readonly accessibilityDirectives?: readonly SourceSpan[]\n readonly header: SourceSpan\n readonly body: SourceSpan\n}\ninterface SourcePreservationReceipt {\n readonly version: 1\n readonly classification: 'unsupported' | 'inventory-only' | 'unknown'\n readonly source: string\n readonly header: string\n readonly upstreamFamilyId?: string\n readonly mermaidVersion: string\n readonly spans?: PreservedSourceSpans\n}\ninterface ParseError {\n readonly code: string\n readonly message: string\n readonly line?: number\n readonly col?: number\n readonly preservation?: SourcePreservationReceipt\n readonly help?: string\n}\ninterface ExtensionValidDiagram {\n readonly kind: ExternalFamilyId\n readonly descriptorIdentity: ExtensionIdentity<'family'>\n readonly source: SourceMap\n}\ninterface PreservedValidDiagram {\n readonly kind: ExternalFamilyId\n readonly source: SourceMap\n readonly body: {\n readonly kind: 'preserved'\n readonly representation: 'opaque' | 'unknown'\n readonly source: string\n readonly preservation: SourcePreservationReceipt\n readonly spans: PreservedSourceSpans\n readonly diagnostic: {\n readonly code: 'UNSUPPORTED_FAMILY' | 'UNKNOWN_HEADER' | 'FAMILY_DESCRIPTOR_MISMATCH'\n readonly message: string\n readonly help: string\n }\n }\n}\ntype ParsedDiagram = ValidDiagram | ExtensionValidDiagram | PreservedValidDiagram\ntype RenderedRegionKind='node'|'edge'|'label'|'canvas'|'group'|'cluster'|'lane'|'band'|'compartment'|'plot'|'ring'\ntype DiagramActionSecurity='safe'|'unsafe'|'source-only'|'unsupported'\ninterface RenderedRegion { id:string;kind:RenderedRegionKind;elementId?:string;parentId?:string;bounds:{x:number;y:number;w:number;h:number};sourceLine?:number }\ninterface DiagramActionRecord { id?:string;regionId?:string;family:DiagramKind;target:string;action:'href'|'call'|'callback';raw:string;line?:number;href?:string;security:DiagramActionSecurity;executable:false;message?:string }\ninterface RenderedLayout { version: 1; kind: DiagramKind | ExternalFamilyId; bounds: { w: number; h: number }; nodes: unknown[]; edges: unknown[]; groups: unknown[]; regions?: RenderedRegion[]; actions?: DiagramActionRecord[] }\ninterface VerifyResult { ok: boolean; warnings: unknown[]; layout: RenderedLayout }\ntype CheckMermaidSpec = string[] | { include?: string[]; exclude?: string[]; exact?: boolean }\ninterface CheckMermaidResult { ok: boolean; missing: string[]; unexpected: string[]; facts: string[] }\ntype MermaidConfigScalar = string | number | boolean | null\ntype MermaidConfigValue = MermaidConfigScalar | MermaidConfigValue[] | { [key: string]: MermaidConfigValue | undefined }\ntype MermaidRuntimeConfig = { [key: string]: MermaidConfigValue | undefined }\n\ninterface StyleColors {bg?:string;fg?:string;line?:string;accent?:string;muted?:string;surface?:string;border?:string}\ntype SceneStyleRole=\"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\"\ntype ExactSceneStyleRole=\"node\"|\"edge\"|\"group\"|\"group-header\"|\"label\"|\"actor\"|\"relationship\"|\"pie-slice\"|\"legend\"|\"bar\"|\"series\"|\"point\"|\"task\"|\"milestone\"\ntype BindableSceneStyleRole=\"group-header\"|\"actor\"|\"relationship\"|\"pie-slice\"|\"legend\"|\"bar\"|\"series\"|\"point\"|\"task\"|\"milestone\"\ntype RoleStyleSpec={\"fontFamily\"?:string;\"fontSize\"?:number;\"fontWeight\"?:number;\"letterSpacing\"?:number;\"textTransform\"?:\"uppercase\"|\"lowercase\"|\"capitalize\";\"textColor\"?:string;\"paddingX\"?:number;\"paddingY\"?:number;\"cornerRadius\"?:number;\"lineWidth\"?:number;\"bendRadius\"?:number;\"fillColor\"?:string;\"borderColor\"?:string;\"strokeColor\"?:string;\"headerFillColor\"?:string;\"cue\"?:\"none\"|\"outline\"|\"double-line\"|\"pattern\"}\ntype RoleStyleFor<R extends ExactSceneStyleRole>=R extends \"node\"|\"actor\"?Pick<RoleStyleSpec,\"borderColor\"|\"cornerRadius\"|\"fillColor\"|\"fontSize\"|\"fontWeight\"|\"letterSpacing\"|\"lineWidth\"|\"paddingX\"|\"paddingY\"|\"textColor\"|\"textTransform\">:R extends \"edge\"|\"relationship\"?Pick<RoleStyleSpec,\"bendRadius\"|\"fontSize\"|\"fontWeight\"|\"letterSpacing\"|\"lineWidth\"|\"strokeColor\"|\"textColor\"|\"textTransform\">:R extends \"group\"?Pick<RoleStyleSpec,\"borderColor\"|\"cornerRadius\"|\"fillColor\"|\"fontFamily\"|\"fontSize\"|\"fontWeight\"|\"headerFillColor\"|\"letterSpacing\"|\"lineWidth\"|\"paddingX\"|\"paddingY\"|\"textColor\"|\"textTransform\">:R extends \"group-header\"?Pick<RoleStyleSpec,\"borderColor\"|\"cue\"|\"fillColor\"|\"fontFamily\"|\"fontSize\"|\"fontWeight\"|\"letterSpacing\"|\"lineWidth\"|\"strokeColor\"|\"textColor\"|\"textTransform\">:R extends \"label\"?Pick<RoleStyleSpec,\"fontSize\"|\"fontWeight\"|\"letterSpacing\"|\"textColor\"|\"textTransform\">:R extends \"pie-slice\"|\"task\"|\"milestone\"?Pick<RoleStyleSpec,\"borderColor\"|\"cue\"|\"fillColor\"|\"lineWidth\"|\"strokeColor\">:R extends \"legend\"?Pick<RoleStyleSpec,\"borderColor\"|\"fillColor\"|\"lineWidth\"|\"strokeColor\"|\"textColor\">:R extends \"bar\"|\"point\"?Pick<RoleStyleSpec,\"borderColor\"|\"fillColor\"|\"lineWidth\"|\"strokeColor\">:R extends \"series\"?Pick<RoleStyleSpec,\"borderColor\"|\"lineWidth\"|\"strokeColor\">:never\ntype RoleStyles={[R in ExactSceneStyleRole]?:Readonly<RoleStyleFor<R>>}\ntype SemanticBindingChannel=\"category\"\ninterface SemanticBinding {channel:SemanticBindingChannel;value:string;slot:string;role?:BindableSceneStyleRole}\ntype BrandConstraint={kind:\"contrast\";action:'warn'|'error';role?:SceneStyleRole;minimum?:number}|{kind:\"accent-area\";action:'warn'|'error';maxFraction:number}|{kind:\"mono-role\";action:'warn'|'error';role:SceneStyleRole}\ninterface StyleSpec {\"formatVersion\"?:1;\"$schema\"?:string;\"name\"?:string;\"blurb\"?:string;\"colors\"?:StyleColors;\"font\"?:string;\"roles\"?:RoleStyles;\"semanticSlots\"?:Readonly<Record<string,Readonly<RoleStyleSpec>>>;\"bindings\"?:readonly SemanticBinding[];\"constraints\"?:readonly BrandConstraint[];\"stroke\"?:\"crisp\"|\"jittered\"|\"freehand\";\"roughness\"?:number;\"bowing\"?:number;\"passes\"?:number;\"strokeWidth\"?:number;\"fill\"?:\"none\"|\"hachure\"|\"solid\"|\"wash\";\"hachureAngle\"?:number;\"hachureGap\"?:number;\"fillWeight\"?:number;\"washOpacity\"?:number;\"washEdge\"?:number;\"backdrop\"?:\"plain\"|\"paper-ruled\"|\"grid\";\"intent\"?:\"premium\"|\"draft\"|\"lofi\";\"mono\"?:boolean}\ntype StyleInput=string|StyleSpec\ntype ArchitectureVisualOverrides = Readonly<Record<string, unknown>>\n\ninterface SharedRenderOptions { bg?:string;fg?:string;line?:string;accent?:string;muted?:string;surface?:string;border?:string;font?:string;style?:StyleInput | StyleInput[];padding?:number;nodeSpacing?:number;layerSpacing?:number;wrappingWidth?:number;componentSpacing?:number;transparent?:boolean;interactive?:boolean;shadow?:boolean;class?:{ hierarchicalNamespaces?:boolean };architecture?:{ visual?:ArchitectureVisualOverrides };timeline?:{ maxWidth?:number };journey?:{ experienceCurve?:boolean };gantt?:{ dependencyArrows?:boolean; criticalPath?:boolean };mermaidConfig?:MermaidRuntimeConfig;embedFontImport?:boolean;compact?:boolean;idPrefix?:string;security?:'default' | 'strict';ganttToday?:string;seed?:number;}\n\ninterface ConfigDiagnostic { code: 'INEFFECTIVE_CONFIG'; field: string; message: string }\ninterface TerminalProjectionDiagnostic { code: string; feature: string; message: string }\ninterface SvgRenderOptions extends SharedRenderOptions { onConfigDiagnostic?:(diagnostic: ConfigDiagnostic) => void;}\ninterface AsciiRenderOptions extends SharedRenderOptions { useAscii?:boolean;paddingX?:number;paddingY?:number;boxBorderPadding?:number;colorMode?:'auto' | 'none' | 'ansi16' | 'ansi256' | 'truecolor' | 'html';theme?:{ fg?:string; border?:string; line?:string; arrow?:string; accent?:string; bg?:string; corner?:string; junction?:string };maxWidth?:number;targetWidth?:number;onConfigDiagnostic?:(diagnostic: ConfigDiagnostic) => void;onProjectionDiagnostic?:(diagnostic: TerminalProjectionDiagnostic) => void;}\ninterface LayoutRenderOptions extends SharedRenderOptions { debug?:boolean;regions?:boolean;actions?:boolean;onConfigDiagnostic?:(diagnostic: ConfigDiagnostic) => void;}\n\ninterface RenderArtifactDiagnostic { code: string; message?: string; reference?: string; feature?: string; input?: string; canonicalId?: string; removal?: { release: string; date: string } }\ninterface CapabilityResolution { readonly id: `${string}:${string}`; readonly range: string; readonly level: 'required' | 'preferred' | 'optional'; readonly status: 'selected' | 'unsupported' | 'incompatible'; readonly version?: string }\ninterface CapabilityDecision { readonly version: 1; readonly accepted: boolean; readonly resolutions: readonly CapabilityResolution[] }\ninterface RenderExecutionDecision { readonly family: { readonly id: string; readonly version: string };readonly backend: { readonly mode: 'scene'; readonly requestedId: string; readonly selectedId: string; readonly version: string; readonly hostPolicy: boolean } | { readonly mode: 'family-svg' };readonly digest: string;}\ninterface RenderRequestReceipt { version: 2; output: 'svg' | 'png' | 'ascii' | 'unicode' | 'html' | 'layout'; sharedRequestDigest: string; requestDigest: string; appearanceDigest: string; capabilityDecision: CapabilityDecision; diagnostics?: readonly RenderArtifactDiagnostic[]; graphicalProjectionDigest?: string; executionDecision?: RenderExecutionDecision }\n\ninterface RenderedSvg { svg: string; receipt: RenderRequestReceipt }\ninterface RenderedAscii { text: string; receipt: RenderRequestReceipt; terminalStyle: Record<string, unknown>; outputPolicy: Record<string, unknown> }\ninterface RenderedLayoutArtifact { layout: VerifyResult['layout']; receipt: RenderRequestReceipt }\n\ndeclare const mermaid: {\n parseRegisteredMermaid(source: string): Result<ParsedDiagram, ParseError[]>\n createMermaid(kind: DiagramKind, opts?: { direction?: 'TD' | 'TB' | 'LR' | 'BT' | 'RL' }): ValidDiagram\n buildMermaid(kind: DiagramKind, ops: MutationOp[], opts?: { direction?: 'TD' | 'TB' | 'LR' | 'BT' | 'RL' }): Result<ValidDiagram, { code: string; message: string; opIndex: number }>\n asFlowchart(diagram: ValidDiagram): ValidDiagram | null\n asState(diagram: ValidDiagram): ValidDiagram | null\n asSequence(diagram: ValidDiagram): ValidDiagram | null\n asTimeline(diagram: ValidDiagram): ValidDiagram | null\n asClass(diagram: ValidDiagram): ValidDiagram | null\n asEr(diagram: ValidDiagram): ValidDiagram | null\n asJourney(diagram: ValidDiagram): ValidDiagram | null\n asArchitecture(diagram: ValidDiagram): ValidDiagram | null\n asXyChart(diagram: ValidDiagram): ValidDiagram | null\n asPie(diagram: ValidDiagram): ValidDiagram | null\n asQuadrant(diagram: ValidDiagram): ValidDiagram | null\n asGantt(diagram: ValidDiagram): ValidDiagram | null\n asMindmap(diagram: ValidDiagram): ValidDiagram | null\n asGitGraph(diagram: ValidDiagram): ValidDiagram | null\n asRadar(diagram: ValidDiagram): ValidDiagram | null\n mutate(diagram: ValidDiagram, op: MutationOp): Result<ValidDiagram>\n verifyMermaid(input: ParsedDiagram | string, opts?: { suppress?: string[]; labelCharCap?: number; renderOptions?: SharedRenderOptions }): VerifyResult\n analyzeMermaid(diagram: ValidDiagram): Record<string, unknown>\n analyzeMermaidSource(source: string): Result<Record<string, unknown>>\n describeMermaidFacts(diagram: ValidDiagram): string[]\n describeMermaidFactsSource(source: string): Result<string[]>\n checkMermaid(diagram: ValidDiagram, spec: CheckMermaidSpec): CheckMermaidResult\n checkMermaidSource(source: string, spec: CheckMermaidSpec): Result<CheckMermaidResult>\n serializeMermaid(diagram: ParsedDiagram): string\n renderMermaidSVG(input: ParsedDiagram | string, opts?: SvgRenderOptions): string\n renderMermaidSVGWithReceipt(input: ParsedDiagram | string, opts?: SvgRenderOptions): RenderedSvg\n renderMermaidASCII(input: ParsedDiagram | string, opts?: AsciiRenderOptions): string\n renderMermaidASCIIWithReceipt(input: ParsedDiagram | string, opts?: AsciiRenderOptions): RenderedAscii\n layoutMermaidWithReceipt(input: ParsedDiagram | string, opts?: LayoutRenderOptions): RenderedLayoutArtifact\n describeOps(family: DiagramKind): Record<string, { name: string; required: boolean; type: string; note?: string }[]>\n opSignatures(family: DiagramKind): string[]\n}", "inputSchema": { "additionalProperties": false, "properties": { "code": { "description": "JavaScript to execute; mermaid.* SDK is global.", "type": "string" }, "timeoutMs": { "description": "Optional CPU-time budget (default 5000ms, max 30000ms).", "minimum": 1, "type": "integer" } }, "required": [ "code" ], "type": "object" }, "name": "execute", "outputSchema": null }, { "description": "Apply a list of structured edit ops to an existing Mermaid `source` and\nreturn the edited diagram. This is the declarative counterpart to `execute`:\nplain JSON in, plain JSON out, no sandbox. Prefer it for straightforward edits;\nreserve `execute` for logic the ops don't express.\nReturns { ok, family, source, verify:{ ok, warnings } } on success, or\n{ ok:false, family, opIndex, error } — where `error` names the offending field\nand lists the valid ones — when an op is malformed or cannot apply. Ops apply in\norder and are all-or-nothing: the first failing op stops the batch (its position\nis `opIndex`) and the input is left untouched.\nEach op is { \"kind\": <op>, …fields }. Call `describe_sdk` for the detected\nfamily before authoring unfamiliar ops; it returns compact signatures or exact\nfield types, enum values, defaults, and constraints.", "inputSchema": { "additionalProperties": false, "properties": { "ops": { "description": "Non-empty ordered list of edit ops; each is { kind, ...fields }.", "items": { "type": "object" }, "minItems": 1, "type": "array" }, "source": { "description": "Mermaid source to edit.", "type": "string" } }, "required": [ "source", "ops" ], "type": "object" }, "name": "mutate", "outputSchema": null }, { "description": "Render a Mermaid source string to text. Returns { ok, text }.\nuseAscii true → plain ASCII (+,-,|); false/absent → Unicode box drawing (┌,─,│).\ntargetWidth sets a hard terminal display-cell bound; impossible bounds return a typed error.", "inputSchema": { "additionalProperties": false, "properties": { "options": { "$defs": { "jsonValue": { "anyOf": [ { "type": "null" }, { "type": "string" }, { "type": "number" }, { "type": "boolean" }, { "items": { "$ref": "#/$defs/jsonValue" }, "type": "array" }, { "additionalProperties": { "$ref": "#/$defs/jsonValue" }, "type": "object" } ], "description": "A finite, acyclic JSON value without prototype keys.", "x-agentic-mermaid-validation-expectation": "a finite, acyclic JSON value without prototype keys" } }, "$id": "https://agentic-mermaid.dev/schemas/render-options.schema.json", "$schema": "https://json-schema.org/draft/2020-12/schema", "additionalProperties": false, "description": "Shared advanced RenderOptions object, including style/palette/config/security.", "properties": { "accent": { "description": "Arrowhead, highlight, and data accent color.", "type": "string", "x-agentic-mermaid-runtime-validator": "safeCssPaint", "x-agentic-mermaid-terminal": "consumed" }, "architecture": { "additionalProperties": false, "description": "Architecture renderer visual metric and paint overrides.", "properties": { "visual": { "additionalProperties": false, "description": "Sparse architecture visual overrides merged over resolved defaults.", "properties": { "edgeBendRadius": { "description": "Architecture connector bend radius.", "minimum": 0, "type": "number" }, "edgeFontSize": { "description": "Architecture connector-label font size.", "exclusiveMinimum": 0, "type": "number" }, "edgeFontWeight": { "description": "Architecture connector-label font weight.", "maximum": 1000, "minimum": 1, "type": "number" }, "edgeLetterSpacing": { "description": "Architecture connector-label letter spacing.", "type": "number" }, "edgeLineWidth": { "description": "Architecture connector width.", "minimum": 0, "type": "number" }, "edgeStroke": { "description": "Architecture connector color.", "type": "string", "x-agentic-mermaid-runtime-validator": "safeCssPaint" }, "edgeText": { "description": "Architecture connector-label color.", "type": "string", "x-agentic-mermaid-runtime-validator": "safeCssPaint" }, "edgeTextTransform": { "description": "Architecture connector-label text transform.", "enum": [ "uppercase", "lowercase", "capitalize" ], "type": "string" }, "groupBorder": { "description": "Architecture group border color.", "type": "string", "x-agentic-mermaid-runtime-validator": "safeCssPaint" }, "groupCornerRadius": { "description": "Architecture group corner radius.", "minimum": 0, "type": "number" }, "groupFont": { "description": "Architecture group-label font family.", "type": "string", "x-agentic-mermaid-runtime-validator": "safeCssFontFamily" }, "groupFontSize": { "description": "Architecture group-label font size.", "exclusiveMinimum": 0, "type": "number" }, "groupFontWeight": { "description": "Architecture group-label font weight.", "maximum": 1000, "minimum": 1, "type": "number" }, "groupHeaderHeight": { "description": "Architecture group-header height.", "exclusiveMinimum": 0, "type": "number" }, "groupHeaderSurface": { "description": "Architecture group-header surface color.", "type": "string", "x-agentic-mermaid-runtime-validator": "safeCssPaint" }, "groupLabelPaddingX": { "description": "Horizontal padding around architecture group labels.", "minimum": 0, "type": "number" }, "groupLetterSpacing": { "description": "Architecture group-label letter spacing.", "type": "number" }, "groupLineWidth": { "description": "Architecture group border width.", "minimum": 0, "type": "number" }, "groupPaddingX": { "description": "Horizontal padding inside architecture groups.", "minimum": 0, "type": "number" }, "groupPaddingY": { "description": "Vertical padding inside architecture groups.", "minimum": 0, "type": "number" }, "groupSurface": { "description": "Architecture group surface color.", "type": "string", "x-agentic-mermaid-runtime-validator": "safeCssPaint" }, "groupText": { "description": "Architecture group-label color.", "type": "string", "x-agentic-mermaid-runtime-validator": "safeCssPaint" }, "groupTextTransform": { "description": "Architecture group-label text transform.", "enum": [ "uppercase", "lowercase", "capitalize" ], "type": "string" }, "iconSize": { "description": "Architecture group icon size.", "exclusiveMinimum": 0, "type": "number" }, "junctionInnerRadius": { "description": "Architecture junction inner radius.", "minimum": 0, "type": "number" }, "junctionOuterRadius": { "description": "Architecture junction outer radius.", "exclusiveMinimum": 0, "type": "number" }, "serviceBorder": { "description": "Architecture service border color.", "type": "string", "x-agentic-mermaid-runtime-validator": "safeCssPaint" }, "serviceCornerRadius": { "description": "Architecture service corner radius.", "minimum": 0, "type": "number" }, "serviceFontSize": { "description": "Architecture service-label font size.", "exclusiveMinimum": 0, "type": "number" }, "serviceFontWeight": { "description": "Architecture service-label font weight.", "maximum": 1000, "minimum": 1, "type": "number" }, "serviceIconSize": { "description": "Architecture service icon size.", "exclusiveMinimum": 0, "type": "number" }, "serviceLetterSpacing": { "description": "Architecture service-label letter spacing.", "type": "number" }, "serviceLineWidth": { "description": "Architecture service border width.", "minimum": 0, "type": "number" }, "servicePaddingX": { "description": "Horizontal padding inside architecture services.", "minimum": 0, "type": "number" }, "servicePaddingY": { "description": "Vertical padding inside architecture services.", "minimum": 0, "type": "number" }, "serviceSurface": { "description": "Architecture service surface color.", "type": "string", "x-agentic-mermaid-runtime-validator": "safeCssPaint" }, "serviceText": { "description": "Architecture service-label color.", "type": "string", "x-agentic-mermaid-runtime-validator": "safeCssPaint" }, "serviceTextTransform": { "description": "Architecture service-label text transform.", "enum": [ "uppercase", "lowercase", "capitalize" ], "type": "string" } }, "type": "object", "x-agentic-mermaid-runtime-validator": "architectureVisual" } }, "type": "object", "x-agentic-mermaid-applicable-builtin-families": [ "architecture" ], "x-agentic-mermaid-terminal": "not-applicable", "x-agentic-mermaid-terminal-note": "this option configures graphical architecture rendering" }, "bg": { "default": "#FFFFFF", "description": "Background color or CSS variable.", "type": "string", "x-agentic-mermaid-runtime-validator": "safeCssPaint", "x-agentic-mermaid-terminal": "consumed" }, "border": { "description": "Node and group border color.", "type": "string", "x-agentic-mermaid-runtime-validator": "safeCssPaint", "x-agentic-mermaid-terminal": "consumed" }, "class": { "additionalProperties": false, "description": "Class-diagram rendering controls.", "properties": { "hierarchicalNamespaces": { "default": true, "description": "Nest namespace compounds.", "type": "boolean" } }, "type": "object", "x-agentic-mermaid-applicable-builtin-families": [ "class" ], "x-agentic-mermaid-terminal": "not-applicable", "x-agentic-mermaid-terminal-note": "this option configures graphical class layout" }, "compact": { "default": false, "description": "Compact SVG serialization while preserving agent hooks.", "type": "boolean", "x-agentic-mermaid-terminal": "not-applicable", "x-agentic-mermaid-terminal-note": "compact controls SVG serialization" }, "componentSpacing": { "description": "Spacing between disconnected graph components for compatible extension families; no built-in family currently consumes it.", "minimum": 0, "type": "number", "x-agentic-mermaid-applicable-builtin-families": [], "x-agentic-mermaid-terminal": "not-applicable", "x-agentic-mermaid-terminal-note": "terminal layout has a cell-grid spacing contract" }, "embedFontImport": { "default": false, "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": { "description": "Non-empty namespace for 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.", "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" } ], "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" }, "source": { "description": "Mermaid source.", "type": "string" }, "targetWidth": { "description": "Hard maximum line width in terminal display cells.", "minimum": 1, "type": "integer" }, "useAscii": { "description": "true = ASCII characters, false = Unicode (default).", "type": "boolean" } }, "required": [ "source" ], "type": "object" }, "name": "render_ascii", "outputSchema": null }, { "description": "Rasterize a Mermaid source string to PNG. Returns { ok, png_base64 }.\nHosted rendering uses resvg-wasm with bundled fonts; bytes may differ from the\nlocal napi renderer, so hosted PNG is a convenience surface, not part of the\nbyte-determinism contract. For file/URL artifacts use the local stdio server.", "inputSchema": { "additionalProperties": false, "properties": { "background": { "description": "Portable basic color or hex color painted behind the raster artifact.", "minLength": 1, "pattern": "^\\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*$", "type": "string", "x-agentic-mermaid-receipt": "included", "x-agentic-mermaid-runtime-validator": "portablePngBackground", "x-agentic-mermaid-scope": "portable" }, "fitTo": { "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" }, "options": { "$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.", "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": false, "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": { "description": "Non-empty namespace for 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.", "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" } ], "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" }, "scale": { "default": 2, "description": "Positive output scale used when no fitTo constraint is supplied.", "exclusiveMinimum": 0, "type": "number", "x-agentic-mermaid-receipt": "included", "x-agentic-mermaid-scope": "portable" }, "source": { "description": "Mermaid source.", "type": "string" } }, "required": [ "source" ], "type": "object" }, "name": "render_png", "outputSchema": null }, { "description": "Render a Mermaid source string to themeable SVG. Returns { ok, svg }.\nLayout is deterministic: identical input produces identical geometry. The hosted\nboundary forces security:'strict' and embedFontImport:false.", "inputSchema": { "additionalProperties": false, "properties": { "options": { "$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. Styles accept a registered Look (crisp, hand-drawn, excalidraw, pen-and-ink, freehand, watercolor, blueprint, look:tufte, accessible-high-contrast, patent-drawing, status-dashboard, ops-schematic, chalkboard, risograph, architectural-plan, publication-figure), Palette (paper, dusk, zinc-light, zinc-dark, tokyo-night, tokyo-night-storm, tokyo-night-light, catppuccin-mocha, catppuccin-latte, nord, nord-light, dracula, github-light, github-dark, solarized-light, solarized-dark, one-dark, salmon, salmon-dark, tufte-dark), inline record, or left-to-right stack.", "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": false, "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": { "description": "Non-empty namespace for 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.", "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" } ], "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" }, "source": { "description": "Mermaid source.", "type": "string" } }, "required": [ "source" ], "type": "object" }, "name": "render_svg", "outputSchema": null }, { "description": "Parse and verify a Mermaid diagram without rendering it. Returns\n{ ok, family, summary, warnings, layout: { bounds, nodes, edges } } for valid\ndiagrams and { ok: false, errors } for parse failures. `family` is the detected\ndiagram family and `summary` a one-line description — check them: ok:true only\nmeans the diagram is structurally valid, not that it is the kind you intended.\nWarnings use the layout-rubric codes.", "inputSchema": { "additionalProperties": false, "properties": { "source": { "description": "Mermaid source.", "type": "string" } }, "required": [ "source" ], "type": "object" }, "name": "verify", "outputSchema": null } ] }
Verify it yourselfcurl -s https://api.teppi.xyz/v1/evidence/sha256:3543495bb5e1d1358d1ac2f78c09c68a54b0377c462f26b68b832db550e48cad | sha256sum