{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "$id": "https://openfutureforum.github.io/executive-intelligence-index/schema/source.schema.json",
  "title": "Source",
  "type": "object",
  "additionalProperties": false,
  "required": [
    "source_id",
    "canonical_title",
    "source_type",
    "original_url",
    "canonical_url",
    "rights_status",
    "ownership_status",
    "analysis_basis",
    "accessed_at",
    "verification_status",
    "provenance"
  ],
  "properties": {
    "source_id": {
      "type": "string",
      "minLength": 1
    },
    "canonical_title": {
      "type": "string",
      "minLength": 1
    },
    "alternate_titles": {
      "type": "array",
      "items": {
        "type": "string"
      },
      "uniqueItems": true
    },
    "source_type": {
      "$ref": "common.schema.json#/$defs/sourceType"
    },
    "series_or_parent_source": {
      "type": [
        "string",
        "null"
      ]
    },
    "publisher": {
      "type": [
        "string",
        "null"
      ]
    },
    "channel": {
      "type": [
        "string",
        "null"
      ]
    },
    "speaker_ids": {
      "type": "array",
      "items": {
        "type": "string"
      },
      "uniqueItems": true
    },
    "author_ids": {
      "type": "array",
      "items": {
        "type": "string"
      },
      "uniqueItems": true
    },
    "institutional_author": {
      "type": [
        "string",
        "null"
      ]
    },
    "organization_references": {
      "type": "array",
      "items": {
        "type": "string"
      },
      "uniqueItems": true
    },
    "recorded_at": {
      "type": [
        "string",
        "null"
      ],
      "format": "date"
    },
    "event_date": {
      "type": [
        "string",
        "null"
      ],
      "format": "date"
    },
    "published_at": {
      "type": [
        "string",
        "null"
      ],
      "format": "date"
    },
    "updated_at": {
      "type": [
        "string",
        "null"
      ],
      "format": "date"
    },
    "duration_seconds": {
      "type": [
        "integer",
        "null"
      ]
    },
    "language": {
      "type": [
        "string",
        "null"
      ]
    },
    "translated_title": {
      "type": [
        "string",
        "null"
      ]
    },
    "translation_method": {
      "type": [
        "string",
        "null"
      ]
    },
    "geography_of_speaker": {
      "type": "array",
      "items": {
        "type": "string"
      },
      "uniqueItems": true
    },
    "geography_of_organization": {
      "type": "array",
      "items": {
        "type": "string"
      },
      "uniqueItems": true
    },
    "geography_discussed": {
      "type": "array",
      "items": {
        "type": "string"
      },
      "uniqueItems": true
    },
    "study_geography": {
      "type": "array",
      "items": {
        "type": "string"
      },
      "uniqueItems": true
    },
    "original_url": {
      "type": "string",
      "format": "uri"
    },
    "canonical_url": {
      "type": "string",
      "format": "uri"
    },
    "archived_url": {
      "type": [
        "string",
        "null"
      ]
    },
    "embed_url": {
      "type": [
        "string",
        "null"
      ]
    },
    "doi": {
      "type": [
        "string",
        "null"
      ]
    },
    "canonical_identity_status": {
      "type": "string",
      "minLength": 1
    },
    "repost_status": {
      "type": [
        "string",
        "null"
      ]
    },
    "original_source_id": {
      "type": [
        "string",
        "null"
      ]
    },
    "rights_status": {
      "$ref": "common.schema.json#/$defs/rightsStatus"
    },
    "ownership_status": {
      "$ref": "common.schema.json#/$defs/ownershipStatus"
    },
    "relationship_to_off": {
      "type": [
        "string",
        "null"
      ]
    },
    "transcript_status": {
      "type": [
        "string",
        "null"
      ]
    },
    "transcript_source": {
      "type": [
        "string",
        "null"
      ]
    },
    "transcript_republication_permission": {
      "type": [
        "string",
        "null"
      ]
    },
    "chapter_markers": {
      "type": "array",
      "items": {}
    },
    "analysis_basis": {
      "type": "string",
      "minLength": 1
    },
    "topics": {
      "type": "array",
      "items": {
        "type": "string"
      },
      "uniqueItems": true
    },
    "executive_roles": {
      "type": "array",
      "items": {
        "type": "string"
      },
      "uniqueItems": true
    },
    "original_abstract": {
      "type": [
        "string",
        "null"
      ]
    },
    "inclusion_rationale": {
      "type": [
        "string",
        "null"
      ]
    },
    "source_quality_dimensions": {
      "type": "object"
    },
    "methodology_quality": {
      "type": "object"
    },
    "study_design": {
      "type": [
        "string",
        "null"
      ]
    },
    "sample": {
      "type": "object"
    },
    "population": {
      "type": [
        "string",
        "null"
      ]
    },
    "date_range": {
      "type": "object"
    },
    "funding": {
      "type": [
        "string",
        "null"
      ]
    },
    "sponsor": {
      "type": [
        "string",
        "null"
      ]
    },
    "peer_review_status": {
      "type": [
        "string",
        "null"
      ]
    },
    "findings": {
      "type": "array",
      "items": {}
    },
    "limitations": {
      "type": "array",
      "items": {
        "type": "string"
      },
      "uniqueItems": true
    },
    "correction_ids": {
      "type": "array",
      "items": {
        "type": "string"
      },
      "uniqueItems": true
    },
    "retraction_status": {
      "type": [
        "string",
        "null"
      ]
    },
    "content_hash": {
      "type": [
        "string",
        "null"
      ]
    },
    "accessed_at": {
      "type": [
        "string",
        "null"
      ],
      "format": "date"
    },
    "verification_status": {
      "type": "string",
      "minLength": 1
    },
    "source_depth": {
      "type": [
        "string",
        "null"
      ]
    },
    "publication_status": {
      "type": [
        "string",
        "null"
      ]
    },
    "workflow_status": {
      "$ref": "common.schema.json#/$defs/workflowStatus"
    },
    "machine_review_status": {
      "$ref": "common.schema.json#/$defs/machineReviewStatus"
    },
    "human_review_status": {
      "$ref": "common.schema.json#/$defs/humanReviewStatus"
    },
    "reviewed_by": {
      "type": [
        "string",
        "null"
      ]
    },
    "reviewed_at": {
      "type": [
        "string",
        "null"
      ],
      "format": "date-time"
    },
    "provenance": {
      "type": "array",
      "minItems": 1,
      "items": {
        "$ref": "common.schema.json#/$defs/provenance"
      }
    },
    "revision_history": {
      "type": "array",
      "items": {
        "$ref": "common.schema.json#/$defs/revision"
      }
    }
  }
}
