{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "$id": "https://akashicnet.org/.well-known/akashicnet-identity-policy.schema.json",
  "title": "AkashicNET Public Identity Policy",
  "type": "object",
  "required": [
    "$schema",
    "policy_id",
    "version",
    "updated",
    "scope",
    "status",
    "identity_model",
    "automated_identity_inference",
    "automated_truth_inference",
    "visibility_classes",
    "controls",
    "policy_provenance"
  ],
  "properties": {
    "$schema": {
      "const": "https://akashicnet.org/.well-known/akashicnet-identity-policy.schema.json"
    },
    "policy_id": { "const": "akashicnet-public-identity-policy" },
    "version": { "type": "string", "pattern": "^[0-9]+\\.[0-9]+\\.[0-9]+$" },
    "updated": { "type": "string", "format": "date" },
    "scope": { "const": "https://akashicnet.org" },
    "status": { "const": "active_public_policy" },
    "identity_model": { "const": "pseudonymous" },
    "automated_identity_inference": { "const": false },
    "automated_truth_inference": { "const": false },
    "visibility_classes": {
      "type": "array",
      "minItems": 4,
      "maxItems": 4,
      "items": {
        "type": "object",
        "required": ["id", "description", "examples", "publication_rule"],
        "properties": {
          "id": {
            "enum": [
              "public_pseudonym",
              "public_project",
              "source_attribution",
              "private_personal"
            ]
          },
          "description": { "type": "string", "minLength": 1 },
          "examples": {
            "type": "array",
            "minItems": 1,
            "items": { "type": "string", "minLength": 1 }
          },
          "publication_rule": { "type": "string", "minLength": 1 }
        },
        "additionalProperties": false
      },
      "allOf": [
        { "contains": { "type": "object", "properties": { "id": { "const": "public_pseudonym" } }, "required": ["id"] }, "minContains": 1, "maxContains": 1 },
        { "contains": { "type": "object", "properties": { "id": { "const": "public_project" } }, "required": ["id"] }, "minContains": 1, "maxContains": 1 },
        { "contains": { "type": "object", "properties": { "id": { "const": "source_attribution" } }, "required": ["id"] }, "minContains": 1, "maxContains": 1 },
        { "contains": { "type": "object", "properties": { "id": { "const": "private_personal" } }, "required": ["id"] }, "minContains": 1, "maxContains": 1 }
      ]
    },
    "controls": {
      "type": "object",
      "required": [
        "private_by_default",
        "cross_service_identity_resolution",
        "confidence_amplification",
        "provenance_required",
        "consent_required_for_personal_material",
        "anonymisation_alone_authorises_publication",
        "human_review_required",
        "rights_promotion",
        "scientific_evidence_promotion"
      ],
      "properties": {
        "private_by_default": { "const": true },
        "cross_service_identity_resolution": { "const": false },
        "confidence_amplification": { "const": false },
        "provenance_required": { "const": true },
        "consent_required_for_personal_material": { "const": true },
        "anonymisation_alone_authorises_publication": { "const": false },
        "human_review_required": { "const": true },
        "rights_promotion": { "const": false },
        "scientific_evidence_promotion": { "const": false }
      },
      "additionalProperties": false
    },
    "policy_provenance": {
      "type": "object",
      "required": ["authority", "review", "source_page"],
      "properties": {
        "authority": { "const": "AkashicNET public privacy boundary" },
        "review": { "const": "human-reviewed" },
        "source_page": { "const": "https://akashicnet.org/privacy" }
      },
      "additionalProperties": false
    }
  },
  "additionalProperties": false
}
