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

Compare Other Versions

Lexicon Garden

@