{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "$id": "https://platoskallipolis.com/schemas/provider-contribution.v1.json",
  "title": "Plato's Kallipolis Provider Contribution Package",
  "description": "Offline manifest for validating a public structured-resource contribution without authentication or submission.",
  "type": "object",
  "additionalProperties": false,
  "required": ["schema", "id", "version", "provider", "resource", "declarations", "reviewIntent"],
  "properties": {
    "schema": {"const": "kallipolis.provider-contribution.v1"},
    "id": {"type": "string", "pattern": "^contribution\\.[a-z0-9]+(?:[.-][a-z0-9]+)*$", "maxLength": 160},
    "version": {"type": "string", "pattern": "^[0-9]+\\.[0-9]+\\.[0-9]+$"},
    "provider": {
      "type": "object",
      "additionalProperties": false,
      "required": ["id", "name", "type", "homepage", "accountabilityUrl"],
      "properties": {
        "id": {"type": "string", "pattern": "^provider\\.[a-z0-9]+(?:[.-][a-z0-9]+)*$"},
        "name": {"type": "string", "minLength": 2, "maxLength": 160},
        "type": {"enum": ["organization", "individual", "public-body", "standards-body"]},
        "homepage": {"type": "string", "format": "uri"},
        "accountabilityUrl": {"type": "string", "format": "uri"}
      }
    },
    "resource": {
      "type": "object",
      "additionalProperties": false,
      "required": ["id", "schema", "fileName"],
      "properties": {
        "id": {"type": "string", "pattern": "^resource\\.[a-z0-9]+(?:[.-][a-z0-9]+)*$"},
        "schema": {"const": "kallipolis.resource-quality.v1"},
        "fileName": {"type": "string", "pattern": "^[A-Za-z0-9][A-Za-z0-9._-]*\\.json$", "maxLength": 120}
      }
    },
    "declarations": {
      "type": "object",
      "additionalProperties": false,
      "required": ["contentIsPublic", "containsNoSecrets", "containsNoPersonalData", "rightsAndLicenseReviewed", "aiGeneratedContentDisclosed", "policyVersion"],
      "properties": {
        "contentIsPublic": {"const": true},
        "containsNoSecrets": {"const": true},
        "containsNoPersonalData": {"const": true},
        "rightsAndLicenseReviewed": {"const": true},
        "aiGeneratedContentDisclosed": {"type": "boolean"},
        "policyVersion": {"const": "preview-1.0"}
      }
    },
    "reviewIntent": {
      "type": "object",
      "additionalProperties": false,
      "required": ["requestedAction", "acknowledgesNoSubmission"],
      "properties": {
        "requestedAction": {"const": "validate-only"},
        "acknowledgesNoSubmission": {"const": true}
      }
    }
  }
}
