{
  "version": "0.1",
  "nodes": {
    "1": { "id": 1, "name": "Base Cube", "op": { "type": "Cube", "size": { "x": 50, "y": 30, "z": 5 } } },
    "2": { "id": 2, "name": "Base Positioned", "op": { "type": "Translate", "child": 1, "offset": { "x": -25, "y": -15, "z": 0 } } },

    "3": { "id": 3, "name": "Fin1 Cube", "op": { "type": "Cube", "size": { "x": 50, "y": 3, "z": 15 } } },
    "4": { "id": 4, "name": "Fin1 Positioned (y=-10)", "op": { "type": "Translate", "child": 3, "offset": { "x": -25, "y": -11.5, "z": 5 } } },

    "5": { "id": 5, "name": "Fin2 Cube", "op": { "type": "Cube", "size": { "x": 50, "y": 3, "z": 15 } } },
    "6": { "id": 6, "name": "Fin2 Positioned (y=0)", "op": { "type": "Translate", "child": 5, "offset": { "x": -25, "y": -1.5, "z": 5 } } },

    "7": { "id": 7, "name": "Fin3 Cube", "op": { "type": "Cube", "size": { "x": 50, "y": 3, "z": 15 } } },
    "8": { "id": 8, "name": "Fin3 Positioned (y=10)", "op": { "type": "Translate", "child": 7, "offset": { "x": -25, "y": 8.5, "z": 5 } } },

    "9": { "id": 9, "name": "Base ∪ Fin1", "op": { "type": "Union", "left": 2, "right": 4 } },
    "10": { "id": 10, "name": "Add Fin2", "op": { "type": "Union", "left": 9, "right": 6 } },
    "11": { "id": 11, "name": "Add Fin3", "op": { "type": "Union", "left": 10, "right": 8 } }
  },
  "materials": {},
  "part_materials": {},
  "roots": [{ "root": 11, "material": "default" }]
}