From
bafyreibjnbdehc7qrayecudj24przlzibepas3rozmmzoztxbzzr42hjf4
indexed 2026-10-18 13:08 UTC
View this version
To
bafyreig64cfjfz2xosxspe6iujf3duarq24hmqocmjgvtaov5h7k2l3nya
indexed 2026-10-24 10:36 UTC
View this version
Compatibility
backward compatible Backward compatible. 10 non-breaking changes.
Non-breaking changes (10)
- AddedVertex AddedVertex { vertex_id: "social.colibri.beta.richtext.facet#customEmoji" }
- AddedVertex AddedVertex { vertex_id: "social.colibri.beta.role#emojiBadge" }
- AddedVertex AddedVertex { vertex_id: "social.colibri.beta.role#emojiBadge.customEmoji" }
- AddedVertex AddedVertex { vertex_id: "social.colibri.beta.role#emojiBadge.emoji" }
- AddedVertex AddedVertex { vertex_id: "social.colibri.beta.role:body.badge:variant2" }
- AddedEdge AddedEdge { src: "social.colibri.beta.role#emojiBadge", tgt: "social.colibri.beta.role#emojiBadge.customEmoji", kind: "prop", name: Some("customEmoji") }
- AddedEdge AddedEdge { src: "social.colibri.beta.role#emojiBadge", tgt: "social.colibri.beta.role#emojiBadge.emoji", kind: "prop", name: Some("emoji") }
- AddedEdge AddedEdge { src: "social.colibri.beta.role#emojiBadge.customEmoji", tgt: "social.colibri.beta.richtext.facet#customEmoji", kind: "ref", name: None }
- AddedEdge AddedEdge { src: "social.colibri.beta.role:body.badge", tgt: "social.colibri.beta.role:body.badge:variant2", kind: "variant", name: Some("#emojiBadge") }
- AddedEdge AddedEdge { src: "social.colibri.beta.role:body.badge:variant2", tgt: "social.colibri.beta.role#emojiBadge", kind: "ref", name: None }
Migration guidance
Added
AddedVertex { vertex_id: "social.colibri.beta.richtext.facet#customEmoji" }AddedVertex { vertex_id: "social.colibri.beta.role#emojiBadge" }AddedVertex { vertex_id: "social.colibri.beta.role#emojiBadge.customEmoji" }AddedVertex { vertex_id: "social.colibri.beta.role#emojiBadge.emoji" }AddedVertex { vertex_id: "social.colibri.beta.role:body.badge:variant2" }
Notes
- Non-breaking: AddedEdge { src: "social.colibri.beta.role#emojiBadge", tgt: "social.colibri.beta.role#emojiBadge.customEmoji", kind: "prop", name: Some("customEmoji") }
- Non-breaking: AddedEdge { src: "social.colibri.beta.role#emojiBadge", tgt: "social.colibri.beta.role#emojiBadge.emoji", kind: "prop", name: Some("emoji") }
- Non-breaking: AddedEdge { src: "social.colibri.beta.role#emojiBadge.customEmoji", tgt: "social.colibri.beta.richtext.facet#customEmoji", kind: "ref", name: None }
- Non-breaking: AddedEdge { src: "social.colibri.beta.role:body.badge", tgt: "social.colibri.beta.role:body.badge:variant2", kind: "variant", name: Some("#emojiBadge") }
- Non-breaking: AddedEdge { src: "social.colibri.beta.role:body.badge:variant2", tgt: "social.colibri.beta.role#emojiBadge", kind: "ref", name: None }
Changes
11
{22
"$type": "com.atproto.lexicon.schema",33
"defs": {44
"channelOverride": {55
"description": "Allow and deny lists scoped to a single channel.",66
"properties": {77
"allow": {88
"description": "Permissions granted within this channel.",99
"items": {1010
"type": "string"1111
},1212
"type": "array"1313
},1414
"channel": {1515
"description": "The space key of the channel this override applies to.",1616
"format": "record-key",1717
"type": "string"1818
},1919
"deny": {2020
"description": "Permissions denied within this channel. Deny beats both the base permissions and allow.",2121
"items": {2222
"type": "string"2323
},2424
"type": "array"2525
}2626
},2727
"required": [2828
"channel"2929
],3030
"type": "object"3131
},32
"emojiBadge": {33
"description": "A badge drawn from an emoji. Exactly one of emoji and customEmoji is set.",34
"properties": {35
"customEmoji": {36
"description": "The record of a custom emoji.",37
"ref": "social.colibri.beta.richtext.facet#customEmoji",38
"type": "ref"39
},40
"emoji": {41
"description": "A Unicode emoji.",42
"maxGraphemes": 1,43
"maxLength": 64,44
"type": "string"45
}46
},47
"type": "object"48
},3249
"iconBadge": {3350
"description": "A badge drawn from the client's curated icon set.",3451
"properties": {3552
"color": {3653
"description": "Hex colour as #rrggbb. Absent means the role colour, or the client's default badge colour when the role has none.",3754
"maxLength": 7,3855
"type": "string"3956
},4057
"icon": {4158
"description": "The icon's identifier in the curated set, for example shield-check.",4259
"maxLength": 64,4360
"minLength": 1,4461
"type": "string"4562
}4663
},4764
"required": [4865
"icon"4966
],5067
"type": "object"5168
},5269
"imageBadge": {5370
"description": "A badge drawn from an uploaded image.",5471
"properties": {5572
"image": {5673
"accept": [5774
"image/jpeg",5875
"image/png",5976
"image/gif",6077
"image/webp"6178
],6279
"description": "A square image, shown at about 16 pixels.",6380
"maxSize": 262144,6481
"type": "blob"6582
}6683
},6784
"required": [6885
"image"6986
],7087
"type": "object"7188
},7289
"main": {7390
"description": "A named bundle of permissions assignable to community members.",7491
"key": "tid",7592
"record": {7693
"properties": {7794
"badge": {7895
"description": "A small badge shown next to the names of members holding this role.",7996
"refs": [8097
"#iconBadge",81
"#imageBadge"98
"#imageBadge",99
"#emojiBadge"82100
],83101
"type": "union"84102
},85103
"channelOverrides": {86104
"description": "Per-channel permission overrides.",87105
"items": {88106
"ref": "#channelOverride",89107
"type": "ref"90108
},91109
"type": "array"92110
},93111
"color": {94112
"description": "Hex colour as #rrggbb.",95113
"maxLength": 7,96114
"type": "string"97115
},98116
"default": {99117
"default": false,100118
"description": "Whether every member holds this role from the moment they join. Set on the members role created with the community. A default role cannot be deleted.",101119
"type": "boolean"102120
},103121
"hoisted": {104122
"default": false,105123
"description": "Whether holders are listed separately in the member list.",106124
"type": "boolean"107125
},108126
"mentionable": {109127
"default": false,110128
"description": "Whether @role mentions resolve to this role.",111129
"type": "boolean"112130
},113131
"name": {114132
"description": "Display name.",115133
"maxLength": 32,116134
"minLength": 1,117135
"type": "string"118136
},119137
"permissions": {120138
"description": "Permissions granted by this role.",121139
"items": {122140
"description": "A namespaced permission identifier.",123141
"type": "string"124142
},125143
"type": "array"126144
},127145
"position": {128146
"description": "Hierarchy position. Higher outranks lower.",129147
"type": "integer"130148
},131149
"protected": {132150
"default": false,133151
"description": "Whether this role is exempt from modification and deletion. Set on the owner role created with the community.",134152
"type": "boolean"135153
}136154
},137155
"required": [138156
"name",139157
"permissions",140158
"position"141159
],142160
"type": "object"143161
},144162
"type": "record"145163
}146164
},147165
"id": "social.colibri.beta.role",148166
"lexicon": 1149167
}