pics.2bit.actor.profile

2bit.pics

Schema Diff

+9 -0

From

CID
bafyreie3jtjhwh7...
Indexed At
2026-08-20 03:52 UTC
View this version

To

CID
bafyreihw3nuoa2e...
Indexed At
2026-09-26 18:36 UTC
View this version

Compatibility Analysis

Backward Compatible

Backward compatible. 6 non-breaking changes.

Non-Breaking Changes (6)
  • AddedVertex AddedVertex { vertex_id: "com.atproto.repo.strongRef" }
  • AddedVertex AddedVertex { vertex_id: "pics.2bit.actor.profile:body.pinnedPhotos" }
  • AddedVertex AddedVertex { vertex_id: "pics.2bit.actor.profile:body.pinnedPhotos:items" }
  • AddedEdge AddedEdge { src: "pics.2bit.actor.profile:body", tgt: "pics.2bit.actor.profile:body.pinnedPhotos", kind: "prop", name: Some("pinnedPhotos") }
  • AddedEdge AddedEdge { src: "pics.2bit.actor.profile:body.pinnedPhotos", tgt: "pics.2bit.actor.profile:body.pinnedPhotos:items", kind: "items", name: None }
  • AddedEdge AddedEdge { src: "pics.2bit.actor.profile:body.pinnedPhotos:items", tgt: "com.atproto.repo.strongRef", kind: "ref", name: None }

Migration Guidance

Added Elements

  • AddedVertex { vertex_id: "com.atproto.repo.strongRef" }
  • AddedVertex { vertex_id: "pics.2bit.actor.profile:body.pinnedPhotos" }
  • AddedVertex { vertex_id: "pics.2bit.actor.profile:body.pinnedPhotos:items" }

Additional Notes

  • Non-breaking: AddedEdge { src: "pics.2bit.actor.profile:body", tgt: "pics.2bit.actor.profile:body.pinnedPhotos", kind: "prop", name: Some("pinnedPhotos") }
  • Non-breaking: AddedEdge { src: "pics.2bit.actor.profile:body.pinnedPhotos", tgt: "pics.2bit.actor.profile:body.pinnedPhotos:items", kind: "items", name: None }
  • Non-breaking: AddedEdge { src: "pics.2bit.actor.profile:body.pinnedPhotos:items", 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 5
      "description": "A 2bit.pics profile.",
6 6
      "key": "literal:self",
7 7
      "record": {
8 8
        "properties": {
9 9
          "avatar": {
10 10
            "description": "128x112 2bpp Game Boy Camera tile data, same layout as pics.2bit.feed.photo#image. Square avatars are produced by cropping at render time, not on write.",
11 11
            "maxLength": 3584,
12 12
            "minLength": 3584,
13 13
            "type": "bytes"
14 14
          },
15 15
          "avatarColors": {
16 16
            "description": "Four 24-bit RGB colors (0 to 0xFFFFFF) corresponding to the avatar's 2bpp pixel values 0 through 3, where 0 is lightest and 3 is darkest.",
17 17
            "items": {
18 18
              "maximum": 16777215,
19 19
              "minimum": 0,
20 20
              "type": "integer"
21 21
            },
22 22
            "maxLength": 4,
23 23
            "minLength": 4,
24 24
            "type": "array"
25 25
          },
26 26
          "createdAt": {
27 27
            "description": "When this profile record was first published.",
28 28
            "format": "datetime",
29 29
            "type": "string"
30 30
          },
31 31
          "description": {
32 32
            "maxGraphemes": 256,
33 33
            "maxLength": 2560,
34 34
            "type": "string"
35 35
          },
36 36
          "displayName": {
37 37
            "maxGraphemes": 64,
38 38
            "maxLength": 640,
39 39
            "type": "string"
40 40
          },
41 41
          "gear": {
42 42
            "description": "Main rig flex slot.",
43 43
            "maxLength": 100,
44 44
            "type": "string"
45 45
          },
46 46
          "labels": {
47 47
            "description": "Self-applied labels on this account. 2bit.pics writes at most `!no-unauthenticated`, the atproto value meaning \"don't show this account to logged-out viewers\" - the same one Bluesky writes for its own logged-out visibility setting, so other clients already know how to read it.",
48 48
            "ref": "com.atproto.label.defs#selfLabels",
49 49
            "type": "ref"
50 50
          },
51 +
          "pinnedPhotos": {
52 +
            "description": "Photos pinned to the top of this profile, in display order - the first ref shows first. Each must be one of this account's own pics.2bit.feed.photo records; like pics.2bit.feed.like#subject, a strongRef carries no type, so that is enforced by the AppView rather than this schema, which also drops refs to photos that have since been deleted or can't be shown. The cid is the photo's at pinning time and isn't expected to track later edits. Modeled on app.bsky.actor.profile#pinnedPost, as a short list rather than a single ref.",
53 +
            "items": {
54 +
              "ref": "com.atproto.repo.strongRef",
55 +
              "type": "ref"
56 +
            },
57 +
            "maxLength": 3,
58 +
            "type": "array"
59 +
          },
51 60
          "updatedAt": {
52 61
            "description": "When this profile record was last edited. Unset on a profile that has never been edited since creation.",
53 62
            "format": "datetime",
54 63
            "type": "string"
55 64
          }
56 65
        },
57 66
        "type": "object"
58 67
      },
59 68
      "type": "record"
60 69
    }
61 70
  },
62 71
  "id": "pics.2bit.actor.profile",
63 72
  "lexicon": 1
64 73
}

Compare Other Versions

Lexicon Garden

@