{
  "$type": "com.atproto.lexicon.schema",
  "defs": {
    "main": {
      "description": "Attribution record linking a derivative work to its source, forming the remix tree graph",
      "key": "tid",
      "record": {
        "properties": {
          "createdAt": {
            "description": "Record creation timestamp",
            "format": "datetime",
            "maxLength": 100,
            "type": "string"
          },
          "derivativeTrack": {
            "description": "AT URI of the remix/derivative track",
            "format": "at-uri",
            "maxLength": 3000,
            "type": "string"
          },
          "derivativeTrackCid": {
            "description": "CID of the derivative track record at time of attribution",
            "format": "cid",
            "maxLength": 200,
            "type": "string"
          },
          "derivativeType": {
            "description": "Type of derivative work",
            "knownValues": [
              "remix",
              "sample",
              "edit",
              "mashup",
              "cover"
            ],
            "maxLength": 100,
            "type": "string"
          },
          "description": {
            "description": "Description of how the source was used in the derivative",
            "maxLength": 1000,
            "type": "string"
          },
          "sourceArtist": {
            "description": "DID of the original artist",
            "format": "did",
            "maxLength": 2048,
            "type": "string"
          },
          "sourceTrack": {
            "description": "AT URI of the original/source track",
            "format": "at-uri",
            "maxLength": 3000,
            "type": "string"
          },
          "sourceTrackCid": {
            "description": "CID of the source track record at time of attribution (pins to exact version)",
            "format": "cid",
            "maxLength": 200,
            "type": "string"
          }
        },
        "required": [
          "sourceTrack",
          "sourceArtist",
          "derivativeTrack",
          "derivativeType",
          "createdAt"
        ],
        "type": "object"
      },
      "type": "record"
    }
  },
  "id": "fm.freemix.remix.attribution",
  "lexicon": 1
}
