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 yourself
curl -s https://api.teppi.xyz/v1/evidence/sha256:3543495bb5e1d1358d1ac2f78c09c68a54b0377c462f26b68b832db550e48cad | sha256sum