{
    "$schema": "http://json-schema.org/draft-04/schema#",
    "type": "object",
    "properties": {
        "attributes": {
            "type": "array",
            "items": {
                "type": "object",
                "properties": {
                    "id": {
                        "type": "string"
                    },
                    "min": {
                        "type": "integer"
                    },
                    "max": {
                        "type": "integer"
                    },
                    "featureId": {
                        "type": "string"
                    }
                },
                "required": [
                    "id",
                    "min",
                    "max",
                    "featureId"
                ]
            }
        },
        "contexts": {
            "type": "array",
            "items": {
                "type": "object",
                "properties": {
                    "id": {
                        "type": "string"
                    },
                    "min": {
                        "type": "integer"
                    },
                    "max": {
                        "type": "integer"
                    }
                },
                "required": [
                    "id",
                    "min",
                    "max"
                ]
            }
        },
        "configuration": {
            "type": "object",
            "properties": {
                "selectedFeatures": {
                    "type": "array",
                    "items": {
                        "type": "string"
                    }
                },
                "attribute_values": {
                    "type": "array",
                    "items": {
                        "type": "object",
                        "properties": {
                            "id": {
                                "type": "string"
                            },
                            "value": {
                                "type": "integer"
                            }
                        },
                        "required": [
                            "id",
                            "value"
                        ]
                    }
                },
                "context_values": {
                    "type": "array",
                    "items": {
                        "type": "object",
                        "properties": {
                            "id": {
                                "type": "string"
                            },
                            "value": {
                                "type": "integer"
                            }
                        },
                        "required": [
                            "id",
                            "value"
                        ]
                    }
                }
            },
            "required": [
                "selectedFeatures",
                "attribute_values",
                "context_values"
            ]
        },
        "constraints": {
            "type": "array",
            "items": {
                "type": "string"
            }
        },
        "preferences": {
            "type": "array",
            "items": {
                "type": "string"
            }
        }
    },
    "required": [
        "attributes",
        "contexts",
        "configuration",
        "constraints",
        "preferences"
    ]
}