art.cllctv.actor.profile

cllctv.art

Schema Diff

+74 -0

From

CID
bafyreigcxuoepqu...
Indexed At
2026-03-19 20:25 UTC
View this version

To

CID
bafyreifvssu2mxd...
Indexed At
2026-08-28 07:51 UTC
View this version

Compatibility Analysis

Breaking Changes Detected

1 breaking change, 31 non-breaking changes.

Breaking Changes (1)
  • RequiredEdgeAdded RequiredEdgeAdded { vertex_id: "art.cllctv.actor.profile#theme", src: "art.cllctv.actor.profile#theme", tgt: "art.cllctv.actor.profile#theme.signature", kind: "prop", name: Some("signature") }
Non-Breaking Changes (31)
  • AddedVertex AddedVertex { vertex_id: "art.cllctv.actor.profile#theme" }
  • AddedVertex AddedVertex { vertex_id: "art.cllctv.actor.profile#theme.signature" }
  • AddedVertex AddedVertex { vertex_id: "art.cllctv.actor.profile#theme.signature:variant0" }
  • AddedVertex AddedVertex { vertex_id: "art.cllctv.actor.profile:body.avatar" }
  • AddedVertex AddedVertex { vertex_id: "art.cllctv.actor.profile:body.avatarHash" }
  • AddedVertex AddedVertex { vertex_id: "art.cllctv.actor.profile:body.banner" }
  • AddedVertex AddedVertex { vertex_id: "art.cllctv.actor.profile:body.bannerHash" }
  • AddedVertex AddedVertex { vertex_id: "art.cllctv.actor.profile:body.description" }
  • AddedVertex AddedVertex { vertex_id: "art.cllctv.actor.profile:body.displayName" }
  • AddedVertex AddedVertex { vertex_id: "art.cllctv.actor.profile:body.labels" }
  • AddedVertex AddedVertex { vertex_id: "art.cllctv.actor.profile:body.labels:variant0" }
  • AddedVertex AddedVertex { vertex_id: "art.cllctv.actor.profile:body.pronouns" }
  • AddedVertex AddedVertex { vertex_id: "art.cllctv.actor.profile:body.theme" }
  • AddedVertex AddedVertex { vertex_id: "art.cllctv.actor.profile:body.website" }
  • AddedVertex AddedVertex { vertex_id: "art.cllctv.theme.color#hsl" }
  • AddedVertex AddedVertex { vertex_id: "com.atproto.label.defs#selfLabels" }
  • AddedEdge AddedEdge { src: "art.cllctv.actor.profile#theme.signature", tgt: "art.cllctv.actor.profile#theme.signature:variant0", kind: "variant", name: Some("art.cllctv.theme.color#hsl") }
  • AddedEdge AddedEdge { src: "art.cllctv.actor.profile#theme.signature:variant0", tgt: "art.cllctv.theme.color#hsl", kind: "ref", name: None }
  • AddedEdge AddedEdge { src: "art.cllctv.actor.profile:body", tgt: "art.cllctv.actor.profile:body.avatar", kind: "prop", name: Some("avatar") }
  • AddedEdge AddedEdge { src: "art.cllctv.actor.profile:body", tgt: "art.cllctv.actor.profile:body.avatarHash", kind: "prop", name: Some("avatarHash") }
  • AddedEdge AddedEdge { src: "art.cllctv.actor.profile:body", tgt: "art.cllctv.actor.profile:body.banner", kind: "prop", name: Some("banner") }
  • AddedEdge AddedEdge { src: "art.cllctv.actor.profile:body", tgt: "art.cllctv.actor.profile:body.bannerHash", kind: "prop", name: Some("bannerHash") }
  • AddedEdge AddedEdge { src: "art.cllctv.actor.profile:body", tgt: "art.cllctv.actor.profile:body.description", kind: "prop", name: Some("description") }
  • AddedEdge AddedEdge { src: "art.cllctv.actor.profile:body", tgt: "art.cllctv.actor.profile:body.displayName", kind: "prop", name: Some("displayName") }
  • AddedEdge AddedEdge { src: "art.cllctv.actor.profile:body", tgt: "art.cllctv.actor.profile:body.labels", kind: "prop", name: Some("labels") }
  • AddedEdge AddedEdge { src: "art.cllctv.actor.profile:body", tgt: "art.cllctv.actor.profile:body.pronouns", kind: "prop", name: Some("pronouns") }
  • AddedEdge AddedEdge { src: "art.cllctv.actor.profile:body", tgt: "art.cllctv.actor.profile:body.theme", kind: "prop", name: Some("theme") }
  • AddedEdge AddedEdge { src: "art.cllctv.actor.profile:body", tgt: "art.cllctv.actor.profile:body.website", kind: "prop", name: Some("website") }
  • AddedEdge AddedEdge { src: "art.cllctv.actor.profile:body.labels", tgt: "art.cllctv.actor.profile:body.labels:variant0", kind: "variant", name: Some("com.atproto.label.defs#selfLabels") }
  • AddedEdge AddedEdge { src: "art.cllctv.actor.profile:body.labels:variant0", tgt: "com.atproto.label.defs#selfLabels", kind: "ref", name: None }
  • AddedEdge AddedEdge { src: "art.cllctv.actor.profile:body.theme", tgt: "art.cllctv.actor.profile#theme", kind: "ref", name: None }

