{ "id": "app.bsky.embed.gallery", "defs": { "main": { "type": "object", "required": [ "items" ], "properties": { "items": { "type": "array", "items": { "refs": [ "#image" ], "type": "union", "description": "The media items in the gallery. Each item may be of a different type, but all types must be supported by the client." }, "maxLength": 20, "description": "The schema-level maxLength of 20 is a future-proof ceiling. Clients should currently enforce a soft limit of 10 items in authoring UIs." } } }, "view": { "type": "object", "required": [ "items" ], "properties": { "items": { "type": "array", "items": { "refs": [ "#viewImage" ], "type": "union" } } } }, "image": { "type": "object", "required": [ "image", "alt", "aspectRatio" ], "properties": { "alt": { "type": "string", "description": "Alt text description of the image, for accessibility." }, "image": { "type": "blob", "accept": [ "image/*" ], "maxSize": 2000000 }, "aspectRatio": { "ref": "app.bsky.embed.defs#aspectRatio", "type": "ref" } } }, "viewImage": { "type": "object", "required": [ "thumbnail", "fullsize", "alt", "aspectRatio" ], "properties": { "alt": { "type": "string", "description": "Alt text description of the image, for accessibility." }, "fullsize": { "type": "string", "format": "uri", "description": "Fully-qualified URL where a large version of the image can be fetched. May or may not be the exact original blob. For example, CDN location provided by the App View." }, "thumbnail": { "type": "string", "format": "uri", "description": "Fully-qualified URL where a thumbnail of the image can be fetched. For example, CDN location provided by the App View." }, "aspectRatio": { "ref": "app.bsky.embed.defs#aspectRatio", "type": "ref" } } } }, "$type": "com.atproto.lexicon.schema", "lexicon": 1, "description": "An assortment of media embedded in a Bluesky record (eg, a post)." }