pics.2bit.actor.profile

2bit.pics

Schema Diff

+21 -7

From

CID
bafyreigpn7aym2k...
Indexed At
2026-08-15 16:46 UTC
View this version

To

CID
bafyreidiv6zozyy...
Indexed At
2026-08-15 21:28 UTC
View this version

Compatibility Analysis

Breaking Changes Detected

3 breaking changes, 6 non-breaking changes.

Breaking Changes (3)
  • KindChanged KindChanged { vertex_id: "pics.2bit.actor.profile:body.avatar", old_kind: "blob", new_kind: "bytes" }
  • ConstraintAdded ConstraintAdded { vertex_id: "pics.2bit.actor.profile:body.avatar", sort: "maxLength", value: "3584" }
  • ConstraintAdded ConstraintAdded { vertex_id: "pics.2bit.actor.profile:body.avatar", sort: "minLength", value: "3584" }
Non-Breaking Changes (6)
  • AddedVertex AddedVertex { vertex_id: "pics.2bit.actor.profile:body.avatarColors" }
  • AddedVertex AddedVertex { vertex_id: "pics.2bit.actor.profile:body.avatarColors:items" }
  • AddedVertex AddedVertex { vertex_id: "pics.2bit.actor.profile:body.updatedAt" }
  • AddedEdge AddedEdge { src: "pics.2bit.actor.profile:body", tgt: "pics.2bit.actor.profile:body.avatarColors", kind: "prop", name: Some("avatarColors") }
  • AddedEdge AddedEdge { src: "pics.2bit.actor.profile:body", tgt: "pics.2bit.actor.profile:body.updatedAt", kind: "prop", name: Some("updatedAt") }
  • AddedEdge AddedEdge { src: "pics.2bit.actor.profile:body.avatarColors", tgt: "pics.2bit.actor.profile:body.avatarColors:items", kind: "items", name: None }

Migration Guidance

Added Elements

  • AddedVertex { vertex_id: "pics.2bit.actor.profile:body.avatarColors" }
  • AddedVertex { vertex_id: "pics.2bit.actor.profile:body.avatarColors:items" }
  • AddedVertex { vertex_id: "pics.2bit.actor.profile:body.updatedAt" }

Constraint Changes

  • ConstraintAdded ConstraintAdded { vertex_id: "pics.2bit.actor.profile:body.avatar", sort: "minLength", value: "3584" }
  • ConstraintAdded ConstraintAdded { vertex_id: "pics.2bit.actor.profile:body.avatar", sort: "maxLength", value: "3584" }

Additional Notes

  • Breaking: KindChanged { vertex_id: "pics.2bit.actor.profile:body.avatar", old_kind: "blob", new_kind: "bytes" }
  • Non-breaking: AddedEdge { src: "pics.2bit.actor.profile:body", tgt: "pics.2bit.actor.profile:body.avatarColors", kind: "prop", name: Some("avatarColors") }
  • Non-breaking: AddedEdge { src: "pics.2bit.actor.profile:body", tgt: "pics.2bit.actor.profile:body.updatedAt", kind: "prop", name: Some("updatedAt") }
  • Non-breaking: AddedEdge { src: "pics.2bit.actor.profile:body.avatarColors", tgt: "pics.2bit.actor.profile:body.avatarColors:items", kind: "items", 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 -
            "accept": [
11 -
              "image/png",
12 -
              "image/jpeg"
13 -
            ],
14 -
            "description": "Ideally also dithered.",
15 -
            "maxSize": 1000000,
16 -
            "type": "blob"
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 +
            "maxLength": 3584,
12 +
            "minLength": 3584,
13 +
            "type": "bytes"
14 +
          },
15 +
          "avatarColors": {
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 +
            "items": {
18 +
              "maximum": 16777215,
19 +
              "minimum": 0,
20 +
              "type": "integer"
21 +
            },
22 +
            "maxLength": 4,
23 +
            "minLength": 4,
24 +
            "type": "array"
17 25
          },
18 26
          "createdAt": {
27 +
            "description": "When this profile record was first published.",
19 28
            "format": "datetime",
20 29
            "type": "string"
21 30
          },
22 31
          "description": {
23 32
            "maxGraphemes": 256,
24 33
            "maxLength": 2560,
25 34
            "type": "string"
26 35
          },
27 36
          "displayName": {
28 37
            "maxGraphemes": 64,
29 38
            "maxLength": 640,
30 39
            "type": "string"
31 40
          },
32 41
          "gear": {
33 42
            "description": "Main rig flex slot.",
34 43
            "maxLength": 100,
35 44
            "type": "string"
45 +
          },
46 +
          "updatedAt": {
47 +
            "description": "When this profile record was last edited. Unset on a profile that has never been edited since creation.",
48 +
            "format": "datetime",
49 +
            "type": "string"
36 50
          }
37 51
        },
38 52
        "type": "object"
39 53
      },
40 54
      "type": "record"
41 55
    }
42 56
  },
43 57
  "id": "pics.2bit.actor.profile",
44 58
  "lexicon": 1
45 59
}

Compare Other Versions

Lexicon Garden

@