{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "$id": "https://publicschema.org/RegistryEntry.schema.json",
  "title": "RegistryEntry",
  "description": "A record in a register that describes one subject. The register and the record's local identifier together identify the record; the subject has its own separate identity. Entering a record does not in itself grant recognition or prove what the record states.",
  "type": "object",
  "properties": {
    "register_uri": {
      "type": "string",
      "format": "uri",
      "description": "The persistent URI of the register that holds the record and gives meaning to its local identifier. It reveals which register a subject appears in."
    },
    "record_id": {
      "type": "string",
      "description": "The identifier of the record within its register, exactly as the register issues it, including any leading zeros."
    },
    "subject_uri": {
      "type": "string",
      "format": "uri",
      "description": "The URI of the thing this record or statement is about."
    },
    "subject_type": {
      "type": "string",
      "format": "uri",
      "description": "The URI of the class that the subject is expected to belong to."
    },
    "recorded_at": {
      "type": "string",
      "format": "date-time",
      "description": "The date and time the statement or event was entered into its source record. It can differ from when the fact took effect."
    },
    "valid_from": {
      "type": "string",
      "format": "date",
      "description": "The first calendar day on which the registration, permission, certification or other stated fact applies, as its source states it, when known. A later suspension, withdrawal or correction is recorded separately and does not overwrite this date."
    },
    "valid_to": {
      "type": "string",
      "format": "date",
      "description": "The last calendar day on which the registration, permission, certification or other stated fact applies, as its source states it. A later suspension, withdrawal or correction is recorded separately and does not overwrite this date. If absent, the end is unknown, not unlimited."
    },
    "supersedes_record": {
      "type": "array",
      "items": {
        "oneOf": [
          {
            "$ref": "https://publicschema.org/RecordReference.schema.json"
          },
          {
            "type": "string",
            "description": "URI or identifier reference"
          }
        ],
        "description": "Earlier records that this record or event replaces. Replacing a record does not replace its subject."
      }
    },
    "source_records": {
      "type": "array",
      "items": {
        "oneOf": [
          {
            "$ref": "https://publicschema.org/RecordReference.schema.json"
          },
          {
            "type": "string",
            "description": "URI or identifier reference"
          }
        ],
        "description": "Upstream records from which this statement was taken or derived."
      }
    },
    "evidence_assertions": {
      "type": "array",
      "items": {
        "oneOf": [
          {
            "$ref": "https://publicschema.org/EvidenceAssertion.schema.json"
          },
          {
            "type": "string",
            "description": "URI or identifier reference"
          }
        ],
        "description": "Statements identifying sources that support or contradict this statement."
      }
    }
  }
}
