net.atchan.richtext.facet
Schema Diff
+18 -0
Compatibility Analysis
Breaking Changes Detected
4 breaking changes, 16 non-breaking changes.
Breaking Changes (4)
- RemovedEdge RemovedEdge { src: "net.atchan.richtext.facet.features:items", tgt: "net.atchan.richtext.facet.features:items:variant10", 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("#link") }
- RemovedEdge RemovedEdge { src: "net.atchan.richtext.facet.features:items:variant10", 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#link", kind: "ref", name: None }
Non-Breaking Changes (16)
- AddedVertex AddedVertex { vertex_id: "net.atchan.richtext.facet#aa" }
- AddedVertex AddedVertex { vertex_id: "net.atchan.richtext.facet#code" }
- AddedVertex AddedVertex { vertex_id: "net.atchan.richtext.facet#pre" }
- AddedVertex AddedVertex { vertex_id: "net.atchan.richtext.facet.features:items:variant11" }
- AddedVertex AddedVertex { vertex_id: "net.atchan.richtext.facet.features:items:variant12" }
- 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#code" }AddedVertex { vertex_id: "net.atchan.richtext.facet#pre" }AddedVertex { vertex_id: "net.atchan.richtext.facet.features:items:variant11" }AddedVertex { vertex_id: "net.atchan.richtext.facet.features:items:variant12" }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("#ref") }
- Breaking: RemovedEdge { src: "net.atchan.richtext.facet.features:items", tgt: "net.atchan.richtext.facet.features:items:variant9", kind: "variant", name: Some("#link") }
- Breaking: RemovedEdge { src: "net.atchan.richtext.facet.features:items:variant10", 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#link", 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
+
},
9
+
"pre": {
10
+
"type": "object",
11
+
"properties": {},
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."
13
+
},
4
14
"ref": {
5
15
"type": "object",
6
16
"required": [
7
17
"rkey"
8
18
],
9
19
"properties": {
10
20
"rkey": {
11
21
"type": "string",
12
22
"format": "record-key"
13
23
}
14
24
},
15
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."
16
26
},
17
27
"bold": {
18
28
"type": "object",
19
29
"properties": {},
20
30
"description": "Facet feature marking the range as bold."
21
31
},
32
+
"code": {
33
+
"type": "object",
34
+
"properties": {},
35
+
"description": "Facet feature marking the range as inline code, rendered in a monospace font. No other facet is valid inside it."
36
+
},
22
37
"font": {
23
38
"type": "object",
24
39
"required": [
25
40
"name"
26
41
],
27
42
"properties": {
28
43
"name": {
29
44
"type": "string"
30
45
}
31
46
},
32
47
"description": "Facet feature rendering the range in a named font"
33
48
},
34
49
"link": {
35
50
"type": "object",
36
51
"required": [
37
52
"uri"
38
53
],
39
54
"properties": {
40
55
"uri": {
41
56
"type": "string",
42
57
"format": "uri"
43
58
}
44
59
},
45
60
"description": "Facet feature marking the range as a link to a uri"
46
61
},
47
62
"main": {
48
63
"type": "object",
49
64
"required": [
50
65
"index",
51
66
"features"
52
67
],
53
68
"properties": {
54
69
"index": {
55
70
"ref": "#byteSlice",
56
71
"type": "ref"
57
72
},
58
73
"features": {
59
74
"type": "array",
60
75
"items": {
61
76
"refs": [
62
77
"#bold",
63
78
"#italic",
64
79
"#underline",
65
80
"#strikethrough",
66
81
"#spoiler",
67
82
"#color",
68
83
"#size",
69
84
"#font",
70
85
"#kaomoji",
86
+
"#aa",
87
+
"#code",
88
+
"#pre",
71
89
"#link",
72
90
"#ref"
73
91
],
74
92
"type": "union"
75
93
},
76
94
"minLength": 1
77
95
}
78
96
},
79
97
"description": "A facet defines a range of rich text within a larger string."
80
98
},
81
99
"size": {
82
100
"type": "object",
83
101
"required": [
84
102
"value"
85
103
],
86
104
"properties": {
87
105
"value": {
88
106
"type": "integer",
89
107
"maximum": 5,
90
108
"minimum": 1
91
109
}
92
110
},
93
111
"description": "Facet feature rendering the range at a relative text size from 1 (smallest) to 5 (largest), with 3 being the default."
94
112
},
95
113
"color": {
96
114
"type": "object",
97
115
"required": [
98
116
"value"
99
117
],
100
118
"properties": {
101
119
"value": {
102
120
"type": "string"
103
121
}
104
122
},
105
123
"description": "Facet feature rendering the range in a color, given as a CSS hex color such as \"#ff0000\"."
106
124
},
107
125
"italic": {
108
126
"type": "object",
109
127
"properties": {},
110
128
"description": "Facet feature marking the range as italic."
111
129
},
112
130
"kaomoji": {
113
131
"type": "object",
114
132
"properties": {},
115
133
"description": "Facet feature marking the range as a kaomoji, ideally rendered in a Shift-JIS font."
116
134
},
117
135
"spoiler": {
118
136
"type": "object",
119
137
"properties": {},
120
138
"description": "Facet feature marking the range as a spoiler, hidden until the reader interacts with it."
121
139
},
122
140
"byteSlice": {
123
141
"type": "object",
124
142
"required": [
125
143
"byteStart",
126
144
"byteEnd"
127
145
],
128
146
"properties": {
129
147
"byteEnd": {
130
148
"type": "integer",
131
149
"minimum": 0
132
150
},
133
151
"byteStart": {
134
152
"type": "integer",
135
153
"minimum": 0
136
154
}
137
155
},
138
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."
139
157
},
140
158
"underline": {
141
159
"type": "object",
142
160
"properties": {},
143
161
"description": "Facet feature marking the range as underlined."
144
162
},
145
163
"strikethrough": {
146
164
"type": "object",
147
165
"properties": {},
148
166
"description": "Facet feature marking the range as struck through."
149
167
}
150
168
},
151
169
"$type": "com.atproto.lexicon.schema",
152
170
"lexicon": 1
153
171
}