app.rocksky.scrobble
Schema Diff
+6 -1
Compatibility Analysis
Breaking Changes Detected
1 breaking change, 2 non-breaking changes.
Breaking Changes (1)
- ConstraintAdded ConstraintAdded { vertex_id: "app.rocksky.scrobble:body.isrc", sort: "maxLength", value: "32" }
Non-Breaking Changes (2)
- AddedVertex AddedVertex { vertex_id: "app.rocksky.scrobble:body.isrc" }
- AddedEdge AddedEdge { src: "app.rocksky.scrobble:body", tgt: "app.rocksky.scrobble:body.isrc", kind: "prop", name: Some("isrc") }
Migration Guidance
Added Elements
AddedVertex { vertex_id: "app.rocksky.scrobble:body.isrc" }
Constraint Changes
- ConstraintAdded ConstraintAdded { vertex_id: "app.rocksky.scrobble:body.isrc", sort: "maxLength", value: "32" }
Additional Notes
- Non-breaking: AddedEdge { src: "app.rocksky.scrobble:body", tgt: "app.rocksky.scrobble:body.isrc", kind: "prop", name: Some("isrc") }
1
1
{
2
2
"id": "app.rocksky.scrobble",
3
3
"defs": {
4
4
"main": {
5
5
"key": "tid",
6
6
"type": "record",
7
7
"record": {
8
8
"type": "object",
9
9
"required": [
10
10
"title",
11
11
"artist",
12
12
"album",
13
13
"albumArtist",
14
14
"duration",
15
15
"createdAt"
16
16
],
17
17
"properties": {
18
+
"isrc": {
19
+
"type": "string",
20
+
"maxLength": 32,
21
+
"description": "The International Standard Recording Code (ISRC) of the song."
22
+
},
18
23
"mbid": {
19
24
"type": "string",
20
25
"description": "The MusicBrainz ID of the song."
21
26
},
22
27
"tags": {
23
28
"type": "array",
24
29
"items": {
25
30
"type": "string",
26
31
"maxLength": 256,
27
32
"minLength": 1
28
33
},
29
34
"description": "The tags of the song."
30
35
},
31
36
"wiki": {
32
37
"type": "string",
33
38
"maxLength": 10000,
34
39
"description": "Informations about the song"
35
40
},
36
41
"year": {
37
42
"type": "integer",
38
43
"description": "The year the song was released."
39
44
},
40
45
"album": {
41
46
"type": "string",
42
47
"maxLength": 256,
43
48
"minLength": 1,
44
49
"description": "The album of the song."
45
50
},
46
51
"genre": {
47
52
"type": "string",
48
53
"maxLength": 256,
49
54
"description": "The genre of the song."
50
55
},
51
56
"label": {
52
57
"type": "string",
53
58
"maxLength": 256,
54
59
"description": "The label of the song."
55
60
},
56
61
"title": {
57
62
"type": "string",
58
63
"maxLength": 512,
59
64
"minLength": 1,
60
65
"description": "The title of the song."
61
66
},
62
67
"artist": {
63
68
"type": "string",
64
69
"maxLength": 256,
65
70
"minLength": 1,
66
71
"description": "The artist of the song."
67
72
},
68
73
"lyrics": {
69
74
"type": "string",
70
75
"maxLength": 10000,
71
76
"description": "The lyrics of the song."
72
77
},
73
78
"artists": {
74
79
"type": "array",
75
80
"items": {
76
81
"ref": "app.rocksky.artist.defs#artistMbid",
77
82
"type": "ref"
78
83
},
79
84
"description": "The artists of the song with MusicBrainz IDs."
80
85
},
81
86
"albumArt": {
82
87
"type": "blob",
83
88
"accept": [
84
89
"image/png",
85
90
"image/jpeg"
86
91
],
87
92
"maxSize": 2000000,
88
93
"description": "The album art of the song."
89
94
},
90
95
"composer": {
91
96
"type": "string",
92
97
"maxLength": 256,
93
98
"description": "The composer of the song."
94
99
},
95
100
"duration": {
96
101
"type": "integer",
97
102
"minimum": 1,
98
-
"description": "The duration of the song in seconds."
103
+
"description": "The duration of the song in milliseconds."
99
104
},
100
105
"createdAt": {
101
106
"type": "string",
102
107
"format": "datetime",
103
108
"description": "The date when the song was created."
104
109
},
105
110
"tidalLink": {
106
111
"type": "string",
107
112
"format": "uri",
108
113
"description": "The Tidal link of the song."
109
114
},
110
115
"discNumber": {
111
116
"type": "integer",
112
117
"minimum": 1,
113
118
"description": "The disc number of the song in the album."
114
119
},
115
120
"albumArtUrl": {
116
121
"type": "string",
117
122
"format": "uri",
118
123
"description": "The URL of the album art of the song."
119
124
},
120
125
"albumArtist": {
121
126
"type": "string",
122
127
"maxLength": 256,
123
128
"minLength": 1,
124
129
"description": "The album artist of the song."
125
130
},
126
131
"releaseDate": {
127
132
"type": "string",
128
133
"format": "datetime",
129
134
"description": "The release date of the song."
130
135
},
131
136
"spotifyLink": {
132
137
"type": "string",
133
138
"format": "uri",
134
139
"description": "The Spotify link of the song."
135
140
},
136
141
"trackNumber": {
137
142
"type": "integer",
138
143
"minimum": 1,
139
144
"description": "The track number of the song in the album."
140
145
},
141
146
"youtubeLink": {
142
147
"type": "string",
143
148
"format": "uri",
144
149
"description": "The YouTube link of the song."
145
150
},
146
151
"appleMusicLink": {
147
152
"type": "string",
148
153
"format": "uri",
149
154
"description": "The Apple Music link of the song."
150
155
},
151
156
"copyrightMessage": {
152
157
"type": "string",
153
158
"maxLength": 256,
154
159
"description": "The copyright message of the song."
155
160
}
156
161
}
157
162
},
158
163
"description": "A declaration of a scrobble."
159
164
}
160
165
},
161
166
"$type": "com.atproto.lexicon.schema",
162
167
"lexicon": 1
163
168
}