app.greengale.blog.defs

greengale.app

Schema Diff

+19 -0

From

CID
bafyreihitw7g2r5...
Indexed At
2026-01-18 12:18 UTC
View this version

To

CID
bafyreihqgoxv46t...
Indexed At
2026-01-22 01:01 UTC
View this version
1 1
{
2 2
  "id": "app.greengale.blog.defs",
3 3
  "defs": {
4 4
    "ogp": {
5 5
      "type": "object",
6 6
      "required": [
7 7
        "url"
8 8
      ],
9 9
      "properties": {
10 10
        "url": {
11 11
          "type": "string",
12 12
          "format": "uri",
13 13
          "maxLength": 2048,
14 14
          "description": "URL of the OGP image"
15 15
        },
16 16
        "width": {
17 17
          "type": "integer",
18 18
          "description": "Image width in pixels"
19 19
        },
20 20
        "height": {
21 21
          "type": "integer",
22 22
          "description": "Image height in pixels"
23 23
        }
24 24
      },
25 25
      "description": "Open Graph Protocol metadata for social sharing"
26 26
    },
27 27
    "theme": {
28 28
      "type": "object",
29 29
      "properties": {
30 30
        "custom": {
31 31
          "ref": "#customColors",
32 32
          "type": "ref",
33 33
          "description": "Custom color overrides"
34 34
        },
35 35
        "preset": {
36 36
          "enum": [
37 37
            "github-light",
38 38
            "github-dark",
39 39
            "dracula",
40 40
            "nord",
41 41
            "solarized-light",
42 42
            "solarized-dark",
43 43
            "monokai"
44 44
          ],
45 45
          "type": "string",
46 46
          "maxLength": 32,
47 47
          "description": "Predefined color theme"
48 48
        }
49 49
      },
50 50
      "description": "Theme configuration for a blog entry"
51 51
    },
52 52
    "selfLabel": {
53 53
      "type": "object",
54 54
      "required": [
55 55
        "val"
56 56
      ],
57 57
      "properties": {
58 58
        "val": {
59 59
          "type": "string",
60 60
          "maxLength": 128,
61 61
          "description": "The short string name of the value or type of this label"
62 62
        }
63 63
      },
64 64
      "description": "Metadata tag on an atproto resource, published by the author"
65 65
    },
66 66
    "selfLabels": {
67 67
      "type": "object",
68 68
      "required": [
69 69
        "values"
70 70
      ],
71 71
      "properties": {
72 72
        "values": {
73 73
          "type": "array",
74 74
          "items": {
75 75
            "ref": "#selfLabel",
76 76
            "type": "ref"
77 77
          },
78 78
          "maxLength": 10
79 79
        }
80 80
      },
81 81
      "description": "Metadata tags on an atproto resource, published by the author"
82 82
    },
83 +
    "voiceTheme": {
84 +
      "type": "object",
85 +
      "properties": {
86 +
        "pitch": {
87 +
          "type": "integer",
88 +
          "description": "Pitch multiplier x100 (100 = normal, range 50-150)"
89 +
        },
90 +
        "speed": {
91 +
          "type": "integer",
92 +
          "description": "Playback speed multiplier x100 (100 = normal, range 50-200)"
93 +
        },
94 +
        "voice": {
95 +
          "type": "string",
96 +
          "maxLength": 32,
97 +
          "description": "Voice ID for TTS (e.g., 'af_heart', 'am_adam')"
98 +
        }
99 +
      },
100 +
      "description": "Voice theme configuration for TTS playback"
101 +
    },
83 102
    "blobMetadata": {
84 103
      "type": "object",
85 104
      "required": [
86 105
        "blobref"
87 106
      ],
88 107
      "properties": {
89 108
        "alt": {
90 109
          "type": "string",
91 110
          "maxLength": 1000,
92 111
          "description": "Alt text for accessibility"
93 112
        },
94 113
        "name": {
95 114
          "type": "string",
96 115
          "maxLength": 256,
97 116
          "description": "Original filename"
98 117
        },
99 118
        "labels": {
100 119
          "ref": "#selfLabels",
101 120
          "type": "ref",
102 121
          "description": "Content labels (self-labels) for this image"
103 122
        },
104 123
        "blobref": {
105 124
          "type": "blob",
106 125
          "accept": [
107 126
            "*/*"
108 127
          ],
109 128
          "description": "Reference to the blob"
110 129
        }
111 130
      },
112 131
      "description": "Metadata for uploaded binary content"
113 132
    },
114 133
    "customColors": {
115 134
      "type": "object",
116 135
      "properties": {
117 136
        "text": {
118 137
          "type": "string",
119 138
          "maxLength": 64,
120 139
          "description": "Primary text color"
121 140
        },
122 141
        "accent": {
123 142
          "type": "string",
124 143
          "maxLength": 64,
125 144
          "description": "Accent/link color"
126 145
        },
127 146
        "background": {
128 147
          "type": "string",
129 148
          "maxLength": 64,
130 149
          "description": "Background color"
131 150
        },
132 151
        "codeBackground": {
133 152
          "type": "string",
134 153
          "maxLength": 64,
135 154
          "description": "Code block background color"
136 155
        }
137 156
      },
138 157
      "description": "Custom color values (CSS color strings)"
139 158
    }
140 159
  },
141 160
  "$type": "com.atproto.lexicon.schema",
142 161
  "lexicon": 1
143 162
}

Compare Other Versions

Lexicon Garden

@