Neat! If you're not familiar with DOT <
https://en.wikipedia.org/wiki/DOT_(graph_description_languag...>, you might find it interesting.
For example, your sample skill tree would just be something like this:
digraph {
"skill A1" -> "skill A2" -> "skill A3" -> "skill A4"
"skill B1" -> "skill B2" -> "skill B3" -> "skill B4"
}
There's a JS-based playground for DOT (and various other graph description languages) at
https://rsms.me/graphviz/