I'm making a tool to help me organize and edit arbitrary data--sort of like a visual JSON, with exported nodepath types used to allow data nodes to reference each other in an auto-updating fashion when nodes are moved.
Each node has a single piece of data whose value is displayed in the editor using a RichTextLabel. A node with children is treated as a key, and one without is treated as a value. Editing the node's name, BBcode text, or data in the inspector updates, the other two variables to match. Moving thing's around in the editor won't break any references because they're handled by the Nodepath type.
Right now, I'm representing the "data" variable as an array of one element so that I can edit it's type in the inspector. Get the nodes layed out nice is a bit janky, but I think I'm going to prefer this workflow to JSON.