Compatibility contract
Mermaid Native implements bounded, tested vertical slices across the 32-family registry. It does not claim full Mermaid parity for any family unless the registry explicitly says so.
What support means
A supported slice includes all of the following:
- source parsing with typed AST output;
- source-located diagnostics for rejected input;
- deterministic layout and SVG rendering;
- positive and negative fixtures;
- a right-cause regression that fails when the production path is removed.
Unsupported syntax fails closed. Consumers must not treat a failure as an empty diagram or silently fall back to a different family.
Current breadth
The current registry contains 32 families with partial vertical slices, including:
- Structure: flowchart, class, state, entity relationship, block, architecture, C4, use case, and tree view;
- Process: sequence, gantt, timeline, user journey, kanban, event modeling, swimlanes, and ZenUML;
- Analysis: requirement, mindmap, Ishikawa, Cynefin, Wardley, quadrant, and Venn;
- Data: pie, XY, radar, sankey, treemap, packet, git graph, and railroad.
See the generated diagram family matrix for the current machine-readable status of every family.
Compatibility boundaries
Family names alone are not evidence of full support. Configuration directives, theming, interactivity, accessibility metadata, alternate operators, nesting, and advanced syntax remain family-specific. Read the notes in compatibility/diagram-families.csv before depending on a syntax feature.
The compatibility corpus is pinned in compatibility/upstreams.lock. Upstream Mermaid is the syntax reference; external implementations are used only as attributed implementation references and fixtures.