An image edited in Luminframe, saved to the author's repo, together with the effect recipe used to produce it.
tid
Timestamp-based ID
Properties
alt
string
Optional
Accessibility description of the image.
maxLength: 10000 bytesmaxGraphemes: 2000 graphemesaspectRatio
ref
#aspectRatio
Required
Pixel dimensions of the render, so a viewer can lay it out without decoding.
createdAt
string
datetime
Required
When the record was created.
effects
array
of
string
Optional
The effect keys applied, in order. Kept for lightweight display and backward compatibility; the executable form is `recipe`.
maxLength: 64 itemsimage
blob
Required
The rendered image. When `video` is present, this is its poster frame.
maxSize: 1.0 MBrecipe
array
of
ref
#effectStep
Optional
The ordered effect stack with parameters — the executable edit, so the look can be reconstructed or applied elsewhere.
maxLength: 64 itemsremixOf
ref
com.atproto.repo.strongRef
Optional
The record this image was remixed from, if any — its lineage.
title
string
Optional
Short caption or label.
maxLength: 3000 bytesmaxGraphemes: 300 graphemesvideo
blob
Optional
A short looping clip of the edit, present when the recipe animates. The still `image` remains required as the poster, so viewers that only know stills keep working.
maxSize: 5.0 MBView raw schema
{
"key": "tid",
"type": "record",
"record": {
"type": "object",
"required": [
"image",
"aspectRatio",
"createdAt"
],
"properties": {
"alt": {
"type": "string",
"maxLength": 10000,
"description": "Accessibility description of the image.",
"maxGraphemes": 2000
},
"image": {
"type": "blob",
"accept": [
"image/*"
],
"maxSize": 1000000,
"description": "The rendered image. When `video` is present, this is its poster frame."
},
"title": {
"type": "string",
"maxLength": 3000,
"description": "Short caption or label.",
"maxGraphemes": 300
},
"video": {
"type": "blob",
"accept": [
"video/mp4"
],
"maxSize": 5000000,
"description": "A short looping clip of the edit, present when the recipe animates. The still `image` remains required as the poster, so viewers that only know stills keep working."
},
"recipe": {
"type": "array",
"items": {
"ref": "#effectStep",
"type": "ref"
},
"maxLength": 64,
"description": "The ordered effect stack with parameters — the executable edit, so the look can be reconstructed or applied elsewhere."
},
"effects": {
"type": "array",
"items": {
"type": "string",
"maxLength": 128
},
"maxLength": 64,
"description": "The effect keys applied, in order. Kept for lightweight display and backward compatibility; the executable form is `recipe`."
},
"remixOf": {
"ref": "com.atproto.repo.strongRef",
"type": "ref",
"description": "The record this image was remixed from, if any — its lineage."
},
"createdAt": {
"type": "string",
"format": "datetime",
"description": "When the record was created."
},
"aspectRatio": {
"ref": "#aspectRatio",
"type": "ref",
"description": "Pixel dimensions of the render, so a viewer can lay it out without decoding."
}
}
},
"description": "An image edited in Luminframe, saved to the author's repo, together with the effect recipe used to produce it."
}