net.atchan.richtext.facet

atchan.net

Schema Diff

+14 -1

From

CID
bafyreie6kmrim5d...
Indexed At
2026-07-18 01:38 UTC
View this version

To

CID
bafyreif3dj6l3ol...
Indexed At
2026-07-18 07:29 UTC
View this version

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
}

Compare Other Versions

Lexicon Garden

@