{
    "$id": "options",
    "$schema": "http://json-schema.org/draft-07/schema#",
    "type": "object",
    "required": [
        "version",
        "profiles",
        "profileCurrent",
        "global"
    ],
    "properties": {
        "version": {
            "type": "integer",
            "minimum": 0,
            "default": 0
        },
        "profiles": {
            "type": "array",
            "minItems": 1,
            "items": {
                "type": "object",
                "required": [
                    "name",
                    "conditionGroups",
                    "options"
                ],
                "properties": {
                    "name": {
                        "type": "string",
                        "default": "Default"
                    },
                    "conditionGroups": {
                        "type": "array",
                        "items": {
                            "type": "object",
                            "required": [
                                "conditions"
                            ],
                            "properties": {
                                "conditions": {
                                    "type": "array",
                                    "items": {
                                        "type": "object",
                                        "required": [
                                            "type",
                                            "operator",
                                            "value"
                                        ],
                                        "properties": {
                                            "type": {
                                                "type": "string"
                                            },
                                            "operator": {
                                                "type": "string"
                                            },
                                            "value": {}
                                        }
                                    }
                                }
                            }
                        }
                    },
                    "options": {
                        "type": "object",
                        "required": [
                            "general",
                            "popupWindow",
                            "audio",
                            "scanning",
                            "translation",
                            "dictionaries",
                            "parsing",
                            "anki",
                            "sentenceParsing",
                            "inputs",
                            "clipboard",
                            "accessibility"
                        ],
                        "properties": {
                            "general": {
                                "type": "object",
                                "required": [
                                    "enable",
                                    "language",
                                    "resultOutputMode",
                                    "debugInfo",
                                    "maxResults",
                                    "showAdvanced",
                                    "showDebug",
                                    "popupDisplayMode",
                                    "popupWidth",
                                    "popupHeight",
                                    "popupHorizontalOffset",
                                    "popupVerticalOffset",
                                    "popupHorizontalOffset2",
                                    "popupVerticalOffset2",
                                    "popupHorizontalTextPosition",
                                    "popupVerticalTextPosition",
                                    "popupScalingFactor",
                                    "popupScaleRelativeToPageZoom",
                                    "popupScaleRelativeToVisualViewport",
                                    "showGuide",
                                    "enableContextMenuScanSelected",
                                    "compactTags",
                                    "averageFrequency",
                                    "glossaryLayoutMode",
                                    "mainDictionary",
                                    "popupTheme",
                                    "popupOuterTheme",
                                    "customPopupCss",
                                    "customPopupOuterCss",
                                    "enableWanakana",
                                    "showPitchAccentDownstepNotation",
                                    "showPitchAccentPositionNotation",
                                    "showPitchAccentGraph",
                                    "showIframePopupsInRootFrame",
                                    "useSecurePopupFrameUrl",
                                    "usePopupShadowDom",
                                    "usePopupWindow",
                                    "popupCurrentIndicatorMode",
                                    "popupActionBarVisibility",
                                    "popupActionBarLocation",
                                    "frequencyDisplayMode",
                                    "termDisplayMode",
                                    "sortFrequencyDictionary",
                                    "sortFrequencyDictionaryOrder",
                                    "stickySearchHeader",
                                    "fontFamily",
                                    "fontSize",
                                    "lineHeight",
                                    "enableYomitanApi",
                                    "yomitanApiServer",
                                    "yomitanApiAllowCssSanitizationBypass"
                                ],
                                "properties": {
                                    "enable": {
                                        "type": "boolean",
                                        "default": true
                                    },
                                    "language": {
                                        "type": "string",
                                        "default": "ja"
                                    },
                                    "resultOutputMode": {
                                        "type": "string",
                                        "enum": ["group", "merge", "split", "term"],
                                        "default": "group"
                                    },
                                    "fontFamily": {
                                        "type": "string",
                                        "default": ""
                                    },
                                    "fontSize": {
                                        "type": "number",
                                        "default": 14
                                    },
                                    "lineHeight": {
                                        "type": "string",
                                        "default": "1.5"
                                    },
                                    "debugInfo": {
                                        "type": "boolean",
                                        "default": false
                                    },
                                    "maxResults": {
                                        "type": "integer",
                                        "minimum": 1,
                                        "default": 32
                                    },
                                    "showAdvanced": {
                                        "type": "boolean",
                                        "default": false
                                    },
                                    "showDebug": {
                                        "type": "boolean",
                                        "default": false
                                    },
                                    "popupDisplayMode": {
                                        "type": "string",
                                        "enum": ["default", "full-width"],
                                        "default": "default"
                                    },
                                    "popupWidth": {
                                        "type": "number",
                                        "minimum": 0,
                                        "default": 400
                                    },
                                    "popupHeight": {
                                        "type": "number",
                                        "minimum": 0,
                                        "default": 250
                                    },
                                    "popupHorizontalOffset": {
                                        "type": "number",
                                        "default": 0
                                    },
                                    "popupVerticalOffset": {
                                        "type": "number",
                                        "default": 10
                                    },
                                    "popupHorizontalOffset2": {
                                        "type": "number",
                                        "default": 10
                                    },
                                    "popupVerticalOffset2": {
                                        "type": "number",
                                        "default": 0
                                    },
                                    "popupHorizontalTextPosition": {
                                        "type": "string",
                                        "enum": ["below", "above"],
                                        "default": "below"
                                    },
                                    "popupVerticalTextPosition": {
                                        "type": "string",
                                        "enum": ["default", "before", "after", "left", "right"],
                                        "default": "before"
                                    },
                                    "popupScalingFactor": {
                                        "type": "number",
                                        "default": 1
                                    },
                                    "popupScaleRelativeToPageZoom": {
                                        "type": "boolean",
                                        "default": false
                                    },
                                    "popupScaleRelativeToVisualViewport": {
                                        "type": "boolean",
                                        "default": true
                                    },
                                    "showGuide": {
                                        "type": "boolean",
                                        "default": true
                                    },
                                    "enableContextMenuScanSelected": {
                                        "type": "boolean",
                                        "default": true
                                    },
                                    "compactTags": {
                                        "type": "boolean",
                                        "default": false
                                    },
                                    "averageFrequency": {
                                        "type": "boolean",
                                        "default": false
                                    },
                                    "glossaryLayoutMode": {
                                        "type": "string",
                                        "enum": ["default", "compact", "compact-popup-anki"],
                                        "default": "default"
                                    },
                                    "mainDictionary": {
                                        "type": "string"
                                    },
                                    "popupTheme": {
                                        "type": "string",
                                        "enum": ["light", "dark", "browser", "site"],
                                        "default": "site"
                                    },
                                    "popupOuterTheme": {
                                        "type": "string",
                                        "enum": ["light", "dark", "browser", "site", "none"],
                                        "default": "site"
                                    },
                                    "customPopupCss": {
                                        "type": "string",
                                        "default": ""
                                    },
                                    "customPopupOuterCss": {
                                        "type": "string",
                                        "default": ""
                                    },
                                    "enableWanakana": {
                                        "type": "boolean",
                                        "default": true
                                    },
                                    "showPitchAccentDownstepNotation": {
                                        "type": "boolean",
                                        "default": true
                                    },
                                    "showPitchAccentPositionNotation": {
                                        "type": "boolean",
                                        "default": true
                                    },
                                    "showPitchAccentGraph": {
                                        "type": "boolean",
                                        "default": false
                                    },
                                    "showIframePopupsInRootFrame": {
                                        "type": "boolean",
                                        "default": true
                                    },
                                    "useSecurePopupFrameUrl": {
                                        "type": "boolean",
                                        "default": true
                                    },
                                    "usePopupShadowDom": {
                                        "type": "boolean",
                                        "default": true
                                    },
                                    "usePopupWindow": {
                                        "type": "boolean",
                                        "default": false
                                    },
                                    "popupCurrentIndicatorMode": {
                                        "type": "string",
                                        "enum": ["none", "asterisk", "triangle", "bar-left", "bar-right", "dot-left", "dot-right"],
                                        "default": "triangle"
                                    },
                                    "popupActionBarVisibility": {
                                        "type": "string",
                                        "enum": ["auto", "always"],
                                        "default": "auto"
                                    },
                                    "popupActionBarLocation": {
                                        "type": "string",
                                        "enum": ["left", "right", "top", "bottom"],
                                        "default": "top"
                                    },
                                    "frequencyDisplayMode": {
                                        "type": "string",
                                        "enum": ["tags", "tags-grouped", "split-tags", "split-tags-grouped", "inline-list", "list"],
                                        "default": "split-tags-grouped"
                                    },
                                    "termDisplayMode": {
                                        "type": "string",
                                        "enum": ["ruby", "ruby-and-reading", "term-and-reading", "term-only"],
                                        "default": "ruby"
                                    },
                                    "sortFrequencyDictionary": {
                                        "type": ["string", "null"],
                                        "default": null
                                    },
                                    "sortFrequencyDictionaryOrder": {
                                        "type": "string",
                                        "enum": ["ascending", "descending"],
                                        "default": "descending"
                                    },
                                    "stickySearchHeader": {
                                        "type": "boolean",
                                        "default": false
                                    },
                                    "enableYomitanApi": {
                                        "type": "boolean",
                                        "default": false
                                    },
                                    "yomitanApiServer": {
                                        "type": "string",
                                        "default": "http://127.0.0.1:19633"
                                    },
                                    "yomitanApiAllowCssSanitizationBypass": {
                                        "type": "boolean",
                                        "default": false
                                    }
                                }
                            },
                            "popupWindow": {
                                "type": "object",
                                "required": [
                                    "width",
                                    "height",
                                    "left",
                                    "top",
                                    "useLeft",
                                    "useTop",
                                    "windowType",
                                    "windowState"
                                ],
                                "properties": {
                                    "width": {
                                        "type": "integer",
                                        "minimum": 0,
                                        "default": 400
                                    },
                                    "height": {
                                        "type": "integer",
                                        "minimum": 0,
                                        "default": 250
                                    },
                                    "left": {
                                        "type": "integer",
                                        "default": 0
                                    },
                                    "top": {
                                        "type": "integer",
                                        "default": 0
                                    },
                                    "useLeft": {
                                        "type": "boolean",
                                        "default": false
                                    },
                                    "useTop": {
                                        "type": "boolean",
                                        "default": false
                                    },
                                    "windowType": {
                                        "type": "string",
                                        "enum": ["normal", "popup"],
                                        "default": "popup"
                                    },
                                    "windowState": {
                                        "type": "string",
                                        "enum": ["normal", "maximized", "fullscreen"],
                                        "default": "normal"
                                    }
                                }
                            },
                            "audio": {
                                "type": "object",
                                "required": [
                                    "enabled",
                                    "volume",
                                    "autoPlay",
                                    "fallbackSoundType",
                                    "sources",
                                    "enableDefaultAudioSources"
                                ],
                                "properties": {
                                    "enabled": {
                                        "type": "boolean",
                                        "default": true
                                    },
                                    "volume": {
                                        "type": "number",
                                        "minimum": 0,
                                        "maximum": 100,
                                        "default": 100
                                    },
                                    "autoPlay": {
                                        "type": "boolean",
                                        "default": false
                                    },
                                    "fallbackSoundType": {
                                        "type": "string",
                                        "enum": ["none", "click", "bloop"],
                                        "default": "click"
                                    },
                                    "sources": {
                                        "type": "array",
                                        "items": {
                                            "type": "object",
                                            "additionalProperties": false,
                                            "required": [
                                                "type",
                                                "url",
                                                "voice"
                                            ],
                                            "properties": {
                                                "type": {
                                                    "type": "string",
                                                    "enum": [
                                                        "jpod101",
                                                        "language-pod-101",
                                                        "jisho",
                                                        "lingua-libre",
                                                        "wiktionary",
                                                        "text-to-speech",
                                                        "text-to-speech-reading",
                                                        "custom",
                                                        "custom-json"
                                                    ],
                                                    "default": "jpod101"
                                                },
                                                "url": {
                                                    "type": "string",
                                                    "default": ""
                                                },
                                                "voice": {
                                                    "type": "string",
                                                    "default": ""
                                                }
                                            }
                                        },
                                        "default": []
                                    },
                                    "enableDefaultAudioSources": {
                                        "type": "boolean",
                                        "default": true
                                    }
                                }
                            },
                            "scanning": {
                                "type": "object",
                                "required": [
                                    "inputs",
                                    "preventMiddleMouse",
                                    "preventBackForward",
                                    "selectText",
                                    "alphanumeric",
                                    "autoHideResults",
                                    "delay",
                                    "hideDelay",
                                    "length",
                                    "deepDomScan",
                                    "popupNestingMaxDepth",
                                    "enablePopupSearch",
                                    "enableOnPopupExpressions",
                                    "enableOnSearchPage",
                                    "enableSearchTags",
                                    "layoutAwareScan",
                                    "matchTypePrefix",
                                    "hidePopupOnCursorExit",
                                    "hidePopupOnCursorExitDelay",
                                    "reducedMotionScrolling",
                                    "reducedMotionScrollingScale",
                                    "reducedMotionScrollingSwipeThreshold",
                                    "normalizeCssZoom",
                                    "scanWithoutMousemove",
                                    "scanResolution"
                                ],
                                "properties": {
                                    "inputs": {
                                        "type": "array",
                                        "default": [
                                            {
                                                "include": "shift",
                                                "exclude": "mouse0",
                                                "types": {
                                                    "mouse": true,
                                                    "touch": false,
                                                    "pen": false
                                                },
                                                "options": {
                                                    "showAdvanced": false,
                                                    "searchTerms": true,
                                                    "searchKanji": true,
                                                    "scanOnTouchTap": true,
                                                    "scanOnTouchMove": false,
                                                    "scanOnTouchPress": false,
                                                    "scanOnTouchRelease": false,
                                                    "scanOnPenMove": true,
                                                    "scanOnPenHover": false,
                                                    "scanOnPenReleaseHover": false,
                                                    "scanOnPenPress": true,
                                                    "scanOnPenRelease": false,
                                                    "preventTouchScrolling": false,
                                                    "preventPenScrolling": false,
                                                    "minimumTouchTime": 0
                                                }
                                            },
                                            {
                                                "include": "",
                                                "exclude": "",
                                                "types": {
                                                    "mouse": false,
                                                    "touch": true,
                                                    "pen": true
                                                },
                                                "options": {
                                                    "showAdvanced": false,
                                                    "searchTerms": true,
                                                    "searchKanji": true,
                                                    "scanOnTouchTap": true,
                                                    "scanOnTouchMove": false,
                                                    "scanOnTouchPress": false,
                                                    "scanOnTouchRelease": false,
                                                    "scanOnPenMove": true,
                                                    "scanOnPenHover": false,
                                                    "scanOnPenReleaseHover": false,
                                                    "scanOnPenPress": true,
                                                    "scanOnPenRelease": false,
                                                    "preventTouchScrolling": true,
                                                    "preventPenScrolling": true,
                                                    "minimumTouchTime": 0
                                                }
                                            }
                                        ],
                                        "items": {
                                            "type": "object",
                                            "required": [
                                                "include",
                                                "exclude",
                                                "types",
                                                "options"
                                            ],
                                            "properties": {
                                                "include": {
                                                    "type": "string",
                                                    "default": "shift"
                                                },
                                                "exclude": {
                                                    "type": "string",
                                                    "default": ""
                                                },
                                                "types": {
                                                    "type": "object",
                                                    "required": [
                                                        "mouse",
                                                        "touch",
                                                        "pen"
                                                    ],
                                                    "properties": {
                                                        "mouse": {
                                                            "type": "boolean",
                                                            "default": true
                                                        },
                                                        "touch": {
                                                            "type": "boolean",
                                                            "default": true
                                                        },
                                                        "pen": {
                                                            "type": "boolean",
                                                            "default": true
                                                        }
                                                    }
                                                },
                                                "options": {
                                                    "type": "object",
                                                    "required": [
                                                        "showAdvanced",
                                                        "searchTerms",
                                                        "searchKanji",
                                                        "scanOnTouchTap",
                                                        "scanOnTouchMove",
                                                        "scanOnTouchPress",
                                                        "scanOnTouchRelease",
                                                        "scanOnPenMove",
                                                        "scanOnPenHover",
                                                        "scanOnPenReleaseHover",
                                                        "scanOnPenPress",
                                                        "scanOnPenRelease",
                                                        "preventTouchScrolling",
                                                        "preventPenScrolling",
                                                        "minimumTouchTime"
                                                    ],
                                                    "properties": {
                                                        "showAdvanced": {
                                                            "type": "boolean",
                                                            "default": false
                                                        },
                                                        "searchTerms": {
                                                            "type": "boolean",
                                                            "default": true
                                                        },
                                                        "searchKanji": {
                                                            "type": "boolean",
                                                            "default": true
                                                        },
                                                        "scanOnTouchTap": {
                                                            "type": "boolean",
                                                            "default": true
                                                        },
                                                        "scanOnTouchMove": {
                                                            "type": "boolean",
                                                            "default": false
                                                        },
                                                        "scanOnTouchPress": {
                                                            "type": "boolean",
                                                            "default": false
                                                        },
                                                        "scanOnTouchRelease": {
                                                            "type": "boolean",
                                                            "default": false
                                                        },
                                                        "scanOnPenMove": {
                                                            "type": "boolean",
                                                            "default": true
                                                        },
                                                        "scanOnPenHover": {
                                                            "type": "boolean",
                                                            "default": false
                                                        },
                                                        "scanOnPenReleaseHover": {
                                                            "type": "boolean",
                                                            "default": false
                                                        },
                                                        "scanOnPenPress": {
                                                            "type": "boolean",
                                                            "default": true
                                                        },
                                                        "scanOnPenRelease": {
                                                            "type": "boolean",
                                                            "default": false
                                                        },
                                                        "preventTouchScrolling": {
                                                            "type": "boolean",
                                                            "default": true
                                                        },
                                                        "preventPenScrolling": {
                                                            "type": "boolean",
                                                            "default": true
                                                        },
                                                        "minimumTouchTime": {
                                                            "type": "number",
                                                            "default": 0
                                                        }
                                                    }
                                                }
                                            }
                                        }
                                    },
                                    "preventMiddleMouse": {
                                        "type": "object",
                                        "required": [
                                            "onTextHover",
                                            "onWebPages",
                                            "onPopupPages",
                                            "onSearchPages",
                                            "onSearchQuery"
                                        ],
                                        "properties": {
                                            "onWebPages": {
                                                "type": "boolean",
                                                "default": false
                                            },
                                            "onPopupPages": {
                                                "type": "boolean",
                                                "default": false
                                            },
                                            "onSearchPages": {
                                                "type": "boolean",
                                                "default": false
                                            },
                                            "onSearchQuery": {
                                                "type": "boolean",
                                                "default": false
                                            }
                                        }
                                    },
                                    "preventBackForward": {
                                        "type": "object",
                                        "required": [
                                            "onTextHover",
                                            "onWebPages",
                                            "onPopupPages",
                                            "onSearchPages",
                                            "onSearchQuery"
                                        ],
                                        "properties": {
                                            "onWebPages": {
                                                "type": "boolean",
                                                "default": false
                                            },
                                            "onPopupPages": {
                                                "type": "boolean",
                                                "default": false
                                            },
                                            "onSearchPages": {
                                                "type": "boolean",
                                                "default": false
                                            },
                                            "onSearchQuery": {
                                                "type": "boolean",
                                                "default": false
                                            }
                                        }
                                    },
                                    "selectText": {
                                        "type": "boolean",
                                        "default": false
                                    },
                                    "alphanumeric": {
                                        "type": "boolean",
                                        "default": true
                                    },
                                    "autoHideResults": {
                                        "type": "boolean",
                                        "default": false
                                    },
                                    "delay": {
                                        "type": "number",
                                        "minimum": 0,
                                        "default": 20
                                    },
                                    "hideDelay": {
                                        "type": "number",
                                        "minimum": 0,
                                        "default": 0
                                    },
                                    "length": {
                                        "type": "integer",
                                        "minimum": 1,
                                        "default": 16
                                    },
                                    "deepDomScan": {
                                        "type": "boolean",
                                        "default": false
                                    },
                                    "popupNestingMaxDepth": {
                                        "type": "integer",
                                        "minimum": 0,
                                        "default": 10
                                    },
                                    "enablePopupSearch": {
                                        "type": "boolean",
                                        "default": false
                                    },
                                    "enableOnPopupExpressions": {
                                        "type": "boolean",
                                        "default": false
                                    },
                                    "enableOnSearchPage": {
                                        "type": "boolean",
                                        "default": true
                                    },
                                    "enableSearchTags": {
                                        "type": "boolean",
                                        "default": false
                                    },
                                    "layoutAwareScan": {
                                        "type": "boolean",
                                        "default": false
                                    },
                                    "matchTypePrefix": {
                                        "type": "boolean",
                                        "default": false
                                    },
                                    "hidePopupOnCursorExit": {
                                        "type": "boolean",
                                        "default": false
                                    },
                                    "hidePopupOnCursorExitDelay": {
                                        "type": "number",
                                        "minimum": 0,
                                        "default": 0
                                    },
                                    "reducedMotionScrolling": {
                                        "type": "boolean",
                                        "default": false
                                    },
                                    "reducedMotionScrollingScale": {
                                        "type": "number",
                                        "default": 1
                                    },
                                    "reducedMotionScrollingSwipeThreshold": {
                                        "type": "number",
                                        "minimum": 0,
                                        "default": 40
                                    },
                                    "normalizeCssZoom": {
                                        "type": "boolean",
                                        "default": true
                                    },
                                    "scanWithoutMousemove": {
                                        "type": "boolean",
                                        "default": true
                                    },
                                    "scanResolution": {
                                        "type": "string",
                                        "enum": [
                                            "character",
                                            "word"
                                        ],
                                        "default": "character"
                                    }
                                }
                            },
                            "translation": {
                                "type": "object",
                                "required": [
                                    "textReplacements",
                                    "searchResolution"
                                ],
                                "properties": {
                                    "searchResolution": {
                                        "type": "string",
                                        "enum": [
                                            "letter",
                                            "word"
                                        ],
                                        "default": "letter"
                                    },
                                    "textReplacements": {
                                        "type": "object",
                                        "required": [
                                            "searchOriginal",
                                            "groups"
                                        ],
                                        "properties": {
                                            "searchOriginal": {
                                                "type": "boolean",
                                                "default": true
                                            },
                                            "groups": {
                                                "type": "array",
                                                "items": {
                                                    "type": "array",
                                                    "items": {
                                                        "type": "object",
                                                        "required": [
                                                            "pattern",
                                                            "ignoreCase",
                                                            "replacement"
                                                        ],
                                                        "properties": {
                                                            "pattern": {
                                                                "type": "string",
                                                                "default": ""
                                                            },
                                                            "ignoreCase": {
                                                                "type": "boolean",
                                                                "default": false
                                                            },
                                                            "replacement": {
                                                                "type": "string",
                                                                "default": ""
                                                            }
                                                        }
                                                    }
                                                }
                                            }
                                        }
                                    }
                                }
                            },
                            "dictionaries": {
                                "type": "array",
                                "items": {
                                    "type": "object",
                                    "required": [
                                        "name",
                                        "alias",
                                        "enabled",
                                        "allowSecondarySearches",
                                        "definitionsCollapsible",
                                        "partsOfSpeechFilter",
                                        "useDeinflections"
                                    ],
                                    "properties": {
                                        "name": {
                                            "type": "string",
                                            "default": ""
                                        },
                                        "alias": {
                                            "type": "string",
                                            "default": ""
                                        },
                                        "enabled": {
                                            "type": "boolean",
                                            "default": true
                                        },
                                        "allowSecondarySearches": {
                                            "type": "boolean",
                                            "default": false
                                        },
                                        "definitionsCollapsible": {
                                            "type": "string",
                                            "enum": ["not-collapsible", "expanded", "collapsed", "force-collapsed", "force-expanded"],
                                            "default": "not-collapsible"
                                        },
                                        "partsOfSpeechFilter": {
                                            "type": "boolean",
                                            "default": true
                                        },
                                        "useDeinflections": {
                                            "type": "boolean",
                                            "default": true
                                        }
                                    }
                                }
                            },
                            "parsing": {
                                "type": "object",
                                "required": [
                                    "enableScanningParser",
                                    "enableMecabParser",
                                    "selectedParser",
                                    "termSpacing",
                                    "readingMode"
                                ],
                                "properties": {
                                    "enableScanningParser": {
                                        "type": "boolean",
                                        "default": true
                                    },
                                    "enableMecabParser": {
                                        "type": "boolean",
                                        "default": false
                                    },
                                    "selectedParser": {
                                        "type": ["string", "null"],
                                        "default": null
                                    },
                                    "termSpacing": {
                                        "type": "boolean",
                                        "default": true
                                    },
                                    "readingMode": {
                                        "type": "string",
                                        "enum": ["hiragana", "katakana", "romaji", "dictionary-reading", "none"],
                                        "default": "hiragana"
                                    }
                                }
                            },
                            "anki": {
                                "type": "object",
                                "required": [
                                    "enable",
                                    "server",
                                    "tags",
                                    "screenshot",
                                    "cardFormats",
                                    "duplicateScope",
                                    "duplicateScopeCheckAllModels",
                                    "checkForDuplicates",
                                    "duplicateBehavior",
                                    "fieldTemplates",
                                    "suspendNewCards",
                                    "displayTagsAndFlags",
                                    "targetTags",
                                    "noteGuiMode",
                                    "apiKey",
                                    "downloadTimeout",
                                    "forceSync"
                                ],
                                "properties": {
                                    "enable": {
                                        "type": "boolean",
                                        "default": false
                                    },
                                    "server": {
                                        "type": "string",
                                        "default": "http://127.0.0.1:8765"
                                    },
                                    "tags": {
                                        "type": "array",
                                        "items": {
                                            "type": "string"
                                        },
                                        "default": [
                                            "yomitan"
                                        ]
                                    },
                                    "screenshot": {
                                        "type": "object",
                                        "required": [
                                            "format",
                                            "quality"
                                        ],
                                        "properties": {
                                            "format": {
                                                "type": "string",
                                                "enum": ["png", "jpeg"],
                                                "default": "png"
                                            },
                                            "quality": {
                                                "type": "integer",
                                                "minimum": 0,
                                                "maximum": 100,
                                                "default": 92
                                            }
                                        }
                                    },
                                    "cardFormats": {
                                        "type": "array",
                                        "items": {
                                            "type": "object",
                                            "required": [
                                                "name",
                                                "icon",
                                                "deck",
                                                "model",
                                                "fields",
                                                "type"
                                            ],
                                            "properties": {
                                                "name": {
                                                    "type": "string",
                                                    "default": ""
                                                },
                                                "icon": {
                                                    "type": "string",
                                                    "enum": ["big-circle", "small-circle", "big-square", "big-diamond"],
                                                    "default": "big-circle"
                                                },
                                                "deck": {
                                                    "type": "string",
                                                    "default": ""
                                                },
                                                "model": {
                                                    "type": "string",
                                                    "default": ""
                                                },
                                                "type": {
                                                    "type": "string",
                                                    "enum": ["term", "kanji"],
                                                    "default": "term"
                                                },
                                                "fields": {
                                                    "type": "object",
                                                    "additionalProperties": {
                                                        "type": "object",
                                                        "properties": {
                                                            "value": {
                                                                "type": "string",
                                                                "default": ""
                                                            },
                                                            "overwriteMode": {
                                                                "type": "string",
                                                                "enum": ["coalesce", "coalesce-new", "skip", "append", "prepend", "overwrite"],
                                                                "default": "coalesce"
                                                            }
                                                        }
                                                    }
                                                }
                                            }
                                        },
                                        "default": [
                                            {
                                                "name": "Expression",
                                                "icon": "big-circle",
                                                "deck": "",
                                                "model": "",
                                                "fields": {},
                                                "type": "term"
                                            },
                                            {
                                                "name": "Reading",
                                                "icon": "small-circle",
                                                "deck": "",
                                                "model": "",
                                                "fields": {},
                                                "type": "term"
                                            },
                                            {
                                                "name": "Kanji",
                                                "icon": "big-circle",
                                                "deck": "",
                                                "model": "",
                                                "fields": {},
                                                "type": "kanji"
                                            }
                                        ]
                                    },
                                    "duplicateScope": {
                                        "type": "string",
                                        "default": "collection",
                                        "enum": ["collection", "deck", "deck-root"]
                                    },
                                    "duplicateScopeCheckAllModels": {
                                        "type": "boolean",
                                        "default": false
                                    },
                                    "checkForDuplicates": {
                                        "type": "boolean",
                                        "default": true
                                    },
                                    "duplicateBehavior": {
                                        "type": "string",
                                        "enum": ["prevent", "overwrite", "new"],
                                        "default": "new"
                                    },
                                    "fieldTemplates": {
                                        "type": ["string", "null"],
                                        "default": null
                                    },
                                    "suspendNewCards": {
                                        "type": "boolean",
                                        "default": false
                                    },
                                    "displayTagsAndFlags": {
                                        "type": "string",
                                        "enum": ["never", "always", "non-standard", "custom"],
                                        "default": "never"
                                    },
                                    "targetTags": {
                                        "type": "array",
                                        "items": {
                                            "type": "string"
                                        },
                                        "default": []
                                    },
                                    "noteGuiMode": {
                                        "type": "string",
                                        "enum": ["browse", "edit"],
                                        "default": "browse"
                                    },
                                    "apiKey": {
                                        "type": "string",
                                        "default": ""
                                    },
                                    "downloadTimeout": {
                                        "type": "number",
                                        "default": 0,
                                        "minimum": 0
                                    },
                                    "forceSync": {
                                        "type": "boolean",
                                        "default": false
                                    }
                                }
                            },
                            "sentenceParsing": {
                                "type": "object",
                                "required": [
                                    "scanExtent",
                                    "terminationCharacterMode",
                                    "terminationCharacters"
                                ],
                                "properties": {
                                    "scanExtent": {
                                        "type": "integer",
                                        "minimum": 0,
                                        "default": 200
                                    },
                                    "terminationCharacterMode": {
                                        "type": "string",
                                        "enum": ["custom", "custom-no-newlines", "newlines", "none"],
                                        "default": "custom"
                                    },
                                    "terminationCharacters": {
                                        "type": "array",
                                        "items": {
                                            "type": "object",
                                            "required": [
                                                "enabled",
                                                "character1",
                                                "character2",
                                                "includeCharacterAtStart",
                                                "includeCharacterAtEnd"
                                            ],
                                            "properties": {
                                                "enabled": {
                                                    "type": "boolean",
                                                    "default": true
                                                },
                                                "character1": {
                                                    "type": "string",
                                                    "default": "\"",
                                                    "minLength": 1,
                                                    "maxLength": 1
                                                },
                                                "character2": {
                                                    "type": ["string", "null"],
                                                    "default": "\"",
                                                    "minLength": 1,
                                                    "maxLength": 1
                                                },
                                                "includeCharacterAtStart": {
                                                    "type": "boolean",
                                                    "default": false
                                                },
                                                "includeCharacterAtEnd": {
                                                    "type": "boolean",
                                                    "default": false
                                                }
                                            }
                                        },
                                        "default": [
                                            {"enabled": true, "character1": "「", "character2": "」", "includeCharacterAtStart": false, "includeCharacterAtEnd": false},
                                            {"enabled": true, "character1": "『", "character2": "』", "includeCharacterAtStart": false, "includeCharacterAtEnd": false},
                                            {"enabled": true, "character1": "\"", "character2": "\"", "includeCharacterAtStart": false, "includeCharacterAtEnd": false},
                                            {"enabled": true, "character1": "'", "character2": "'", "includeCharacterAtStart": false, "includeCharacterAtEnd": false},
                                            {"enabled": true, "character1": ".", "character2": null, "includeCharacterAtStart": false, "includeCharacterAtEnd": true},
                                            {"enabled": true, "character1": "!", "character2": null, "includeCharacterAtStart": false, "includeCharacterAtEnd": true},
                                            {"enabled": true, "character1": "?", "character2": null, "includeCharacterAtStart": false, "includeCharacterAtEnd": true},
                                            {"enabled": true, "character1": "．", "character2": null, "includeCharacterAtStart": false, "includeCharacterAtEnd": true},
                                            {"enabled": true, "character1": "。", "character2": null, "includeCharacterAtStart": false, "includeCharacterAtEnd": true},
                                            {"enabled": true, "character1": "！", "character2": null, "includeCharacterAtStart": false, "includeCharacterAtEnd": true},
                                            {"enabled": true, "character1": "？", "character2": null, "includeCharacterAtStart": false, "includeCharacterAtEnd": true},
                                            {"enabled": true, "character1": "…", "character2": null, "includeCharacterAtStart": false, "includeCharacterAtEnd": true},
                                            {"enabled": true, "character1": "︒", "character2": null, "includeCharacterAtStart": false, "includeCharacterAtEnd": true},
                                            {"enabled": true, "character1": "︕", "character2": null, "includeCharacterAtStart": false, "includeCharacterAtEnd": true},
                                            {"enabled": true, "character1": "︖", "character2": null, "includeCharacterAtStart": false, "includeCharacterAtEnd": true},
                                            {"enabled": true, "character1": "︙", "character2": null, "includeCharacterAtStart": false, "includeCharacterAtEnd": true}
                                        ]
                                    }
                                }
                            },
                            "inputs": {
                                "type": "object",
                                "required": [
                                    "hotkeys"
                                ],
                                "properties": {
                                    "hotkeys": {
                                        "type": "array",
                                        "items": {
                                            "type": "object",
                                            "required": [
                                                "action",
                                                "argument",
                                                "key",
                                                "modifiers",
                                                "scopes",
                                                "enabled"
                                            ],
                                            "properties": {
                                                "action": {
                                                    "type": "string",
                                                    "default": ""
                                                },
                                                "argument": {
                                                    "type": "string",
                                                    "default": ""
                                                },
                                                "key": {
                                                    "type": ["string", "null"],
                                                    "default": null
                                                },
                                                "modifiers": {
                                                    "type": "array",
                                                    "items": {
                                                        "type": "string",
                                                        "enum": ["alt", "ctrl", "shift", "meta"],
                                                        "default": "alt"
                                                    }
                                                },
                                                "scopes": {
                                                    "type": "array",
                                                    "items": {
                                                        "type": "string",
                                                        "enum": ["popup", "search", "web"],
                                                        "default": "popup"
                                                    },
                                                    "default": ["popup", "search"]
                                                },
                                                "enabled": {
                                                    "type": "boolean",
                                                    "default": true
                                                }
                                            }
                                        },
                                        "default": [
                                            {"action": "close",             "argument": "",  "key": "Escape",    "modifiers": [],       "scopes": ["popup"],           "enabled": true},
                                            {"action": "focusSearchBox",    "argument": "",  "key": "Escape",    "modifiers": [],       "scopes": ["search"],          "enabled": true},
                                            {"action": "previousEntry",     "argument": "3", "key": "PageUp",    "modifiers": ["alt"],  "scopes": ["popup", "search"], "enabled": true},
                                            {"action": "nextEntry",         "argument": "3", "key": "PageDown",  "modifiers": ["alt"],  "scopes": ["popup", "search"], "enabled": true},
                                            {"action": "lastEntry",         "argument": "",  "key": "End",       "modifiers": ["alt"],  "scopes": ["popup", "search"], "enabled": true},
                                            {"action": "firstEntry",        "argument": "",  "key": "Home",      "modifiers": ["alt"],  "scopes": ["popup", "search"], "enabled": true},
                                            {"action": "previousEntry",     "argument": "1", "key": "ArrowUp",   "modifiers": ["alt"],  "scopes": ["popup", "search"], "enabled": true},
                                            {"action": "nextEntry",         "argument": "1", "key": "ArrowDown", "modifiers": ["alt"],  "scopes": ["popup", "search"], "enabled": true},
                                            {"action": "historyBackward",   "argument": "",  "key": "KeyB",      "modifiers": ["alt"],  "scopes": ["popup", "search"], "enabled": true},
                                            {"action": "historyForward",    "argument": "",  "key": "KeyF",      "modifiers": ["alt"],  "scopes": ["popup", "search"], "enabled": true},
                                            {"action": "profilePrevious",   "argument": "",  "key": "Minus",     "modifiers": ["alt"],  "scopes": ["popup", "search", "web"], "enabled": true},
                                            {"action": "profileNext",       "argument": "",  "key": "Equal",     "modifiers": ["alt"],  "scopes": ["popup", "search", "web"], "enabled": true},
                                            {"action": "addNote",           "argument": "0", "key": "KeyE",      "modifiers": ["alt"],  "scopes": ["popup", "search"], "enabled": true},
                                            {"action": "addNote",           "argument": "1", "key": "KeyR",      "modifiers": ["alt"],  "scopes": ["popup", "search"], "enabled": true},
                                            {"action": "addNote",           "argument": "2", "key": "KeyK",      "modifiers": ["alt"],  "scopes": ["popup", "search"], "enabled": true},
                                            {"action": "playAudio",         "argument": "",  "key": "KeyP",      "modifiers": ["alt"],  "scopes": ["popup", "search"], "enabled": true},
                                            {"action": "viewNotes",         "argument": "0", "key": "KeyV",      "modifiers": ["alt"],  "scopes": ["popup", "search"], "enabled": true},
                                            {"action": "copyHostSelection", "argument": "",  "key": "KeyC",      "modifiers": ["ctrl"], "scopes": ["popup"],           "enabled": true}
                                        ]
                                    }
                                }
                            },
                            "clipboard": {
                                "type": "object",
                                "required": [
                                    "enableBackgroundMonitor",
                                    "enableSearchPageMonitor",
                                    "autoSearchContent",
                                    "maximumSearchLength"
                                ],
                                "properties": {
                                    "enableBackgroundMonitor": {
                                        "type": "boolean",
                                        "default": false
                                    },
                                    "enableSearchPageMonitor": {
                                        "type": "boolean",
                                        "default": false
                                    },
                                    "autoSearchContent": {
                                        "type": "boolean",
                                        "default": true
                                    },
                                    "maximumSearchLength": {
                                        "type": "integer",
                                        "default": 1000,
                                        "minimum": 0
                                    }
                                }
                            },
                            "accessibility": {
                                "type": "object",
                                "required": [
                                    "forceGoogleDocsHtmlRendering"
                                ],
                                "properties": {
                                    "forceGoogleDocsHtmlRendering": {
                                        "type": "boolean",
                                        "default": false
                                    }
                                }
                            }
                        }
                    }
                }
            }
        },
        "profileCurrent": {
            "type": "integer",
            "minimum": 0,
            "default": 0
        },
        "global": {
            "type": "object",
            "required": [
                "database",
                "dataTransmissionConsentShown"
            ],
            "properties": {
                "database": {
                    "type": "object",
                    "required": [
                        "prefixWildcardsSupported"
                    ],
                    "properties": {
                        "prefixWildcardsSupported": {
                            "type": "boolean",
                            "default": false
                        }
                    }
                },
                "dataTransmissionConsentShown": {
                    "type": "boolean",
                    "default": false
                }
            }
        }
    }
}
