{
  "title": "Domain DNS & Email Policy Monitor - SPF, DMARC, MX",
  "type": "object",
  "schemaVersion": 1,
  "properties": {
    "domains": {
      "title": "Domains to inspect",
      "type": "array",
      "description": "Up to 100 distinct public DNS domains, such as wordpress.org. Omitted or empty uses wordpress.org and apify.com. Do not include paths, ports, credentials or IP addresses.",
      "editor": "stringList",
      "maxItems": 100,
      "prefill": [
        "wordpress.org",
        "apify.com"
      ],
      "sectionCaption": "1 · Choose domains and known selectors",
      "sectionDescription": "Public DNS only; no mailbox credentials or changes to your domain settings."
    },
    "dkimSelectors": {
      "title": "Known DKIM selectors",
      "type": "array",
      "description": "Optional known selectors to query for every domain, up to five. Supply selector names only, not full DNS names. A selector may contain letters, digits, dots, underscores and hyphens, begins with a letter or digit, and is at most 63 characters. No selectors are guessed.",
      "editor": "stringList",
      "maxItems": 5
    },
    "comparePrevious": {
      "title": "Compare with the previous complete observation",
      "type": "boolean",
      "description": "Opt in to named snapshot storage. First use returns a full observation with no previous comparison. Later complete observations report changes. Partial results never replace the baseline. Every emitted observation is billable, including unchanged and partial results.",
      "default": false,
      "sectionCaption": "2 · Optional complete-observation history",
      "sectionDescription": "Unchanged observations remain in output. Partial observations do not replace prior baselines."
    },
    "snapshotName": {
      "title": "Snapshot namespace",
      "type": "string",
      "description": "Optional namespace, up to 100 characters, for independent monitors. Domain and sorted DKIM selector list also identify the scope. Avoid overlapping runs with the same namespace and scope.",
      "editor": "textfield",
      "default": "default",
      "maxLength": 100
    },
    "maxRunSeconds": {
      "title": "Run time budget (seconds)",
      "type": "integer",
      "description": "Own wall-clock budget, shared by requests and bounded by the platform deadline with a safety margin. Work unfinished at the deadline is reported in SUMMARY.",
      "default": 240,
      "minimum": 30,
      "maximum": 3600,
      "sectionCaption": "3 · Run budget",
      "sectionDescription": "Unfinished domains and query failures are reported in SUMMARY."
    }
  },
  "description": "Supply public domains to inspect the supported DNS and email-policy records. Optional saved comparisons track observed record changes; the output does not test message delivery or certify security."
}
