fm.leadsheet.sheet
Schema Diff
+5 -0
Compatibility Analysis
Backward Compatible
Backward compatible. 2 non-breaking changes.
Non-Breaking Changes (2)
- AddedVertex AddedVertex { vertex_id: "fm.leadsheet.sheet:body.draft" }
- AddedEdge AddedEdge { src: "fm.leadsheet.sheet:body", tgt: "fm.leadsheet.sheet:body.draft", kind: "prop", name: Some("draft") }
Migration Guidance
Added Elements
AddedVertex { vertex_id: "fm.leadsheet.sheet:body.draft" }
Additional Notes
- Non-breaking: AddedEdge { src: "fm.leadsheet.sheet:body", tgt: "fm.leadsheet.sheet:body.draft", kind: "prop", name: Some("draft") }
1
1
{
2
2
"$type": "com.atproto.lexicon.schema",
3
3
"defs": {
4
4
"main": {
5
5
"description": "A chord sheet or tab for a song, written in ChordPro.",
6
6
"key": "tid",
7
7
"record": {
8
8
"properties": {
9
9
"album": {
10
10
"maxGraphemes": 200,
11
11
"maxLength": 1000,
12
12
"type": "string"
13
13
},
14
14
"artist": {
15
15
"description": "Performing artist, as credited on the recording this sheet follows.",
16
16
"maxGraphemes": 200,
17
17
"maxLength": 1000,
18
18
"type": "string"
19
19
},
20
20
"capo": {
21
21
"maximum": 12,
22
22
"minimum": 0,
23
23
"type": "integer"
24
24
},
25
25
"content": {
26
26
"maxGraphemes": 50000,
27
27
"maxLength": 100000,
28
28
"type": "string"
29
29
},
30
30
"createdAt": {
31
31
"format": "datetime",
32
32
"type": "string"
33
33
},
34
34
"description": {
35
35
"description": "Author's notes: strumming pattern, how the intro is played, etc.",
36
36
"maxGraphemes": 3000,
37
37
"maxLength": 10000,
38
38
"type": "string"
39
39
},
40
40
"difficulty": {
41
41
"knownValues": [
42
42
"beginner",
43
43
"intermediate",
44
44
"advanced"
45
45
],
46
46
"maxLength": 32,
47
47
"type": "string"
48
48
},
49
+
"draft": {
50
+
"default": false,
51
+
"description": "Not published yet: apps list and search only published sheets, and show a draft only to its author. Like any record, a draft is still publicly readable from the author's repo.",
52
+
"type": "boolean"
53
+
},
49
54
"forkOf": {
50
55
"description": "The sheet this one was derived from, as it was when forked.",
51
56
"ref": "com.atproto.repo.strongRef",
52
57
"type": "ref"
53
58
},
54
59
"format": {
55
60
"default": "chordpro",
56
61
"description": "Markup of `content`. ChordPro: inline [C]hords, {directives}, and {start_of_tab} blocks.",
57
62
"knownValues": [
58
63
"chordpro"
59
64
],
60
65
"maxLength": 64,
61
66
"type": "string"
62
67
},
63
68
"key": {
64
69
"description": "Key the sheet is written in, e.g. 'G' or 'F#m'.",
65
70
"maxLength": 16,
66
71
"type": "string"
67
72
},
68
73
"kind": {
69
74
"default": "chords",
70
75
"description": "What the sheet is for: chords over lyrics, guitar tablature, ukulele chords, or bass.",
71
76
"knownValues": [
72
77
"chords",
73
78
"tab",
74
79
"ukulele",
75
80
"bass"
76
81
],
77
82
"maxLength": 64,
78
83
"type": "string"
79
84
},
80
85
"tags": {
81
86
"items": {
82
87
"maxGraphemes": 64,
83
88
"maxLength": 640,
84
89
"type": "string"
85
90
},
86
91
"maxLength": 10,
87
92
"type": "array"
88
93
},
89
94
"title": {
90
95
"description": "Song title.",
91
96
"maxGraphemes": 200,
92
97
"maxLength": 1000,
93
98
"type": "string"
94
99
},
95
100
"tuning": {
96
101
"description": "How the instrument (see `kind`) is tuned. Unset or 'standard' is that instrument's standard: EADGBE guitar, GCEA ukulele, EADG bass.",
97
102
"knownValues": [
98
103
"standard",
99
104
"eb-standard",
100
105
"d-standard",
101
106
"drop-d",
102
107
"drop-c",
103
108
"dadgad",
104
109
"open-d",
105
110
"open-g",
106
111
"open-e",
107
112
"open-c",
108
113
"low-g",
109
114
"baritone",
110
115
"five-string"
111
116
],
112
117
"maxLength": 64,
113
118
"type": "string"
114
119
},
115
120
"updatedAt": {
116
121
"format": "datetime",
117
122
"type": "string"
118
123
},
119
124
"voicings": {
120
125
"description": "Chord shapes the author chose, at most one per chord. Readers see these instead of the shapes the app would pick.",
121
126
"items": {
122
127
"ref": "#voicing",
123
128
"type": "ref"
124
129
},
125
130
"maxLength": 100,
126
131
"type": "array"
127
132
}
128
133
},
129
134
"required": [
130
135
"title",
131
136
"artist",
132
137
"content",
133
138
"createdAt"
134
139
],
135
140
"type": "object"
136
141
},
137
142
"type": "record"
138
143
},
139
144
"voicing": {
140
145
"description": "How to play one chord of the sheet.",
141
146
"properties": {
142
147
"chord": {
143
148
"description": "The chord as written in `content`, e.g. 'C' or 'F#m7'.",
144
149
"maxLength": 64,
145
150
"type": "string"
146
151
},
147
152
"frets": {
148
153
"description": "Fret for each string, in chart order (low E side first on guitar and bass, G first on ukulele), in the sheet's tuning and relative to its capo: -1 = not played, 0 = open.",
149
154
"items": {
150
155
"maximum": 24,
151
156
"minimum": -1,
152
157
"type": "integer"
153
158
},
154
159
"maxLength": 12,
155
160
"minLength": 1,
156
161
"type": "array"
157
162
}
158
163
},
159
164
"required": [
160
165
"chord",
161
166
"frets"
162
167
],
163
168
"type": "object"
164
169
}
165
170
},
166
171
"description": "A chord sheet or tab for a song, written in ChordPro.",
167
172
"id": "fm.leadsheet.sheet",
168
173
"lexicon": 1
169
174
}