app.protoimsg.chat.room

Declares a chat room. Created by whoever starts the room.

Details · record, key tid
Kindrecord
Record keytid
Authoritychat.protoimsg.app
Indexed
cid bafyreic4sdxgsk2supxwdsxnk4dkajkhhrqywejdfdti4csribi56lezju

Checks

Valid
  • unlimited-string defs.main.record.properties.purposeNo maxLength, maxGraphemes or format limits this string.
  • unlimited-string defs.roomSettings.properties.visibilityNo maxLength, maxGraphemes or format limits this string.
JSONDownload
{
  "$type": "com.atproto.lexicon.schema",
  "defs": {
    "main": {
      "description": "Declares a chat room. Created by whoever starts the room.",
      "key": "tid",
      "record": {
        "properties": {
          "category": {
            "description": "Broad category for room discovery (e.g., music, tech, gaming). Lowercased.",
            "maxLength": 50,
            "type": "string"
          },
          "createdAt": {
            "description": "Timestamp of room creation.",
            "format": "datetime",
            "type": "string"
          },
          "description": {
            "description": "What the room is about.",
            "maxLength": 500,
            "type": "string"
          },
          "name": {
            "description": "Display name for the room.",
            "maxLength": 100,
            "type": "string"
          },
          "purpose": {
            "description": "Room purpose categorization.",
            "knownValues": [
              "discussion",
              "event",
              "community",
              "support"
            ],
            "type": "string"
          },
          "settings": {
            "ref": "#roomSettings",
            "type": "ref"
          },
          "topic": {
            "description": "Room topic for sorting, filtering, and discovery.",
            "maxLength": 200,
            "type": "string"
          }
        },
        "required": [
          "name",
          "topic",
          "purpose",
          "createdAt"
        ],
        "type": "object"
      },
      "type": "record"
    },
    "roomSettings": {
      "description": "Configurable room settings.",
      "properties": {
        "allowlistEnabled": {
          "default": false,
          "description": "When true, only users on the room allowlist can send messages.",
          "type": "boolean"
        },
        "minAccountAgeDays": {
          "default": 0,
          "description": "Minimum atproto account age in days to participate.",
          "minimum": 0,
          "type": "integer"
        },
        "slowModeSeconds": {
          "default": 0,
          "description": "Minimum seconds between messages per user. 0 = disabled.",
          "minimum": 0,
          "type": "integer"
        },
        "visibility": {
          "default": "public",
          "description": "Room discoverability. public = listed in directory, unlisted = link only, private = invite only.",
          "knownValues": [
            "public",
            "unlisted",
            "private"
          ],
          "type": "string"
        }
      },
      "type": "object"
    }
  },
  "id": "app.protoimsg.chat.room",
  "lexicon": 1
}