{
    "id": "FM_Connector",
    "name": "FM_Connector",
    "features": {
        "Asynchronous": {
            "name": "Asynchronous",
            "optional": true,
            "type": "XOR",
            "note": ""
        },
        "Blocking": {
            "name": "Blocking",
            "optional": true,
            "type": "FEATURE",
            "note": ""
        },
        "CAN": {
            "name": "CAN",
            "optional": true,
            "type": "FEATURE",
            "note": ""
        },
        "Callback": {
            "name": "Callback",
            "optional": true,
            "type": "FEATURE",
            "note": ""
        },
        "Client/Server": {
            "name": "Client/Server",
            "optional": true,
            "type": "XOR",
            "note": ""
        },
        "Connector": {
            "name": "Connector",
            "optional": true,
            "type": "FEATURE",
            "note": ""
        },
        "Local": {
            "name": "Local",
            "optional": true,
            "type": "FEATURE",
            "note": ""
        },
        "Message-Based": {
            "name": "Message-Based",
            "optional": true,
            "type": "FEATURE",
            "note": ""
        },
        "Non-Queued": {
            "name": "Non-Queued",
            "optional": true,
            "type": "FEATURE",
            "note": ""
        },
        "Non-blocking": {
            "name": "Non-blocking",
            "optional": true,
            "type": "FEATURE",
            "note": ""
        },
        "Paradigm": {
            "name": "Paradigm",
            "optional": false,
            "type": "XOR",
            "note": ""
        },
        "Polling": {
            "name": "Polling",
            "optional": true,
            "type": "XOR",
            "note": ""
        },
        "Pull": {
            "name": "Pull",
            "optional": true,
            "type": "OR",
            "note": ""
        },
        "Push": {
            "name": "Push",
            "optional": true,
            "type": "FEATURE",
            "note": ""
        },
        "Queued": {
            "name": "Queued",
            "optional": true,
            "type": "FEATURE",
            "note": ""
        },
        "Receiver": {
            "name": "Receiver",
            "optional": false,
            "type": "XOR",
            "note": ""
        },
        "Sender": {
            "name": "Sender",
            "optional": false,
            "type": "FEATURE",
            "note": ""
        },
        "Synchronous": {
            "name": "Synchronous",
            "optional": true,
            "type": "FEATURE",
            "note": ""
        },
        "Technology": {
            "name": "Technology",
            "optional": false,
            "type": "XOR",
            "note": ""
        },
        "Timeout": {
            "name": "Timeout",
            "optional": true,
            "type": "FEATURE",
            "note": ""
        }
    },
    "tree": {
        "id": "Connector",
        "children": [
            {
                "id": "Paradigm",
                "children": [
                    {
                        "id": "\"Client/Server\"",
                        "children": [
                            {
                                "id": "Asynchronous",
                                "children": [
                                    {
                                        "id": "Callback"
                                    },
                                    {
                                        "id": "Polling",
                                        "children": [
                                            {
                                                "id": "Blocking"
                                            },
                                            {
                                                "id": "\"Non-blocking\""
                                            }
                                        ]
                                    }
                                ]
                            },
                            {
                                "id": "Synchronous",
                                "children": [
                                    {
                                        "id": "Timeout"
                                    }
                                ]
                            }
                        ]
                    },
                    {
                        "id": "\"Message-Based\"",
                        "children": [
                            {
                                "id": "Receiver",
                                "children": [
                                    {
                                        "id": "Pull",
                                        "children": [
                                            {
                                                "id": "\"Non-Queued\""
                                            },
                                            {
                                                "id": "Queued"
                                            }
                                        ]
                                    },
                                    {
                                        "id": "Push"
                                    }
                                ]
                            },
                            {
                                "id": "Sender"
                            }
                        ]
                    }
                ]
            },
            {
                "id": "Technology",
                "children": [
                    {
                        "id": "CAN"
                    },
                    {
                        "id": "Local"
                    }
                ]
            }
        ]
    },
    "constraints": {}
}