{
  "$type": "com.atproto.lexicon.schema",
  "defs": {
    "main": {
      "description": "A channel's configuration. Lives at key 'self' in the channel's own space. The space type says whether it is a text or voice channel, and the space key is the channel's identity.",
      "key": "literal:self",
      "record": {
        "properties": {
          "allowedMembers": {
            "description": "Members allowed to post here in addition to allowedRoles.",
            "items": {
              "description": "A member permitted to post.",
              "format": "did",
              "type": "string"
            },
            "type": "array"
          },
          "allowedRoles": {
            "description": "Roles allowed to post here. Empty means no role restriction.",
            "items": {
              "description": "A role permitted to post.",
              "format": "record-key",
              "type": "string"
            },
            "type": "array"
          },
          "description": {
            "description": "The channel's topic.",
            "maxLength": 256,
            "type": "string"
          },
          "linkEmbeds": {
            "description": "Whether link previews are shown here. Absent means the community default.",
            "type": "boolean"
          },
          "migratedFrom": {
            "description": "Set on a channel created by migrating a repo-backed community. Points at the legacy channel record whose history is served alongside this channel.",
            "format": "at-uri",
            "type": "string"
          },
          "name": {
            "description": "The channel's name.",
            "maxLength": 32,
            "minLength": 1,
            "type": "string"
          },
          "ownerOnly": {
            "default": false,
            "description": "Whether only community admins may post.",
            "type": "boolean"
          },
          "visibleToMembers": {
            "description": "Members that may read this channel in addition to visibleToRoles.",
            "items": {
              "description": "A member permitted to read.",
              "format": "did",
              "type": "string"
            },
            "type": "array"
          },
          "visibleToRoles": {
            "description": "Roles that may read this channel. Empty or absent means every member may read it. A non-empty list makes the channel private: the community declines space credentials for it to anyone outside the list, so it is enforced by the protocol rather than only by a read handler.",
            "items": {
              "description": "A role permitted to read.",
              "format": "record-key",
              "type": "string"
            },
            "type": "array"
          }
        },
        "required": [
          "name"
        ],
        "type": "object"
      },
      "type": "record"
    }
  },
  "id": "social.colibri.beta.channel",
  "lexicon": 1
}
