{
  "version": "xarts.graph-relations/1",
  "family": "graph-relations",
  "operation": "relational-tree",
  "provenance": {
    "legacyId": "dendrogram"
  },
  "document": {
    "header": {
      "title": "Tech Skills Taxonomy",
      "subtitle": "Software engineering skills grouped into frontend, backend, data and DevOps"
    },
    "footer": {
      "source": "xarts · demo data",
      "notes": "Illustrative data to explore the chart and replace with your own."
    },
    "spacing": {
      "horizontalPadding": 24,
      "topPadding": 22,
      "bottomPadding": 24,
      "minimumTextGap": 6
    }
  },
  "output": {
    "filename": "dendrogram",
    "embedSpec": true,
    "geometryDecimals": 2
  },
  "presentation": {
    "theme": "anlak",
    "dimensions": {
      "width": 1200,
      "height": 480
    },
    "locale": "en-US",
    "fonts": "reference",
    "surface": "theme",
    "framePadding": 24
  },
  "data": {
    "nodes": [
      {
        "id": "node-0",
        "parentId": null,
        "label": "Software Engineering",
        "role": "Root",
        "level": 0
      },
      {
        "id": "node-1",
        "parentId": "node-0",
        "label": "Frontend",
        "role": "Software Engineering",
        "level": 1
      },
      {
        "id": "node-2",
        "parentId": "node-1",
        "label": "React",
        "role": "Frontend",
        "level": 2
      },
      {
        "id": "node-3",
        "parentId": "node-1",
        "label": "Vue",
        "role": "Frontend",
        "level": 2
      },
      {
        "id": "node-4",
        "parentId": "node-1",
        "label": "Angular",
        "role": "Frontend",
        "level": 2
      },
      {
        "id": "node-5",
        "parentId": "node-1",
        "label": "Svelte",
        "role": "Frontend",
        "level": 2
      },
      {
        "id": "node-6",
        "parentId": "node-0",
        "label": "Backend",
        "role": "Software Engineering",
        "level": 1
      },
      {
        "id": "node-7",
        "parentId": "node-6",
        "label": "Node.js",
        "role": "Backend",
        "level": 2
      },
      {
        "id": "node-8",
        "parentId": "node-6",
        "label": "Python",
        "role": "Backend",
        "level": 2
      },
      {
        "id": "node-9",
        "parentId": "node-6",
        "label": "Go",
        "role": "Backend",
        "level": 2
      },
      {
        "id": "node-10",
        "parentId": "node-6",
        "label": "Rust",
        "role": "Backend",
        "level": 2
      },
      {
        "id": "node-11",
        "parentId": "node-0",
        "label": "Data",
        "role": "Software Engineering",
        "level": 1
      },
      {
        "id": "node-12",
        "parentId": "node-11",
        "label": "SQL",
        "role": "Data",
        "level": 2
      },
      {
        "id": "node-13",
        "parentId": "node-11",
        "label": "Spark",
        "role": "Data",
        "level": 2
      },
      {
        "id": "node-14",
        "parentId": "node-11",
        "label": "Pandas",
        "role": "Data",
        "level": 2
      },
      {
        "id": "node-15",
        "parentId": "node-11",
        "label": "R",
        "role": "Data",
        "level": 2
      },
      {
        "id": "node-16",
        "parentId": "node-0",
        "label": "DevOps",
        "role": "Software Engineering",
        "level": 1
      },
      {
        "id": "node-17",
        "parentId": "node-16",
        "label": "Docker",
        "role": "DevOps",
        "level": 2
      },
      {
        "id": "node-18",
        "parentId": "node-16",
        "label": "K8s",
        "role": "DevOps",
        "level": 2
      },
      {
        "id": "node-19",
        "parentId": "node-16",
        "label": "Terraform",
        "role": "DevOps",
        "level": 2
      },
      {
        "id": "node-20",
        "parentId": "node-16",
        "label": "AWS",
        "role": "DevOps",
        "level": 2
      }
    ]
  },
  "calculation": {
    "direction": "parent-to-child",
    "roots": "single",
    "levels": "validate-depth",
    "siblingOrder": "input",
    "positionMeaning": "hierarchy-only"
  },
  "layout": {
    "view": "layered-tree",
    "algorithm": "buchheim-tidy-tree",
    "tidy": {
      "root": {
        "radius": 8,
        "color": "accent"
      },
      "branch": {
        "radius": 6,
        "color": "blue"
      },
      "leaf": {
        "radius": 4,
        "color": "teal"
      },
      "branchLabel": {
        "color": "textPrimary",
        "fontSize": 10,
        "fontWeight": 600
      },
      "leafLabel": {
        "color": "textSecondary",
        "fontSize": 10,
        "fontWeight": 400
      },
      "branchLabelGap": 6,
      "leafLabelGap": 8,
      "leafRotation": -50,
      "linkColor": "border",
      "linkWidth": 1.5
    },
    "margin": {
      "top": 48,
      "right": 20,
      "bottom": 100,
      "left": 20
    },
    "labelSlotRatio": 1,
    "capacity": "preserve-reference"
  },
  "marks": {
    "nodes": {
      "radius": 4,
      "stroke": "surface",
      "strokeWidth": 0,
      "levelColors": [
        "series.blue"
      ],
      "hoverRadiusFactor": 1.5
    },
    "edges": {
      "color": "border",
      "width": 1.5,
      "opacity": 1,
      "curve": "vertical-cubic"
    }
  },
  "labels": {
    "name": {
      "fontSize": 10,
      "fontWeight": 400,
      "color": "textPrimary",
      "gap": 6,
      "lineHeight": 14,
      "wrap": "none"
    },
    "role": {
      "fontSize": 10,
      "fontWeight": 400,
      "color": "textPrimary",
      "gap": 6,
      "lineHeight": 14,
      "wrap": "none"
    }
  },
  "interaction": {
    "hover": true,
    "levelLabel": "Depth"
  },
  "annotations": []
}
