{
    "$schema": "http://json-schema.org/draft-04/schema#",
    "title": "",
    "description": "",
    "definitions": {
        "PropertySpecification": {
            "oneOf": [
                {
                    "$ref": "#/definitions/TextPropertySpecification"
                },
                {
                    "$ref": "#/definitions/NumberPropertySpecification"
                },
                {
                    "$ref": "#/definitions/EnumPropertySpecification"
                }
            ]
        },
        "TextPropertySpecification": {
            "type": "object",
            "properties": {
                "type": {
                    "type": "string"
                },
                "enum": {
                    "type": "array"
                }
            }
        },
        "NumberPropertySpecification": {
            "type": "object",
            "properties": {
                "type": {
                    "type": "string"
                },
                "enum": {
                    "type": "array"
                }
            }
        },
        "EnumPropertySpecification": {
            "type": "object",
            "properties": {
                "type": {
                    "type": "string"
                },
                "enum": {
                    "type": "array"
                }
            }
        }
    },
    "properties": {
        "PropertySpecification": {
            "$ref": "#/definitions/PropertySpecification"
        },
        "TextPropertySpecification": {
            "$ref": "#/definitions/TextPropertySpecification"
        },
        "NumberPropertySpecification": {
            "$ref": "#/definitions/NumberPropertySpecification"
        },
        "EnumPropertySpecification": {
            "$ref": "#/definitions/EnumPropertySpecification"
        }
    },
    "required": [
        "PropertySpecification",
        "TextPropertySpecification",
        "NumberPropertySpecification",
        "EnumPropertySpecification"
    ]
}