{
  "$comment": "Generated from the Site Pipeline Pydantic models. Do not edit by hand; regenerate with `make schemas`.",
  "$defs": {
    "ArtifactVersioningConfig": {
      "additionalProperties": false,
      "description": "How the pipeline discovers development, maintenance, tag, and named-ref versions.",
      "properties": {
        "developmentRef": {
          "description": "Source-control ref that represents the moving development docs for this artifact.",
          "examples": [
            "main"
          ],
          "minLength": 1,
          "title": "Developmentref",
          "type": "string"
        },
        "maintenanceRefPattern": {
          "anyOf": [
            {
              "minLength": 1,
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "description": "Pattern used to derive maintenance branch refs from a release-line key, usually with `{line}` as the substitution placeholder.",
          "examples": [
            "release/{line}"
          ],
          "title": "Maintenancerefpattern"
        },
        "namedRefs": {
          "anyOf": [
            {
              "items": {
                "$ref": "#/$defs/NamedRefConfig"
              },
              "type": "array"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "description": "Additional intentionally named version contexts, such as preview or stable branches, that should be selectable by key.",
          "title": "Namedrefs"
        },
        "tagPattern": {
          "description": "Regular expression used to recognize provider tags that belong to this artifact's version stream.",
          "examples": [
            "^v[0-9]+\\.[0-9]+\\.[0-9]+$"
          ],
          "minLength": 1,
          "title": "Tagpattern",
          "type": "string"
        }
      },
      "required": [
        "developmentRef",
        "tagPattern"
      ],
      "title": "ArtifactVersioningConfig",
      "type": "object",
      "x-buildish-contract": {
        "category": "authored",
        "ownership": "consumer-owned"
      }
    },
    "ArtifactsDataEntry": {
      "additionalProperties": false,
      "description": "Entry in ``data/artifacts.json``.",
      "properties": {
        "componentSlug": {
          "description": "Owning component slug for the artifact.",
          "examples": [
            "spark"
          ],
          "minLength": 1,
          "title": "Componentslug",
          "type": "string"
        },
        "displayName": {
          "anyOf": [
            {
              "minLength": 1,
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "description": "Human-readable artifact label shown in navigation and metadata.",
          "examples": [
            "Runtime"
          ],
          "title": "Displayname"
        },
        "docsRoot": {
          "anyOf": [
            {
              "minLength": 1,
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "description": "Repository-relative docs root for the artifact when it differs from the component default.",
          "examples": [
            "docs/runtime"
          ],
          "title": "Docsroot"
        },
        "key": {
          "description": "Stable artifact key used by routes, aggregates, and typed references.",
          "examples": [
            "runtime"
          ],
          "minLength": 1,
          "title": "Key",
          "type": "string"
        },
        "latestCandidate": {
          "anyOf": [
            {
              "$ref": "#/$defs/LatestCandidateSummary"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "description": "Compact summary of the latest known release candidate for the artifact."
        },
        "latestRelease": {
          "anyOf": [
            {
              "$ref": "#/$defs/LatestReleaseSummary"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "description": "Compact summary of the latest known release for the artifact."
        },
        "latestStable": {
          "anyOf": [
            {
              "minLength": 1,
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "description": "Most recent stable version recommended for readers.",
          "examples": [
            "4.0.1"
          ],
          "title": "Lateststable"
        },
        "namedRefs": {
          "anyOf": [
            {
              "items": {
                "$ref": "#/$defs/RefAggregateEntry"
              },
              "type": "array"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "description": "Published development, line-head, or named-ref contexts associated with the artifact.",
          "title": "Namedrefs"
        },
        "providerKeys": {
          "anyOf": [
            {
              "items": {
                "minLength": 1,
                "type": "string"
              },
              "type": "array"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "description": "Provider keys that contributed version metadata for this artifact.",
          "examples": [
            [
              "github-releases"
            ]
          ],
          "title": "Providerkeys"
        },
        "releaseLines": {
          "anyOf": [
            {
              "items": {
                "$ref": "#/$defs/ReleaseLineSummary"
              },
              "type": "array"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "description": "Release-line summaries associated with the artifact.",
          "title": "Releaselines"
        },
        "sourceKey": {
          "anyOf": [
            {
              "minLength": 1,
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "description": "Named source binding that owns the artifact's docs and assets.",
          "examples": [
            "apache-spark"
          ],
          "title": "Sourcekey"
        },
        "supportPolicyUrl": {
          "anyOf": [
            {
              "minLength": 1,
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "description": "Canonical URL for the support policy document associated with this artifact.",
          "title": "Supportpolicyurl"
        },
        "supportStatusVocabulary": {
          "anyOf": [
            {
              "additionalProperties": {
                "$ref": "#/$defs/SupportStatusDefinition"
              },
              "propertyNames": {
                "minLength": 1
              },
              "type": "object"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "description": "Reusable support-status definitions that release lines and releases for this artifact can refer to by key.",
          "title": "Supportstatusvocabulary"
        },
        "versioning": {
          "anyOf": [
            {
              "$ref": "#/$defs/ArtifactVersioningConfig"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "description": "Version-discovery rules that explain how development refs, tags, and named refs are derived for the artifact."
        }
      },
      "required": [
        "componentSlug",
        "key"
      ],
      "title": "ArtifactsDataEntry",
      "type": "object",
      "x-buildish-contract": {
        "category": "emitted",
        "ownership": "pipeline-derived"
      }
    },
    "LatestCandidateSummary": {
      "additionalProperties": false,
      "description": "Compact latest-candidate summary embedded in artifact aggregates.",
      "properties": {
        "candidateSequence": {
          "anyOf": [
            {
              "minimum": 1,
              "type": "integer"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "description": "Numeric ordering hint for the candidate, usually the `rc` sequence number.",
          "examples": [
            1
          ],
          "title": "Candidatesequence"
        },
        "displayVersion": {
          "anyOf": [
            {
              "minLength": 1,
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "description": "Human-readable candidate label when it should differ from the raw version string.",
          "title": "Displayversion"
        },
        "version": {
          "anyOf": [
            {
              "minLength": 1,
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "description": "Candidate version string when the provider exposes one.",
          "examples": [
            "4.1.0-rc1"
          ],
          "title": "Version"
        },
        "voteStatus": {
          "anyOf": [
            {
              "minLength": 1,
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "description": "Vote-status label for the latest candidate when it is known.",
          "examples": [
            "passed"
          ],
          "title": "Votestatus"
        }
      },
      "title": "LatestCandidateSummary",
      "type": "object",
      "x-buildish-contract": {
        "category": "emitted",
        "ownership": "pipeline-derived"
      }
    },
    "LatestReleaseSummary": {
      "additionalProperties": false,
      "description": "Compact latest-release summary embedded in artifact aggregates.",
      "properties": {
        "displayVersion": {
          "anyOf": [
            {
              "minLength": 1,
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "description": "Human-readable label for the latest release when it should differ from the raw version string.",
          "title": "Displayversion"
        },
        "publicationState": {
          "anyOf": [
            {
              "$ref": "#/$defs/PublicationState"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "description": "Publication-state label for the latest release, such as published or withdrawn."
        },
        "publishedAt": {
          "anyOf": [
            {
              "format": "date-time",
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "description": "Timestamp when the latest release became publicly available.",
          "title": "Publishedat"
        },
        "tag": {
          "anyOf": [
            {
              "minLength": 1,
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "description": "Tag associated with the latest release, if known.",
          "examples": [
            "v4.0.1"
          ],
          "title": "Tag"
        },
        "version": {
          "description": "Exact version string of the latest known release.",
          "examples": [
            "4.0.1"
          ],
          "minLength": 1,
          "title": "Version",
          "type": "string"
        }
      },
      "required": [
        "version"
      ],
      "title": "LatestReleaseSummary",
      "type": "object",
      "x-buildish-contract": {
        "category": "emitted",
        "ownership": "pipeline-derived"
      }
    },
    "NamedRefConfig": {
      "additionalProperties": false,
      "description": "Named source-control ref intentionally exposed as a stable version context.",
      "properties": {
        "description": {
          "anyOf": [
            {
              "minLength": 1,
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "description": "Human-readable explanation of what this named ref contains or who should use it.",
          "examples": [
            "Early access docs for the next planned minor release."
          ],
          "title": "Description"
        },
        "displayName": {
          "anyOf": [
            {
              "minLength": 1,
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "description": "Human-readable label shown in version pickers, breadcrumbs, or other rendered UI.",
          "examples": [
            "Preview"
          ],
          "title": "Displayname"
        },
        "key": {
          "description": "Stable identifier used elsewhere in the catalog to select this named ref.",
          "examples": [
            "preview"
          ],
          "minLength": 1,
          "title": "Key",
          "type": "string"
        },
        "maturity": {
          "anyOf": [
            {
              "minLength": 1,
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "description": "Short maturity label that explains how stable or experimental this named ref should be treated.",
          "examples": [
            "preview"
          ],
          "title": "Maturity"
        },
        "ref": {
          "description": "Exact source-control ref to resolve when this named context is selected.",
          "examples": [
            "refs/heads/preview"
          ],
          "minLength": 1,
          "title": "Ref",
          "type": "string"
        }
      },
      "required": [
        "key",
        "ref"
      ],
      "title": "NamedRefConfig",
      "type": "object",
      "x-buildish-contract": {
        "category": "authored",
        "ownership": "consumer-owned"
      }
    },
    "PublicationState": {
      "description": "Observed provider-side publication state.",
      "enum": [
        "published",
        "hidden",
        "withdrawn",
        "tombstoned"
      ],
      "title": "PublicationState",
      "type": "string"
    },
    "RecordKind": {
      "description": "Normalized provider record lifecycle kind.",
      "enum": [
        "development",
        "released",
        "candidate",
        "namedRef",
        "lineHead"
      ],
      "title": "RecordKind",
      "type": "string"
    },
    "RefAggregateEntry": {
      "additionalProperties": false,
      "description": "Entry in ``data/refs.json``.",
      "properties": {
        "artifactKey": {
          "description": "Owning artifact key for the ref context.",
          "examples": [
            "runtime"
          ],
          "minLength": 1,
          "title": "Artifactkey",
          "type": "string"
        },
        "componentSlug": {
          "description": "Owning component slug for the ref context.",
          "examples": [
            "spark"
          ],
          "minLength": 1,
          "title": "Componentslug",
          "type": "string"
        },
        "displayVersion": {
          "anyOf": [
            {
              "minLength": 1,
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "description": "Human-readable label for the ref context.",
          "examples": [
            "main"
          ],
          "title": "Displayversion"
        },
        "externalId": {
          "anyOf": [
            {
              "minLength": 1,
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "description": "Provider-specific stable identifier for the upstream ref record.",
          "title": "Externalid"
        },
        "externalUrl": {
          "anyOf": [
            {
              "minLength": 1,
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "description": "Human-browsable upstream URL for the ref record.",
          "title": "Externalurl"
        },
        "kind": {
          "$ref": "#/$defs/RecordKind",
          "description": "Ref context kind, limited to development, named-ref, and line-head entries."
        },
        "maturity": {
          "anyOf": [
            {
              "minLength": 1,
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "description": "Maturity label associated with the ref context.",
          "examples": [
            "preview"
          ],
          "title": "Maturity"
        },
        "namedRefKey": {
          "anyOf": [
            {
              "minLength": 1,
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "description": "Catalog-authored named-ref key when this entry represents a named ref.",
          "examples": [
            "preview"
          ],
          "title": "Namedrefkey"
        },
        "provider": {
          "anyOf": [
            {
              "minLength": 1,
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "description": "Provider key for the upstream system that supplied this ref record.",
          "title": "Provider"
        },
        "ref": {
          "description": "Exact source-control ref for the published ref context.",
          "examples": [
            "refs/heads/main"
          ],
          "minLength": 1,
          "title": "Ref",
          "type": "string"
        },
        "releaseLine": {
          "anyOf": [
            {
              "minLength": 1,
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "description": "Release-line key when the ref context represents a line head.",
          "examples": [
            "4.0"
          ],
          "title": "Releaseline"
        }
      },
      "required": [
        "componentSlug",
        "artifactKey",
        "kind",
        "ref"
      ],
      "title": "RefAggregateEntry",
      "type": "object",
      "x-buildish-contract": {
        "category": "emitted",
        "ownership": "pipeline-derived"
      }
    },
    "ReleaseLineSummary": {
      "additionalProperties": false,
      "description": "Small release-line summary embedded into page or component front matter.",
      "properties": {
        "aliases": {
          "anyOf": [
            {
              "items": {
                "minLength": 1,
                "type": "string"
              },
              "type": "array"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "description": "Alternate labels that should also refer to this release line.",
          "examples": [
            [
              "stable"
            ]
          ],
          "title": "Aliases"
        },
        "headRef": {
          "anyOf": [
            {
              "minLength": 1,
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "description": "Maintenance or line-head ref associated with this release line, if known.",
          "examples": [
            "refs/heads/release-4.0"
          ],
          "title": "Headref"
        },
        "key": {
          "description": "Release-line key, such as `4.0`, for the summarized line.",
          "examples": [
            "4.0"
          ],
          "minLength": 1,
          "title": "Key",
          "type": "string"
        },
        "latest": {
          "anyOf": [
            {
              "minLength": 1,
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "description": "Latest released version currently associated with this line.",
          "examples": [
            "4.0.1"
          ],
          "title": "Latest"
        },
        "parent": {
          "anyOf": [
            {
              "minLength": 1,
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "description": "Optional parent release-line key when lineage should be preserved in front matter.",
          "examples": [
            "4.x"
          ],
          "title": "Parent"
        },
        "supportStatus": {
          "anyOf": [
            {
              "minLength": 1,
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "description": "Support-status key or label for the release line.",
          "examples": [
            "supported"
          ],
          "title": "Supportstatus"
        },
        "supportWindow": {
          "anyOf": [
            {
              "$ref": "#/$defs/SupportWindow"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "description": "Lifecycle dates and support notes for the release line."
        }
      },
      "required": [
        "key"
      ],
      "title": "ReleaseLineSummary",
      "type": "object",
      "x-buildish-contract": {
        "category": "emitted",
        "ownership": "pipeline-derived"
      }
    },
    "SupportStatusDefinition": {
      "additionalProperties": false,
      "description": "One reusable support-status label, description, and default lifecycle behavior.",
      "properties": {
        "defaultMaintenancePhase": {
          "anyOf": [
            {
              "minLength": 1,
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "description": "Default maintenance-phase label to apply when a release uses this support status and does not provide a more specific phase.",
          "examples": [
            "active"
          ],
          "title": "Defaultmaintenancephase"
        },
        "description": {
          "anyOf": [
            {
              "minLength": 1,
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "description": "Human-readable explanation of what this support status means in practice.",
          "examples": [
            "Receives regular fixes and new patch releases."
          ],
          "title": "Description"
        },
        "displayName": {
          "description": "Human-readable status label shown to readers, such as `Supported` or `Security fixes only`.",
          "examples": [
            "Supported"
          ],
          "minLength": 1,
          "title": "Displayname",
          "type": "string"
        },
        "order": {
          "anyOf": [
            {
              "type": "integer"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "description": "Optional sort order used when several support statuses should appear in a stable display order.",
          "examples": [
            10
          ],
          "title": "Order"
        }
      },
      "required": [
        "displayName"
      ],
      "title": "SupportStatusDefinition",
      "type": "object",
      "x-buildish-contract": {
        "category": "authored",
        "ownership": "component-owned"
      }
    },
    "SupportWindow": {
      "additionalProperties": false,
      "description": "Lifecycle dates and support notes for one release line or exact release.",
      "properties": {
        "endOfActiveSupportDate": {
          "anyOf": [
            {
              "format": "date-time",
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "description": "Date after which the release no longer receives full active support.",
          "title": "Endofactivesupportdate"
        },
        "endOfLifeDate": {
          "anyOf": [
            {
              "format": "date-time",
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "description": "Final retirement date after which the release should be treated as fully end-of-life.",
          "title": "Endoflifedate"
        },
        "endOfSupportDate": {
          "anyOf": [
            {
              "format": "date-time",
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "description": "Date after which the release is no longer supported in normal maintenance channels.",
          "title": "Endofsupportdate"
        },
        "maintenancePhase": {
          "anyOf": [
            {
              "minLength": 1,
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "description": "Short label for the current maintenance phase, such as general availability, maintenance, or security-only support.",
          "examples": [
            "security-fixes"
          ],
          "title": "Maintenancephase"
        },
        "notes": {
          "anyOf": [
            {
              "minLength": 1,
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "description": "Additional notes that clarify exceptions, migration advice, or support caveats.",
          "title": "Notes"
        },
        "releaseDate": {
          "anyOf": [
            {
              "format": "date-time",
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "description": "Release date for the line or version that this support window describes.",
          "examples": [
            "2026-04-01T00:00:00Z"
          ],
          "title": "Releasedate"
        },
        "supportPolicyUrl": {
          "anyOf": [
            {
              "minLength": 1,
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "description": "Canonical URL that explains the support policy referenced by this support window.",
          "title": "Supportpolicyurl"
        }
      },
      "title": "SupportWindow",
      "type": "object",
      "x-buildish-contract": {
        "category": "authored",
        "ownership": "consumer-owned"
      }
    }
  },
  "$id": "https://buildish.org/components/site-pipeline/schemas/artifacts-data-v1.schema.json",
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "additionalProperties": false,
  "description": "Public staged aggregate file at ``data/artifacts.json``.",
  "properties": {
    "items": {
      "description": "Artifact aggregate entries emitted into `data/artifacts.json`.",
      "items": {
        "$ref": "#/$defs/ArtifactsDataEntry"
      },
      "title": "Items",
      "type": "array"
    }
  },
  "required": [
    "items"
  ],
  "title": "Site Pipeline data/artifacts.json v1",
  "type": "object",
  "x-buildish-contract": {
    "category": "emitted",
    "filePath": "data/artifacts.json",
    "ownership": "pipeline-derived",
    "summary": "Published artifact inventory with version discovery rules, lifecycle hints, and latest-version summaries."
  }
}
