{ "id": "FM_Chat", "name": "FM_Chat", "features": { "Audio": { "name": "Audio", "optional": true, "type": "FEATURE", "note": "" }, "Chat": { "name": "Chat", "optional": true, "type": "FEATURE", "note": "" }, "Connection": { "name": "Connection", "optional": false, "type": "XOR", "note": "" }, "Data Storage": { "name": "Data Storage", "optional": true, "type": "FEATURE", "note": "" }, "Media Player": { "name": "Media Player", "optional": true, "type": "FEATURE", "note": "" }, "Messages": { "name": "Messages", "optional": false, "type": "OR", "note": "" }, "Peer 2 Peer": { "name": "Peer 2 Peer", "optional": true, "type": "FEATURE", "note": "" }, "Server": { "name": "Server", "optional": true, "type": "FEATURE", "note": "" }, "Text": { "name": "Text", "optional": true, "type": "FEATURE", "note": "" }, "Video": { "name": "Video", "optional": true, "type": "FEATURE", "note": "" } }, "tree": { "id": "Chat", "children": [ { "id": "Connection", "children": [ { "id": "\"Peer 2 Peer\"" }, { "id": "Server" } ] }, { "id": "\"Data Storage\"" }, { "id": "\"Media Player\"" }, { "id": "Messages", "children": [ { "id": "Audio" }, { "id": "Text" }, { "id": "Video" } ] } ] }, "constraints": { "Constraint 0": { "type": "ImpliesTerm", "operands": [ { "type": "FeatureTerm", "operands": [ "Server" ] }, { "type": "FeatureTerm", "operands": [ "\"Data Storage\"" ] } ] }, "Constraint 1": { "type": "ImpliesTerm", "operands": [ { "type": "OrTerm", "operands": [ { "type": "FeatureTerm", "operands": [ "Video" ] }, { "type": "FeatureTerm", "operands": [ "Audio" ] } ] }, { "type": "FeatureTerm", "operands": [ "\"Media Player\"" ] } ] } } }