{
  "title": "Gumroad Product & Price Monitor - Versions and Memberships",
  "type": "object",
  "schemaVersion": 1,
  "properties": {
    "productUrls": {
      "title": "Gumroad product URLs",
      "type": "array",
      "editor": "stringList",
      "items": {
        "type": "string"
      },
      "default": [],
      "prefill": [
        "https://chrisnotion.gumroad.com/l/notionbundle"
      ],
      "description": "Up to 20 exact https://creator.gumroad.com/l/product URLs. Empty uses the sample product. Custom domains, checkout parameters and catalog discovery are not supported."
    },
    "maxResults": {
      "title": "Maximum saved product rows",
      "type": "integer",
      "default": 5,
      "minimum": 1,
      "maximum": 20,
      "description": "Maximum confirmed rows saved. Nested versions, tiers and group metadata are included in the row. If requested observations remain, history is preserved and SUMMARY reports partial coverage."
    },
    "comparePrevious": {
      "title": "Compare previous saved observations",
      "type": "boolean",
      "default": false,
      "description": "Compare with the last complete successful observation under the same input selection and snapshot name. First comparison establishes a baseline."
    },
    "onlyChanges": {
      "title": "Save only new or changed observations",
      "type": "boolean",
      "default": false,
      "description": "Enables comparison. Unchanged observations are skipped and incur no result event; an unchanged run may correctly produce zero rows."
    },
    "snapshotName": {
      "title": "Snapshot name",
      "type": "string",
      "editor": "textfield",
      "default": "default",
      "description": "Use 1-80 letters, numbers, underscores or hyphens. One active writer per watchlist and snapshot; new names create independent history."
    },
    "maxRunSeconds": {
      "title": "Run budget in seconds",
      "type": "integer",
      "default": 90,
      "minimum": 30,
      "maximum": 120,
      "description": "Shared deadline for all source reads and output. Failed, partial or spending-limited runs do not advance comparison history."
    }
  }
}
