toJsGraph method
Convert to JSON string for ELK layout serialization.
Hyperedges are expanded on-the-fly during LayoutNode.toJson — no
separate expansion or filtering step is needed.
Implementation
String toJsGraph() {
// Phase 1: Temporarily move partial children into visible lists.
_applyPartialExpansions(root);
// Phase 2: Ensure all nodes have sizes calculated.
_prepareNodeSizes(root);
// Phase 3: Serialize (edge expansion + filtering happen inside toJson).
final json = jsonEncode(root.toJson());
// Phase 4: Restore original child/hidden-child lists.
_restorePartialExpansions(root);
return json;
}