net.anisota.feed.draft

anisota.net

Schema Diff

+1 -0

From

CID
bafyreifk3t2nz4o...
Indexed At
2026-02-18 19:36 UTC
View this version

To

CID
bafyreib3yndiqm3...
Indexed At
2026-06-22 18:49 UTC
View this version

Compatibility Analysis

Breaking Changes Detected

8 breaking changes, 12 non-breaking changes.

Breaking Changes (8)
  • RemovedEdge RemovedEdge { src: "net.anisota.feed.draft:body.embed", tgt: "net.anisota.feed.draft:body.embed:variant1", kind: "variant", name: Some("app.bsky.embed.video") }
  • RemovedEdge RemovedEdge { src: "net.anisota.feed.draft:body.embed", tgt: "net.anisota.feed.draft:body.embed:variant2", kind: "variant", name: Some("app.bsky.embed.external") }
  • RemovedEdge RemovedEdge { src: "net.anisota.feed.draft:body.embed", tgt: "net.anisota.feed.draft:body.embed:variant3", kind: "variant", name: Some("app.bsky.embed.record") }
  • RemovedEdge RemovedEdge { src: "net.anisota.feed.draft:body.embed", tgt: "net.anisota.feed.draft:body.embed:variant4", kind: "variant", name: Some("app.bsky.embed.recordWithMedia") }
  • RemovedEdge RemovedEdge { src: "net.anisota.feed.draft:body.embed:variant1", tgt: "app.bsky.embed.video", kind: "ref", name: None }
  • RemovedEdge RemovedEdge { src: "net.anisota.feed.draft:body.embed:variant2", tgt: "app.bsky.embed.external", kind: "ref", name: None }
  • RemovedEdge RemovedEdge { src: "net.anisota.feed.draft:body.embed:variant3", tgt: "app.bsky.embed.record", kind: "ref", name: None }
  • RemovedEdge RemovedEdge { src: "net.anisota.feed.draft:body.embed:variant4", tgt: "app.bsky.embed.recordWithMedia", kind: "ref", name: None }
Non-Breaking Changes (12)
  • AddedVertex AddedVertex { vertex_id: "app.bsky.embed.gallery" }
  • AddedVertex AddedVertex { vertex_id: "net.anisota.feed.draft:body.embed:variant5" }
  • AddedEdge AddedEdge { src: "net.anisota.feed.draft:body.embed", tgt: "net.anisota.feed.draft:body.embed:variant1", kind: "variant", name: Some("app.bsky.embed.gallery") }
  • AddedEdge AddedEdge { src: "net.anisota.feed.draft:body.embed", tgt: "net.anisota.feed.draft:body.embed:variant2", kind: "variant", name: Some("app.bsky.embed.video") }
  • AddedEdge AddedEdge { src: "net.anisota.feed.draft:body.embed", tgt: "net.anisota.feed.draft:body.embed:variant3", kind: "variant", name: Some("app.bsky.embed.external") }
  • AddedEdge AddedEdge { src: "net.anisota.feed.draft:body.embed", tgt: "net.anisota.feed.draft:body.embed:variant4", kind: "variant", name: Some("app.bsky.embed.record") }
  • AddedEdge AddedEdge { src: "net.anisota.feed.draft:body.embed", tgt: "net.anisota.feed.draft:body.embed:variant5", kind: "variant", name: Some("app.bsky.embed.recordWithMedia") }
  • AddedEdge AddedEdge { src: "net.anisota.feed.draft:body.embed:variant1", tgt: "app.bsky.embed.gallery", kind: "ref", name: None }
  • AddedEdge AddedEdge { src: "net.anisota.feed.draft:body.embed:variant2", tgt: "app.bsky.embed.video", kind: "ref", name: None }
  • AddedEdge AddedEdge { src: "net.anisota.feed.draft:body.embed:variant3", tgt: "app.bsky.embed.external", kind: "ref", name: None }
  • AddedEdge AddedEdge { src: "net.anisota.feed.draft:body.embed:variant4", tgt: "app.bsky.embed.record", kind: "ref", name: None }
  • AddedEdge AddedEdge { src: "net.anisota.feed.draft:body.embed:variant5", tgt: "app.bsky.embed.recordWithMedia", kind: "ref", name: None }

Migration Guidance

Added Elements

  • AddedVertex { vertex_id: "app.bsky.embed.gallery" }
  • AddedVertex { vertex_id: "net.anisota.feed.draft:body.embed:variant5" }

