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