net.wireservice.component.embed

wireservice.net

Schema Diff

+47 -2

From

CID
bafyreidsk7smt4w...
Indexed At
2026-10-12 21:12 UTC
View this version

To

CID
bafyreidclbziak3...
Indexed At
2026-10-13 09:20 UTC
View this version

Compatibility Analysis

Backward Compatible

Backward compatible. 16 non-breaking changes.

Non-Breaking Changes (16)
  • AddedVertex AddedVertex { vertex_id: "com.atproto.repo.strongRef" }
  • AddedVertex AddedVertex { vertex_id: "net.wireservice.component.embed.authorName" }
  • AddedVertex AddedVertex { vertex_id: "net.wireservice.component.embed.description" }
  • AddedVertex AddedVertex { vertex_id: "net.wireservice.component.embed.providerName" }
  • AddedVertex AddedVertex { vertex_id: "net.wireservice.component.embed.publishedAt" }
  • AddedVertex AddedVertex { vertex_id: "net.wireservice.component.embed.record" }
  • AddedVertex AddedVertex { vertex_id: "net.wireservice.component.embed.thumbnail" }
  • AddedVertex AddedVertex { vertex_id: "net.wireservice.component.embed.title" }
  • AddedEdge AddedEdge { src: "net.wireservice.component.embed", tgt: "net.wireservice.component.embed.authorName", kind: "prop", name: Some("authorName") }
  • AddedEdge AddedEdge { src: "net.wireservice.component.embed", tgt: "net.wireservice.component.embed.description", kind: "prop", name: Some("description") }
  • AddedEdge AddedEdge { src: "net.wireservice.component.embed", tgt: "net.wireservice.component.embed.providerName", kind: "prop", name: Some("providerName") }
  • AddedEdge AddedEdge { src: "net.wireservice.component.embed", tgt: "net.wireservice.component.embed.publishedAt", kind: "prop", name: Some("publishedAt") }
  • AddedEdge AddedEdge { src: "net.wireservice.component.embed", tgt: "net.wireservice.component.embed.record", kind: "prop", name: Some("record") }
  • AddedEdge AddedEdge { src: "net.wireservice.component.embed", tgt: "net.wireservice.component.embed.thumbnail", kind: "prop", name: Some("thumbnail") }
  • AddedEdge AddedEdge { src: "net.wireservice.component.embed", tgt: "net.wireservice.component.embed.title", kind: "prop", name: Some("title") }
  • AddedEdge AddedEdge { src: "net.wireservice.component.embed.record", tgt: "com.atproto.repo.strongRef", kind: "ref", name: None }

Migration Guidance

Added Elements

  • AddedVertex { vertex_id: "com.atproto.repo.strongRef" }
  • AddedVertex { vertex_id: "net.wireservice.component.embed.authorName" }
  • AddedVertex { vertex_id: "net.wireservice.component.embed.description" }
  • AddedVertex { vertex_id: "net.wireservice.component.embed.providerName" }
  • AddedVertex { vertex_id: "net.wireservice.component.embed.publishedAt" }
  • AddedVertex { vertex_id: "net.wireservice.component.embed.record" }
  • AddedVertex { vertex_id: "net.wireservice.component.embed.thumbnail" }
  • AddedVertex { vertex_id: "net.wireservice.component.embed.title" }

Additional Notes

  • Non-breaking: AddedEdge { src: "net.wireservice.component.embed", tgt: "net.wireservice.component.embed.authorName", kind: "prop", name: Some("authorName") }
  • Non-breaking: AddedEdge { src: "net.wireservice.component.embed", tgt: "net.wireservice.component.embed.description", kind: "prop", name: Some("description") }
  • Non-breaking: AddedEdge { src: "net.wireservice.component.embed", tgt: "net.wireservice.component.embed.providerName", kind: "prop", name: Some("providerName") }
  • Non-breaking: AddedEdge { src: "net.wireservice.component.embed", tgt: "net.wireservice.component.embed.publishedAt", kind: "prop", name: Some("publishedAt") }
  • Non-breaking: AddedEdge { src: "net.wireservice.component.embed", tgt: "net.wireservice.component.embed.record", kind: "prop", name: Some("record") }
  • Non-breaking: AddedEdge { src: "net.wireservice.component.embed", tgt: "net.wireservice.component.embed.thumbnail", kind: "prop", name: Some("thumbnail") }
  • Non-breaking: AddedEdge { src: "net.wireservice.component.embed", tgt: "net.wireservice.component.embed.title", kind: "prop", name: Some("title") }
  • Non-breaking: AddedEdge { src: "net.wireservice.component.embed.record", tgt: "com.atproto.repo.strongRef", kind: "ref", name: None }
