{
  "@context": {
    "TDM": "http://purl.org/iscc/terms/#TDM",
    "iscc": "@id",
    "tdm_reservation": "http://www.w3.org/ns/tdmrep#reservation",
    "tdm_policy": {
      "@id": "http://www.w3.org/ns/tdmrep#policy",
      "@type": "@id"
    }
  },
  "x-iscc-jsonld": {
    "context": "http://purl.org/iscc/context/0.7.0.jsonld",
    "type": "TDM",
    "upgrade": "Compact records omit @context and @type. To obtain JSON-LD, set @context to this schema's top-level @context term map (or to the versioned context URL in this extension's `context` field) and set @type to this extension's `type` value."
  },
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "$id": "http://purl.org/iscc/schema/tdm-0.7.0.json",
  "title": "TDM",
  "type": "object",
  "description": "Machine-readable TDM rights signals conformant with W3C TDMRep, providing content-addressed delivery of tdm-reservation and tdm-policy properties via ISCC. Designed for content identification and discovery where identity, provenance, and trust context complement the reservation signal.",
  "properties": {
    "@context": {
      "oneOf": [
        {
          "type": "string",
          "format": "uri"
        },
        {
          "type": "object"
        }
      ],
      "default": "http://purl.org/iscc/context/0.7.0.jsonld",
      "description": "The JSON-LD Context URI for ISCC metadata."
    },
    "@type": {
      "type": "string",
      "const": "TDM",
      "description": "The type of service metadata."
    },
    "$schema": {
      "type": "string",
      "format": "uri",
      "const": "http://purl.org/iscc/schema/tdm-0.7.0.json",
      "description": "The JSON Schema URI for TDM service metadata. See the top-level `x-iscc-jsonld` extension for the JSON-LD upgrade path."
    },
    "iscc": {
      "type": "string",
      "description": "An ISCC-CODE or ISCC-ID identifying the digital content this TDM declaration applies to. Mapped to JSON-LD @id, making it the RDF subject of the declaration.",
      "example": "ISCC:MAACAJINXFXA2SQX",
      "minLength": 15,
      "maxLength": 73,
      "pattern": "^ISCC:[A-Z2-7]{10,73}$"
    },
    "tdm_reservation": {
      "type": "integer",
      "description": "Blanket TDM reservation flag, semantically equivalent to W3C TDMRep tdm-reservation. 1 = rights reserved (EU DSM Art. 4 opt-out), 0 = not reserved, absent = undeclared.",
      "enum": [
        0,
        1
      ],
      "example": 1,
      "x-iscc-context": "http://www.w3.org/ns/tdmrep#reservation",
      "x-iscc-status": "stable"
    },
    "tdm_policy": {
      "type": "string",
      "format": "uri",
      "description": "URL of a TDM Policy document (typically a JSON-LD ODRL Offer profiling TDMRep). Semantically equivalent to W3C TDMRep tdm-policy.",
      "example": "https://example.com/tdmrep-policy.json",
      "x-iscc-context": "http://www.w3.org/ns/tdmrep#policy"
    }
  },
  "additionalProperties": true,
  "examples": [
    {
      "@context": "http://purl.org/iscc/context/0.7.0.jsonld",
      "@type": "TDM",
      "$schema": "http://purl.org/iscc/schema/tdm-0.7.0.json",
      "iscc": "ISCC:MAACAJINXFXA2SQX",
      "tdm_reservation": 1,
      "tdm_policy": "https://example.com/tdmrep-policy.json"
    }
  ]
}