app.protoimsg.chat.room

lexicon.store View official

Documentation

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

main record

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

Record Key tid Timestamp-based ID

Properties

category string Optional

Broad category for room discovery (e.g., music, tech, gaming). Lowercased.

maxLength: 50 bytes
createdAt string datetime Required

Timestamp of room creation.

description string Optional

What the room is about.

maxLength: 500 bytes
name string Required

Display name for the room.

maxLength: 100 bytes
purpose string Required

Room purpose categorization.

Known values: discussion, event, community, support
topic string Required

Room topic for sorting, filtering, and discovery.

maxLength: 200 bytes
View raw schema
{
  "key": "tid",
  "type": "record",
  "record": {
    "type": "object",
    "required": [
      "name",
      "topic",
      "purpose",
      "createdAt"
    ],
    "properties": {
      "name": {
        "type": "string",
        "maxLength": 100,
        "description": "Display name for the room."
      },
      "topic": {
        "type": "string",
        "maxLength": 200,
        "description": "Room topic for sorting, filtering, and discovery."
      },
      "purpose": {
        "type": "string",
        "description": "Room purpose categorization.",
        "knownValues": [
          "discussion",
          "event",
          "community",
          "support"
        ]
      },
      "category": {
        "type": "string",
        "maxLength": 50,
        "description": "Broad category for room discovery (e.g., music, tech, gaming). Lowercased."
      },
      "settings": {
        "ref": "#roomSettings",
        "type": "ref"
      },
      "createdAt": {
        "type": "string",
        "format": "datetime",
        "description": "Timestamp of room creation."
      },
      "description": {
        "type": "string",
        "maxLength": 500,
        "description": "What the room is about."
      }
    }
  },
  "description": "Declares a chat room. Created by whoever starts the room."
}
roomSettings object

Configurable room settings.

Properties

allowlistEnabled boolean Optional

When true, only users on the room allowlist can send messages.

minAccountAgeDays integer Optional

Minimum atproto account age in days to participate.

minimum: 0
slowModeSeconds integer Optional

Minimum seconds between messages per user. 0 = disabled.

minimum: 0
visibility string Optional

Room discoverability. public = listed in directory, unlisted = link only, private = invite only.

Known values: public, unlisted, private
View raw schema
{
  "type": "object",
  "properties": {
    "visibility": {
      "type": "string",
      "default": "public",
      "description": "Room discoverability. public = listed in directory, unlisted = link only, private = invite only.",
      "knownValues": [
        "public",
        "unlisted",
        "private"
      ]
    },
    "slowModeSeconds": {
      "type": "integer",
      "default": 0,
      "minimum": 0,
      "description": "Minimum seconds between messages per user. 0 = disabled."
    },
    "allowlistEnabled": {
      "type": "boolean",
      "default": false,
      "description": "When true, only users on the room allowlist can send messages."
    },
    "minAccountAgeDays": {
      "type": "integer",
      "default": 0,
      "minimum": 0,
      "description": "Minimum atproto account age in days to participate."
    }
  },
  "description": "Configurable room settings."
}

Lexicon Garden

@