Also, if I ware you, wouldn't fix input and output nodes, instead I would add input and output nodes into node menu and let they be free on canvas
But I like four things in your approach: collapsible components/lists, typing/defining input values of nodes directly on canvas, adding new variables, and sub-graphs
See how real nodes are: https://github.com/nortikin/sverchok/pull/3284