{
    "$schema": "http://json-schema.org/draft-04/schema#",
    "type": "object",
    "properties": {
        "version": {
            "type": "integer"
        },
        "id": {
            "type": "string"
        },
        "ports": {
            "type": "array",
            "items": {
                "title": "port",
                "type": "object",
                "properties": {
                    "pin": {
                        "type": "integer"
                    },
                    "label": {
                        "type": "string"
                    },
                    "defaultDuration": {
                        "type": "integer"
                    }
                }
            }
        },
        "switches": {
            "type": "array",
            "items": {
                "title": "switch",
                "type": "object",
                "properties": {
                    "label": {
                        "type": "string"
                    },
                    "enabled": {
                        "type": "boolean"
                    },
                    "size": {
                        "type": "integer"
                    },
                    "states": {
                        "type": "array",
                        "items": {
                            "title": "state",
                            "type": "object",
                            "properties": {
                                "label": {
                                    "type": "string"
                                },
                                "portStates": {
                                    "type": "object",
                                    "properties": {}
                                },
                                "otherSwitchEnables": {
                                    "type": "object",
                                    "properties": {}
                                },
                                "otherSwitchStates": {
                                    "type": "object",
                                    "properties": {}
                                }
                            }
                        }
                    }
                }
            }
        },
        "sensors": {
            "type": "array",
            "items": {}
        }
    },
    "required": [
        "version",
        "id",
        "ports",
        "switches",
        "sensors"
    ]
}