dev.tsunagite.song
Schema Diff
+8 -0
Compatibility Analysis
Backward Compatible
Backward compatible. 4 non-breaking changes.
Non-Breaking Changes (4)
- AddedVertex AddedVertex { vertex_id: "dev.tsunagite.song:body.createdAt" }
- AddedVertex AddedVertex { vertex_id: "dev.tsunagite.song:body.updatedAt" }
- AddedEdge AddedEdge { src: "dev.tsunagite.song:body", tgt: "dev.tsunagite.song:body.createdAt", kind: "prop", name: Some("createdAt") }
- AddedEdge AddedEdge { src: "dev.tsunagite.song:body", tgt: "dev.tsunagite.song:body.updatedAt", kind: "prop", name: Some("updatedAt") }
Migration Guidance
Added Elements
AddedVertex { vertex_id: "dev.tsunagite.song:body.createdAt" }AddedVertex { vertex_id: "dev.tsunagite.song:body.updatedAt" }
Additional Notes
- Non-breaking: AddedEdge { src: "dev.tsunagite.song:body", tgt: "dev.tsunagite.song:body.createdAt", kind: "prop", name: Some("createdAt") }
- Non-breaking: AddedEdge { src: "dev.tsunagite.song:body", tgt: "dev.tsunagite.song:body.updatedAt", kind: "prop", name: Some("updatedAt") }
1
1
{
2
2
"id": "dev.tsunagite.song",
3
3
"defs": {
4
4
"main": {
5
5
"key": "any",
6
6
"type": "record",
7
7
"record": {
8
8
"type": "object",
9
9
"required": [
10
10
"game",
11
11
"title",
12
12
"composer"
13
13
],
14
14
"properties": {
15
15
"game": {
16
16
"type": "array",
17
17
"items": {
18
18
"type": "string",
19
19
"format": "at-uri",
20
20
"description": "All URIs must point to records of type `dev.tsunagite.game`."
21
21
},
22
22
"description": "The game(s) this song is included in."
23
23
},
24
24
"genre": {
25
25
"ref": "dev.tsunagite.translatable",
26
26
"type": "ref",
27
27
"description": "The genre this song belongs to."
28
28
},
29
29
"title": {
30
30
"ref": "dev.tsunagite.translatable",
31
31
"type": "ref",
32
32
"description": "The human-readable title of this song in UI. Translations will typically be listed alongside the default."
33
33
},
34
34
"jacket": {
35
35
"type": "blob",
36
36
"accept": [
37
37
"image/png",
38
38
"image/jpeg",
39
39
"image/jxl",
40
40
"image/webp"
41
41
],
42
42
"maxSize": 8000000,
43
43
"description": "The jacket or banner art of this song, for display in UI."
44
44
},
45
45
"source": {
46
46
"ref": "dev.tsunagite.translatable",
47
47
"type": "ref",
48
48
"description": "The source this song is from - an album, competition, other game, etc."
49
49
},
50
50
"composer": {
51
51
"ref": "dev.tsunagite.translatable",
52
52
"type": "ref",
53
53
"description": "The name of the composer of this song. Translations will typically be listed alongside the default."
54
54
},
55
55
"subtitle": {
56
56
"ref": "dev.tsunagite.translatable",
57
57
"type": "ref",
58
58
"description": "The human-readable subtitle of this song."
59
59
},
60
+
"createdAt": {
61
+
"type": "string",
62
+
"format": "datetime"
63
+
},
64
+
"updatedAt": {
65
+
"type": "string",
66
+
"format": "datetime"
67
+
},
60
68
"jacketArtist": {
61
69
"ref": "dev.tsunagite.translatable",
62
70
"type": "ref",
63
71
"description": "The name of the jacket artist for this song."
64
72
}
65
73
}
66
74
},
67
75
"description": "A song included in a game hosting leaderboards via Tsunagite."
68
76
}
69
77
},
70
78
"$type": "com.atproto.lexicon.schema",
71
79
"lexicon": 1,
72
80
"description": "Definitions related to songs included in games hosting leaderboards via Tsunagite."
73
81
}