Migration Guidance

Added Elements

  • AddedVertex { vertex_id: "art.cllctv.actor.profile#theme" }
  • AddedVertex { vertex_id: "art.cllctv.actor.profile#theme.signature" }
  • AddedVertex { vertex_id: "art.cllctv.actor.profile#theme.signature:variant0" }
  • AddedVertex { vertex_id: "art.cllctv.actor.profile:body.avatar" }
  • AddedVertex { vertex_id: "art.cllctv.actor.profile:body.avatarHash" }
  • AddedVertex { vertex_id: "art.cllctv.actor.profile:body.banner" }
  • AddedVertex { vertex_id: "art.cllctv.actor.profile:body.bannerHash" }
  • AddedVertex { vertex_id: "art.cllctv.actor.profile:body.description" }
  • AddedVertex { vertex_id: "art.cllctv.actor.profile:body.displayName" }
  • AddedVertex { vertex_id: "art.cllctv.actor.profile:body.labels" }
  • AddedVertex { vertex_id: "art.cllctv.actor.profile:body.labels:variant0" }
  • AddedVertex { vertex_id: "art.cllctv.actor.profile:body.pronouns" }
  • AddedVertex { vertex_id: "art.cllctv.actor.profile:body.theme" }
  • AddedVertex { vertex_id: "art.cllctv.actor.profile:body.website" }
  • AddedVertex { vertex_id: "art.cllctv.theme.color#hsl" }
  • AddedVertex { vertex_id: "com.atproto.label.defs#selfLabels" }

Additional Notes

  • Breaking: RequiredEdgeAdded { vertex_id: "art.cllctv.actor.profile#theme", src: "art.cllctv.actor.profile#theme", tgt: "art.cllctv.actor.profile#theme.signature", kind: "prop", name: Some("signature") }
  • Non-breaking: AddedEdge { src: "art.cllctv.actor.profile#theme.signature", tgt: "art.cllctv.actor.profile#theme.signature:variant0", kind: "variant", name: Some("art.cllctv.theme.color#hsl") }
  • Non-breaking: AddedEdge { src: "art.cllctv.actor.profile#theme.signature:variant0", tgt: "art.cllctv.theme.color#hsl", kind: "ref", name: None }
  • Non-breaking: AddedEdge { src: "art.cllctv.actor.profile:body", tgt: "art.cllctv.actor.profile:body.avatar", kind: "prop", name: Some("avatar") }
  • Non-breaking: AddedEdge { src: "art.cllctv.actor.profile:body", tgt: "art.cllctv.actor.profile:body.avatarHash", kind: "prop", name: Some("avatarHash") }
  • Non-breaking: AddedEdge { src: "art.cllctv.actor.profile:body", tgt: "art.cllctv.actor.profile:body.banner", kind: "prop", name: Some("banner") }
  • Non-breaking: AddedEdge { src: "art.cllctv.actor.profile:body", tgt: "art.cllctv.actor.profile:body.bannerHash", kind: "prop", name: Some("bannerHash") }
  • Non-breaking: AddedEdge { src: "art.cllctv.actor.profile:body", tgt: "art.cllctv.actor.profile:body.description", kind: "prop", name: Some("description") }
  • Non-breaking: AddedEdge { src: "art.cllctv.actor.profile:body", tgt: "art.cllctv.actor.profile:body.displayName", kind: "prop", name: Some("displayName") }
  • Non-breaking: AddedEdge { src: "art.cllctv.actor.profile:body", tgt: "art.cllctv.actor.profile:body.labels", kind: "prop", name: Some("labels") }
  • Non-breaking: AddedEdge { src: "art.cllctv.actor.profile:body", tgt: "art.cllctv.actor.profile:body.pronouns", kind: "prop", name: Some("pronouns") }
  • Non-breaking: AddedEdge { src: "art.cllctv.actor.profile:body", tgt: "art.cllctv.actor.profile:body.theme", kind: "prop", name: Some("theme") }
  • Non-breaking: AddedEdge { src: "art.cllctv.actor.profile:body", tgt: "art.cllctv.actor.profile:body.website", kind: "prop", name: Some("website") }
  • Non-breaking: AddedEdge { src: "art.cllctv.actor.profile:body.labels", tgt: "art.cllctv.actor.profile:body.labels:variant0", kind: "variant", name: Some("com.atproto.label.defs#selfLabels") }
  • Non-breaking: AddedEdge { src: "art.cllctv.actor.profile:body.labels:variant0", tgt: "com.atproto.label.defs#selfLabels", kind: "ref", name: None }
  • Non-breaking: AddedEdge { src: "art.cllctv.actor.profile:body.theme", tgt: "art.cllctv.actor.profile#theme", kind: "ref", name: None }
