com.getorbyt.community.declaration

getorbyt.com

Schema Diff

+8 -0

From

CID
bafyreiaylrona5k...
Indexed At
2026-09-03 03:55 UTC
View this version

To

CID
bafyreiavobs7kmc...
Indexed At
2026-09-13 19:26 UTC
View this version

Compatibility Analysis

Backward Compatible

Backward compatible. 2 non-breaking changes.

Non-Breaking Changes (2)
  • AddedVertex AddedVertex { vertex_id: "com.getorbyt.community.declaration:body.avatarVideo" }
  • AddedEdge AddedEdge { src: "com.getorbyt.community.declaration:body", tgt: "com.getorbyt.community.declaration:body.avatarVideo", kind: "prop", name: Some("avatarVideo") }

Migration Guidance

Added Elements

  • AddedVertex { vertex_id: "com.getorbyt.community.declaration:body.avatarVideo" }

Additional Notes

  • Non-breaking: AddedEdge { src: "com.getorbyt.community.declaration:body", tgt: "com.getorbyt.community.declaration:body.avatarVideo", kind: "prop", name: Some("avatarVideo") }
1 1
{
2 2
  "$type": "com.atproto.lexicon.schema",
3 3
  "defs": {
4 4
    "main": {
5 5
      "description": "The canonical public descriptor for an Orbyt Community, and the record that declares the Community exists. Its AT-URI is the Community's identity everywhere else in the protocol. The record key is a TID, including for the replacement declaration an accepted ownership transfer produces: the recipient mints it before accepting and names it to the AppView, which stores it as the only URI the continuation may be written at. Every Community is public: the record is world-readable, and the directory and feed are open. Only posting is gated, by postPolicy.",
6 6
      "key": "tid",
7 7
      "record": {
8 8
        "properties": {
9 9
          "accentColor": {
10 10
            "description": "A CSS-style hex colour, for example #D07EA2. Free-form so a client may carry a richer value later; a value this service cannot parse is ignored rather than rejected.",
11 11
            "maxLength": 32,
12 12
            "type": "string"
13 13
          },
14 14
          "avatar": {
15 15
            "accept": [
16 16
              "image/gif",
17 17
              "image/png",
18 18
              "image/jpeg",
19 19
              "image/webp"
20 20
            ],
21 21
            "description": "The Community's single full-bleed background artwork. It is shared by the community hero and Explore tiles; GIFs loop in supporting clients.",
22 22
            "maxSize": 3000000,
23 23
            "type": "blob"
24 24
          },
25 +
          "avatarVideo": {
26 +
            "accept": [
27 +
              "video/mp4"
28 +
            ],
29 +
            "description": "An optional looping, silent MP4 of the same artwork as `avatar`, for clients whose header is a video player. H.264 in yuv420p with even dimensions and the moov atom first, which is what both AVPlayer and ExoPlayer will actually stream; a file that is not is simply not played. This never replaces `avatar` -- an MP4 cannot be drawn into an image view, so a Community that carried only this one would have no artwork at all on every surface that is not a video player. Supply both or supply `avatar` alone.",
30 +
            "maxSize": 3000000,
31 +
            "type": "blob"
32 +
          },
25 33
          "continuationOf": {
26 34
            "description": "The stable Community AT-URI this declaration continues after an accepted ownership transfer. The service ignores this field unless a matching accepted transfer authorizes this repository.",
27 35
            "format": "at-uri",
28 36
            "type": "string"
29 37
          },
30 38
          "createdAt": {
31 39
            "format": "datetime",
32 40
            "type": "string"
33 41
          },
34 42
          "description": {
35 43
            "maxLength": 2000,
36 44
            "type": "string"
37 45
          },
38 46
          "labels": {
39 47
            "description": "Self-applied content labels, spelled as on app.bsky.feed.post. A Community carrying an adult label is hidden from viewers whose adult-content preference is off, exactly as a labeled post is.",
40 48
            "refs": [
41 49
              "com.atproto.label.defs#selfLabels"
42 50
            ],
43 51
            "type": "union"
44 52
          },
45 53
          "name": {
46 54
            "description": "The globally unique lowercase Community name. Clients render it with a leading slash, for example /funny.",
47 55
            "maxLength": 63,
48 56
            "minLength": 2,
49 57
            "type": "string"
50 58
          },
51 59
          "postPolicy": {
52 60
            "description": "Who may link a post to this Community. Absent means anyone. A value this service does not know is treated as the most restrictive policy rather than the least.",
53 61
            "knownValues": [
54 62
              "anyone",
55 63
              "members",
56 64
              "moderators"
57 65
            ],
58 66
            "type": "string"
59 67
          },
60 68
          "rules": {
61 69
            "items": {
62 70
              "ref": "com.getorbyt.community.defs#rule",
63 71
              "type": "ref"
64 72
            },
65 73
            "maxLength": 20,
66 74
            "type": "array"
67 75
          },
68 76
          "updatedAt": {
69 77
            "format": "datetime",
70 78
            "type": "string"
71 79
          }
72 80
        },
73 81
        "required": [
74 82
          "name",
75 83
          "createdAt"
76 84
        ],
77 85
        "type": "object"
78 86
      },
79 87
      "type": "record"
80 88
    }
81 89
  },
82 90
  "id": "com.getorbyt.community.declaration",
83 91
  "lexicon": 1
84 92
}

Compare Other Versions

Lexicon Garden

@