{
  "$id": "https://schemas.dissco.tech/schemas/fdo-profile/handle-kernel/0.1.0/handle-kernel.json",
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "type": "object",
  "description": "Kernel from which all DiSSCo FAIR Digital Object profiles are derived",
  "$comment": "FDO Profile Version 0.1.0",
  "properties": {
    "fdoProfile": {
      "description": "PID to a machine readable description of the attributes in the FDO record",
      "const": "https://doi.org/21.T11148/532ce6796e2828dd2be6",
      "$comment": "idx = 1"
    },
    "fdoRecordLicense": {
      "const": "https://creativecommons.org/publicdomain/zero/1.0/",
      "description": "The licence for the FDO record, required to be always public domain",
      "$comment": "idx = 2"
    },
    "digitalObjectType": {
      "description": "PID to a description of the Type of digital object that defines the metadata, bit sequences (if any) and operations for the object",
      "const": "https://doi.org/21.T11148/532ce6796e2828dd2be6",
      "$comment": "idx = 3"
    },
    "digitalObjectName": {
      "type": "string",
      "description": "Name of the object type for humans",
      "example": "digital specimen type 1",
      "$comment": "idx = 4"
    },
    "pid": {
      "type": "string",
      "description": "The PID of which the FDO record is part, in DiSSCo this is a Handle or DOI. It is recommended to store this pid also in the local collection management system for the specimen.",
      "example": "https://doi.org/10.22/GEE-W3J-HL2",
      "$comment": "idx = 5"
    },
    "pidIssuer": {
      "type": "string",
      "description": "In case of a DOI this is a PID for the DOI Registration Agency",
      "example": "https://hdl.handle.net/10.17183",
      "$comment": "idx = 6"
    },
    "pidIssuerName": {
      "type": "string",
      "description": "Human-readable name of the PID issuer",
      "example": "DataCite",
      "$comment": "idx = 7"
    },
    "issuedForAgent": {
      "type": "string",
      "description": "In the case of a digital specimen, this is a PID for DiSSCo as the agent responsible for serving the digital specimen object",
      "example": "https://hdl.handle.net/10.22",
      "$comment": "idx = 8"
    },
    "issuedForAgentName": {
      "type": "string",
      "description": "Human-readable agent name",
      "example": "DiSSCo",
      "$comment": "idx = 9"
    },
    "pidRecordIssueDate": {
      "type": "string",
      "description": "Date the PID record was created",
      "example": "2023-10-16T12:08:37.494Z",
      "$comment": "idx = 10"
    },
    "pidRecordIssueNumber": {
      "type": "integer",
      "description": "Starts with 1 and is incrementally increased by 1 every time the pid record is updated. Compatible with DOI schema requirements.",
      "example": "2",
      "$comment": "idx = 11"
    },
    "structuralType": {
      "enum": [
        "digital",
        "physical",
        "performance",
        "abstraction"
      ],
      "description": "Nature of the digital object, compatible with DOI schema requirements. The nature of a digital specimen object is always \"digital\". Other digital objects (outside DiSSCo) could be of physical, performance or abstraction nature.",
      "$comment": "idx = 12"
    },
    "pidStatus": {
      "enum": [
        "TOMBSTONE",
        "DRAFT",
        "ACTIVE",
        "FAILED"
      ],
      "description": "A PID is considered to have a lifecycle, PID status indicates the status in the life cycle, e.g. draft, active, retired. PID statuses are described further in the PID infrastructure design.",
      "$comment": "idx = 13"
    },
    "HS_ADMIN": {
      "type": "string",
      "description": "Administrative information for PID profile",
      "$comment": "idx = 100"
    },
    "10320/loc": {
      "type": "string",
      "description": "XML document describing location(s) of the resource",
      "$comment": "idx = 101",
      "example": "<locations><location href=\"https://dev.dissco.tech/api/v1/annotations/TEST/FFR-RTL-B8K\" id=\"0\" weight=\"1\"/></locations>"
    },
    "tombstoneText": {
      "type": "string",
      "description": "A reason why the Digital Object was tombstoned",
      "examples": [
        "This is a duplicate of XXX",
        "This object was made by mistake"
      ],
      "$comment": "idx = 30"
    },
    "ods:hasRelatedPID": {
      "type": "array",
      "description": "The PIDs of the object the tombstoned object is related to",
      "items": {
        "type": "object",
        "items": {
          "type": "object",
          "properties": {
            "ods:ID": {
              "type": "string",
              "description": "The PID of the related object",
              "examples": [
                "https://doi.org/10.1234/abcd"
              ]
            },
            "ods:relationshipType": {
              "type": "string",
              "description": "The type of relationship between the tombstoned object and the related object",
              "examples": [
                "ods:relatedTo",
                "ods:isDuplicateOf"
              ]
            }
          },
          "additionalProperties": false
        },
        "$comment": "idx = 31"
      }
    },
    "tombstoneDate": {
      "type": "string",
      "description": "Timestamp the Digital Object was tombstoned and no longer active.",
      "format": "date-time",
      "examples": [
        "2021-06-01T12:00:000Z"
      ],
      "$comment": "idx = 32"
    }
  },
  "additionalProperties": false,
  "required": [
    "fdoProfile",
    "fdoRecordLicense",
    "digitalObjectType",
    "digitalObjectName",
    "pid",
    "pidIssuer",
    "pidIssuerName",
    "issuedForAgent",
    "pidRecordIssueDate",
    "pidRecordIssueNumber",
    "10320/loc",
    "structuralType",
    "pidStatus"
  ]
}