com.linxtape.tape

linxtape.com

{
  "$type": "com.atproto.lexicon.schema",
  "defs": {
    "liner": {
      "properties": {
        "note": {
          "maxGraphemes": 280,
          "maxLength": 2800,
          "type": "string"
        },
        "signOff": {
          "maxGraphemes": 60,
          "maxLength": 600,
          "type": "string"
        },
        "tips": {
          "items": {
            "maxGraphemes": 140,
            "maxLength": 1400,
            "type": "string"
          },
          "maxLength": 3,
          "type": "array"
        }
      },
      "type": "object"
    },
    "main": {
      "key": "tid",
      "record": {
        "properties": {
          "afterThey": {
            "description": "Optional goal: what they'll get from it.",
            "maxGraphemes": 200,
            "maxLength": 2000,
            "type": "string"
          },
          "createdAt": {
            "format": "datetime",
            "type": "string"
          },
          "forWho": {
            "description": "Optional goal: who it's for.",
            "maxGraphemes": 200,
            "maxLength": 2000,
            "type": "string"
          },
          "liner": {
            "ref": "#liner",
            "type": "ref"
          },
          "listed": {
            "description": "true = listed in search. false = link-only: kept out of search, but still public.",
            "type": "boolean"
          },
          "look": {
            "description": "Cassette shell and stripe set.",
            "knownValues": [
              "smoke-sunset",
              "red-mono",
              "blue-ocean",
              "clear-sunset"
            ],
            "maxLength": 64,
            "type": "string"
          },
          "oneLiner": {
            "description": "What the tape is about, in one line.",
            "maxGraphemes": 200,
            "maxLength": 2000,
            "type": "string"
          },
          "sides": {
            "items": {
              "ref": "#side",
              "type": "ref"
            },
            "maxLength": 2,
            "minLength": 1,
            "type": "array"
          },
          "title": {
            "maxGraphemes": 100,
            "maxLength": 1000,
            "minLength": 1,
            "type": "string"
          },
          "updatedAt": {
            "format": "datetime",
            "type": "string"
          }
        },
        "required": [
          "title",
          "sides",
          "listed",
          "createdAt"
        ],
        "type": "object"
      },
      "type": "record"
    },
    "side": {
      "properties": {
        "letter": {
          "enum": [
            "A",
            "B"
          ],
          "type": "string"
        },
        "name": {
          "maxGraphemes": 60,
          "maxLength": 600,
          "type": "string"
        },
        "tracks": {
          "items": {
            "ref": "#track",
            "type": "ref"
          },
          "maxLength": 50,
          "type": "array"
        }
      },
      "required": [
        "letter",
        "tracks"
      ],
      "type": "object"
    },
    "track": {
      "properties": {
        "id": {
          "description": "Stable identifier, generated once when the track is added and never reused within the tape.",
          "maxLength": 32,
          "minLength": 1,
          "type": "string"
        },
        "kind": {
          "knownValues": [
            "video",
            "page",
            "pdf"
          ],
          "maxLength": 32,
          "type": "string"
        },
        "minutes": {
          "description": "Video duration or estimated reading time, in whole minutes.",
          "maximum": 100000,
          "minimum": 0,
          "type": "integer"
        },
        "note": {
          "description": "The curator's note: why this one.",
          "maxGraphemes": 300,
          "maxLength": 3000,
          "type": "string"
        },
        "pages": {
          "maximum": 100000,
          "minimum": 0,
          "type": "integer"
        },
        "sourceDomain": {
          "maxLength": 253,
          "type": "string"
        },
        "title": {
          "maxGraphemes": 300,
          "maxLength": 3000,
          "type": "string"
        },
        "url": {
          "format": "uri",
          "maxLength": 2048,
          "type": "string"
        }
      },
      "required": [
        "id",
        "url",
        "kind",
        "title",
        "minutes"
      ],
      "type": "object"
    }
  },
  "description": "A tape: a public collection of links around a topic, in order, like a mixtape. Every track plays on its creator's own site or player.",
  "id": "com.linxtape.tape",
  "lexicon": 1
}

Validate Record

Validate a record against com.linxtape.tape

Validation Options
Treat any remaining unresolved references as valid

Metadata

DID
did:plc:m3miohxmpd3sbnaapp3kvh2p
CID
bafyreigk65ar2ayiz2qcal4jmqgj3cvcyk3m6nikg4qpsar5p2xktpyyse
Indexed At
2026-10-09 00:11 UTC
AT-URI
at://did:plc:m3miohxmpd3sbnaapp3kvh2p/com.atproto.lexicon.schema/com.linxtape.tape

Version History (2 versions)

Similar Lexicons

Lexicons whose schemas describe something close to this one. Check them before publishing a new one that overlaps.

Lexicon Garden

@