{
  "title": "Hugging Face deployment watchlist",
  "description": "Track public Hugging Face model revisions, declared license, gating, base models and artifact paths. Saved comparisons for deployment watchlists. Metadata only; no model download or execution.",
  "type": "object",
  "schemaVersion": 1,
  "properties": {
    "modelIds": {
      "title": "Public model identifiers",
      "type": "array",
      "editor": "stringList",
      "description": "Up to 30 exact namespace/model identifiers. Omitted or empty uses the listed sample. No URLs, credentials or private models.",
      "default": [],
      "prefill": [
        "sentence-transformers/all-MiniLM-L6-v2",
        "BAAI/bge-small-en-v1.5",
        "openai/whisper-tiny"
      ],
      "sectionCaption": "1 - Models used by your application",
      "sectionDescription": "Inspect a bounded watchlist of public repositories. No weights are downloaded."
    },
    "maxResults": {
      "title": "Maximum saved observations",
      "type": "integer",
      "default": 10,
      "minimum": 1,
      "maximum": 1000,
      "description": "Maximum confirmed dataset rows. An unchanged observation skipped by onlyChanges does not use this limit. A capped run can leave selected models/routes unreached; see SUMMARY.",
      "sectionCaption": "2 - Output and saved comparisons"
    },
    "comparePrevious": {
      "title": "Compare with saved observations",
      "type": "boolean",
      "default": false,
      "description": "First observations are new. Later observations are changed or unchanged; only confirmed saved rows can advance history."
    },
    "onlyChanges": {
      "title": "Save only new or changed observations",
      "type": "boolean",
      "default": false,
      "description": "Implies comparePrevious. A fully unchanged run correctly saves zero rows. The initial comparison saves new observations."
    },
    "snapshotName": {
      "title": "Comparison namespace",
      "type": "string",
      "editor": "textfield",
      "default": "default",
      "description": "1-80 letters, numbers, underscores or hyphens. History also includes the exact sorted model watchlist. Use one writer per namespace; overlapping runs are unsupported."
    },
    "stateStoreName": {
      "title": "Named history store",
      "type": "string",
      "editor": "textfield",
      "default": "maydit-huggingface-model-watchlists",
      "description": "3-63 letters, numbers or hyphens. Read/written only when comparisons are requested. Use your own dedicated store to isolate a workflow."
    },
    "maxRunSeconds": {
      "title": "Run budget in seconds",
      "type": "integer",
      "default": 240,
      "minimum": 30,
      "maximum": 900,
      "description": "Includes source and history work, also bounded by the platform deadline minus 25 seconds.",
      "sectionCaption": "3 - Run limits",
      "sectionDescription": "Each public API response is bounded to 2 MiB. Access/rate refusals are reported; no authentication bypass is attempted."
    }
  }
}
