{
  "$type": "com.atproto.lexicon.schema",
  "defs": {
    "communityGroup": {
      "description": "A named group of community members.",
      "properties": {
        "isInnerCircle": {
          "default": false,
          "description": "Whether this is an inner circle group for presence visibility.",
          "type": "boolean"
        },
        "members": {
          "description": "DIDs of group members.",
          "items": {
            "ref": "#communityMember",
            "type": "ref"
          },
          "maxLength": 500,
          "type": "array"
        },
        "name": {
          "description": "Group label.",
          "maxLength": 100,
          "type": "string"
        }
      },
      "required": [
        "name",
        "members"
      ],
      "type": "object"
    },
    "communityMember": {
      "description": "A member in a community group.",
      "properties": {
        "addedAt": {
          "description": "When this member was added.",
          "format": "datetime",
          "type": "string"
        },
        "did": {
          "description": "The member's DID.",
          "format": "did",
          "type": "string"
        }
      },
      "required": [
        "did",
        "addedAt"
      ],
      "type": "object"
    },
    "main": {
      "description": "The user's community list. Portable across any app implementing the Lexicon.",
      "key": "literal:self",
      "record": {
        "properties": {
          "groups": {
            "description": "Named groups of community members, like AIM's buddy list categories.",
            "items": {
              "ref": "#communityGroup",
              "type": "ref"
            },
            "maxLength": 50,
            "type": "array"
          }
        },
        "required": [
          "groups"
        ],
        "type": "object"
      },
      "type": "record"
    }
  },
  "id": "app.protoimsg.chat.community",
  "lexicon": 1
}
