function digraph(hierarchy) {
const id = new Map(hierarchy.descendants().map((node, i) => [node, i]));
return dot`digraph {
rankdir = TB;
node [fontname="var(--sans-serif)" fontsize=12];
edge [fontname="var(--sans-serif)" fontsize=12];
${hierarchy.descendants().map(node => `"${id.get(node)}" [label="${node.label}"]`).join("; ")}
${hierarchy.links().map(({source, target}) => `"${id.get(source)}" -> "${id.get(target)}"`).join("; ")}
}`;
}