app.atmobb.actor.profile

lexicons.atmobb.app

Schema Diff

+12 -0

From

CID
bafyreibwmmhxrkj...
Indexed At
2026-09-13 00:02 UTC
View this version

To

CID
bafyreicwmmjwhji...
Indexed At
2026-09-13 23:12 UTC
View this version

Compatibility Analysis

Backward Compatible

Backward compatible. 2 non-breaking changes.

Non-Breaking Changes (2)
  • AddedVertex AddedVertex { vertex_id: "app.atmobb.actor.profile:body.theme" }
  • AddedEdge AddedEdge { src: "app.atmobb.actor.profile:body", tgt: "app.atmobb.actor.profile:body.theme", kind: "prop", name: Some("theme") }

Migration Guidance

Added Elements

  • AddedVertex { vertex_id: "app.atmobb.actor.profile:body.theme" }

Additional Notes

  • Non-breaking: AddedEdge { src: "app.atmobb.actor.profile:body", tgt: "app.atmobb.actor.profile:body.theme", kind: "prop", name: Some("theme") }
1 1
{
2 2
  "$type": "com.atproto.lexicon.schema",
3 3
  "defs": {
4 4
    "avatarBuilder": {
5 5
      "description": "Legacy built avatar as part + colour choices. Kept so existing records stay valid.",
6 6
      "properties": {
7 7
        "accessory": {
8 8
          "ref": "#part",
9 9
          "type": "ref"
10 10
        },
11 11
        "eyebrows": {
12 12
          "ref": "#part",
13 13
          "type": "ref"
14 14
        },
15 15
        "eyes": {
16 16
          "ref": "#part",
17 17
          "type": "ref"
18 18
        },
19 19
        "facialFeature": {
20 20
          "ref": "#part",
21 21
          "type": "ref"
22 22
        },
23 23
        "facialHair": {
24 24
          "ref": "#part",
25 25
          "type": "ref"
26 26
        },
27 27
        "hairBack": {
28 28
          "ref": "#part",
29 29
          "type": "ref"
30 30
        },
31 31
        "hairFront": {
32 32
          "ref": "#part",
33 33
          "type": "ref"
34 34
        },
35 35
        "hat": {
36 36
          "ref": "#part",
37 37
          "type": "ref"
38 38
        },
39 39
        "mouth": {
40 40
          "ref": "#part",
41 41
          "type": "ref"
42 42
        },
43 43
        "neckwear": {
44 44
          "ref": "#garment",
45 45
          "type": "ref"
46 46
        },
47 47
        "nose": {
48 48
          "ref": "#part",
49 49
          "type": "ref"
50 50
        },
51 51
        "skin": {
52 52
          "description": "Skin tone id; drives body, head, nose and facial-feature colouring.",
53 53
          "type": "string"
54 54
        },
55 55
        "top": {
56 56
          "ref": "#garment",
57 57
          "type": "ref"
58 58
        },
59 59
        "v": {
60 60
          "description": "Recipe schema version.",
61 61
          "minimum": 1,
62 62
          "type": "integer"
63 63
        }
64 64
      },
65 65
      "required": [
66 66
        "v",
67 67
        "skin"
68 68
      ],
69 69
      "type": "object"
70 70
    },
71 71
    "garment": {
72 72
      "description": "A garment choice: which type (e.g. jacket, tie) in which colour.",
73 73
      "properties": {
74 74
        "color": {
75 75
          "type": "string"
76 76
        },
77 77
        "type": {
78 78
          "type": "string"
79 79
        }
80 80
      },
81 81
      "required": [
82 82
        "type",
83 83
        "color"
84 84
      ],
85 85
      "type": "object"
86 86
    },
87 87
    "main": {
88 88
      "description": "A user's atmoBB profile, global across all forums. Lives in the user's repo.",
89 89
      "key": "literal:self",
90 90
      "record": {
91 91
        "properties": {
92 92
          "avatar": {
93 93
            "accept": [
94 94
              "image/png",
95 95
              "image/jpeg",
96 96
              "image/webp",
97 97
              "image/gif"
98 98
            ],
99 99
            "maxSize": 1000000,
100 100
            "type": "blob"
101 101
          },
102 102
          "avatarBuilder": {
103 103
            "description": "Legacy layered-avatar recipe from an earlier builder. atmobb ignores it; clients should read the `avatar` blob.",
104 104
            "ref": "#avatarBuilder",
105 105
            "type": "ref"
106 106
          },
107 107
          "createdAt": {
108 108
            "format": "datetime",
109 109
            "type": "string"
110 110
          },
111 111
          "description": {
112 112
            "description": "Free-text bio, shown on the profile's About panel. Global across forums.",
113 113
            "maxGraphemes": 256,
114 114
            "maxLength": 2560,
115 115
            "type": "string"
116 116
          },
117 117
          "displayName": {
118 118
            "maxGraphemes": 64,
119 119
            "maxLength": 640,
120 120
            "type": "string"
121 121
          },
122 122
          "pronouns": {
123 123
            "maxGraphemes": 64,
124 124
            "maxLength": 640,
125 125
            "type": "string"
126 126
          },
127 127
          "signature": {
128 128
            "description": "Rendered under every post, phpBB style. Keep it short; clients may truncate.",
129 129
            "items": {
130 130
              "refs": [
131 131
                "app.atmobb.richtext.block#text",
132 132
                "app.atmobb.richtext.block#quote",
133 133
                "app.atmobb.richtext.block#code",
134 134
                "app.atmobb.richtext.block#image"
135 135
              ],
136 136
              "type": "union"
137 137
            },
138 138
            "maxLength": 3,
139 139
            "type": "array"
140 140
          },
141 +
          "theme": {
142 +
            "description": "Personal color theme across forums. Omit to follow each forum's default styling.",
143 +
            "knownValues": [
144 +
              "classic",
145 +
              "sky",
146 +
              "bubblegum",
147 +
              "midnight",
148 +
              "forest"
149 +
            ],
150 +
            "maxLength": 64,
151 +
            "type": "string"
152 +
          },
141 153
          "title": {
142 154
            "description": "Self-chosen user title, shown under the username where the forum allows it.",
143 155
            "maxGraphemes": 64,
144 156
            "maxLength": 640,
145 157
            "type": "string"
146 158
          },
147 159
          "website": {
148 160
            "format": "uri",
149 161
            "type": "string"
150 162
          }
151 163
        },
152 164
        "type": "object"
153 165
      },
154 166
      "type": "record"
155 167
    },
156 168
    "part": {
157 169
      "description": "A part choice: a shape id and, where the part is colourable, a palette colour id.",
158 170
      "properties": {
159 171
        "color": {
160 172
          "type": "string"
161 173
        },
162 174
        "shape": {
163 175
          "type": "string"
164 176
        }
165 177
      },
166 178
      "required": [
167 179
        "shape"
168 180
      ],
169 181
      "type": "object"
170 182
    }
171 183
  },
172 184
  "id": "app.atmobb.actor.profile",
173 185
  "lexicon": 1
174 186
}

Compare Other Versions

Lexicon Garden

@