{ "name": "Calculator", "display": { "scale": 0.6, "arrowHeight": 15, "arrowWidth": 6, "layout": "vertical" }, "edgeData": { "Order": { "desc": "First or second operand? (1 or 2)", "type": "number", "validator": "NumberIsOneOrTwo", "value": 1, "start": ["Terminals.*", "Operations.*"], "end": ["Operations.*"] } }, "types": [{ "type": "Terminals", "width": 100, "height": 100, "padding": 0, "subtypes": [{ "type": "Number", "desc": "Number", "view": " Number ", "nodeData": { "Value": { "desc": "Value", "type": "number", "value": 0 } }, "constraints": { "incoming": { "range": [0,0] }, "outgoing": { "range": [1,1], "types": { "Operations.*": [1,1] } } } }] }, { "type": "Operations", "width": 100, "height": 100, "padding": 40, "constraints": { "incoming": { "range": [2,2], "types": { "Terminals.Number": [0,2], "Operations.*": [0,2] } }, "outgoing": { "range": [1,1], "types": { "Operations.*": [0,1], "Output": [0,1] } } }, "subtypes": [{ "type": "Addition", "desc": "Addition", "view": " " },{ "type": "Subtraction", "desc": "Subtraction", "view": " " },{ "type": "Multiplication", "desc": "Multiplication", "view": " " },{ "type": "Division", "desc": "Division", "view": " " }] }, { "type": "Output", "desc": "Output", "width": 100, "height": 100, "padding": 40, "view": " ", "constraints": { "incoming": { "range": [1,1], "types": { "Operations.*": [1,1] } }, "outgoing": { "range": [0,0] } } } ] }