This is the data centric design. The goal is to visualize "Springy's simple JSON format", which only includes strings as nodes. Then the loadJSON function should be able to recognize more formats (like colors and custom attributes), but I didn't have time to think about that closely. The one enhancement I immediately see it to use "links" if there are no "edges".