81 lines
2.3 KiB
JSON
81 lines
2.3 KiB
JSON
|
|
{
|
||
|
|
"$schema": "https://json-schema.org/draft/2020-12/schema",
|
||
|
|
"$id": "https://timmy-foundation/scene-description/v1",
|
||
|
|
"title": "Scene Description Entry",
|
||
|
|
"description": "A single lyrics-to-visual scene description beat from a song.",
|
||
|
|
"type": "object",
|
||
|
|
"required": ["song", "artist", "beat", "timestamp", "duration_seconds", "lyric_line", "scene"],
|
||
|
|
"properties": {
|
||
|
|
"song": {
|
||
|
|
"type": "string",
|
||
|
|
"minLength": 1,
|
||
|
|
"description": "Song title"
|
||
|
|
},
|
||
|
|
"artist": {
|
||
|
|
"type": "string",
|
||
|
|
"minLength": 1,
|
||
|
|
"description": "Artist name (may be fictional)"
|
||
|
|
},
|
||
|
|
"beat": {
|
||
|
|
"type": "integer",
|
||
|
|
"minimum": 1,
|
||
|
|
"maximum": 20,
|
||
|
|
"description": "Beat number within the song (1-indexed)"
|
||
|
|
},
|
||
|
|
"timestamp": {
|
||
|
|
"type": "string",
|
||
|
|
"pattern": "^[0-9]{1,2}:[0-9]{2}$",
|
||
|
|
"description": "Timestamp in M:SS or MM:SS format"
|
||
|
|
},
|
||
|
|
"duration_seconds": {
|
||
|
|
"type": "integer",
|
||
|
|
"minimum": 1,
|
||
|
|
"maximum": 600,
|
||
|
|
"description": "Duration of this beat in seconds"
|
||
|
|
},
|
||
|
|
"lyric_line": {
|
||
|
|
"type": "string",
|
||
|
|
"minLength": 1,
|
||
|
|
"description": "The lyric line for this beat"
|
||
|
|
},
|
||
|
|
"scene": {
|
||
|
|
"type": "object",
|
||
|
|
"required": ["mood", "colors", "composition", "camera", "description"],
|
||
|
|
"properties": {
|
||
|
|
"mood": {
|
||
|
|
"type": "string",
|
||
|
|
"minLength": 1,
|
||
|
|
"description": "Emotional mood of this beat"
|
||
|
|
},
|
||
|
|
"colors": {
|
||
|
|
"type": "array",
|
||
|
|
"minItems": 1,
|
||
|
|
"maxItems": 5,
|
||
|
|
"items": {
|
||
|
|
"type": "string",
|
||
|
|
"minLength": 1
|
||
|
|
},
|
||
|
|
"description": "Color palette for this scene (1-5 colors)"
|
||
|
|
},
|
||
|
|
"composition": {
|
||
|
|
"type": "string",
|
||
|
|
"minLength": 1,
|
||
|
|
"description": "Camera composition (e.g., wide shot, close-up, low angle)"
|
||
|
|
},
|
||
|
|
"camera": {
|
||
|
|
"type": "string",
|
||
|
|
"minLength": 1,
|
||
|
|
"description": "Camera movement (e.g., slow zoom, steady hold, pan right)"
|
||
|
|
},
|
||
|
|
"description": {
|
||
|
|
"type": "string",
|
||
|
|
"minLength": 10,
|
||
|
|
"description": "Full visual scene description (min 10 chars)"
|
||
|
|
}
|
||
|
|
},
|
||
|
|
"additionalProperties": false
|
||
|
|
}
|
||
|
|
},
|
||
|
|
"additionalProperties": false
|
||
|
|
}
|