{
  "title": "Find private offerings and understand amendments",
  "description": "Start with five filings from the SEC's recent feed. For repeatable checks, paste exact SEC filing index URLs. Reported offering amounts do not establish a completed funding round.",
  "type": "object",
  "schemaVersion": 1,
  "properties": {
    "filingUrls": {
      "title": "SEC filing index URLs",
      "type": "array",
      "editor": "stringList",
      "description": "Optional: up to 25 https://www.sec.gov/Archives/edgar/data/.../...-index.htm URLs. Leave empty for one recent feed response. Each accession produces at most one row, including co-issuers.",
      "items": {
        "type": "string"
      },
      "prefill": []
    },
    "maxResults": {
      "title": "Maximum saved filings",
      "type": "integer",
      "editor": "number",
      "description": "Maximum confirmed observations. A result cap is a sample, not proof that every feed filing was processed.",
      "default": 5,
      "minimum": 1,
      "maximum": 50
    },
    "includePredecessor": {
      "title": "Compare linked amendment predecessor",
      "type": "boolean",
      "editor": "checkbox",
      "description": "For D/A only, fetch its linked previous accession when at least 15 seconds and 2 requests remain. Shows cumulative reported differences. Unavailable comparisons are flagged.",
      "default": false
    },
    "formTypes": {
      "title": "Form types",
      "type": "array",
      "editor": "stringList",
      "description": "Exact D, D/A or both. Other D-prefixed forms are excluded.",
      "items": {
        "type": "string"
      },
      "default": [
        "D",
        "D/A"
      ],
      "sectionCaption": "Optional filters"
    },
    "industries": {
      "title": "Industry text filters",
      "type": "array",
      "editor": "stringList",
      "description": "Case-insensitive substring match on source industry group, such as Oil and Gas or Pooled Investment Fund. Applies only within the selected feed or URLs.",
      "items": {
        "type": "string"
      },
      "default": []
    },
    "issuerStates": {
      "title": "Primary issuer state or country codes",
      "type": "array",
      "editor": "stringList",
      "description": "Two-character SEC codes, such as TX or CA. Matches primary issuer business location, not every co-issuer or investor.",
      "items": {
        "type": "string"
      },
      "default": []
    },
    "minAmountSoldUsd": {
      "title": "Minimum reported amount sold (USD)",
      "type": "number",
      "editor": "number",
      "description": "Cumulative amountSoldUsd. Zero includes pre-sale offerings. Not a funding-round size or an amount raised since the previous run.",
      "default": 0,
      "minimum": 0
    },
    "filedSince": {
      "title": "Filed on or after",
      "type": "string",
      "editor": "textfield",
      "description": "Optional YYYY-MM-DD filter on SEC filing date, not first sale. Does not backfill older history."
    },
    "filedUntil": {
      "title": "Filed on or before",
      "type": "string",
      "editor": "textfield",
      "description": "Optional YYYY-MM-DD filter on SEC filing date."
    },
    "comparePrevious": {
      "title": "Compare with saved observations",
      "type": "boolean",
      "editor": "checkbox",
      "description": "First run establishes history only for confirmed saved filings. Later runs classify the same accession as new, changed or unchanged. Separate from predecessor comparison.",
      "default": false,
      "sectionCaption": "Saved monitoring"
    },
    "onlyChanges": {
      "title": "Save only new or changed filings",
      "type": "boolean",
      "editor": "checkbox",
      "description": "Enables comparison and skips unchanged accessions. Zero rows can be valid. With a small output cap, later runs may find unseen filings further down the feed.",
      "default": false
    },
    "snapshotName": {
      "title": "History namespace",
      "type": "string",
      "editor": "textfield",
      "description": "Use 1-80 letters, numbers, underscores or hyphens. One writer per scope; an optimistic conflict check detects already changed history but is not a distributed lock.",
      "default": "default"
    },
    "feedEntries": {
      "title": "Recent feed entries to inspect",
      "type": "integer",
      "editor": "number",
      "description": "10-100 entries from one SEC Atom response. Exact form filtering and co-issuer deduplication can leave fewer filings. No historical pagination.",
      "default": 100,
      "minimum": 10,
      "maximum": 100,
      "sectionCaption": "Request and time limits"
    },
    "maxRequests": {
      "title": "Maximum SEC requests",
      "type": "integer",
      "editor": "number",
      "description": "Hard cap including feed, indices, XML and optional predecessors. No retries on 403/429. Serial requests are paced at least 200 ms apart.",
      "default": 40,
      "minimum": 3,
      "maximum": 150
    },
    "maxRunSeconds": {
      "title": "Run budget (seconds)",
      "type": "integer",
      "editor": "number",
      "description": "Source work shares this deadline, with shutdown and platform timeout reserves. A time stop is reported as incomplete.",
      "default": 60,
      "minimum": 30,
      "maximum": 240
    }
  }
}