Additional Notes

  • Breaking: RemovedEdge { src: "net.anisota.feed.draft:body.embed", tgt: "net.anisota.feed.draft:body.embed:variant1", kind: "variant", name: Some("app.bsky.embed.video") }
  • Breaking: RemovedEdge { src: "net.anisota.feed.draft:body.embed", tgt: "net.anisota.feed.draft:body.embed:variant2", kind: "variant", name: Some("app.bsky.embed.external") }
  • Breaking: RemovedEdge { src: "net.anisota.feed.draft:body.embed", tgt: "net.anisota.feed.draft:body.embed:variant3", kind: "variant", name: Some("app.bsky.embed.record") }
  • Breaking: RemovedEdge { src: "net.anisota.feed.draft:body.embed", tgt: "net.anisota.feed.draft:body.embed:variant4", kind: "variant", name: Some("app.bsky.embed.recordWithMedia") }
  • Breaking: RemovedEdge { src: "net.anisota.feed.draft:body.embed:variant1", tgt: "app.bsky.embed.video", kind: "ref", name: None }
  • Breaking: RemovedEdge { src: "net.anisota.feed.draft:body.embed:variant2", tgt: "app.bsky.embed.external", kind: "ref", name: None }
  • Breaking: RemovedEdge { src: "net.anisota.feed.draft:body.embed:variant3", tgt: "app.bsky.embed.record", kind: "ref", name: None }
  • Breaking: RemovedEdge { src: "net.anisota.feed.draft:body.embed:variant4", tgt: "app.bsky.embed.recordWithMedia", kind: "ref", name: None }
  • Non-breaking: AddedEdge { src: "net.anisota.feed.draft:body.embed", tgt: "net.anisota.feed.draft:body.embed:variant1", kind: "variant", name: Some("app.bsky.embed.gallery") }
  • Non-breaking: AddedEdge { src: "net.anisota.feed.draft:body.embed", tgt: "net.anisota.feed.draft:body.embed:variant2", kind: "variant", name: Some("app.bsky.embed.video") }
  • Non-breaking: AddedEdge { src: "net.anisota.feed.draft:body.embed", tgt: "net.anisota.feed.draft:body.embed:variant3", kind: "variant", name: Some("app.bsky.embed.external") }
  • Non-breaking: AddedEdge { src: "net.anisota.feed.draft:body.embed", tgt: "net.anisota.feed.draft:body.embed:variant4", kind: "variant", name: Some("app.bsky.embed.record") }
  • Non-breaking: AddedEdge { src: "net.anisota.feed.draft:body.embed", tgt: "net.anisota.feed.draft:body.embed:variant5", kind: "variant", name: Some("app.bsky.embed.recordWithMedia") }
  • Non-breaking: AddedEdge { src: "net.anisota.feed.draft:body.embed:variant1", tgt: "app.bsky.embed.gallery", kind: "ref", name: None }
  • Non-breaking: AddedEdge { src: "net.anisota.feed.draft:body.embed:variant2", tgt: "app.bsky.embed.video", kind: "ref", name: None }
  • Non-breaking: AddedEdge { src: "net.anisota.feed.draft:body.embed:variant3", tgt: "app.bsky.embed.external", kind: "ref", name: None }
  • Non-breaking: AddedEdge { src: "net.anisota.feed.draft:body.embed:variant4", tgt: "app.bsky.embed.record", kind: "ref", name: None }
  • Non-breaking: AddedEdge { src: "net.anisota.feed.draft:body.embed:variant5", tgt: "app.bsky.embed.recordWithMedia", kind: "ref", name: None }
1 1
{
2 2
  "id": "net.anisota.feed.draft",
3 3
  "defs": {
4 4
    "main": {
5 5
      "key": "tid",
6 6
      "type": "record",
7 7
      "record": {
8 8
        "type": "object",
9 9
        "required": [
10 10
          "text",
11 11
          "createdAt"
12 12
        ],
13 13
        "properties": {
14 14
          "tags": {
15 15
            "type": "array",
16 16
            "items": {
17 17
              "type": "string",
18 18
              "maxLength": 640,
19 19
              "maxGraphemes": 64
20 20
            },
21 21
            "maxLength": 8,
22 22
            "description": "Additional hashtags, in addition to any included in post text and facets."
23 23
          },
24 24
          "text": {
25 25
            "type": "string",
26 26
            "maxLength": 3000,
27 27
            "description": "The primary post content. May be an empty string, if there are embeds.",
28 28
            "maxGraphemes": 300
29 29
          },
30 30
          "embed": {
31 31
            "refs": [
32 32
              "app.bsky.embed.images",
33 +
              "app.bsky.embed.gallery",
33 34
              "app.bsky.embed.video",
34 35
              "app.bsky.embed.external",
35 36
              "app.bsky.embed.record",
36 37
              "app.bsky.embed.recordWithMedia"
37 38
            ],
38 39
            "type": "union"
39 40
          },
40 41
          "langs": {
41 42
            "type": "array",
42 43
            "items": {
43 44
              "type": "string",
44 45
              "format": "language"
45 46
            },
46 47
            "maxLength": 3,
47 48
            "description": "Indicates human language of post primary text content."
48 49
          },
49 50
          "reply": {
50 51
            "ref": "#replyRef",
51 52
            "type": "ref"
52 53
          },
53 54
          "facets": {
54 55
            "type": "array",
55 56
            "items": {
56 57
              "ref": "app.bsky.richtext.facet",
57 58
              "type": "ref"
58 59
            },
59 60
            "description": "Annotations of text (mentions, URLs, hashtags, etc)"
60 61
          },
61 62
          "labels": {
62 63
            "refs": [
63 64
              "com.atproto.label.defs#selfLabels"
64 65
            ],
65 66
            "type": "union",
66 67
            "description": "Self-label values for this post. Effectively content warnings."
67 68
          },
68 69
          "createdAt": {
69 70
            "type": "string",
70 71
            "format": "datetime",
71 72
            "description": "Client-declared timestamp when this draft was originally created."
72 73
          },
73 74
          "updatedAt": {
74 75
            "type": "string",
75 76
            "format": "datetime",
76 77
            "description": "Client-declared timestamp when this draft was last updated."
77 78
          }
78 79
        }
79 80
      },
80 81
      "description": "Record containing a draft post that can be edited and later published as app.bsky.feed.post"
81 82
    },
82 83
    "replyRef": {
83 84
      "type": "object",
84 85
      "required": [
85 86
        "root",
86 87
        "parent"
87 88
      ],
88 89
      "properties": {
89 90
        "root": {
90 91
          "ref": "com.atproto.repo.strongRef",
91 92
          "type": "ref"
92 93
        },
93 94
        "parent": {
94 95
          "ref": "com.atproto.repo.strongRef",
95 96
          "type": "ref"
96 97
        }
97 98
      }
98 99
    }
99 100
  },
100 101
  "$type": "com.atproto.lexicon.schema",
101 102
  "lexicon": 1
102 103
}

Compare Other Versions

Lexicon Garden

@