{
    "description": "Control network modes",
    "properties": {
        "configuration": {
            "_id": "configuration",
            "description": "",
            "format": "table",
            "properties": {
                "hostname": {
                    "_format": "simpletext",
                    "_id": "hostname",
                    "default": "raspberrypi",
                    "description": "The hostname of this server, usually your boatname",
                    "minLength": 4,
                    "options": {
                        "input_width": "200px"
                    },
                    "title": "Hostname",
                    "type": "string"
                },
                "mode": {
                    "_id": "mode",
                    "default": "HOME",
                    "description": "Hotspot starts a private wifi hotspot, Home tries to connect to an existing wifi network.",
                    "enum": [
                        "HOME",
                        "HOTSPOT"
                    ],
                    "minLength": 1,
                    "title": "Network Mode",
                    "type": "string"
                },
                "password": {
                    "_id": "password",
                    "default": "raspberrypi",
                    "description": "The password for the hotspot",
                    "minLength": 8,
                    "options": {
                        "input_width": "200px"
                    },
                    "title": "Hotspot Password",
                    "type": "string"
                },
                "roam": {
                    "_id": "roam",
                    "description": "Define hotspots to connect with",
                    "options": {
                        "remove_empty_properties": true
                    },
                    "properties": {
                        "networks": {
                            "_id": "networks",
                            "description": "Auto-connect to these networks when in range. <br/>SSID: The hotspot name, eg myHomeWifi,<br/>Passphrase: the access passphrase",
                            "format": "table",
                            "items": {
                                "_id": "1",
                                "description": "The wifi network to auto-connect",
                                "format": "grid",
                                "properties": {
                                    "password": {
                                        "_id": "password",
                                        "minLength": 1,
                                        "options": {
                                            "input_width": "200px"
                                        },
                                        "title": "WPA2 Passphrase",
                                        "type": "string"
                                    },
                                    "ssid": {
                                        "_format": "simpletext",
                                        "_id": "ssid",
                                        "minLength": 1,
                                        "options": {
                                            "input_width": "200px"
                                        },
                                        "title": "SSID",
                                        "type": "string"
                                    }
                                },
                                "required": [
                                    "ssid",
                                    "password"
                                ],
                                "title": "Hotspot",
                                "type": "object"
                            },
                            "required": [
                                "networks"
                            ],
                            "title": "Networks",
                            "type": "array",
                            "_uniqueItems": true
                        }
                    },
                    "title": "Roam",
                    "type": "object"
                },
                "ssid": {
                    "_format": "simpletext",
                    "_id": "ssid",
                    "default": "freeboard",
                    "description": "The hotspot name",
                    "minLength": 4,
                    "options": {
                        "input_width": "200px"
                    },
                    "title": "Hotspot Name",
                    "type": "string"
                }
            },
            "required": [
                "mode",
                "hostname",
                "ssid",
                "password",
                "roam"
            ],
            "title": "Configuration",
            "type": "object"
        }
    },
    "required": [
        "configuration"
    ],
    "title": "Network Configuration",
    "type": "object"
}