Record containing a single playlist entry.
Record Key
tid
Timestamp-based ID
Properties
addedBy
ref
dev.openplaylist.defs#contributor
Optional
Who added the track. Maps to added_by in the ListenBrainz JSPF extension.
createdAt
string
datetime
Required
When the track was added. Maps to added_at in the ListenBrainz JSPF extension.
note
string
Optional
Optional message from the contributor about their pick. Maps to the JSPF track annotation.
maxLength: 3000 bytesmaxGraphemes: 300 graphemesorder
integer
Required
Position in the playlist. Readers sort ascending; ties break on createdAt.
minimum: 0subject
ref
com.atproto.repo.strongRef
Required
Strong reference to the parent dev.openplaylist.playlist record.
track
ref
dev.openplaylist.defs#track
Required
Denormalized track metadata so the item renders without any further lookup.
View raw schema
{
"description": "Record containing a single playlist entry.",
"key": "tid",
"record": {
"properties": {
"addedBy": {
"description": "Who added the track. Maps to added_by in the ListenBrainz JSPF extension.",
"ref": "dev.openplaylist.defs#contributor",
"type": "ref"
},
"createdAt": {
"description": "When the track was added. Maps to added_at in the ListenBrainz JSPF extension.",
"format": "datetime",
"type": "string"
},
"note": {
"description": "Optional message from the contributor about their pick. Maps to the JSPF track annotation.",
"maxGraphemes": 300,
"maxLength": 3000,
"type": "string"
},
"order": {
"description": "Position in the playlist. Readers sort ascending; ties break on createdAt.",
"minimum": 0,
"type": "integer"
},
"subject": {
"description": "Strong reference to the parent dev.openplaylist.playlist record.",
"ref": "com.atproto.repo.strongRef",
"type": "ref"
},
"track": {
"description": "Denormalized track metadata so the item renders without any further lookup.",
"ref": "dev.openplaylist.defs#track",
"type": "ref"
}
},
"required": [
"subject",
"track",
"order",
"createdAt"
],
"type": "object"
},
"type": "record"
}