{
  "$schema": "http://json-schema.org/schema#",
  "title": "IComparerOptions",
  "type": "object",
  "required": [],
  "properties": {
    "debug": {
        "oneOf": [
            {
                "type": "string",
                "enum": [
                  "always",
                  "failure"
                ]
            },
            {"type": "boolean"}
        ]
    },
    "path": {
      "type": "string"
    },
    "highlightColor": {
      "type": "object",
      "required": ["r","g","b"],
      "properties": {
        "r": {
          "$ref": "#/$defs/colorComponent"
        },
        "g": {
          "$ref": "#/$defs/colorComponent"
        },
        "b": {
          "$ref": "#/$defs/colorComponent"
        }
      },
      "additionalProperties": false
    },
    "maskRadius": {
      "type": "number",
      "minimum": 0,
      "maximum": 10
    },
    "attempts": {
      "type": "number",
      "minimum": 0,
      "maximum": 5
    },
    "attemptTimeout": {
      "type": "number",
      "minimum": 0,
      "maximum": 10000
    },
    "enableTextMask": {
      "type": "boolean"
    },
    "textMaskRadius": {
      "type": "number",
      "minimum": 0,
      "maximum": 3
    },
    "textDiffTreshold": {
          "$ref": "#/$defs/tolerance"
    },
    "looksSameComparisonOptions": {
      "type": "object",
      "required": [],
      "properties": {
        "highlightColor": {
          "type": "string",
          "pattern": "#[0-9A-F]{6}"
        },
        "strict": {
          "type": "boolean"
        },
        "tolerance": {
          "$ref": "#/$defs/tolerance"
        },
        "antialiasingTolerance": {
          "$ref": "#/$defs/tolerance"
        },
        "ignoreAntialiasing": {
          "type": "boolean"
        },
        "ignoreCaret": {
          "type": "string"
        }
      },
      "additionalProperties": false
    }
  },
	"$defs": {
		"tolerance": {
			"type": "number",
			"minimum": 0,
			"maximum": 100
		},
        "colorComponent": {
			"type": "number",
			"minimum": 0,
			"maximum": 255
		}
	},
    "additionalProperties": false
}