1 1
{
2 2
  "$type": "com.atproto.lexicon.schema",
3 3
  "defs": {
4 4
    "main": {
5 5
      "description": "A declaration of a cllctv.ART account profile.",
6 6
      "key": "literal:self",
7 7
      "record": {
8 8
        "properties": {
9 +
          "avatar": {
10 +
            "accept": [
11 +
              "image/png",
12 +
              "image/jpeg"
13 +
            ],
14 +
            "description": "Small image to be displayed next to posts from account. AKA, 'profile picture'",
15 +
            "maxSize": 1000000,
16 +
            "type": "blob"
17 +
          },
18 +
          "avatarHash": {
19 +
            "maxGraphemes": 64,
20 +
            "maxLength": 640,
21 +
            "type": "string"
22 +
          },
23 +
          "banner": {
24 +
            "accept": [
25 +
              "image/png",
26 +
              "image/jpeg"
27 +
            ],
28 +
            "description": "Larger horizontal image to display behind profile view.",
29 +
            "maxSize": 1000000,
30 +
            "type": "blob"
31 +
          },
32 +
          "bannerHash": {
33 +
            "maxGraphemes": 64,
34 +
            "maxLength": 640,
35 +
            "type": "string"
36 +
          },
9 37
          "createdAt": {
10 38
            "format": "datetime",
11 39
            "type": "string"
40 +
          },
41 +
          "description": {
42 +
            "description": "Free-form profile description text.",
43 +
            "maxGraphemes": 256,
44 +
            "maxLength": 2560,
45 +
            "type": "string"
46 +
          },
47 +
          "displayName": {
48 +
            "maxGraphemes": 64,
49 +
            "maxLength": 640,
50 +
            "type": "string"
51 +
          },
52 +
          "labels": {
53 +
            "description": "Self-label values, specific to the cllctv.ART application, on the overall account.",
54 +
            "refs": [
55 +
              "com.atproto.label.defs#selfLabels"
56 +
            ],
57 +
            "type": "union"
58 +
          },
59 +
          "pronouns": {
60 +
            "description": "Free-form pronouns text.",
61 +
            "maxGraphemes": 20,
62 +
            "maxLength": 200,
63 +
            "type": "string"
64 +
          },
65 +
          "theme": {
66 +
            "ref": "#theme",
67 +
            "type": "ref"
68 +
          },
69 +
          "website": {
70 +
            "format": "uri",
71 +
            "type": "string"
12 72
          }
13 73
        },
14 74
        "type": "object"
15 75
      },
16 76
      "type": "record"
77 +
    },
78 +
    "theme": {
79 +
      "properties": {
80 +
        "signature": {
81 +
          "refs": [
82 +
            "art.cllctv.theme.color#hsl"
83 +
          ],
84 +
          "type": "union"
85 +
        }
86 +
      },
87 +
      "required": [
88 +
        "signature"
89 +
      ],
90 +
      "type": "object"
17 91
    }
18 92
  },
19 93
  "id": "art.cllctv.actor.profile",
20 94
  "lexicon": 1
21 95
}

Compare Other Versions

Lexicon Garden

@