{
"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"
}