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