{
    "$schema": "http://json-schema.org/draft-07/schema#",
    "additionalProperties": false,
    "definitions": {
        "MultiResponseStrategy": {
            "enum": [
                "append",
                "auto",
                "concatenate",
                "patch"
            ],
            "type": "string"
        },
        "Record<string,string>": {
            "additionalProperties": false,
            "type": "object"
        },
        "RecursivePartial<ITheme>": {
            "additionalProperties": false,
            "properties": {
                "colors": {
                    "$ref": "#/definitions/RecursivePartial<{black:string;darkGray:string;gray:string;lightGray:string;white:string;green:string;blue:string;rose:string;cerise:string;red:string;orange:string;yellow:string;lightRed:string;darkPurple:string;primary:string;secondary:string;tertiary:string;bg:string;offBg:string;font:string;offFont:string;border:string;offBorder:string;headerBg:string;}>"
                },
                "easing": {
                    "type": "string"
                },
                "editor": {
                    "$ref": "#/definitions/RecursivePartial<{fontFamily:{default:string;};fontSize:number;colors:{comment:string;string:string;number:string;variable:string;keyword:string;atom:string;attribute:string;property:string;punctuation:string;definition:string;builtin:string;cursor:string;};}>"
                },
                "isSystem": {
                    "type": "boolean"
                },
                "shadow": {
                    "$ref": "#/definitions/RecursivePartial<{color:string;opacity:number;}>"
                },
                "type": {
                    "$ref": "#/definitions/RecursivePartial<{fontSize:{base:number;remBase:number;body:number;bodySmaller:number;};fontFamily:{default:string;};}>"
                }
            },
            "type": "object"
        },
        "RecursivePartial<{base:number;remBase:number;body:number;bodySmaller:number;}>": {
            "additionalProperties": false,
            "properties": {
                "base": {
                    "type": "number"
                },
                "body": {
                    "type": "number"
                },
                "bodySmaller": {
                    "type": "number"
                },
                "remBase": {
                    "type": "number"
                }
            },
            "type": "object"
        },
        "RecursivePartial<{black:string;darkGray:string;gray:string;lightGray:string;white:string;green:string;blue:string;rose:string;cerise:string;red:string;orange:string;yellow:string;lightRed:string;darkPurple:string;primary:string;secondary:string;tertiary:string;bg:string;offBg:string;font:string;offFont:string;border:string;offBorder:string;headerBg:string;}>": {
            "additionalProperties": false,
            "properties": {
                "bg": {
                    "type": "string"
                },
                "black": {
                    "type": "string"
                },
                "blue": {
                    "type": "string"
                },
                "border": {
                    "type": "string"
                },
                "cerise": {
                    "type": "string"
                },
                "darkGray": {
                    "type": "string"
                },
                "darkPurple": {
                    "type": "string"
                },
                "font": {
                    "type": "string"
                },
                "gray": {
                    "type": "string"
                },
                "green": {
                    "type": "string"
                },
                "headerBg": {
                    "type": "string"
                },
                "lightGray": {
                    "type": "string"
                },
                "lightRed": {
                    "type": "string"
                },
                "offBg": {
                    "type": "string"
                },
                "offBorder": {
                    "type": "string"
                },
                "offFont": {
                    "type": "string"
                },
                "orange": {
                    "type": "string"
                },
                "primary": {
                    "type": "string"
                },
                "red": {
                    "type": "string"
                },
                "rose": {
                    "type": "string"
                },
                "secondary": {
                    "type": "string"
                },
                "tertiary": {
                    "type": "string"
                },
                "white": {
                    "type": "string"
                },
                "yellow": {
                    "type": "string"
                }
            },
            "type": "object"
        },
        "RecursivePartial<{color:string;opacity:number;}>": {
            "additionalProperties": false,
            "properties": {
                "color": {
                    "type": "string"
                },
                "opacity": {
                    "type": "number"
                }
            },
            "type": "object"
        },
        "RecursivePartial<{comment:string;string:string;number:string;variable:string;keyword:string;atom:string;attribute:string;property:string;punctuation:string;definition:string;builtin:string;cursor:string;}>": {
            "additionalProperties": false,
            "properties": {
                "atom": {
                    "type": "string"
                },
                "attribute": {
                    "type": "string"
                },
                "builtin": {
                    "type": "string"
                },
                "comment": {
                    "type": "string"
                },
                "cursor": {
                    "type": "string"
                },
                "definition": {
                    "type": "string"
                },
                "keyword": {
                    "type": "string"
                },
                "number": {
                    "type": "string"
                },
                "property": {
                    "type": "string"
                },
                "punctuation": {
                    "type": "string"
                },
                "string": {
                    "type": "string"
                },
                "variable": {
                    "type": "string"
                }
            },
            "type": "object"
        },
        "RecursivePartial<{default:string;}>": {
            "additionalProperties": false,
            "properties": {
                "default": {
                    "type": "string"
                }
            },
            "type": "object"
        },
        "RecursivePartial<{default:string;}>_1": {
            "additionalProperties": false,
            "properties": {
                "default": {
                    "type": "string"
                }
            },
            "type": "object"
        },
        "RecursivePartial<{fontFamily:{default:string;};fontSize:number;colors:{comment:string;string:string;number:string;variable:string;keyword:string;atom:string;attribute:string;property:string;punctuation:string;definition:string;builtin:string;cursor:string;};}>": {
            "additionalProperties": false,
            "properties": {
                "colors": {
                    "$ref": "#/definitions/RecursivePartial<{comment:string;string:string;number:string;variable:string;keyword:string;atom:string;attribute:string;property:string;punctuation:string;definition:string;builtin:string;cursor:string;}>"
                },
                "fontFamily": {
                    "$ref": "#/definitions/RecursivePartial<{default:string;}>_1"
                },
                "fontSize": {
                    "type": "number"
                }
            },
            "type": "object"
        },
        "RecursivePartial<{fontSize:{base:number;remBase:number;body:number;bodySmaller:number;};fontFamily:{default:string;};}>": {
            "additionalProperties": false,
            "properties": {
                "fontFamily": {
                    "$ref": "#/definitions/RecursivePartial<{default:string;}>"
                },
                "fontSize": {
                    "$ref": "#/definitions/RecursivePartial<{base:number;remBase:number;body:number;bodySmaller:number;}>"
                }
            },
            "type": "object"
        },
        "SettingsLanguage": {
            "enum": [
                "cs-CZ",
                "de-DE",
                "en-US",
                "es-ES",
                "fr-FR",
                "it-IT",
                "ja-JP",
                "ko-KR",
                "pl-PL",
                "pt-BR",
                "ro-RO",
                "ru-RU",
                "sr-SP",
                "uk-UA",
                "vi-VN",
                "zh-CN"
            ],
            "type": "string"
        }
    },
    "properties": {
        "addQueryDepthLimit": {
            "description": "Specifies how deep the 'Add query' functionality should go. You can specify any valid positive integer.",
            "type": "number"
        },
        "alert.disableUpdateNotification": {
            "description": "Disable update notification",
            "type": "boolean"
        },
        "alert.disableWarnings": {
            "description": "Disable warning alerts",
            "type": "boolean"
        },
        "beta.disable.newEditor": {
            "description": "Disable new editor beta",
            "type": "boolean"
        },
        "beta.disable.newScript": {
            "description": "Disable new script beta",
            "type": "boolean"
        },
        "disableLineNumbers": {
            "description": "Disable line numbers",
            "type": "boolean"
        },
        "disablePushNotification": {
            "default": false,
            "description": "Specifies if native push notifications should be disabled",
            "type": "boolean"
        },
        "doc.hideDeprecatedItems": {
            "description": "Hides deprecated Doc items",
            "type": "boolean"
        },
        "editor.shortcuts": {
            "$ref": "#/definitions/Record<string,string>",
            "description": "Contains shortcut to action mapping"
        },
        "enableExperimental": {
            "default": false,
            "description": "Enable experimental features.\nNote: The features might be unstable",
            "type": "boolean"
        },
        "enableTablistScrollbar": {
            "description": "Enable the scrollbar in the tab list",
            "type": "boolean"
        },
        "historyDepth": {
            "description": "Number of items allowed in history pane",
            "type": "number"
        },
        "introspection.options.description": {
            "description": "Whether to include descriptions in the introspection result",
            "type": "boolean"
        },
        "introspection.options.directiveIsRepeatable": {
            "description": "Whether to include `isRepeatable` flag on directives",
            "type": "boolean"
        },
        "introspection.options.inputValueDeprecation": {
            "description": "Whether target GraphQL server supports deprecation of input values",
            "type": "boolean"
        },
        "introspection.options.schemaDescription": {
            "description": "Whether to include `description` field on schema",
            "type": "boolean"
        },
        "introspection.options.specifiedByUrl": {
            "description": "Whether to include `specifiedByUrl` in the introspection result",
            "type": "boolean"
        },
        "language": {
            "$ref": "#/definitions/SettingsLanguage",
            "description": "Specifies the language"
        },
        "plugin.list": {
            "default": [
            ],
            "description": "Specifies a list of enabled plugins.\n\nPlugins are specified in a string format `<plugin-source>:<plugin-name>@<version>::[<opt>]->[<opt-value>]`:\n- `<plugin-source>`: The source of the plugin. Can be 'npm', 'url' or 'github'\n- `<plugin-name>` (required): The name of the plugin. Plugin names must begin with `altair-graphql-plugin-`\n- `<version>`: The version of the plugin. If not specified, the latest version will be used\n- `[<opt>]->[<opt-value>]`: Additional configuration for the plugin. This is used when you specify the source as 'url'. In this case, you can specify the URL where the plugin is hosted.",
            "items": {
                "type": "string"
            },
            "type": "array"
        },
        "request.withCredentials": {
            "description": "Send requests with credentials (cookies)",
            "type": "boolean"
        },
        "response.hideExtensions": {
            "description": "Hides extensions object",
            "type": "boolean"
        },
        "response.stream.strategy": {
            "$ref": "#/definitions/MultiResponseStrategy",
            "description": "Determine the handling strategy for multiple responses"
        },
        "schema.reload.onEnvChange": {
            "description": "Reload schema when switching environments",
            "type": "boolean"
        },
        "schema.reloadOnStart": {
            "description": "Reload schema on app start",
            "type": "boolean"
        },
        "script.allowedCookies": {
            "default": [
            ],
            "description": "List of cookies to be accessible in the pre-request script",
            "items": {
                "type": "string"
            },
            "type": "array"
        },
        "tabSize": {
            "description": "Specifies the tab size for the editor",
            "type": "number"
        },
        "theme": {
            "default": "'system'",
            "description": "Specifies the theme. Themes available by default are 'light', 'dark', 'system', 'dracula'.\nAdditional themes can be added via plugins.",
            "type": "string"
        },
        "theme.dark": {
            "description": "Specifies the theme for dark mode",
            "type": "string"
        },
        "theme.editorFontFamily": {
            "description": "Specifies the font family for the editors. Any valid CSS font family combination can be used here",
            "type": "string"
        },
        "theme.editorFontSize": {
            "description": "Specifies the font size for the editors",
            "type": "number"
        },
        "theme.fontsize": {
            "default": 24,
            "description": "Specifies the base font size",
            "type": "number"
        },
        "themeConfig": {
            "$ref": "#/definitions/RecursivePartial<ITheme>",
            "description": "Specify custom theme config to override the specified theme values"
        },
        "themeConfig.dark": {
            "$ref": "#/definitions/RecursivePartial<ITheme>",
            "description": "Theme config object for dark mode"
        }
    },
    "required": [
        "addQueryDepthLimit",
        "language",
        "tabSize",
        "theme"
    ],
    "type": "object"
}