1 1
{
2 2
  "$type": "com.atproto.lexicon.schema",
3 3
  "defs": {
4 4
    "main": {
5 -
      "description": "Embed component. Embeds external web content such as social media posts or web videos.",
5 +
      "description": "Embed component: external content (a web page, video, or social post) or an ATProto record, with a snapshot of its metadata taken when it was embedded. Renderers show the snapshot as a card and MAY upgrade it to an interactive player they recognize from the URL or record; the lexicon names no providers.",
6 6
      "properties": {
7 7
        "accessibilityCaption": {
8 8
          "maxGraphemes": 2000,
9 9
          "maxLength": 20000,
10 10
          "type": "string"
11 11
        },
12 12
        "aspectRatio": {
13 13
          "description": "Aspect ratio for the embed frame, primarily for web video embeds.",
14 14
          "ref": "net.wireservice.defs#aspectRatio",
15 15
          "type": "ref"
16 16
        },
17 +
        "authorName": {
18 +
          "description": "Snapshot: who made it.",
19 +
          "maxGraphemes": 200,
20 +
          "maxLength": 2000,
21 +
          "type": "string"
22 +
        },
17 23
        "caption": {
18 24
          "description": "Visible caption as an array of text runs with optional formatting marks.",
19 25
          "items": {
20 26
            "ref": "net.wireservice.defs#textRun",
21 27
            "type": "ref"
22 28
          },
23 29
          "type": "array"
24 30
        },
31 +
        "description": {
32 +
          "description": "Snapshot: a summary or excerpt (for a social post, its text).",
33 +
          "maxGraphemes": 1000,
34 +
          "maxLength": 10000,
35 +
          "type": "string"
36 +
        },
25 37
        "explicitContent": {
26 38
          "type": "boolean"
27 39
        },
28 40
        "hidden": {
29 41
          "type": "boolean"
30 42
        },
31 43
        "identifier": {
32 44
          "maxLength": 256,
33 45
          "type": "string"
34 46
        },
35 47
        "layout": {
36 48
          "maxLength": 256,
37 49
          "type": "string"
38 50
        },
51 +
        "providerName": {
52 +
          "description": "Snapshot: the site or service it came from.",
53 +
          "maxGraphemes": 100,
54 +
          "maxLength": 1000,
55 +
          "type": "string"
56 +
        },
57 +
        "publishedAt": {
58 +
          "description": "Snapshot: when the embedded content was published.",
59 +
          "format": "datetime",
60 +
          "type": "string"
61 +
        },
62 +
        "record": {
63 +
          "description": "The embedded ATProto record, when there is one (e.g. a Bluesky post). Lets renderers that understand the record type show it natively.",
64 +
          "ref": "com.atproto.repo.strongRef",
65 +
          "type": "ref"
66 +
        },
39 67
        "role": {
40 -
          "description": "Type of embedded content.",
68 +
          "description": "Deprecated. Renderers choose presentation from the URL or record; providers are not enumerated here.",
41 69
          "knownValues": [
42 70
            "web-video",
43 71
            "tweet",
44 72
            "instagram",
45 73
            "facebook-post",
46 74
            "tiktok"
47 75
          ],
48 76
          "maxLength": 64,
49 77
          "type": "string"
50 78
        },
51 79
        "style": {
52 80
          "maxLength": 256,
53 81
          "type": "string"
54 82
        },
83 +
        "thumbnail": {
84 +
          "accept": [
85 +
            "image/jpeg",
86 +
            "image/png",
87 +
            "image/webp",
88 +
            "image/gif"
89 +
          ],
90 +
          "description": "Snapshot: a preview image, copied so the embed survives the original going away.",
91 +
          "maxSize": 1000000,
92 +
          "type": "blob"
93 +
        },
94 +
        "title": {
95 +
          "description": "Snapshot: the embedded content’s title.",
96 +
          "maxGraphemes": 300,
97 +
          "maxLength": 3000,
98 +
          "type": "string"
99 +
        },
55 100
        "url": {
56 101
          "description": "URL of the content to embed.",
57 102
          "format": "uri",
58 103
          "type": "string"
59 104
        }
60 105
      },
61 106
      "required": [
62 107
        "url"
63 108
      ],
64 109
      "type": "object"
65 110
    }
66 111
  },
67 112
  "id": "net.wireservice.component.embed",
68 113
  "lexicon": 1
69 114
}

Compare Other Versions

Lexicon Garden

@