{
    "$schema": "http://json-schema.org/draft-06/schema#",
    "type": "object",
    "propertyNames": {
        "enum": [
            "$schema",
            "GameServers",
            "Service"
        ]
    },
    "properties": {
        "$schema": {
            "type": "string"
        },
        "GameServers": {
            "type": "array",
            "title": "游戏服务器域名集合",
            "description": "例如[\"https://oppo.test1.com\",\"https://oppo.test2.com\"]",
            "items": {
                "type": "string",
                "pattern": "(https?)://[-A-Za-z0-9+&@#/%?=~_|!:,.;]+[-A-Za-z0-9+&@#/%=~_|]",
                "examples": [
                    "http://",
                    "https://"
                ]
            },
            "uniqueItems": true
        },
        "Service": {
            "type": "object",
            "title": "微信服务",
            "description": "TODO: 当前只支持满足特定条件的，部分登录服务",
            "propertyNames": {
                "enum": [
                    "Login"
                ]
            },
            "properties": {
                "Login": {
                    "title": "登录服务",
                    "propertyNames": {
                        "enum": [
                            "auth.checkSessionKey",
                            "auth.code2Session",
                            "ResetUserSessionKey"
                        ]
                    },
                    "properties": {
                        "auth.checkSessionKey": {
                            "title": "校验登录态session_key合法性",
                            "description": "https://developers.weixin.qq.com/minigame/dev/api-backend/open-api/login/auth.checkSessionKey.html",
                            "type": "object",
                            "propertyNames": {
                                "enum": ["url"]
                            },
                            "required": ["url"],
                            "properties": {
                                "url": {
                                    "type": "string",
                                    "title": "请求url",
                                    "description": "例如/api/checkSessionKey",
                                    "pattern": "^/.+"
                                }
                            },
                            "additionalProperties": false
                        },
                        "auth.code2Session": {
                            "title": "登录凭证校验",
                            "description": "https://developers.weixin.qq.com/minigame/dev/api-backend/open-api/login/auth.code2Session.html",
                            "type": "object",
                            "propertyNames": {
                                "enum": ["url"]
                            },
                            "required": ["url"],
                            "properties": {
                                "url": {
                                    "type": "string",
                                    "title": "请求url",
                                    "description": "例如/api/code2Session",
                                    "pattern": "^/.+"
                                }
                            },
                            "additionalProperties": false
                        },
                        "ResetUserSessionKey": {
                            "title": "重置登录态",
                            "description": "https://developers.weixin.qq.com/minigame/dev/api-backend/open-api/login/auth.ResetUserSessionKey.html",
                            "type": "object",
                            "propertyNames": {
                                "enum": ["url"]
                            },
                            "required": ["url"],
                            "properties": {
                                "url": {
                                    "type": "string",
                                    "title": "请求url",
                                    "description": "例如/api/ResetUserSessionKey",
                                    "pattern": "^/.+"
                                }
                            },
                            "additionalProperties": false
                        }
                    }
                }
            },
            "additionalProperties": false
        }
    },
    "additionalProperties": false
}