Gap
The viewer sets only MarkerType.ArrowClosed by default (confirmed in flow.tsx); a per-edge markerEnd override exists but there is no library of edge-end decorations. ER, UML, and BPMN are all unrenderable natively as a result:
- ER crow's-foot — each end carries a (modality, cardinality) pair:
||, o|, }|, }o (Creately). This is the missing half of our otherwise-good entity node.
- UML — association, aggregation (hollow ◇), composition (filled ◆), generalization (hollow ▷), realization (dashed + hollow ▷) (Visual Paradigm).
- BPMN message flow — dashed line + open-circle origin + open arrowhead.
- Plus open arrow, filled/hollow diamond, circle.
Proposal
- An edge
marker enum (start + end) covering the set above, rendered as SVG marker defs.
dash/dot edge style knob surfaced as a recipe option.
- Optional
sourceLabel / targetLabel end-labels (for multiplicity 0..1/1..*, protocols, roles) — today every edge has one mid-label only.
Surface / effort
Viewer only (marker SVG set + edge style passthrough + recipe knobs). M. Roughly doubles the diagram families we can render natively (ER + UML class + BPMN message-flow).
Part of the external-flowchart parity audit (see tracking epic).
Gap
The viewer sets only
MarkerType.ArrowClosedby default (confirmed inflow.tsx); a per-edgemarkerEndoverride exists but there is no library of edge-end decorations. ER, UML, and BPMN are all unrenderable natively as a result:||,o|,}|,}o(Creately). This is the missing half of our otherwise-goodentitynode.Proposal
markerenum (start + end) covering the set above, rendered as SVG marker defs.dash/dotedge style knob surfaced as a recipe option.sourceLabel/targetLabelend-labels (for multiplicity0..1/1..*, protocols, roles) — today every edge has one mid-label only.Surface / effort
Viewer only (marker SVG set + edge style passthrough + recipe knobs). M. Roughly doubles the diagram families we can render natively (ER + UML class + BPMN message-flow).
Part of the external-flowchart parity audit (see tracking epic).