OptionalcolorOptionaledge_Per-edge override of scheme [LayoutOpts::edge_routing].
OptionallabelLabel chrome: id / list / {id, pos?} / {above,below,left,right}.
Hosts should measure each placement’s text (or mol viewport) and pass
those boxes to the layout engine with the placement pos (edge side).
OptionalroleOptional semantic role (e.g. enzyme) — not drawn by default.
Reactant mol id(s) — "a" or ["a","b"] (alias: source).
Optionalstroke_Product mol id(s) — "c" or ["c","d"] (alias: target).
Wire discriminant — required so untagged [Node] does not absorb edges as mols.
Edge node — a reaction / network link between mol ids.
[
Self::sources] / [Self::targets] are one or many mol ids (A+B → C+D). Label chrome refs sibling text/mol nodes via [Self::label].