{
"id": "chat.yakka.channel.info",
"defs": {
"main": {
"key": "tid",
"type": "record",
"record": {
"type": "object",
"required": [
"name",
"kind",
"createdAt"
],
"properties": {
"kind": {
"type": "string",
"knownValues": [
"text",
"voice"
]
},
"name": {
"type": "string",
"maxLength": 512,
"maxGraphemes": 64
},
"group": {
"type": "string",
"maxLength": 512,
"description": "Sidebar grouping label. Purely presentational.",
"maxGraphemes": 64
},
"topic": {
"type": "string",
"maxLength": 2048,
"maxGraphemes": 256
},
"createdAt": {
"type": "string",
"format": "datetime"
},
"allowedRoles": {
"type": "array",
"items": {
"type": "string",
"format": "at-uri"
},
"description": "Roles whose holders may be minted a credential for this channel. Absent or empty means any member of the server — which is what an 'open' channel is. Presence of this field is the only difference between an open channel and a gated one."
}
}
},
"description": "A channel's presentation and its gate. Authority-written into the directory space via the space host (ADR 0006). The gate here is the same policy the mint enforces (ADR 0007) — an open and a gated channel are structurally identical spaces, so toggling `allowedRoles` is a policy edit and never a data migration (ADR 0002)."
}
},
"$type": "com.atproto.lexicon.schema",
"lexicon": 1
}