net.atchan.richtext.facet
Schema Diff
+7 -1
Compatibility Analysis
Backward Compatible
Backward compatible. 4 non-breaking changes.
Non-Breaking Changes (4)
- AddedVertex AddedVertex { vertex_id: "net.atchan.richtext.facet#kaomoji" }
- AddedVertex AddedVertex { vertex_id: "net.atchan.richtext.facet.features:items:variant6" }
- AddedEdge AddedEdge { src: "net.atchan.richtext.facet.features:items", tgt: "net.atchan.richtext.facet.features:items:variant6", kind: "variant", name: Some("#kaomoji") }
- AddedEdge AddedEdge { src: "net.atchan.richtext.facet.features:items:variant6", tgt: "net.atchan.richtext.facet#kaomoji", kind: "ref", name: None }
Migration Guidance
Added Elements
AddedVertex { vertex_id: "net.atchan.richtext.facet#kaomoji" }AddedVertex { vertex_id: "net.atchan.richtext.facet.features:items:variant6" }
Additional Notes
- Non-breaking: AddedEdge { src: "net.atchan.richtext.facet.features:items", tgt: "net.atchan.richtext.facet.features:items:variant6", kind: "variant", name: Some("#kaomoji") }
- Non-breaking: AddedEdge { src: "net.atchan.richtext.facet.features:items:variant6", tgt: "net.atchan.richtext.facet#kaomoji", kind: "ref", name: None }
1
1
{
2
2
"id": "net.atchan.richtext.facet",
3
3
"defs": {
4
4
"bold": {
5
5
"type": "object",
6
6
"properties": {},
7
7
"description": "Facet feature marking the range as bold."
8
8
},
9
9
"font": {
10
10
"type": "object",
11
11
"required": [
12
12
"name"
13
13
],
14
14
"properties": {
15
15
"name": {
16
16
"type": "string"
17
17
}
18
18
},
19
19
"description": "Facet feature rendering the range in a named font"
20
20
},
21
21
"main": {
22
22
"type": "object",
23
23
"required": [
24
24
"index",
25
25
"features"
26
26
],
27
27
"properties": {
28
28
"index": {
29
29
"ref": "#byteSlice",
30
30
"type": "ref"
31
31
},
32
32
"features": {
33
33
"type": "array",
34
34
"items": {
35
35
"refs": [
36
36
"#bold",
37
37
"#italic",
38
38
"#underline",
39
39
"#strikethrough",
40
40
"#spoiler",
41
-
"#font"
41
+
"#font",
42
+
"#kaomoji"
42
43
],
43
44
"type": "union"
44
45
},
45
46
"minLength": 1
46
47
}
47
48
},
48
49
"description": "A facet defines a range of rich text within a larger string."
49
50
},
50
51
"italic": {
51
52
"type": "object",
52
53
"properties": {},
53
54
"description": "Facet feature marking the range as italic."
54
55
},
56
+
"kaomoji": {
57
+
"type": "object",
58
+
"properties": {},
59
+
"description": "Facet feature marking the range as a kaomoji, ideally rendered in a Shift-JIS font."
60
+
},
55
61
"spoiler": {
56
62
"type": "object",
57
63
"properties": {},
58
64
"description": "Facet feature marking the range as a spoiler, hidden until the reader interacts with it."
59
65
},
60
66
"byteSlice": {
61
67
"type": "object",
62
68
"required": [
63
69
"byteStart",
64
70
"byteEnd"
65
71
],
66
72
"properties": {
67
73
"byteEnd": {
68
74
"type": "integer",
69
75
"minimum": 0
70
76
},
71
77
"byteStart": {
72
78
"type": "integer",
73
79
"minimum": 0
74
80
}
75
81
},
76
82
"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."
77
83
},
78
84
"underline": {
79
85
"type": "object",
80
86
"properties": {},
81
87
"description": "Facet feature marking the range as underlined."
82
88
},
83
89
"strikethrough": {
84
90
"type": "object",
85
91
"properties": {},
86
92
"description": "Facet feature marking the range as struck through."
87
93
}
88
94
},
89
95
"$type": "com.atproto.lexicon.schema",
90
96
"lexicon": 1
91
97
}