{
  "title": "Static Website Visual Change Monitor - Desktop & Mobile",
  "type": "object",
  "schemaVersion": 1,
  "properties": {
    "urls": {
      "title": "Public static pages",
      "type": "array",
      "editor": "stringList",
      "items": {
        "type": "string"
      },
      "default": [
        "https://example.com/"
      ],
      "prefill": [
        "https://example.com/"
      ],
      "description": "One to five public HTML pages. JavaScript disabled. No login, cookies, private addresses or credential URLs."
    },
    "comparePrevious": {
      "title": "Compare with the previous saved capture",
      "type": "boolean",
      "default": false,
      "description": "First saved pair establishes history. Reuse the same history name/settings; one writer per baseline."
    },
    "baselineKey": {
      "title": "Comparison history name",
      "type": "string",
      "editor": "textfield",
      "default": "default",
      "pattern": "^[-\\w]{1,50}$",
      "description": "Independent names separate history. Baseline images persist in your own named store."
    },
    "pixelThreshold": {
      "title": "Per-pixel color tolerance",
      "type": "number",
      "default": 0.1,
      "minimum": 0,
      "maximum": 1,
      "description": "Pixelmatch color tolerance; distinct from the changed-page percentage threshold."
    },
    "changePercentThreshold": {
      "title": "Changed-pixel percentage threshold",
      "type": "number",
      "default": 0.5,
      "minimum": 0,
      "maximum": 100,
      "description": "A viewport is changed when its differing-pixel percentage is strictly above this threshold."
    },
    "maxRunSeconds": {
      "title": "Total work budget (seconds)",
      "type": "integer",
      "default": 120,
      "minimum": 30,
      "maximum": 120,
      "description": "All URLs share this budget. Each viewport has at most20 seconds; incomplete pairs are not billed."
    }
  }
}
