atproto blogging
1{
2 "lexicon": 1,
3 "id": "sh.weaver.embed.images",
4 "description": "A set of images embedded in a blog post.",
5 "defs": {
6 "image": {
7 "type": "object",
8 "required": [
9 "image",
10 "alt"
11 ],
12 "properties": {
13 "alt": {
14 "type": "string",
15 "description": "alt text description of the image"
16 },
17 "blurhash": {
18 "type": "string",
19 "description": "Blurhash string for the image, used for low-resolution placeholders. This must be a valid Blurhash string.",
20 "maxLength": 32
21 },
22 "dimensions": {
23 "type": "union",
24 "refs": [
25 "app.bsky.embed.defs#aspectRatio",
26 "sh.weaver.embed.defs#percentSize",
27 "sh.weaver.embed.defs#pixelSize"
28 ]
29 },
30 "image": {
31 "type": "blob",
32 "accept": [
33 "image/*"
34 ],
35 "maxSize": 3000000
36 },
37 "name": {
38 "type": "string",
39 "maxLength": 128
40 }
41 }
42 },
43 "main": {
44 "type": "object",
45 "required": [
46 "images"
47 ],
48 "properties": {
49 "images": {
50 "type": "array",
51 "items": {
52 "type": "ref",
53 "ref": "#image"
54 },
55 "maxLength": 48
56 }
57 }
58 },
59 "view": {
60 "type": "object",
61 "required": [
62 "images"
63 ],
64 "properties": {
65 "images": {
66 "type": "array",
67 "items": {
68 "type": "ref",
69 "ref": "#viewImage"
70 },
71 "maxLength": 48
72 }
73 }
74 },
75 "viewImage": {
76 "type": "object",
77 "required": [
78 "thumb",
79 "fullsize",
80 "alt"
81 ],
82 "properties": {
83 "alt": {
84 "type": "string",
85 "description": "Alt text description of the image, for accessibility."
86 },
87 "dimensions": {
88 "type": "union",
89 "refs": [
90 "app.bsky.embed.defs#aspectRatio",
91 "sh.weaver.embed.defs#percentSize",
92 "sh.weaver.embed.defs#pixelSize"
93 ]
94 },
95 "fullsize": {
96 "type": "string",
97 "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.",
98 "format": "uri"
99 },
100 "name": {
101 "type": "string",
102 "maxLength": 128
103 },
104 "thumb": {
105 "type": "string",
106 "description": "Fully-qualified URL where a thumbnail of the image can be fetched. For example, CDN location provided by the App View.",
107 "format": "uri"
108 }
109 }
110 }
111 }
112}