app.rocksky.song
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.song:body.isrc", sort: "maxLength", value: "32" }
Non-Breaking Changes (2)
- AddedVertex AddedVertex { vertex_id: "app.rocksky.song:body.isrc" }
- AddedEdge AddedEdge { src: "app.rocksky.song:body", tgt: "app.rocksky.song:body.isrc", kind: "prop", name: Some("isrc") }
Migration Guidance
Added Elements
AddedVertex { vertex_id: "app.rocksky.song:body.isrc" }
Constraint Changes
- ConstraintAdded ConstraintAdded { vertex_id: "app.rocksky.song:body.isrc", sort: "maxLength", value: "32" }
Additional Notes
- Non-breaking: AddedEdge { src: "app.rocksky.song:body", tgt: "app.rocksky.song:body.isrc", kind: "prop", name: Some("isrc") }
1
1
{
2
2
"id": "app.rocksky.song",
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
"minLength": 1,
50
55
"description": "The genre of the song."
51
56
},
52
57
"label": {
53
58
"type": "string",
54
59
"maxLength": 256,
55
60
"description": "The label of the song."
56
61
},
57
62
"title": {
58
63
"type": "string",
59
64
"maxLength": 512,
60
65
"minLength": 1,
61
66
"description": "The title of the song."
62
67
},
63
68
"artist": {
64
69
"type": "string",
65
70
"maxLength": 256,
66
71
"minLength": 1,
67
72
"description": "The artist of the song."
68
73
},
69
74
"lyrics": {
70
75
"type": "string",
71
76
"maxLength": 10000,
72
77
"description": "The lyrics of the song."
73
78
},
74
79
"artists": {
75
80
"type": "array",
76
81
"items": {
77
82
"ref": "app.rocksky.artist.defs#artistMbid",
78
83
"type": "ref"
79
84
},
80
85
"description": "The artists of the song with MusicBrainz IDs."
81
86
},
82
87
"albumArt": {
83
88
"type": "blob",
84
89
"accept": [
85
90
"image/png",
86
91
"image/jpeg"
87
92
],
88
93
"maxSize": 2000000,
89
94
"description": "The album art of the song."
90
95
},
91
96
"composer": {
92
97
"type": "string",
93
98
"maxLength": 256,
94
99
"description": "The composer of the song."
95
100
},
96
101
"duration": {
97
102
"type": "integer",
98
103
"minimum": 1,
99
-
"description": "The duration of the song in seconds."
104
+
"description": "The duration of the song in milliseconds."
100
105
},
101
106
"createdAt": {
102
107
"type": "string",
103
108
"format": "datetime",
104
109
"description": "The date when the song was created."
105
110
},
106
111
"tidalLink": {
107
112
"type": "string",
108
113
"format": "uri",
109
114
"description": "The Tidal link of the song."
110
115
},
111
116
"discNumber": {
112
117
"type": "integer",
113
118
"minimum": 1,
114
119
"description": "The disc number of the song in the album."
115
120
},
116
121
"albumArtUrl": {
117
122
"type": "string",
118
123
"format": "uri",
119
124
"description": "The URL of the album art of the song."
120
125
},
121
126
"albumArtist": {
122
127
"type": "string",
123
128
"maxLength": 256,
124
129
"minLength": 1,
125
130
"description": "The album artist of the song."
126
131
},
127
132
"releaseDate": {
128
133
"type": "string",
129
134
"format": "datetime",
130
135
"description": "The release date of the song."
131
136
},
132
137
"spotifyLink": {
133
138
"type": "string",
134
139
"format": "uri",
135
140
"description": "The Spotify link of the song."
136
141
},
137
142
"trackNumber": {
138
143
"type": "integer",
139
144
"minimum": 1,
140
145
"description": "The track number of the song in the album."
141
146
},
142
147
"youtubeLink": {
143
148
"type": "string",
144
149
"format": "uri",
145
150
"description": "The YouTube link of the song."
146
151
},
147
152
"appleMusicLink": {
148
153
"type": "string",
149
154
"format": "uri",
150
155
"description": "The Apple Music link of the song."
151
156
},
152
157
"copyrightMessage": {
153
158
"type": "string",
154
159
"maxLength": 256,
155
160
"description": "The copyright message of the song."
156
161
}
157
162
}
158
163
},
159
164
"description": "A declaration of a song."
160
165
}
161
166
},
162
167
"$type": "com.atproto.lexicon.schema",
163
168
"lexicon": 1
164
169
}