net.atchan.richtext.facet
Schema Diff
+6 -0
Compatibility Analysis
Breaking Changes Detected
8 breaking changes, 12 non-breaking changes.
Breaking Changes (8)
- RemovedEdge RemovedEdge { src: "net.atchan.richtext.facet.features:items", tgt: "net.atchan.richtext.facet.features:items:variant10", kind: "variant", name: Some("#pre") }
- RemovedEdge RemovedEdge { src: "net.atchan.richtext.facet.features:items", tgt: "net.atchan.richtext.facet.features:items:variant11", kind: "variant", name: Some("#link") }
- RemovedEdge RemovedEdge { src: "net.atchan.richtext.facet.features:items", tgt: "net.atchan.richtext.facet.features:items:variant12", kind: "variant", name: Some("#ref") }
- RemovedEdge RemovedEdge { src: "net.atchan.richtext.facet.features:items", tgt: "net.atchan.richtext.facet.features:items:variant9", kind: "variant", name: Some("#code") }
- RemovedEdge RemovedEdge { src: "net.atchan.richtext.facet.features:items:variant10", tgt: "net.atchan.richtext.facet#pre", kind: "ref", name: None }
- RemovedEdge RemovedEdge { src: "net.atchan.richtext.facet.features:items:variant11", tgt: "net.atchan.richtext.facet#link", kind: "ref", name: None }
- RemovedEdge RemovedEdge { src: "net.atchan.richtext.facet.features:items:variant12", tgt: "net.atchan.richtext.facet#ref", kind: "ref", name: None }
- RemovedEdge RemovedEdge { src: "net.atchan.richtext.facet.features:items:variant9", tgt: "net.atchan.richtext.facet#code", kind: "ref", name: None }
Non-Breaking Changes (12)
- AddedVertex AddedVertex { vertex_id: "net.atchan.richtext.facet#aa" }
- AddedVertex AddedVertex { vertex_id: "net.atchan.richtext.facet.features:items:variant13" }
- AddedEdge AddedEdge { src: "net.atchan.richtext.facet.features:items", tgt: "net.atchan.richtext.facet.features:items:variant10", kind: "variant", name: Some("#code") }
- AddedEdge AddedEdge { src: "net.atchan.richtext.facet.features:items", tgt: "net.atchan.richtext.facet.features:items:variant11", kind: "variant", name: Some("#pre") }
- AddedEdge AddedEdge { src: "net.atchan.richtext.facet.features:items", tgt: "net.atchan.richtext.facet.features:items:variant12", kind: "variant", name: Some("#link") }
- AddedEdge AddedEdge { src: "net.atchan.richtext.facet.features:items", tgt: "net.atchan.richtext.facet.features:items:variant13", kind: "variant", name: Some("#ref") }
- AddedEdge AddedEdge { src: "net.atchan.richtext.facet.features:items", tgt: "net.atchan.richtext.facet.features:items:variant9", kind: "variant", name: Some("#aa") }
- AddedEdge AddedEdge { src: "net.atchan.richtext.facet.features:items:variant10", tgt: "net.atchan.richtext.facet#code", kind: "ref", name: None }
- AddedEdge AddedEdge { src: "net.atchan.richtext.facet.features:items:variant11", tgt: "net.atchan.richtext.facet#pre", kind: "ref", name: None }
- AddedEdge AddedEdge { src: "net.atchan.richtext.facet.features:items:variant12", tgt: "net.atchan.richtext.facet#link", kind: "ref", name: None }
- AddedEdge AddedEdge { src: "net.atchan.richtext.facet.features:items:variant13", tgt: "net.atchan.richtext.facet#ref", kind: "ref", name: None }
- AddedEdge AddedEdge { src: "net.atchan.richtext.facet.features:items:variant9", tgt: "net.atchan.richtext.facet#aa", kind: "ref", name: None }
Migration Guidance
Added Elements
AddedVertex { vertex_id: "net.atchan.richtext.facet#aa" }AddedVertex { vertex_id: "net.atchan.richtext.facet.features:items:variant13" }
Additional Notes
- Breaking: RemovedEdge { src: "net.atchan.richtext.facet.features:items", tgt: "net.atchan.richtext.facet.features:items:variant10", kind: "variant", name: Some("#pre") }
- Breaking: RemovedEdge { src: "net.atchan.richtext.facet.features:items", tgt: "net.atchan.richtext.facet.features:items:variant11", kind: "variant", name: Some("#link") }
- Breaking: RemovedEdge { src: "net.atchan.richtext.facet.features:items", tgt: "net.atchan.richtext.facet.features:items:variant12", kind: "variant", name: Some("#ref") }
- Breaking: RemovedEdge { src: "net.atchan.richtext.facet.features:items", tgt: "net.atchan.richtext.facet.features:items:variant9", kind: "variant", name: Some("#code") }
- Breaking: RemovedEdge { src: "net.atchan.richtext.facet.features:items:variant10", tgt: "net.atchan.richtext.facet#pre", kind: "ref", name: None }
- Breaking: RemovedEdge { src: "net.atchan.richtext.facet.features:items:variant11", tgt: "net.atchan.richtext.facet#link", kind: "ref", name: None }
- Breaking: RemovedEdge { src: "net.atchan.richtext.facet.features:items:variant12", tgt: "net.atchan.richtext.facet#ref", kind: "ref", name: None }
- Breaking: RemovedEdge { src: "net.atchan.richtext.facet.features:items:variant9", tgt: "net.atchan.richtext.facet#code", kind: "ref", name: None }
- Non-breaking: AddedEdge { src: "net.atchan.richtext.facet.features:items", tgt: "net.atchan.richtext.facet.features:items:variant10", kind: "variant", name: Some("#code") }
- Non-breaking: AddedEdge { src: "net.atchan.richtext.facet.features:items", tgt: "net.atchan.richtext.facet.features:items:variant11", kind: "variant", name: Some("#pre") }
- Non-breaking: AddedEdge { src: "net.atchan.richtext.facet.features:items", tgt: "net.atchan.richtext.facet.features:items:variant12", kind: "variant", name: Some("#link") }
- Non-breaking: AddedEdge { src: "net.atchan.richtext.facet.features:items", tgt: "net.atchan.richtext.facet.features:items:variant13", kind: "variant", name: Some("#ref") }
- Non-breaking: AddedEdge { src: "net.atchan.richtext.facet.features:items", tgt: "net.atchan.richtext.facet.features:items:variant9", kind: "variant", name: Some("#aa") }
- Non-breaking: AddedEdge { src: "net.atchan.richtext.facet.features:items:variant10", tgt: "net.atchan.richtext.facet#code", kind: "ref", name: None }
- Non-breaking: AddedEdge { src: "net.atchan.richtext.facet.features:items:variant11", tgt: "net.atchan.richtext.facet#pre", kind: "ref", name: None }
- Non-breaking: AddedEdge { src: "net.atchan.richtext.facet.features:items:variant12", tgt: "net.atchan.richtext.facet#link", kind: "ref", name: None }
- Non-breaking: AddedEdge { src: "net.atchan.richtext.facet.features:items:variant13", tgt: "net.atchan.richtext.facet#ref", kind: "ref", name: None }
- Non-breaking: AddedEdge { src: "net.atchan.richtext.facet.features:items:variant9", tgt: "net.atchan.richtext.facet#aa", kind: "ref", name: None }
1
1
{
2
2
"id": "net.atchan.richtext.facet",
3
3
"defs": {
4
+
"aa": {
5
+
"type": "object",
6
+
"properties": {},
7
+
"description": "Facet feature rendering the range in a Shift_JIS art font, as a block with whitespace preserved. This is a choice of typeface, not a claim about what the range says: it is the font ASCII art (AA) is drawn against, and only in it does the art keep its intended proportions. No other facet is valid inside it."
8
+
},
4
9
"pre": {
5
10
"type": "object",
6
11
"properties": {},
7
12
"description": "Facet feature marking the range as preformatted text, rendered as a block in a monospace font with whitespace preserved. No other facet is valid inside it."
8
13
},
9
14
"ref": {
10
15
"type": "object",
11
16
"required": [
12
17
"rkey"
13
18
],
14
19
"properties": {
15
20
"rkey": {
16
21
"type": "string",
17
22
"format": "record-key"
18
23
}
19
24
},
20
25
"description": "Facet feature marking the range as a quote-link to another post, given by its record key. The range covers the \">>rkey\" the author typed."
21
26
},
22
27
"bold": {
23
28
"type": "object",
24
29
"properties": {},
25
30
"description": "Facet feature marking the range as bold."
26
31
},
27
32
"code": {
28
33
"type": "object",
29
34
"properties": {},
30
35
"description": "Facet feature marking the range as inline code, rendered in a monospace font. No other facet is valid inside it."
31
36
},
32
37
"font": {
33
38
"type": "object",
34
39
"required": [
35
40
"name"
36
41
],
37
42
"properties": {
38
43
"name": {
39
44
"type": "string"
40
45
}
41
46
},
42
47
"description": "Facet feature rendering the range in a named font"
43
48
},
44
49
"link": {
45
50
"type": "object",
46
51
"required": [
47
52
"uri"
48
53
],
49
54
"properties": {
50
55
"uri": {
51
56
"type": "string",
52
57
"format": "uri"
53
58
}
54
59
},
55
60
"description": "Facet feature marking the range as a link to a uri"
56
61
},
57
62
"main": {
58
63
"type": "object",
59
64
"required": [
60
65
"index",
61
66
"features"
62
67
],
63
68
"properties": {
64
69
"index": {
65
70
"ref": "#byteSlice",
66
71
"type": "ref"
67
72
},
68
73
"features": {
69
74
"type": "array",
70
75
"items": {
71
76
"refs": [
72
77
"#bold",
73
78
"#italic",
74
79
"#underline",
75
80
"#strikethrough",
76
81
"#spoiler",
77
82
"#color",
78
83
"#size",
79
84
"#font",
80
85
"#kaomoji",
86
+
"#aa",
81
87
"#code",
82
88
"#pre",
83
89
"#link",
84
90
"#ref"
85
91
],
86
92
"type": "union"
87
93
},
88
94
"minLength": 1
89
95
}
90
96
},
91
97
"description": "A facet defines a range of rich text within a larger string."
92
98
},
93
99
"size": {
94
100
"type": "object",
95
101
"required": [
96
102
"value"
97
103
],
98
104
"properties": {
99
105
"value": {
100
106
"type": "integer",
101
107
"maximum": 5,
102
108
"minimum": 1
103
109
}
104
110
},
105
111
"description": "Facet feature rendering the range at a relative text size from 1 (smallest) to 5 (largest), with 3 being the default."
106
112
},
107
113
"color": {
108
114
"type": "object",
109
115
"required": [
110
116
"value"
111
117
],
112
118
"properties": {
113
119
"value": {
114
120
"type": "string"
115
121
}
116
122
},
117
123
"description": "Facet feature rendering the range in a color, given as a CSS hex color such as \"#ff0000\"."
118
124
},
119
125
"italic": {
120
126
"type": "object",
121
127
"properties": {},
122
128
"description": "Facet feature marking the range as italic."
123
129
},
124
130
"kaomoji": {
125
131
"type": "object",
126
132
"properties": {},
127
133
"description": "Facet feature marking the range as a kaomoji, ideally rendered in a Shift-JIS font."
128
134
},
129
135
"spoiler": {
130
136
"type": "object",
131
137
"properties": {},
132
138
"description": "Facet feature marking the range as a spoiler, hidden until the reader interacts with it."
133
139
},
134
140
"byteSlice": {
135
141
"type": "object",
136
142
"required": [
137
143
"byteStart",
138
144
"byteEnd"
139
145
],
140
146
"properties": {
141
147
"byteEnd": {
142
148
"type": "integer",
143
149
"minimum": 0
144
150
},
145
151
"byteStart": {
146
152
"type": "integer",
147
153
"minimum": 0
148
154
}
149
155
},
150
156
"description": "Specifies the sub-string range a facet feature applies to. Start index is inclusive, end index is exclusive. Indices are zero-indexed, counting bytes of the UTF-8 encoded text. NOTE: some languages, like Javascript, use UTF-16 or Unicode codepoints for string slice indexing; in these languages, convert to byte arrays before working with facets."
151
157
},
152
158
"underline": {
153
159
"type": "object",
154
160
"properties": {},
155
161
"description": "Facet feature marking the range as underlined."
156
162
},
157
163
"strikethrough": {
158
164
"type": "object",
159
165
"properties": {},
160
166
"description": "Facet feature marking the range as struck through."
161
167
}
162
168
},
163
169
"$type": "com.atproto.lexicon.schema",
164
170
"lexicon": 1
165
171
}