dev.openplaylist.playlist
Schema Diff
+2 -1
Compatibility Analysis
Breaking Changes Detected
1 breaking change, 0 non-breaking changes.
Breaking Changes (1)
- ConstraintTightened ConstraintTightened { vertex_id: "dev.openplaylist.playlist:body.theme", sort: "knownValues", old_value: "[\"cassette\"]", new_value: "[\"cassette\",\"synthwave\"]" }
Migration Guidance
Constraint Changes
- ConstraintTightened ConstraintTightened { vertex_id: "dev.openplaylist.playlist:body.theme", sort: "knownValues", old_value: "[\"cassette\"]", new_value: "[\"cassette\",\"synthwave\"]" }
1
1
{
2
2
"$type": "com.atproto.lexicon.schema",
3
3
"defs": {
4
4
"main": {
5
5
"description": "Record containing the playlist metadata.",
6
6
"key": "tid",
7
7
"record": {
8
8
"properties": {
9
9
"collaborators": {
10
10
"description": "Declared collaborators, informational only. The hosting app decides who may add items.",
11
11
"items": {
12
12
"format": "did",
13
13
"type": "string"
14
14
},
15
15
"maxLength": 100,
16
16
"type": "array"
17
17
},
18
18
"copiedFrom": {
19
19
"description": "The record this playlist was copied from, e.g. when an anonymous playlist is claimed into a signed-in user's repo.",
20
20
"ref": "com.atproto.repo.strongRef",
21
21
"type": "ref"
22
22
},
23
23
"cover": {
24
24
"accept": [
25
25
"image/png",
26
26
"image/jpeg",
27
27
"image/webp"
28
28
],
29
29
"description": "Optional generated cover image for the playlist.",
30
30
"maxSize": 1000000,
31
31
"type": "blob"
32
32
},
33
33
"createdAt": {
34
34
"description": "Client-declared timestamp when this playlist was created.",
35
35
"format": "datetime",
36
36
"type": "string"
37
37
},
38
38
"createdBy": {
39
39
"description": "Who created the playlist. For playlists hosted in the Open Playlist app repo this carries the anonymous creator's display name.",
40
40
"ref": "dev.openplaylist.defs#contributor",
41
41
"type": "ref"
42
42
},
43
43
"description": {
44
44
"description": "Optional free-text description.",
45
45
"maxGraphemes": 300,
46
46
"maxLength": 3000,
47
47
"type": "string"
48
48
},
49
49
"mirrors": {
50
50
"description": "Native service playlists that mirror this record.",
51
51
"items": {
52
52
"ref": "dev.openplaylist.defs#mirror",
53
53
"type": "ref"
54
54
},
55
55
"maxLength": 10,
56
56
"type": "array"
57
57
},
58
58
"name": {
59
59
"description": "Display name of the playlist.",
60
60
"maxGraphemes": 64,
61
61
"maxLength": 640,
62
62
"minLength": 1,
63
63
"type": "string"
64
64
},
65
65
"theme": {
66
66
"description": "Presentation theme the creator chose. Readers that do not recognize a value render their default. Absent means cassette.",
67
67
"knownValues": [
68
-
"cassette"
68
+
"cassette",
69
+
"synthwave"
69
70
],
70
71
"maxLength": 64,
71
72
"type": "string"
72
73
}
73
74
},
74
75
"required": [
75
76
"name",
76
77
"createdAt"
77
78
],
78
79
"type": "object"
79
80
},
80
81
"type": "record"
81
82
}
82
83
},
83
84
"description": "A collaborative playlist. Holds metadata only; tracks are dev.openplaylist.playlistItem records that point back at this record with a strong reference, the same shape used by fm.teal.feed.social.playlist and app.rocksky.playlist.",
84
85
"id": "dev.openplaylist.playlist",
85
86
"lexicon": 1
86
87
}