social.showcase.defs

lexicons.showcase.social

{
  "id": "social.showcase.defs",
  "defs": {
    "itemView": {
      "type": "object",
      "required": [
        "uri",
        "cid",
        "title",
        "tags",
        "images",
        "visibility",
        "author",
        "createdAt"
      ],
      "properties": {
        "cid": {
          "type": "string",
          "format": "cid"
        },
        "uri": {
          "type": "string",
          "format": "at-uri"
        },
        "tags": {
          "type": "array",
          "items": {
            "type": "string",
            "maxLength": 64
          }
        },
        "title": {
          "type": "string",
          "maxLength": 300
        },
        "author": {
          "ref": "#profileView",
          "type": "ref"
        },
        "images": {
          "type": "array",
          "items": {
            "ref": "#itemImage",
            "type": "ref"
          }
        },
        "category": {
          "type": "string",
          "maxLength": 100
        },
        "metadata": {
          "type": "unknown"
        },
        "createdAt": {
          "type": "string",
          "format": "datetime"
        },
        "updatedAt": {
          "type": "string",
          "format": "datetime"
        },
        "visibility": {
          "type": "string",
          "maxLength": 10
        },
        "description": {
          "type": "string",
          "maxLength": 3000
        },
        "externalLink": {
          "type": "string",
          "format": "uri",
          "maxLength": 2048
        },
        "reactionCount": {
          "type": "integer"
        }
      },
      "description": "View of an item with metadata"
    },
    "itemImage": {
      "type": "object",
      "required": [
        "blob"
      ],
      "properties": {
        "alt": {
          "type": "string",
          "maxLength": 300,
          "description": "Alt text for accessibility"
        },
        "blob": {
          "type": "blob",
          "accept": [
            "image/png",
            "image/jpeg",
            "image/webp"
          ],
          "maxSize": 5000000
        },
        "aspectRatio": {
          "ref": "#aspectRatio",
          "type": "ref"
        }
      },
      "description": "Image embedded in an item"
    },
    "aspectRatio": {
      "type": "object",
      "properties": {
        "width": {
          "type": "integer",
          "minimum": 1
        },
        "height": {
          "type": "integer",
          "minimum": 1
        }
      },
      "description": "Image aspect ratio"
    },
    "profileView": {
      "type": "object",
      "required": [
        "did",
        "handle"
      ],
      "properties": {
        "did": {
          "type": "string",
          "maxLength": 2048
        },
        "tags": {
          "type": "array",
          "items": {
            "type": "string",
            "maxLength": 64
          }
        },
        "avatar": {
          "type": "blob"
        },
        "banner": {
          "type": "blob"
        },
        "handle": {
          "type": "string",
          "maxLength": 253
        },
        "displayName": {
          "type": "string",
          "maxLength": 64
        }
      },
      "description": "View of a user profile"
    },
    "reactionView": {
      "type": "object",
      "required": [
        "uri",
        "actor",
        "subject",
        "type",
        "createdAt"
      ],
      "properties": {
        "uri": {
          "type": "string",
          "format": "at-uri"
        },
        "type": {
          "type": "string",
          "maxLength": 100,
          "description": "Emoji shortcode"
        },
        "actor": {
          "ref": "#profileView",
          "type": "ref"
        },
        "subject": {
          "ref": "#reactionSubject",
          "type": "ref"
        },
        "createdAt": {
          "type": "string",
          "format": "datetime"
        }
      },
      "description": "View of a reaction to content"
    },
    "showcaseItem": {
      "type": "object",
      "required": [
        "uri",
        "addedAt",
        "order"
      ],
      "properties": {
        "uri": {
          "type": "string",
          "format": "at-uri",
          "description": "AT-URI reference to the item (e.g., at://did:plc:.../social.showcase.library.item/abc123)"
        },
        "order": {
          "type": "integer",
          "description": "Display order (0 = first)"
        },
        "addedAt": {
          "type": "string",
          "format": "datetime"
        }
      },
      "description": "A reference to an item featured in a user's showcase (hydrated at read time)"
    },
    "collectionItem": {
      "type": "object",
      "required": [
        "uri",
        "addedAt",
        "order"
      ],
      "properties": {
        "uri": {
          "type": "string",
          "maxLength": 8192,
          "description": "AT-URI reference to item (always shows latest version)"
        },
        "order": {
          "type": "integer",
          "description": "For custom sorting"
        },
        "addedAt": {
          "type": "string",
          "format": "datetime"
        }
      },
      "description": "Reference to an item in a collection"
    },
    "collectionView": {
      "type": "object",
      "required": [
        "uri",
        "cid",
        "name",
        "tags",
        "type",
        "visibility",
        "author",
        "createdAt"
      ],
      "properties": {
        "cid": {
          "type": "string",
          "format": "cid"
        },
        "uri": {
          "type": "string",
          "format": "at-uri"
        },
        "name": {
          "type": "string",
          "maxLength": 200
        },
        "tags": {
          "type": "array",
          "items": {
            "type": "string",
            "maxLength": 64
          }
        },
        "type": {
          "type": "string",
          "maxLength": 20
        },
        "items": {
          "type": "array",
          "items": {
            "ref": "#itemView",
            "type": "ref"
          }
        },
        "author": {
          "ref": "#profileView",
          "type": "ref"
        },
        "createdAt": {
          "type": "string",
          "format": "datetime"
        },
        "itemCount": {
          "type": "integer"
        },
        "updatedAt": {
          "type": "string",
          "format": "datetime"
        },
        "coverImage": {
          "type": "blob"
        },
        "visibility": {
          "type": "string",
          "maxLength": 10
        },
        "description": {
          "type": "string",
          "maxLength": 1000
        }
      },
      "description": "View of a collection with items"
    },
    "displaySettings": {
      "type": "object",
      "properties": {
        "theme": {
          "type": "string",
          "maxLength": 10,
          "knownValues": [
            "light",
            "dark",
            "auto"
          ]
        },
        "gridLayout": {
          "type": "string",
          "maxLength": 10,
          "knownValues": [
            "compact",
            "spacious"
          ]
        }
      },
      "description": "Display preferences"
    },
    "privacySettings": {
      "type": "object",
      "required": [
        "allowReactions",
        "allowComments",
        "indexable"
      ],
      "properties": {
        "indexable": {
          "type": "boolean",
          "description": "Appear in search results"
        },
        "allowComments": {
          "type": "boolean",
          "description": "Let others comment"
        },
        "allowReactions": {
          "type": "boolean",
          "description": "Let others react to your items"
        }
      },
      "description": "Privacy preferences"
    },
    "reactionSubject": {
      "type": "object",
      "required": [
        "uri",
        "cid"
      ],
      "properties": {
        "cid": {
          "type": "string",
          "format": "cid"
        },
        "uri": {
          "type": "string",
          "format": "at-uri"
        }
      },
      "description": "Subject of a reaction"
    },
    "activitySettings": {
      "type": "object",
      "required": [
        "shareNewItems",
        "shareActivity",
        "retentionDays"
      ],
      "properties": {
        "retentionDays": {
          "type": "integer",
          "default": 90,
          "description": "Activity retention period"
        },
        "shareActivity": {
          "type": "string",
          "maxLength": 10,
          "description": "Who sees your activity feed",
          "knownValues": [
            "all",
            "followers",
            "none"
          ]
        },
        "shareNewItems": {
          "type": "boolean",
          "description": "Share new items in followers' feeds"
        }
      },
      "description": "Activity sharing preferences"
    },
    "visibilitySettings": {
      "type": "object",
      "required": [
        "profileVisibility",
        "defaultItemVisibility",
        "defaultCollectionVisibility"
      ],
      "properties": {
        "profileVisibility": {
          "type": "string",
          "maxLength": 10,
          "knownValues": [
            "public",
            "unlisted",
            "private"
          ]
        },
        "defaultItemVisibility": {
          "type": "string",
          "maxLength": 10,
          "knownValues": [
            "public",
            "unlisted",
            "private"
          ]
        },
        "defaultCollectionVisibility": {
          "type": "string",
          "maxLength": 10,
          "knownValues": [
            "public",
            "private"
          ]
        }
      },
      "description": "Visibility preferences"
    },
    "notificationSettings": {
      "type": "object",
      "required": [
        "reactions",
        "follows",
        "comments"
      ],
      "properties": {
        "follows": {
          "type": "boolean"
        },
        "comments": {
          "type": "boolean"
        },
        "reactions": {
          "type": "boolean"
        }
      },
      "description": "Notification preferences"
    }
  },
  "$type": "com.atproto.lexicon.schema",
  "lexicon": 1,
  "description": "Shared type definitions for Showcase lexicons"
}

Validate Record

Validate a record against social.showcase.defs

Validation Options
Treat any remaining unresolved references as valid

Metadata

DID
did:plc:yckosuxxph7mjwtbiztraiex
CID
bafyreihk35lmlslafdgqlyavdhq6xzzuvag7yqqwphccgofa4c7wc6xzxa
Indexed At
2026-01-18 11:03 UTC
AT-URI
at://did:plc:yckosuxxph7mjwtbiztraiex/com.atproto.lexicon.schema/social.showcase.defs

Lexicon Garden

@