{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "title": "Heritage Object",
  "description": "A physical cultural heritage item (artwork, building element, garden feature, museum object...),\nmodelled as a CIDOC-CRM E22 Man-Made Object.\n",
  "$defs": {
    "properties": {
      "type": "object",
      "properties": {
        "identifier": {
          "type": "string",
          "description": "A local catalogue or inventory number (CIDOC-CRM P1_is_identified_by).",
          "x-jsonld-id": "http://www.cidoc-crm.org/cidoc-crm/P1_is_identified_by"
        },
        "title": {
          "type": "string",
          "description": "A human-readable title or name for the object (CIDOC-CRM P102_has_title).",
          "x-jsonld-id": "http://www.cidoc-crm.org/cidoc-crm/P102_has_title"
        },
        "description": {
          "type": "string",
          "description": "Free-text description or curatorial note (CIDOC-CRM P3_has_note).",
          "x-jsonld-id": "http://www.cidoc-crm.org/cidoc-crm/P3_has_note"
        },
        "objectType": {
          "type": "string",
          "format": "uri",
          "description": "The type of object, typically a Getty AAT concept URI (CIDOC-CRM P2_has_type).",
          "x-jsonld-id": "http://www.cidoc-crm.org/cidoc-crm/P2_has_type",
          "x-jsonld-type": "@id"
        },
        "material": {
          "type": "array",
          "description": "Materials the object consists of, typically Getty AAT concept URIs (CIDOC-CRM P45_consists_of).",
          "items": {
            "type": "string",
            "format": "uri"
          },
          "x-jsonld-id": "http://www.cidoc-crm.org/cidoc-crm/P45_consists_of",
          "x-jsonld-type": "@id",
          "x-jsonld-container": "@set"
        },
        "currentLocation": {
          "type": "string",
          "format": "uri",
          "description": "URI of the place where the object is currently or was last located (CIDOC-CRM P53_has_former_or_current_location).",
          "x-jsonld-id": "http://www.cidoc-crm.org/cidoc-crm/P53_has_former_or_current_location",
          "x-jsonld-type": "@id"
        },
        "persistentIdentifier": {
          "type": "string",
          "format": "uri",
          "description": "A persistent identifier (e.g. ARK, DOI, Handle) minted for this object.",
          "x-jsonld-id": "http://www.cidoc-crm.org/cidoc-crm/P1_is_identified_by",
          "x-jsonld-type": "@id"
        },
        "hdtoType": {
          "type": "string",
          "const": "hdto:HC3_Tangible_Heritage_Entity",
          "description": "Fixed HDTO co-type (ECCCH Heritage Digital Twin Ontology, D7.1). Maps via context directly to rdf:type, alongside crm:E22_Man-Made_Object \u2014 additive, not a replacement (D7.1 Figure 20's own worked example shows the same node typed as both classes at once). Required so every valid instance is HDTO-typed on a plain JSON-LD parse, with no extra post-processing step needed.",
          "x-jsonld-id": "http://www.w3.org/1999/02/22-rdf-syntax-ns#type",
          "x-jsonld-type": "@id"
        }
      },
      "required": [
        "identifier",
        "title",
        "hdtoType"
      ]
    }
  },
  "type": "object",
  "allOf": [
    {
      "type": "object",
      "properties": {
        "id": {
          "type": "string",
          "format": "uri",
          "description": "The persistent or local URI identifying this object.",
          "x-jsonld-id": "@id"
        },
        "type": {
          "const": "HeritageObject",
          "x-jsonld-id": "@type"
        }
      },
      "required": [
        "id",
        "type"
      ]
    },
    {
      "$ref": "#/$defs/properties"
    }
  ],
  "x-jsonld-extra-terms": {
    "HeritageObject": "http://www.cidoc-crm.org/cidoc-crm/E22_Man-Made_Object",
    "parentSpace": {
      "x-jsonld-id": "http://www.cidoc-crm.org/cidoc-crm/P46i_forms_part_of",
      "x-jsonld-type": "@id"
    },
    "movementHistory": {
      "x-jsonld-id": "http://www.w3.org/ns/prov#wasUsedBy",
      "x-jsonld-type": "@id",
      "x-jsonld-container": "@set"
    }
  },
  "x-jsonld-prefixes": {
    "crm": "http://www.cidoc-crm.org/cidoc-crm/",
    "rdf": "http://www.w3.org/1999/02/22-rdf-syntax-ns#",
    "prov": "http://www.w3.org/ns/prov#",
    "hdto": "http://isl.ics.forth.gr/ontology/echoes/"
  }
}