{ "$schema": "https://json-schema.org/draft/2020-12/schema", "$id": "https://raw.githubusercontent.com/GameServerManagers/LinuxGSM/master/lgsm/data/servers.schema.json", "title": "LinuxGSM server metadata", "type": "object", "required": ["schemaVersion", "servers"], "additionalProperties": false, "properties": { "$schema": { "type": "string" }, "schemaVersion": { "const": 1 }, "servers": { "type": "object", "propertyNames": { "pattern": "^[a-z0-9]+server$" }, "additionalProperties": { "$ref": "#/$defs/server" } } }, "$defs": { "server": { "type": "object", "required": ["ports"], "additionalProperties": false, "properties": { "ports": { "type": "array", "items": { "$ref": "#/$defs/port" } } } }, "port": { "type": "object", "required": ["label", "variable", "default", "protocols"], "additionalProperties": false, "properties": { "label": { "type": "string", "minLength": 1 }, "variable": { "type": "string", "pattern": "^[a-z0-9]+$" }, "default": { "oneOf": [ { "type": "integer", "minimum": 1, "maximum": 65535 }, { "type": "null" } ] }, "protocols": { "type": "array", "minItems": 1, "uniqueItems": true, "items": { "enum": ["tcp", "udp"] } }, "note": { "type": "string", "minLength": 1 } } } } }