app.zeens.chatPrefs
A user's chat privacy preference: who may start a conversation with them. This is a public policy flag (not message content), so storing it in a public repo is fine. One record per user (rkey 'self'). The server-side gate and the AppView indexer both enforce it. Carries the app.zeens.v marker.
Details · record, key literal:self
| Kind | record |
|---|---|
| Record key | literal:self |
| Authority | zeens.app |
| Indexed |
Checks
Validunlimited-stringdefs.main.record.properties.allowNo maxLength, maxGraphemes or format limits this string.field-name-syntaxdefs.main.record.properties.app.zeens.vThe field name app.zeens.v should be letters and digits, starting with a letter.
{
"$type": "com.atproto.lexicon.schema",
"defs": {
"main": {
"description": "A user's chat privacy preference: who may start a conversation with them. This is a public policy flag (not message content), so storing it in a public repo is fine. One record per user (rkey 'self'). The server-side gate and the AppView indexer both enforce it. Carries the app.zeens.v marker.",
"key": "literal:self",
"record": {
"properties": {
"allow": {
"default": "mutuals",
"description": "off = no one can message. mutuals = only people you both follow. everyone = anyone, but a first message from a non-mutual lands in Requests until you reply.",
"enum": [
"off",
"mutuals",
"everyone"
],
"type": "string"
},
"app.zeens.v": {
"description": "Zeens version marker (always 1).",
"type": "integer"
},
"createdAt": {
"description": "When this preference was last set.",
"format": "datetime",
"type": "string"
}
},
"required": [
"allow",
"createdAt",
"app.zeens.v"
],
"type": "object"
},
"type": "record"
}
},
"id": "app.zeens.chatPrefs",
"lexicon": 1
}