Raw schema
{
"type": "object",
"properties": {
"image_url": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"description": "Public https URL of a PNG, JPG, or WebP to store as a brand asset."
},
"image_base64": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"description": "The image bytes as base64, if you have no URL."
},
"name": {
"default": "",
"description": "Human-readable name for the asset or run.",
"type": "string"
},
"description": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"description": "What the picture shows and what it is for, in your words. When set, Siren files the asset without reading it."
},
"kind": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"description": "Free-text kind: product photo, dashboard screenshot, packaging, logo, team photo."
},
"use_when": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"description": "When Siren should reach for this asset, e.g. \"any post about the analytics page\"."
},
"tags": {
"anyOf": [
{
"items": {
"type": "string"
},
"type": "array"
},
{
"type": "null"
}
],
"default": null,
"description": "Short lowercase tags for search, e.g. [\"dashboard\", \"dark-mode\"]."
},
"screen_type": {
"default": "feature",
"description": "Screen role: feature, hero, onboarding, settings, or marketing.",
"type": "string"
},
"device": {
"default": "phone",
"description": "Device the screenshot was taken on: phone, tablet, desktop, or none.",
"type": "string"
},
"theme": {
"default": "unknown",
"description": "UI theme in the screenshot: light, dark, or unknown.",
"type": "string"
}
},
"additionalProperties": false
}