{
  "title": "Google Autocomplete Keywords - Intent & Changes",
  "type": "object",
  "schemaVersion": 1,
  "properties": {
    "seeds": {
      "title": "Seed keywords",
      "type": "array",
      "editor": "stringList",
      "items": {
        "type": "string"
      },
      "default": [],
      "prefill": [
        "accounting software"
      ],
      "description": "Up to ten seed phrases. Empty uses accounting software."
    },
    "language": {
      "title": "Suggestion language",
      "type": "string",
      "editor": "textfield",
      "default": "en",
      "description": "Two-letter language, optionally a region such as en-US."
    },
    "country": {
      "title": "Country hint",
      "type": "string",
      "editor": "textfield",
      "default": "US",
      "description": "Two-letter country hint; source may also use request location."
    },
    "expansion": {
      "title": "Expand each seed",
      "type": "string",
      "enum": [
        "none",
        "questions",
        "commercial"
      ],
      "enumTitles": [
        "Exact seed only",
        "Question prefixes",
        "Pricing and alternatives"
      ],
      "default": "none",
      "description": "Questions adds how/what/best; commercial adds pricing/alternatives/vs. All generated queries are shown in evidence."
    },
    "maxQueries": {
      "title": "Maximum source queries",
      "type": "integer",
      "default": 10,
      "minimum": 1,
      "maximum": 40,
      "description": "Shared query cap across seeds and expansions."
    },
    "maxResults": {
      "title": "Maximum saved suggestions",
      "type": "integer",
      "default": 5,
      "minimum": 1,
      "maximum": 500,
      "description": "Maximum confirmed dataset rows saved across the run. A limit may truncate selected observations; see SUMMARY."
    },
    "comparePrevious": {
      "title": "Compare saved suggestions",
      "type": "boolean",
      "default": false,
      "description": "First run establishes a baseline; reuse the same inputs and snapshot. Missing suggestions are not treated as deletions."
    },
    "onlyChanges": {
      "title": "Save only new or changed suggestions",
      "type": "boolean",
      "default": false,
      "description": "Enables comparison. An unchanged repeat can legitimately return zero rows."
    },
    "snapshotName": {
      "title": "Snapshot name",
      "type": "string",
      "editor": "textfield",
      "default": "default",
      "description": "1–80 letters, numbers, underscores or hyphens. Reuse for the same watchlist; choose a new name for independent history."
    },
    "maxRunSeconds": {
      "title": "Run budget (seconds)",
      "type": "integer",
      "default": 60,
      "minimum": 30,
      "maximum": 180,
      "description": "Shared deadline for all source requests. Stops safely within this budget or the platform timeout, whichever is earlier."
    }
  }
}
