add lexicon codegen: vendored lexicons, lex cli and generation scripts
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
This commit is contained in:
@@ -0,0 +1,25 @@
|
||||
{
|
||||
"id": "app.bsky.embed.defs",
|
||||
"defs": {
|
||||
"aspectRatio": {
|
||||
"type": "object",
|
||||
"required": [
|
||||
"width",
|
||||
"height"
|
||||
],
|
||||
"properties": {
|
||||
"width": {
|
||||
"type": "integer",
|
||||
"minimum": 1
|
||||
},
|
||||
"height": {
|
||||
"type": "integer",
|
||||
"minimum": 1
|
||||
}
|
||||
},
|
||||
"description": "width:height represents an aspect ratio. It may be approximate, and may not correspond to absolute dimensions in any given unit."
|
||||
}
|
||||
},
|
||||
"$type": "com.atproto.lexicon.schema",
|
||||
"lexicon": 1
|
||||
}
|
||||
@@ -0,0 +1,210 @@
|
||||
{
|
||||
"id": "app.bsky.embed.external",
|
||||
"defs": {
|
||||
"main": {
|
||||
"type": "object",
|
||||
"required": [
|
||||
"external"
|
||||
],
|
||||
"properties": {
|
||||
"external": {
|
||||
"ref": "#external",
|
||||
"type": "ref"
|
||||
}
|
||||
},
|
||||
"description": "A representation of some externally linked content (eg, a URL and 'card'), embedded in a Bluesky record (eg, a post)."
|
||||
},
|
||||
"view": {
|
||||
"type": "object",
|
||||
"required": [
|
||||
"external"
|
||||
],
|
||||
"properties": {
|
||||
"external": {
|
||||
"ref": "#viewExternal",
|
||||
"type": "ref"
|
||||
}
|
||||
}
|
||||
},
|
||||
"colorRGB": {
|
||||
"type": "object",
|
||||
"required": [
|
||||
"r",
|
||||
"g",
|
||||
"b"
|
||||
],
|
||||
"properties": {
|
||||
"b": {
|
||||
"type": "integer",
|
||||
"maximum": 255,
|
||||
"minimum": 0
|
||||
},
|
||||
"g": {
|
||||
"type": "integer",
|
||||
"maximum": 255,
|
||||
"minimum": 0
|
||||
},
|
||||
"r": {
|
||||
"type": "integer",
|
||||
"maximum": 255,
|
||||
"minimum": 0
|
||||
}
|
||||
},
|
||||
"description": "RGB color definition, inspired by site.standard.theme.color#rgb"
|
||||
},
|
||||
"external": {
|
||||
"type": "object",
|
||||
"required": [
|
||||
"uri",
|
||||
"title",
|
||||
"description"
|
||||
],
|
||||
"properties": {
|
||||
"uri": {
|
||||
"type": "string",
|
||||
"format": "uri"
|
||||
},
|
||||
"thumb": {
|
||||
"type": "blob",
|
||||
"accept": [
|
||||
"image/*"
|
||||
],
|
||||
"maxSize": 1000000
|
||||
},
|
||||
"title": {
|
||||
"type": "string"
|
||||
},
|
||||
"description": {
|
||||
"type": "string"
|
||||
},
|
||||
"associatedRefs": {
|
||||
"type": "array",
|
||||
"items": {
|
||||
"ref": "com.atproto.repo.strongRef",
|
||||
"type": "ref"
|
||||
},
|
||||
"description": "StrongRefs (uri+cid) of the Atmosphere records that backed this view."
|
||||
}
|
||||
}
|
||||
},
|
||||
"viewExternal": {
|
||||
"type": "object",
|
||||
"required": [
|
||||
"uri",
|
||||
"title",
|
||||
"description"
|
||||
],
|
||||
"properties": {
|
||||
"uri": {
|
||||
"type": "string",
|
||||
"format": "uri"
|
||||
},
|
||||
"thumb": {
|
||||
"type": "string",
|
||||
"format": "uri"
|
||||
},
|
||||
"title": {
|
||||
"type": "string"
|
||||
},
|
||||
"labels": {
|
||||
"type": "array",
|
||||
"items": {
|
||||
"ref": "com.atproto.label.defs#label",
|
||||
"type": "ref"
|
||||
}
|
||||
},
|
||||
"source": {
|
||||
"ref": "#viewExternalSource",
|
||||
"type": "ref"
|
||||
},
|
||||
"createdAt": {
|
||||
"type": "string",
|
||||
"format": "datetime",
|
||||
"description": "When the external content was created, if available. Example: a publication date, for an article."
|
||||
},
|
||||
"updatedAt": {
|
||||
"type": "string",
|
||||
"format": "datetime",
|
||||
"description": "When the external content was updated, if available."
|
||||
},
|
||||
"description": {
|
||||
"type": "string"
|
||||
},
|
||||
"readingTime": {
|
||||
"type": "integer",
|
||||
"description": "Estimated reading time in minutes, if applicable and available."
|
||||
},
|
||||
"associatedRefs": {
|
||||
"type": "array",
|
||||
"items": {
|
||||
"ref": "com.atproto.repo.strongRef",
|
||||
"type": "ref"
|
||||
},
|
||||
"description": "StrongRefs (uri+cid) of the Atmosphere records that backed this view."
|
||||
},
|
||||
"associatedProfiles": {
|
||||
"type": "array",
|
||||
"items": {
|
||||
"ref": "app.bsky.actor.defs#profileViewBasic",
|
||||
"type": "ref"
|
||||
},
|
||||
"description": "Profiles of the owners of the Atmosphere records that backed this view."
|
||||
}
|
||||
}
|
||||
},
|
||||
"viewExternalSource": {
|
||||
"type": "object",
|
||||
"required": [
|
||||
"uri",
|
||||
"title"
|
||||
],
|
||||
"properties": {
|
||||
"uri": {
|
||||
"type": "string",
|
||||
"format": "uri",
|
||||
"description": "URI of the source, if available. Example: the https:// URL of a site.standard.publication record."
|
||||
},
|
||||
"icon": {
|
||||
"type": "string",
|
||||
"format": "uri",
|
||||
"description": "Fully-qualified URL where an icon representing the source can be fetched. For example, CDN location provided by the App View."
|
||||
},
|
||||
"theme": {
|
||||
"ref": "#viewExternalSourceTheme",
|
||||
"type": "ref"
|
||||
},
|
||||
"title": {
|
||||
"type": "string"
|
||||
},
|
||||
"description": {
|
||||
"type": "string"
|
||||
}
|
||||
},
|
||||
"description": "The source of an external embed, such as a standard.site publication."
|
||||
},
|
||||
"viewExternalSourceTheme": {
|
||||
"type": "object",
|
||||
"properties": {
|
||||
"accentRGB": {
|
||||
"ref": "#colorRGB",
|
||||
"type": "ref"
|
||||
},
|
||||
"backgroundRGB": {
|
||||
"ref": "#colorRGB",
|
||||
"type": "ref"
|
||||
},
|
||||
"foregroundRGB": {
|
||||
"ref": "#colorRGB",
|
||||
"type": "ref"
|
||||
},
|
||||
"accentForegroundRGB": {
|
||||
"ref": "#colorRGB",
|
||||
"type": "ref"
|
||||
}
|
||||
},
|
||||
"description": "The theme colors of an external source, such as a site.standard.publication. These colors may be used when rendering an embed from that source."
|
||||
}
|
||||
},
|
||||
"$type": "com.atproto.lexicon.schema",
|
||||
"lexicon": 1
|
||||
}
|
||||
@@ -0,0 +1,99 @@
|
||||
{
|
||||
"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)."
|
||||
}
|
||||
@@ -0,0 +1,62 @@
|
||||
{
|
||||
"id": "app.bsky.embed.getEmbedExternalView",
|
||||
"defs": {
|
||||
"main": {
|
||||
"type": "query",
|
||||
"output": {
|
||||
"schema": {
|
||||
"type": "object",
|
||||
"properties": {
|
||||
"view": {
|
||||
"ref": "app.bsky.embed.external#view",
|
||||
"type": "ref",
|
||||
"description": "Hydrated view of the embed. Present only when the resolved records back the requested URL and supply enough information to populate the required `viewExternal` fields. Omitted alongside the rest of the response when no records resolved or validation failed."
|
||||
},
|
||||
"associatedRefs": {
|
||||
"type": "array",
|
||||
"items": {
|
||||
"ref": "com.atproto.repo.strongRef",
|
||||
"type": "ref"
|
||||
},
|
||||
"description": "StrongRefs (URI+CID) of the Atmosphere records that backed this view, suitable for embedding into a post's external.associatedRefs."
|
||||
},
|
||||
"associatedRecords": {
|
||||
"type": "array",
|
||||
"items": {
|
||||
"type": "unknown",
|
||||
"description": "The raw record data of the Atmosphere records that backed this view. This is returned for convenience, to avoid the need for the client to separately fetch the record data for the associatedRefs. Example: the site.standard.document and site.standard.publication records that backed this view."
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
"encoding": "application/json"
|
||||
},
|
||||
"parameters": {
|
||||
"type": "params",
|
||||
"required": [
|
||||
"url",
|
||||
"uris"
|
||||
],
|
||||
"properties": {
|
||||
"url": {
|
||||
"type": "string",
|
||||
"format": "uri",
|
||||
"description": "The canonical web URL the embed represents (typically the URL the user pasted into the composer). Used as the returned view's `uri`. May be used for validation in the future."
|
||||
},
|
||||
"uris": {
|
||||
"type": "array",
|
||||
"items": {
|
||||
"type": "string",
|
||||
"format": "at-uri"
|
||||
},
|
||||
"maxLength": 4,
|
||||
"description": "AT-URIs of any Atmosphere records that can be resolved and used to construct #externalView views. Example: a site.standard.document and optionally its associated site.standard.publication."
|
||||
}
|
||||
}
|
||||
},
|
||||
"description": "Resolve one or more AT-URIs into the data needed to render an enhanced external embed. Returns `associatedRefs` (strongRefs to embed into a post's external.associatedRefs), the raw `associatedRecords`, and a hydrated `view`. The response is empty (`{}`) when no records were resolvable, or when validation determined the resolved records don't actually back the requested URL; clients should fall back to their own link-card rendering in that case and skip writing strongRefs to the post."
|
||||
}
|
||||
},
|
||||
"$type": "com.atproto.lexicon.schema",
|
||||
"lexicon": 1
|
||||
}
|
||||
@@ -0,0 +1,93 @@
|
||||
{
|
||||
"id": "app.bsky.embed.images",
|
||||
"defs": {
|
||||
"main": {
|
||||
"type": "object",
|
||||
"required": [
|
||||
"images"
|
||||
],
|
||||
"properties": {
|
||||
"images": {
|
||||
"type": "array",
|
||||
"items": {
|
||||
"ref": "#image",
|
||||
"type": "ref"
|
||||
},
|
||||
"maxLength": 4
|
||||
}
|
||||
}
|
||||
},
|
||||
"view": {
|
||||
"type": "object",
|
||||
"required": [
|
||||
"images"
|
||||
],
|
||||
"properties": {
|
||||
"images": {
|
||||
"type": "array",
|
||||
"items": {
|
||||
"ref": "#viewImage",
|
||||
"type": "ref"
|
||||
},
|
||||
"maxLength": 4
|
||||
}
|
||||
}
|
||||
},
|
||||
"image": {
|
||||
"type": "object",
|
||||
"required": [
|
||||
"image",
|
||||
"alt"
|
||||
],
|
||||
"properties": {
|
||||
"alt": {
|
||||
"type": "string",
|
||||
"description": "Alt text description of the image, for accessibility."
|
||||
},
|
||||
"image": {
|
||||
"type": "blob",
|
||||
"accept": [
|
||||
"image/*"
|
||||
],
|
||||
"maxSize": 2000000,
|
||||
"description": "The raw image file. May be up to 2 MB, formerly limited to 1 MB."
|
||||
},
|
||||
"aspectRatio": {
|
||||
"ref": "app.bsky.embed.defs#aspectRatio",
|
||||
"type": "ref"
|
||||
}
|
||||
}
|
||||
},
|
||||
"viewImage": {
|
||||
"type": "object",
|
||||
"required": [
|
||||
"thumb",
|
||||
"fullsize",
|
||||
"alt"
|
||||
],
|
||||
"properties": {
|
||||
"alt": {
|
||||
"type": "string",
|
||||
"description": "Alt text description of the image, for accessibility."
|
||||
},
|
||||
"thumb": {
|
||||
"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."
|
||||
},
|
||||
"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."
|
||||
},
|
||||
"aspectRatio": {
|
||||
"ref": "app.bsky.embed.defs#aspectRatio",
|
||||
"type": "ref"
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
"$type": "com.atproto.lexicon.schema",
|
||||
"lexicon": 1,
|
||||
"description": "A set of images embedded in a Bluesky record (eg, a post)."
|
||||
}
|
||||
@@ -0,0 +1,162 @@
|
||||
{
|
||||
"id": "app.bsky.embed.record",
|
||||
"defs": {
|
||||
"main": {
|
||||
"type": "object",
|
||||
"required": [
|
||||
"record"
|
||||
],
|
||||
"properties": {
|
||||
"record": {
|
||||
"ref": "com.atproto.repo.strongRef",
|
||||
"type": "ref"
|
||||
}
|
||||
}
|
||||
},
|
||||
"view": {
|
||||
"type": "object",
|
||||
"required": [
|
||||
"record"
|
||||
],
|
||||
"properties": {
|
||||
"record": {
|
||||
"refs": [
|
||||
"#viewRecord",
|
||||
"#viewNotFound",
|
||||
"#viewBlocked",
|
||||
"#viewDetached",
|
||||
"app.bsky.feed.defs#generatorView",
|
||||
"app.bsky.graph.defs#listView",
|
||||
"app.bsky.labeler.defs#labelerView",
|
||||
"app.bsky.graph.defs#starterPackViewBasic"
|
||||
],
|
||||
"type": "union"
|
||||
}
|
||||
}
|
||||
},
|
||||
"viewRecord": {
|
||||
"type": "object",
|
||||
"required": [
|
||||
"uri",
|
||||
"cid",
|
||||
"author",
|
||||
"value",
|
||||
"indexedAt"
|
||||
],
|
||||
"properties": {
|
||||
"cid": {
|
||||
"type": "string",
|
||||
"format": "cid"
|
||||
},
|
||||
"uri": {
|
||||
"type": "string",
|
||||
"format": "at-uri"
|
||||
},
|
||||
"value": {
|
||||
"type": "unknown",
|
||||
"description": "The record data itself."
|
||||
},
|
||||
"author": {
|
||||
"ref": "app.bsky.actor.defs#profileViewBasic",
|
||||
"type": "ref"
|
||||
},
|
||||
"embeds": {
|
||||
"type": "array",
|
||||
"items": {
|
||||
"refs": [
|
||||
"app.bsky.embed.images#view",
|
||||
"app.bsky.embed.video#view",
|
||||
"app.bsky.embed.gallery#view",
|
||||
"app.bsky.embed.external#view",
|
||||
"app.bsky.embed.record#view",
|
||||
"app.bsky.embed.recordWithMedia#view"
|
||||
],
|
||||
"type": "union"
|
||||
}
|
||||
},
|
||||
"labels": {
|
||||
"type": "array",
|
||||
"items": {
|
||||
"ref": "com.atproto.label.defs#label",
|
||||
"type": "ref"
|
||||
}
|
||||
},
|
||||
"indexedAt": {
|
||||
"type": "string",
|
||||
"format": "datetime"
|
||||
},
|
||||
"likeCount": {
|
||||
"type": "integer"
|
||||
},
|
||||
"quoteCount": {
|
||||
"type": "integer"
|
||||
},
|
||||
"replyCount": {
|
||||
"type": "integer"
|
||||
},
|
||||
"repostCount": {
|
||||
"type": "integer"
|
||||
}
|
||||
}
|
||||
},
|
||||
"viewBlocked": {
|
||||
"type": "object",
|
||||
"required": [
|
||||
"uri",
|
||||
"blocked",
|
||||
"author"
|
||||
],
|
||||
"properties": {
|
||||
"uri": {
|
||||
"type": "string",
|
||||
"format": "at-uri"
|
||||
},
|
||||
"author": {
|
||||
"ref": "app.bsky.feed.defs#blockedAuthor",
|
||||
"type": "ref"
|
||||
},
|
||||
"blocked": {
|
||||
"type": "boolean",
|
||||
"const": true
|
||||
}
|
||||
}
|
||||
},
|
||||
"viewDetached": {
|
||||
"type": "object",
|
||||
"required": [
|
||||
"uri",
|
||||
"detached"
|
||||
],
|
||||
"properties": {
|
||||
"uri": {
|
||||
"type": "string",
|
||||
"format": "at-uri"
|
||||
},
|
||||
"detached": {
|
||||
"type": "boolean",
|
||||
"const": true
|
||||
}
|
||||
}
|
||||
},
|
||||
"viewNotFound": {
|
||||
"type": "object",
|
||||
"required": [
|
||||
"uri",
|
||||
"notFound"
|
||||
],
|
||||
"properties": {
|
||||
"uri": {
|
||||
"type": "string",
|
||||
"format": "at-uri"
|
||||
},
|
||||
"notFound": {
|
||||
"type": "boolean",
|
||||
"const": true
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
"$type": "com.atproto.lexicon.schema",
|
||||
"lexicon": 1,
|
||||
"description": "A representation of a record embedded in a Bluesky record (eg, a post). For example, a quote-post, or sharing a feed generator record."
|
||||
}
|
||||
@@ -0,0 +1,52 @@
|
||||
{
|
||||
"id": "app.bsky.embed.recordWithMedia",
|
||||
"defs": {
|
||||
"main": {
|
||||
"type": "object",
|
||||
"required": [
|
||||
"record",
|
||||
"media"
|
||||
],
|
||||
"properties": {
|
||||
"media": {
|
||||
"refs": [
|
||||
"app.bsky.embed.images",
|
||||
"app.bsky.embed.video",
|
||||
"app.bsky.embed.gallery",
|
||||
"app.bsky.embed.external"
|
||||
],
|
||||
"type": "union"
|
||||
},
|
||||
"record": {
|
||||
"ref": "app.bsky.embed.record",
|
||||
"type": "ref"
|
||||
}
|
||||
}
|
||||
},
|
||||
"view": {
|
||||
"type": "object",
|
||||
"required": [
|
||||
"record",
|
||||
"media"
|
||||
],
|
||||
"properties": {
|
||||
"media": {
|
||||
"refs": [
|
||||
"app.bsky.embed.images#view",
|
||||
"app.bsky.embed.video#view",
|
||||
"app.bsky.embed.gallery#view",
|
||||
"app.bsky.embed.external#view"
|
||||
],
|
||||
"type": "union"
|
||||
},
|
||||
"record": {
|
||||
"ref": "app.bsky.embed.record#view",
|
||||
"type": "ref"
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
"$type": "com.atproto.lexicon.schema",
|
||||
"lexicon": 1,
|
||||
"description": "A representation of a record embedded in a Bluesky record (eg, a post), alongside other compatible embeds. For example, a quote post and image, or a quote post and external URL card."
|
||||
}
|
||||
@@ -0,0 +1,108 @@
|
||||
{
|
||||
"id": "app.bsky.embed.video",
|
||||
"defs": {
|
||||
"main": {
|
||||
"type": "object",
|
||||
"required": [
|
||||
"video"
|
||||
],
|
||||
"properties": {
|
||||
"alt": {
|
||||
"type": "string",
|
||||
"maxLength": 10000,
|
||||
"description": "Alt text description of the video, for accessibility.",
|
||||
"maxGraphemes": 1000
|
||||
},
|
||||
"video": {
|
||||
"type": "blob",
|
||||
"accept": [
|
||||
"video/mp4"
|
||||
],
|
||||
"maxSize": 100000000,
|
||||
"description": "The mp4 video file. May be up to 100mb, formerly limited to 50mb."
|
||||
},
|
||||
"captions": {
|
||||
"type": "array",
|
||||
"items": {
|
||||
"ref": "#caption",
|
||||
"type": "ref"
|
||||
},
|
||||
"maxLength": 20
|
||||
},
|
||||
"aspectRatio": {
|
||||
"ref": "app.bsky.embed.defs#aspectRatio",
|
||||
"type": "ref"
|
||||
},
|
||||
"presentation": {
|
||||
"type": "string",
|
||||
"description": "A hint to the client about how to present the video.",
|
||||
"knownValues": [
|
||||
"default",
|
||||
"gif"
|
||||
]
|
||||
}
|
||||
}
|
||||
},
|
||||
"view": {
|
||||
"type": "object",
|
||||
"required": [
|
||||
"cid",
|
||||
"playlist"
|
||||
],
|
||||
"properties": {
|
||||
"alt": {
|
||||
"type": "string",
|
||||
"maxLength": 10000,
|
||||
"maxGraphemes": 1000
|
||||
},
|
||||
"cid": {
|
||||
"type": "string",
|
||||
"format": "cid"
|
||||
},
|
||||
"playlist": {
|
||||
"type": "string",
|
||||
"format": "uri"
|
||||
},
|
||||
"thumbnail": {
|
||||
"type": "string",
|
||||
"format": "uri"
|
||||
},
|
||||
"aspectRatio": {
|
||||
"ref": "app.bsky.embed.defs#aspectRatio",
|
||||
"type": "ref"
|
||||
},
|
||||
"presentation": {
|
||||
"type": "string",
|
||||
"description": "A hint to the client about how to present the video.",
|
||||
"knownValues": [
|
||||
"default",
|
||||
"gif"
|
||||
]
|
||||
}
|
||||
}
|
||||
},
|
||||
"caption": {
|
||||
"type": "object",
|
||||
"required": [
|
||||
"lang",
|
||||
"file"
|
||||
],
|
||||
"properties": {
|
||||
"file": {
|
||||
"type": "blob",
|
||||
"accept": [
|
||||
"text/vtt"
|
||||
],
|
||||
"maxSize": 20000
|
||||
},
|
||||
"lang": {
|
||||
"type": "string",
|
||||
"format": "language"
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
"$type": "com.atproto.lexicon.schema",
|
||||
"lexicon": 1,
|
||||
"description": "A video embedded in a Bluesky record (eg, a post)."
|
||||
}
|
||||
Reference in New Issue
Block a user