--- /dev/null
+digraph spv_detail {
+    "visualization" -> "extension" [label="?"];
+    "visualization" -> "userSource";
+    "visualization" -> "sourceVariable" [label="*"];
+    "visualization" -> "derivedVariable" [label="*"];
+    "visualization" -> "graph";
+    "visualization" -> "labelFrame" [label="+"];
+    "visualization" -> "container" [label="?"];
+    "visualization" -> "style" [label="+"];
+    "visualization" -> "layerController" [label="?"];
+
+    "sourceVariable" -> "extension" [label="*"];
+    "sourceVariable" -> "format" [label="?"];
+    "sourceVariable" -> "stringFormat" [label="?"];
+
+    "derivedVariable" -> "extension" [label="*"];
+    "derivedVariable" -> "format" [label="?"];
+    "derivedVariable" -> "stringFormat" [label="?"];
+    "derivedVariable" -> "valueMapEntry" [label="*"];
+
+    "format" -> "affix" [label="*"];
+    "format" -> "relabel" [label="?"];
+
+    "dateTimeFormat" -> "affix" [label="?"];
+
+    "stringFormat" -> "affix" [label="*"];
+    "stringFormat" -> "relabel" [label="?"];
+
+    "graph" -> "location" [label="+"];
+    "graph" -> "coordinates";
+    "graph" -> "faceting";
+    "graph" -> "facetLayout";
+    "graph" -> "interval";
+
+    "faceting" -> "cross";
+    "faceting" -> "layer" [label="*"];
+
+    "interval" -> "labeling";
+    "interval" -> "footnotes" [label="?"];
+
+    "labeling" -> "format" [label="*"];
+    "labeling" -> "formatting" [label="*"];
+    "labeling" -> "footnotes" [label="*"];
+
+    "formatting" -> "formatMapping" [label="*"];
+
+    "formatMapping" -> "format";
+
+    "footnotes" -> "footnoteMapping" [label="+"];
+
+    "cross" -> "nest" [label="+"];
+
+    "nest" -> "variableReference" [label="+"];
+
+    "facetLayout" -> "tableLayout";
+    "facetLayout" -> "facetLevel" [label="+"];
+    "facetLayout" -> "setCellProperties" [label="*"];
+    "facetLevel" -> "axis";
+
+    "axis" -> "majorTicks";
+
+    "label" -> "descriptionGroup" [label="*"];
+    "label" -> "text" [label="*"];
+
+    "majorTicks" -> "gridline" [label="?"];
+
+    "descriptionGroup" -> "description" [label="+"];
+    "descriptionGroup" -> "text";
+
+    "setCellProperties" -> "setMetadata";
+    "setCellProperties" -> "setStyle" [label="*"];
+    "setCellProperties" -> "setFormat" [label="+"];
+    "setCellProperties" -> "union" [label="?"];
+    
+    "setFormat" -> "dateTimeFormat" [label="?"];
+    "setFormat" -> "format" [label="?"];
+    "setFormat" -> "numberFormat" [label="?"];
+    "setFormat" -> "stringFormat" [label="*"];
+
+    "labelFrame" -> "location" [label="+"];
+    "labelFrame" -> "label";
+    "labelFrame" -> "paragraph" [label="?"];
+
+    "container" -> "extension" [label="?"];
+    "container" -> "location" [label="+"];
+    "container" -> "labelFrame" [label="+"];
+
+    "union" -> "intersect" [label="+"];
+
+    "intersect" -> "intersectWhere" [label="?"];
+    "intersect" -> "where" [label="*"];
+}