social.colibri.beta.actor.defs

colibri.social

{
  "id": "social.colibri.beta.actor.defs",
  "defs": {
    "mute": {
      "type": "object",
      "required": [
        "subject",
        "createdAt"
      ],
      "properties": {
        "subject": {
          "refs": [
            "#mutedActor",
            "#mutedChannel"
          ],
          "type": "union",
          "closed": true,
          "description": "What is muted. A user or a community is named by DID, a channel by its space."
        },
        "createdAt": {
          "type": "string",
          "format": "datetime",
          "description": "When the mute was created."
        }
      },
      "description": "A muted subject."
    },
    "status": {
      "type": "object",
      "required": [
        "text"
      ],
      "properties": {
        "text": {
          "type": "string",
          "maxLength": 32,
          "description": "The status text."
        },
        "emoji": {
          "type": "string",
          "description": "An emoji shown beside the status."
        }
      },
      "description": "A user's status line."
    },
    "presence": {
      "type": "object",
      "required": [
        "onlineState"
      ],
      "properties": {
        "voice": {
          "ref": "#voiceState",
          "type": "ref",
          "description": "Where the user is connected for voice, if anywhere."
        },
        "status": {
          "ref": "#status",
          "type": "ref",
          "description": "The user's status line."
        },
        "onlineState": {
          "type": "string",
          "description": "Derived online state.",
          "knownValues": [
            "online",
            "away",
            "dnd",
            "offline"
          ]
        }
      },
      "description": "A user's live, off-protocol state."
    },
    "mutedActor": {
      "type": "object",
      "required": [
        "did"
      ],
      "properties": {
        "did": {
          "type": "string",
          "format": "did",
          "description": "The muted user or community."
        }
      },
      "description": "A muted user or community."
    },
    "voiceState": {
      "type": "object",
      "required": [
        "channel"
      ],
      "properties": {
        "muted": {
          "type": "boolean",
          "description": "Whether the user's microphone is muted, for any reason."
        },
        "channel": {
          "type": "string",
          "format": "space-ref",
          "description": "The voice channel the user is connected to."
        },
        "deafened": {
          "type": "boolean",
          "description": "Whether the user has incoming audio silenced, for any reason."
        },
        "serverMuted": {
          "type": "boolean",
          "description": "Whether a moderator muted them. When this is true they cannot unmute themselves, and a client must not offer them the control."
        },
        "serverDeafened": {
          "type": "boolean",
          "description": "Whether a moderator deafened them. When this is true they cannot undeafen themselves."
        }
      },
      "description": "A user's voice connection."
    },
    "preferences": {
      "type": "object",
      "required": [
        "notificationLevel",
        "communityOrder",
        "mutes",
        "gifFavorites"
      ],
      "properties": {
        "mutes": {
          "type": "array",
          "items": {
            "ref": "#mute",
            "type": "ref"
          },
          "description": "Subjects the user has muted."
        },
        "gifFavorites": {
          "type": "array",
          "items": {
            "ref": "social.colibri.beta.embed.defs#gifView",
            "type": "ref"
          },
          "description": "GIFs saved from the picker, stored whole."
        },
        "communityOrder": {
          "type": "array",
          "items": {
            "type": "string",
            "format": "did",
            "description": "A community."
          },
          "description": "Communities in preferred sidebar order."
        },
        "notificationLevel": {
          "type": "string",
          "description": "Which messages produce a notification.",
          "knownValues": [
            "all",
            "mentionsAndReplies"
          ]
        }
      },
      "description": "The authenticated user's own settings, as the AppView currently holds them."
    },
    "profileView": {
      "type": "object",
      "required": [
        "did",
        "handle",
        "displayName",
        "isBot",
        "syncBluesky"
      ],
      "properties": {
        "did": {
          "type": "string",
          "format": "did",
          "description": "The user's DID."
        },
        "isBot": {
          "type": "boolean",
          "description": "Whether the account is labelled as an automated account."
        },
        "theme": {
          "ref": "social.colibri.beta.actor.profile#theme",
          "type": "ref",
          "description": "Colibri-only profile theming, read from the profile record even when the mirrored fields come from Bluesky."
        },
        "avatar": {
          "type": "string",
          "format": "uri",
          "description": "URL of the user's avatar, served by this AppView's blob proxy."
        },
        "banner": {
          "type": "string",
          "format": "uri",
          "description": "URL of the user's profile banner, served by this AppView's blob proxy."
        },
        "handle": {
          "type": "string",
          "format": "handle",
          "description": "The user's handle, or 'handle.invalid' when it does not resolve."
        },
        "presence": {
          "ref": "#presence",
          "type": "ref",
          "description": "Live presence, when the AppView is tracking any."
        },
        "description": {
          "type": "string",
          "description": "Resolved bio."
        },
        "displayName": {
          "type": "string",
          "description": "Resolved display name, falling back to the handle."
        },
        "syncBluesky": {
          "type": "boolean",
          "description": "Whether the mirrored profile fields come from app.bsky.actor.profile."
        },
        "preferredBadge": {
          "type": "string",
          "description": "Label value of the badge the user chose to display."
        }
      },
      "description": "A Colibri user as the AppView serves them: identity, resolved profile, and presence."
    },
    "mutedChannel": {
      "type": "object",
      "required": [
        "channel"
      ],
      "properties": {
        "channel": {
          "type": "string",
          "format": "space-ref",
          "description": "The muted channel's space."
        }
      },
      "description": "A muted channel. Muting a channel silences it without leaving the community it belongs to."
    }
  },
  "$type": "com.atproto.lexicon.schema",
  "lexicon": 1
}

Validate Record

Validate a record against social.colibri.beta.actor.defs

Validation Options
Automatically resolve and include external schemas for full validation
Treat any remaining unresolved references as valid

Metadata

DID
did:plc:mprdjqjluoswa7awzggaggj3
CID
bafyreihleg7aur4e3diiymo4cd45sixru2ts2h6g5mtra7yx5rslwmbbma
Indexed At
2026-08-23 17:25 UTC
AT-URI
at://did:plc:mprdjqjluoswa7awzggaggj3/com.atproto.lexicon.schema/social.colibri.beta.actor.defs

Version History (3 versions)

Referenced Schemas (2)

Lexicon Garden

@