{"openapi":"3.1.0","info":{"title":"Sprite Flow API","version":"1.1.0","description":"Scoped Bearer keys belong to individual accounts. Credits, assets and download entitlements are shared with the key owner's workspace. Availability is reported in capabilities; unavailable operations cannot be submitted."},"servers":[{"url":"https://spriteflow.io/api/v1"}],"security":[{"bearerAuth":[]}],"components":{"securitySchemes":{"bearerAuth":{"type":"http","scheme":"bearer","bearerFormat":"Sprite Flow API key"}}},"paths":{"/tasks":{"post":{"operationId":"submit_task","summary":"Submit a generation with a durable idempotency key","parameters":[{"name":"Idempotency-Key","in":"header","required":true,"schema":{"type":"string","minLength":1,"maxLength":255}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"oneOf":[{"type":"object","additionalProperties":false,"required":["operation","input"],"properties":{"operation":{"const":"generate_character","type":"string"},"input":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"version":{"default":2,"type":"number","const":2},"outputType":{"type":"string","enum":["portrait","full-body","character-design-sheet","four-view-turnaround","equipment-prop-sheet","complete-character-bible"]},"character":{"type":"object","properties":{"narrativeRole":{"type":"string","enum":["hero","companion","rival","enemy","boss","supporting-character"]},"classOccupation":{"type":"string","maxLength":160},"gameGenre":{"type":"string","enum":["rpg","strategy-tactics","action-adventure","platformer","visual-novel","cozy-life-sim","roguelike"]},"facing":{"type":"string","enum":["front","three-quarter","side"]},"cameraPerspective":{"type":"string","enum":["eye-level","top-down","isometric"]},"ageRange":{"type":"string","maxLength":160},"bodyType":{"type":"string","maxLength":160},"hairstyle":{"type":"string","maxLength":160},"expression":{"type":"string","maxLength":160},"outfit":{"type":"string","maxLength":160},"equipment":{"type":"string","maxLength":160},"materials":{"type":"string","maxLength":160},"primaryColor":{"type":"string","maxLength":160},"silhouetteKeywords":{"type":"string","maxLength":160},"personality":{"type":"string","maxLength":160},"backstory":{"type":"string","maxLength":160},"faction":{"type":"string","maxLength":160}}},"style":{"type":"object","properties":{"source":{"type":"string","enum":["identity","preset","custom","reference"]},"preset":{"type":"string","enum":["pixel-16bit","pixel-32bit","hd-2d","anime-cel-shaded","gouache-animation","hand-painted","chibi","realistic-concept-art"]},"templateId":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"customDirection":{"type":"string","maxLength":500},"referenceAssetIds":{"maxItems":3,"type":"array","items":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"}}},"required":["preset"]},"output":{"type":"object","properties":{"resolution":{"type":"string","enum":["1k","2k","4k"]},"background":{"description":"Character outputs always use a transparent background.","default":"transparent","type":"string","const":"transparent"}},"required":["resolution"]},"additionalDirection":{"type":"string","maxLength":500},"projectId":{"type":"string","minLength":1,"maxLength":255},"folderId":{"anyOf":[{"type":"string","minLength":1,"maxLength":255},{"type":"null"}]},"characterId":{"type":"string","minLength":1,"maxLength":255},"characterTarget":{"oneOf":[{"type":"object","properties":{"kind":{"type":"string","const":"asset"},"slot":{"type":"string","enum":["design","sheet","direction","expression","prop","part","reference","other"]},"direction":{"anyOf":[{"type":"string","enum":["s","se","e","ne","n","nw","w","sw"]},{"type":"null"}]},"designAssetId":{"type":"string","minLength":1,"maxLength":255}},"required":["kind","slot"],"additionalProperties":false},{"type":"object","properties":{"kind":{"type":"string","const":"action"},"actionId":{"type":"string","minLength":1,"maxLength":255},"direction":{"anyOf":[{"type":"string","enum":["s","se","e","ne","n","nw","w","sw"]},{"type":"null"}]},"batchId":{"type":"string","minLength":1,"maxLength":255},"retryOfGenerationId":{"type":"string","minLength":1,"maxLength":255}},"required":["kind","actionId"],"additionalProperties":false}]},"inputAssetId":{"description":"Optional ready character image to preserve identity.","type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"}},"required":["outputType","character","style","output"],"additionalProperties":false},"webhookUrl":{"type":"string","format":"uri","maxLength":2048}},"description":"Create a character concept or design sheet from a brief; optional ready image assets preserve identity or art style. See /docs/characters/character-design.","x-available":true,"examples":[{"operation":"generate_character","input":{"outputType":"full-body","character":{"classOccupation":"Forest ranger","outfit":"Green cloak and leather boots"},"style":{"source":"preset","preset":"pixel-16bit"},"output":{"resolution":"1k","background":"transparent"}}}]},{"type":"object","additionalProperties":false,"required":["operation","input"],"properties":{"operation":{"const":"generate_sprite_motion","type":"string"},"input":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"prompt":{"type":"string","minLength":1,"maxLength":1500},"mode":{"default":"classic","type":"string","enum":["classic","pro"]},"backgroundRemovalMethod":{"type":"string","enum":["ai","cpu"]},"loop":{"default":false,"type":"boolean"},"motionDirection":{"type":"string","enum":["horizontal","square","vertical"]},"frameCount":{"description":"Classic supports the advertised frame options; Pro requires 32. Defaults to 8 for Classic or 32 for Pro.","type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"intelligentFrameCount":{"default":false,"type":"boolean"},"fps":{"default":8,"type":"integer","minimum":4,"maximum":12},"originalWidth":{"description":"Legacy hint; the service reads the asset dimensions.","type":"integer","exclusiveMinimum":0,"maximum":9007199254740991},"originalHeight":{"description":"Legacy hint; the service reads the asset dimensions.","type":"integer","exclusiveMinimum":0,"maximum":9007199254740991},"removeBackground":{"default":false,"type":"boolean"},"enhancePrompt":{"default":false,"type":"boolean"},"projectId":{"type":"string","minLength":1,"maxLength":255},"folderId":{"anyOf":[{"type":"string","minLength":1,"maxLength":255},{"type":"null"}]},"characterId":{"type":"string","minLength":1,"maxLength":255},"characterTarget":{"oneOf":[{"type":"object","properties":{"kind":{"type":"string","const":"asset"},"slot":{"type":"string","enum":["design","sheet","direction","expression","prop","part","reference","other"]},"direction":{"anyOf":[{"type":"string","enum":["s","se","e","ne","n","nw","w","sw"]},{"type":"null"}]},"designAssetId":{"type":"string","minLength":1,"maxLength":255}},"required":["kind","slot"],"additionalProperties":false},{"type":"object","properties":{"kind":{"type":"string","const":"action"},"actionId":{"type":"string","minLength":1,"maxLength":255},"direction":{"anyOf":[{"type":"string","enum":["s","se","e","ne","n","nw","w","sw"]},{"type":"null"}]},"batchId":{"type":"string","minLength":1,"maxLength":255},"retryOfGenerationId":{"type":"string","minLength":1,"maxLength":255}},"required":["kind","actionId"],"additionalProperties":false}]},"inputAssetId":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"}},"required":["prompt","inputAssetId"],"additionalProperties":false},"webhookUrl":{"type":"string","format":"uri","maxLength":2048}},"description":"Animate a ready character image using Classic or Pro mode. Use a full-body source with room around the character. See /docs/characters/pro-animation.","x-available":true,"examples":[{"operation":"generate_sprite_motion","input":{"inputAssetId":"00000000-0000-4000-8000-000000000001","mode":"pro","prompt":"Walk in place, facing right"}}]},{"type":"object","additionalProperties":false,"required":["operation","input"],"properties":{"operation":{"const":"generate_direction_sprites","type":"string"},"input":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"directions":{"anyOf":[{"type":"number","const":4},{"type":"number","const":8}]},"cameraPerspective":{"default":"auto","type":"string","enum":["auto","top-down","isometric"]},"prompt":{"default":"","type":"string","maxLength":2000},"removeBackground":{"default":false,"type":"boolean"},"characterId":{"type":"string","minLength":1,"maxLength":255},"characterTarget":{"oneOf":[{"type":"object","properties":{"kind":{"type":"string","const":"asset"},"slot":{"type":"string","enum":["design","sheet","direction","expression","prop","part","reference","other"]},"direction":{"anyOf":[{"type":"string","enum":["s","se","e","ne","n","nw","w","sw"]},{"type":"null"}]},"designAssetId":{"type":"string","minLength":1,"maxLength":255}},"required":["kind","slot"],"additionalProperties":false},{"type":"object","properties":{"kind":{"type":"string","const":"action"},"actionId":{"type":"string","minLength":1,"maxLength":255},"direction":{"anyOf":[{"type":"string","enum":["s","se","e","ne","n","nw","w","sw"]},{"type":"null"}]},"batchId":{"type":"string","minLength":1,"maxLength":255},"retryOfGenerationId":{"type":"string","minLength":1,"maxLength":255}},"required":["kind","actionId"],"additionalProperties":false}]},"projectId":{"type":"string","minLength":1,"maxLength":255},"folderId":{"anyOf":[{"type":"string","minLength":1,"maxLength":255},{"type":"null"}]},"inputAssetId":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"}},"required":["directions","inputAssetId"],"additionalProperties":false},"webhookUrl":{"type":"string","format":"uri","maxLength":2048}},"description":"Create four or eight matching character views from a ready image asset. See /docs/characters/direction-sprites.","x-available":true,"examples":[{"operation":"generate_direction_sprites","input":{"inputAssetId":"00000000-0000-4000-8000-000000000001","directions":4}}]},{"type":"object","additionalProperties":false,"required":["operation","input"],"properties":{"operation":{"const":"generate_direction_animation","type":"string"},"input":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"mode":{"default":"pro","type":"string","const":"pro"},"characterId":{"type":"string","minLength":1,"maxLength":255},"characterTarget":{"oneOf":[{"type":"object","properties":{"kind":{"type":"string","const":"asset"},"slot":{"type":"string","enum":["design","sheet","direction","expression","prop","part","reference","other"]},"direction":{"anyOf":[{"type":"string","enum":["s","se","e","ne","n","nw","w","sw"]},{"type":"null"}]},"designAssetId":{"type":"string","minLength":1,"maxLength":255}},"required":["kind","slot"],"additionalProperties":false},{"type":"object","properties":{"kind":{"type":"string","const":"action"},"actionId":{"type":"string","minLength":1,"maxLength":255},"direction":{"anyOf":[{"type":"string","enum":["s","se","e","ne","n","nw","w","sw"]},{"type":"null"}]},"batchId":{"type":"string","minLength":1,"maxLength":255},"retryOfGenerationId":{"type":"string","minLength":1,"maxLength":255}},"required":["kind","actionId"],"additionalProperties":false}]},"retryOfBatchId":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"projectId":{"type":"string","minLength":1,"maxLength":255},"folderId":{"anyOf":[{"type":"string","minLength":1,"maxLength":255},{"type":"null"}]},"motion":{"type":"string","enum":["idle","walk","run","dash","roll","crouch","punch","hit","interact","death"]},"directions":{"minItems":1,"maxItems":8,"type":"array","items":{"type":"string","enum":["N","NE","E","SE","S","SW","W","NW"]}},"inputAssetId":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"}},"required":["motion","directions","inputAssetId"],"additionalProperties":false},"webhookUrl":{"type":"string","format":"uri","maxLength":2048}},"description":"Animate one character action in selected compass directions. Each direction is billed separately and can finish or fail independently. See /docs/characters/direction-animation.","x-available":false,"examples":[{"operation":"generate_direction_animation","input":{"inputAssetId":"00000000-0000-4000-8000-000000000001","motion":"walk","directions":["N","E","S","W"]}}]},{"type":"object","additionalProperties":false,"required":["operation","input"],"properties":{"operation":{"const":"generate_npcs","type":"string"},"input":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"templateId":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"stylePreset":{"type":"string","enum":["16-bit-pixel","modern-anime","cyberpunk-chibi","dark-fantasy"]},"stylePrompt":{"type":"string","minLength":3,"maxLength":1000},"archetypes":{"maxItems":20,"type":"array","items":{"type":"string","minLength":1,"maxLength":50}},"framing":{"type":"string","enum":["bust","full-body","avatar"]},"mixAges":{"default":true,"type":"boolean"},"mixGenders":{"default":true,"type":"boolean"},"projectId":{"type":"string","minLength":1,"maxLength":255},"folderId":{"anyOf":[{"type":"string","minLength":1,"maxLength":255},{"type":"null"}]},"styleReferenceAssetId":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"}},"required":["archetypes","framing"],"additionalProperties":false},"webhookUrl":{"type":"string","format":"uri","maxLength":2048}},"description":"Create a coordinated cast of 4, 9 or 16 NPCs in one generation. Choose exactly one art style source. See /docs/characters/batch-npc.","x-available":true,"examples":[{"operation":"generate_npcs","input":{"stylePreset":"16-bit-pixel","archetypes":["Blacksmith","Healer","Merchant","Guard"],"framing":"full-body"}}]},{"type":"object","additionalProperties":false,"required":["operation","input"],"properties":{"operation":{"const":"generate_map","type":"string"},"input":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"version":{"default":2,"type":"number","const":2},"mapType":{"type":"string","enum":["world","region","settlement","interior","dungeon","top-down-level","side-scroller","metroidvania","roguelike-floor","tactics","tower-defense","arena","battle-background"]},"details":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{"anyOf":[{"type":"string","maxLength":120},{"type":"number"},{"type":"boolean"},{"maxItems":12,"type":"array","items":{"type":"string","maxLength":120}}]}},"cameraPerspective":{"default":"auto","type":"string","enum":["auto","top-down","oblique","isometric"]},"labels":{"type":"boolean"},"gridOverlay":{"type":"boolean"},"season":{"type":"string","enum":["auto","spring","summer","autumn","winter","day","night","dawn","dusk"]},"customPrompt":{"type":"string","maxLength":500},"style":{"type":"object","properties":{"preset":{"type":"string","enum":["pixel-16bit","pixel-32bit","hand-drawn-2d","anime-jrpg","sci-fi-topdown","parchment","watercolor","realistic-topdown"]},"templateId":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"customDirection":{"type":"string","maxLength":600},"referenceAnalysis":{"type":"object","properties":{"summary":{"type":"string","minLength":1,"maxLength":600},"palette":{"maxItems":6,"type":"array","items":{"type":"string","minLength":1,"maxLength":80}},"rendering":{"type":"string","minLength":1,"maxLength":160},"linework":{"type":"string","minLength":1,"maxLength":160},"lighting":{"type":"string","minLength":1,"maxLength":160},"detailDensity":{"type":"string","minLength":1,"maxLength":160},"perspective":{"type":"string","minLength":1,"maxLength":160},"coherence":{"type":"string","enum":["high","mixed"]}},"required":["summary","palette","rendering","linework","lighting","detailDensity","perspective","coherence"]},"referenceAssetIds":{"maxItems":3,"type":"array","items":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"}}},"required":["preset"]},"output":{"type":"object","properties":{"aspectRatio":{"type":"string","enum":["16:9","9:16","21:9","9:21","2:1","1:2","4:3","3:4","3:2","2:3"]},"resolution":{"type":"string","enum":["1k","2k","4k"]}},"required":["aspectRatio","resolution"]},"examplePresetId":{"type":"string","minLength":1,"maxLength":120},"seed":{"type":"integer","minimum":0,"maximum":9007199254740991},"characterId":{"type":"string","minLength":1,"maxLength":255},"characterTarget":{"oneOf":[{"type":"object","properties":{"kind":{"type":"string","const":"asset"},"slot":{"type":"string","enum":["design","sheet","direction","expression","prop","part","reference","other"]},"direction":{"anyOf":[{"type":"string","enum":["s","se","e","ne","n","nw","w","sw"]},{"type":"null"}]},"designAssetId":{"type":"string","minLength":1,"maxLength":255}},"required":["kind","slot"],"additionalProperties":false},{"type":"object","properties":{"kind":{"type":"string","const":"action"},"actionId":{"type":"string","minLength":1,"maxLength":255},"direction":{"anyOf":[{"type":"string","enum":["s","se","e","ne","n","nw","w","sw"]},{"type":"null"}]},"batchId":{"type":"string","minLength":1,"maxLength":255},"retryOfGenerationId":{"type":"string","minLength":1,"maxLength":255}},"required":["kind","actionId"],"additionalProperties":false}]},"projectId":{"type":"string","minLength":1,"maxLength":255},"folderId":{"anyOf":[{"type":"string","minLength":1,"maxLength":255},{"type":"null"}]}},"required":["mapType","details","style","output"],"additionalProperties":false},"webhookUrl":{"type":"string","format":"uri","maxLength":2048}},"description":"Generate a world, region, settlement or level map. Detail fields depend on mapType; inspect capabilities for the valid options. See /docs/environments/maps.","x-available":true,"examples":[{"operation":"generate_map","input":{"mapType":"world","details":{"worldShape":"continent","biomeMix":"balanced","boundaries":"natural","routeNetwork":"connected","waterCoverage":"medium","landmarkDensity":"medium"},"style":{"preset":"pixel-16bit"},"output":{"resolution":"1k","aspectRatio":"16:9"}}}]},{"type":"object","additionalProperties":false,"required":["operation","input"],"properties":{"operation":{"const":"generate_tileset","type":"string"},"input":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"characterId":{"type":"string","minLength":1,"maxLength":255},"characterTarget":{"oneOf":[{"type":"object","properties":{"kind":{"type":"string","const":"asset"},"slot":{"type":"string","enum":["design","sheet","direction","expression","prop","part","reference","other"]},"direction":{"anyOf":[{"type":"string","enum":["s","se","e","ne","n","nw","w","sw"]},{"type":"null"}]},"designAssetId":{"type":"string","minLength":1,"maxLength":255}},"required":["kind","slot"],"additionalProperties":false},{"type":"object","properties":{"kind":{"type":"string","const":"action"},"actionId":{"type":"string","minLength":1,"maxLength":255},"direction":{"anyOf":[{"type":"string","enum":["s","se","e","ne","n","nw","w","sw"]},{"type":"null"}]},"batchId":{"type":"string","minLength":1,"maxLength":255},"retryOfGenerationId":{"type":"string","minLength":1,"maxLength":255}},"required":["kind","actionId"],"additionalProperties":false}]},"projectId":{"type":"string","minLength":1,"maxLength":255},"folderId":{"anyOf":[{"type":"string","minLength":1,"maxLength":255},{"type":"null"}]},"layoutId":{"type":"string","const":"corner16-v2"},"roughness":{"default":25,"type":"integer","minimum":0,"maximum":100},"connection":{"default":50,"type":"integer","minimum":0,"maximum":100},"heightPercent":{"type":"integer","minimum":0,"maximum":25},"outputResolution":{"type":"string","enum":["1K","2K"]},"style":{"default":{"source":"preset","preset":"pixel-art","customDirection":"","referenceAssetIds":[]},"type":"object","properties":{"source":{"type":"string","enum":["preset","custom","reference"]},"preset":{"default":"pixel-art","type":"string","enum":["pixel-art","pixel-8bit","pixel-32bit","gba-rpg","handheld-monochrome","cozy-pastel","dark-fantasy","anime-jrpg","hand-painted-pixel","neon-cyberpunk","comic-pixel","minimal-flat"]},"customDirection":{"default":"","type":"string","maxLength":320},"referenceAssetIds":{"default":[],"maxItems":1,"type":"array","items":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"}}},"required":["source"]},"material":{"type":"string","enum":["grass","dirt","stone","sand","snow"]},"background":{"type":"string","enum":["transparent","water","lava"]},"tileSize":{"type":"number","const":32},"detail":{"default":"","type":"string","maxLength":500},"regions":{"type":"object","properties":{"terrain":{"type":"object","properties":{"mode":{"type":"string","enum":["transparent","material"]},"description":{"type":"string","maxLength":500}},"required":["mode","description"]},"background":{"type":"object","properties":{"mode":{"type":"string","enum":["transparent","material"]},"description":{"type":"string","maxLength":500}},"required":["mode","description"]},"cliff":{"type":"object","properties":{"mode":{"type":"string","const":"material"},"description":{"type":"string","maxLength":500}},"required":["mode","description"]}},"required":["terrain","background"]}},"required":["layoutId","material","background","tileSize"],"additionalProperties":false},"webhookUrl":{"type":"string","format":"uri","maxLength":2048}},"description":"Create a fixed four-corner terrain atlas. Use ready style reference assets when source is reference. See /docs/environments/tilesets.","x-available":true,"examples":[{"operation":"generate_tileset","input":{"layoutId":"corner16-v2","material":"grass","background":"transparent","tileSize":32,"outputResolution":"1K"}}]},{"type":"object","additionalProperties":false,"required":["operation","input"],"properties":{"operation":{"const":"generate_props","type":"string"},"input":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"templateId":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"stylePrompt":{"type":"string","minLength":3,"maxLength":1000},"gridSize":{"anyOf":[{"type":"number","const":4},{"type":"number","const":9},{"type":"number","const":16}]},"prompts":{"minItems":1,"maxItems":16,"type":"array","items":{"type":"string","maxLength":200}},"stylePresetId":{"type":"string","enum":["16-bit-pixel","modern-anime","cyberpunk-chibi","dark-fantasy"]},"characterId":{"type":"string","minLength":1,"maxLength":255},"characterTarget":{"oneOf":[{"type":"object","properties":{"kind":{"type":"string","const":"asset"},"slot":{"type":"string","enum":["design","sheet","direction","expression","prop","part","reference","other"]},"direction":{"anyOf":[{"type":"string","enum":["s","se","e","ne","n","nw","w","sw"]},{"type":"null"}]},"designAssetId":{"type":"string","minLength":1,"maxLength":255}},"required":["kind","slot"],"additionalProperties":false},{"type":"object","properties":{"kind":{"type":"string","const":"action"},"actionId":{"type":"string","minLength":1,"maxLength":255},"direction":{"anyOf":[{"type":"string","enum":["s","se","e","ne","n","nw","w","sw"]},{"type":"null"}]},"batchId":{"type":"string","minLength":1,"maxLength":255},"retryOfGenerationId":{"type":"string","minLength":1,"maxLength":255}},"required":["kind","actionId"],"additionalProperties":false}]},"projectId":{"type":"string","minLength":1,"maxLength":255},"folderId":{"anyOf":[{"type":"string","minLength":1,"maxLength":255},{"type":"null"}]},"styleReferenceAssetId":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"}},"required":["gridSize","prompts"],"additionalProperties":false},"webhookUrl":{"type":"string","format":"uri","maxLength":2048}},"description":"Create a 4, 9 or 16-slot prop grid with one nonempty prompt per slot and exactly one art style source. See /docs/environments/props.","x-available":true,"examples":[{"operation":"generate_props","input":{"gridSize":4,"prompts":["Iron sword","Wooden shield","Healing potion","Gold coin"],"stylePresetId":"16-bit-pixel"}}]},{"type":"object","additionalProperties":false,"required":["operation","input"],"properties":{"operation":{"const":"extract_scene_assets","type":"string"},"input":{"$schema":"https://json-schema.org/draft/2020-12/schema","oneOf":[{"type":"object","properties":{"characterId":{"type":"string","minLength":1,"maxLength":255},"characterTarget":{"oneOf":[{"type":"object","properties":{"kind":{"type":"string","const":"asset"},"slot":{"type":"string","enum":["design","sheet","direction","expression","prop","part","reference","other"]},"direction":{"anyOf":[{"type":"string","enum":["s","se","e","ne","n","nw","w","sw"]},{"type":"null"}]},"designAssetId":{"type":"string","minLength":1,"maxLength":255}},"required":["kind","slot"],"additionalProperties":false},{"type":"object","properties":{"kind":{"type":"string","const":"action"},"actionId":{"type":"string","minLength":1,"maxLength":255},"direction":{"anyOf":[{"type":"string","enum":["s","se","e","ne","n","nw","w","sw"]},{"type":"null"}]},"batchId":{"type":"string","minLength":1,"maxLength":255},"retryOfGenerationId":{"type":"string","minLength":1,"maxLength":255}},"required":["kind","actionId"],"additionalProperties":false}]},"projectId":{"type":"string","minLength":1,"maxLength":255},"folderId":{"anyOf":[{"type":"string","minLength":1,"maxLength":255},{"type":"null"}]},"version":{"type":"number","const":3},"resolution":{"type":"string","enum":["2k","4k"]},"mode":{"type":"string","const":"auto"},"inputAssetId":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"}},"required":["version","resolution","mode","inputAssetId"],"additionalProperties":false},{"type":"object","properties":{"characterId":{"type":"string","minLength":1,"maxLength":255},"characterTarget":{"oneOf":[{"type":"object","properties":{"kind":{"type":"string","const":"asset"},"slot":{"type":"string","enum":["design","sheet","direction","expression","prop","part","reference","other"]},"direction":{"anyOf":[{"type":"string","enum":["s","se","e","ne","n","nw","w","sw"]},{"type":"null"}]},"designAssetId":{"type":"string","minLength":1,"maxLength":255}},"required":["kind","slot"],"additionalProperties":false},{"type":"object","properties":{"kind":{"type":"string","const":"action"},"actionId":{"type":"string","minLength":1,"maxLength":255},"direction":{"anyOf":[{"type":"string","enum":["s","se","e","ne","n","nw","w","sw"]},{"type":"null"}]},"batchId":{"type":"string","minLength":1,"maxLength":255},"retryOfGenerationId":{"type":"string","minLength":1,"maxLength":255}},"required":["kind","actionId"],"additionalProperties":false}]},"projectId":{"type":"string","minLength":1,"maxLength":255},"folderId":{"anyOf":[{"type":"string","minLength":1,"maxLength":255},{"type":"null"}]},"version":{"type":"number","const":3},"resolution":{"type":"string","enum":["2k","4k"]},"mode":{"type":"string","const":"manual"},"points":{"minItems":1,"maxItems":32,"type":"array","items":{"type":"object","properties":{"x":{"type":"number","minimum":0,"maximum":1000},"y":{"type":"number","minimum":0,"maximum":1000}},"required":["x","y"]}},"inputAssetId":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"markedAssetId":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"}},"required":["version","resolution","mode","points","inputAssetId","markedAssetId"],"additionalProperties":false},{"type":"object","properties":{"characterId":{"type":"string","minLength":1,"maxLength":255},"characterTarget":{"oneOf":[{"type":"object","properties":{"kind":{"type":"string","const":"asset"},"slot":{"type":"string","enum":["design","sheet","direction","expression","prop","part","reference","other"]},"direction":{"anyOf":[{"type":"string","enum":["s","se","e","ne","n","nw","w","sw"]},{"type":"null"}]},"designAssetId":{"type":"string","minLength":1,"maxLength":255}},"required":["kind","slot"],"additionalProperties":false},{"type":"object","properties":{"kind":{"type":"string","const":"action"},"actionId":{"type":"string","minLength":1,"maxLength":255},"direction":{"anyOf":[{"type":"string","enum":["s","se","e","ne","n","nw","w","sw"]},{"type":"null"}]},"batchId":{"type":"string","minLength":1,"maxLength":255},"retryOfGenerationId":{"type":"string","minLength":1,"maxLength":255}},"required":["kind","actionId"],"additionalProperties":false}]},"projectId":{"type":"string","minLength":1,"maxLength":255},"folderId":{"anyOf":[{"type":"string","minLength":1,"maxLength":255},{"type":"null"}]},"version":{"type":"number","const":3},"resolution":{"type":"string","enum":["2k","4k"]},"mode":{"type":"string","const":"box"},"boxes":{"minItems":1,"maxItems":32,"type":"array","items":{"type":"array","prefixItems":[{"type":"number","minimum":0,"maximum":1000},{"type":"number","minimum":0,"maximum":1000},{"type":"number","minimum":0,"maximum":1000},{"type":"number","minimum":0,"maximum":1000}]}},"inputAssetId":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"markedAssetId":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"}},"required":["version","resolution","mode","boxes","inputAssetId","markedAssetId"],"additionalProperties":false}]},"webhookUrl":{"type":"string","format":"uri","maxLength":2048}},"description":"Extract reusable objects from a ready scene image. Manual and box modes also require an uploaded marked image. See /docs/environments/asset-extraction.","x-available":true,"examples":[{"operation":"extract_scene_assets","input":{"version":3,"mode":"auto","inputAssetId":"00000000-0000-4000-8000-000000000001","resolution":"2k"}}]},{"type":"object","additionalProperties":false,"required":["operation","input"],"properties":{"operation":{"const":"generate_music","type":"string"},"input":{"$schema":"https://json-schema.org/draft/2020-12/schema","allOf":[{"type":"object","properties":{"characterId":{"type":"string","minLength":1,"maxLength":255},"characterTarget":{"oneOf":[{"type":"object","properties":{"kind":{"type":"string","const":"asset"},"slot":{"type":"string","enum":["design","sheet","direction","expression","prop","part","reference","other"]},"direction":{"anyOf":[{"type":"string","enum":["s","se","e","ne","n","nw","w","sw"]},{"type":"null"}]},"designAssetId":{"type":"string","minLength":1,"maxLength":255}},"required":["kind","slot"],"additionalProperties":false},{"type":"object","properties":{"kind":{"type":"string","const":"action"},"actionId":{"type":"string","minLength":1,"maxLength":255},"direction":{"anyOf":[{"type":"string","enum":["s","se","e","ne","n","nw","w","sw"]},{"type":"null"}]},"batchId":{"type":"string","minLength":1,"maxLength":255},"retryOfGenerationId":{"type":"string","minLength":1,"maxLength":255}},"required":["kind","actionId"],"additionalProperties":false}]},"projectId":{"type":"string","minLength":1,"maxLength":255},"folderId":{"anyOf":[{"type":"string","minLength":1,"maxLength":255},{"type":"null"}]}}},{"type":"object","properties":{"title":{"default":"","type":"string","maxLength":120},"prompt":{"type":"string","minLength":3,"maxLength":800},"instrumental":{"default":true,"type":"boolean"},"lyrics":{"default":"","type":"string","maxLength":5000}},"required":["prompt"]},{"oneOf":[{"type":"object","properties":{"engine":{"type":"string","const":"lyria"},"durationSeconds":{"default":60,"type":"integer","minimum":1,"maximum":240},"bpm":{"type":"integer","minimum":1,"maximum":9007199254740991}},"required":["engine"]},{"type":"object","properties":{"engine":{"type":"string","const":"suno"},"title":{"default":"","type":"string","maxLength":80}},"required":["engine"]}]}]},"webhookUrl":{"type":"string","format":"uri","maxLength":2048}},"description":"Create game music with Lyria or Suno. Instrumental mode needs no lyrics; songs require lyrics. See /docs/audio/music.","x-available":true,"examples":[{"operation":"generate_music","input":{"engine":"lyria","prompt":"Quiet forest exploration, acoustic guitar and soft strings","durationSeconds":60,"instrumental":true}}]},{"type":"object","additionalProperties":false,"required":["operation","input"],"properties":{"operation":{"const":"generate_sound_effects","type":"string"},"input":{"$schema":"https://json-schema.org/draft/2020-12/schema","allOf":[{"type":"object","properties":{"characterId":{"type":"string","minLength":1,"maxLength":255},"characterTarget":{"oneOf":[{"type":"object","properties":{"kind":{"type":"string","const":"asset"},"slot":{"type":"string","enum":["design","sheet","direction","expression","prop","part","reference","other"]},"direction":{"anyOf":[{"type":"string","enum":["s","se","e","ne","n","nw","w","sw"]},{"type":"null"}]},"designAssetId":{"type":"string","minLength":1,"maxLength":255}},"required":["kind","slot"],"additionalProperties":false},{"type":"object","properties":{"kind":{"type":"string","const":"action"},"actionId":{"type":"string","minLength":1,"maxLength":255},"direction":{"anyOf":[{"type":"string","enum":["s","se","e","ne","n","nw","w","sw"]},{"type":"null"}]},"batchId":{"type":"string","minLength":1,"maxLength":255},"retryOfGenerationId":{"type":"string","minLength":1,"maxLength":255}},"required":["kind","actionId"],"additionalProperties":false}]},"projectId":{"type":"string","minLength":1,"maxLength":255},"folderId":{"anyOf":[{"type":"string","minLength":1,"maxLength":255},{"type":"null"}]}}},{"type":"object","properties":{"prompt":{"type":"string","minLength":3,"maxLength":450},"durationSeconds":{"type":"integer","minimum":1,"maximum":22},"promptInfluence":{"default":0.3,"type":"number","minimum":0,"maximum":1},"loop":{"default":false,"type":"boolean"},"counts":{"default":{"sonilo-v1.1":0,"elevenlabs-sound-effects-v2":1,"stable-audio-3-small-sfx":0},"type":"object","properties":{"sonilo-v1.1":{"type":"integer","minimum":0,"maximum":10},"elevenlabs-sound-effects-v2":{"type":"integer","minimum":0,"maximum":10},"stable-audio-3-small-sfx":{"type":"integer","minimum":0,"maximum":10}},"required":["sonilo-v1.1","elevenlabs-sound-effects-v2","stable-audio-3-small-sfx"]}},"required":["prompt","durationSeconds"]}]},"webhookUrl":{"type":"string","format":"uri","maxLength":2048}},"description":"Generate 1 to 10 short sound effects across the selected models. Each variant is charged by requested duration and has an independent result. See /docs/audio/sound-effects.","x-available":false,"examples":[{"operation":"generate_sound_effects","input":{"prompt":"A magical sword rings against a stone shield","durationSeconds":3}}]},{"type":"object","properties":{"inputAssetId":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"prompt":{"type":"string","minLength":1,"maxLength":1500},"mode":{"default":"classic","type":"string","enum":["classic","pro"]},"frameCount":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"fps":{"type":"integer","minimum":4,"maximum":12},"originalWidth":{"type":"integer","minimum":1,"maximum":20000},"originalHeight":{"type":"integer","minimum":1,"maximum":20000},"loop":{"default":false,"type":"boolean"},"removeBackground":{"default":false,"type":"boolean"},"enhancePrompt":{"default":false,"type":"boolean"},"intelligentFrameCount":{"default":false,"type":"boolean"},"webhookUrl":{"type":"string","maxLength":2048,"format":"uri"}},"required":["inputAssetId","prompt","frameCount","fps","originalWidth","originalHeight"],"additionalProperties":false,"description":"Legacy Classic/Pro request shape; existing integrations remain supported."}]}}}},"responses":{"202":{"description":"Accepted; poll statusUrl. This is not completion.","content":{"application/json":{"schema":{"type":"object","properties":{"taskId":{"type":"string","minLength":1,"maxLength":128,"pattern":"^[A-Za-z0-9_-]+$"},"status":{"type":"string","const":"accepted"},"statusUrl":{"type":"string"},"pollAfterSeconds":{"type":"number","const":10},"replayed":{"type":"boolean"}},"required":["taskId","status","statusUrl","pollAfterSeconds","replayed"],"additionalProperties":false}}}},"default":{"description":"Request rejected or temporarily unavailable. Preserve the original idempotency key when recovering a submission.","content":{"application/json":{"schema":{"type":"object","required":["error","code","retryable","recovery"],"properties":{"error":{"type":"string"},"code":{"type":"string"},"retryable":{"type":"boolean"},"recovery":{"type":"string"},"fields":{"type":"array","items":{"type":"object","properties":{"path":{"type":"array","items":{"type":"string"}},"message":{"type":"string"}}}}}}}}}}}},"/tasks/{taskId}":{"get":{"operationId":"get_task","parameters":[{"name":"taskId","in":"path","required":true,"schema":{"type":"string","minLength":1,"maxLength":128}}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","properties":{"taskId":{"type":"string"},"operation":{"type":"string"},"status":{"type":"string","enum":["processing","completed","partially_completed","failed","parameter_failed"]},"terminal":{"type":"boolean"},"createdAt":{"type":"string"},"updatedAt":{"type":"string"},"pollAfterSeconds":{"type":"number"},"progress":{"type":"object","properties":{"total":{"type":"number"},"processing":{"type":"number"},"completed":{"type":"number"},"failed":{"type":"number"}},"required":["total","processing","completed","failed"],"additionalProperties":false},"items":{"type":"array","items":{"type":"object","properties":{"taskId":{"type":"string"},"status":{"type":"string","enum":["processing","completed","failed","parameter_failed"]},"creditsCost":{"type":"number"},"refunded":{"type":"boolean"},"assets":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string"},"fileName":{"type":"string"},"contentType":{"type":"string"}},"required":["id","fileName","contentType"],"additionalProperties":false}},"error":{"anyOf":[{"type":"object","properties":{"code":{"type":"string"},"message":{"type":"string"},"retryable":{"type":"boolean"},"recovery":{"type":"string"}},"required":["code","message","retryable","recovery"],"additionalProperties":false},{"type":"null"}]}},"required":["taskId","status","creditsCost","refunded","assets","error"],"additionalProperties":false}},"assets":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string"},"fileName":{"type":"string"},"contentType":{"type":"string"}},"required":["id","fileName","contentType"],"additionalProperties":false}},"webhook":{"type":"object","properties":{"status":{"anyOf":[{"type":"string","enum":["pending","delivered","failed"]},{"type":"null"}]},"eventId":{"anyOf":[{"type":"string"},{"type":"null"}]},"attempts":{"type":"number"}},"required":["status","eventId","attempts"],"additionalProperties":false}},"required":["taskId","operation","status","terminal","createdAt","updatedAt","pollAfterSeconds","progress","items","assets","webhook"],"additionalProperties":false}}}},"default":{"description":"Request rejected or temporarily unavailable. Preserve the original idempotency key when recovering a submission.","content":{"application/json":{"schema":{"type":"object","required":["error","code","retryable","recovery"],"properties":{"error":{"type":"string"},"code":{"type":"string"},"retryable":{"type":"boolean"},"recovery":{"type":"string"},"fields":{"type":"array","items":{"type":"object","properties":{"path":{"type":"array","items":{"type":"string"}},"message":{"type":"string"}}}}}}}}}}}},"/capabilities":{"get":{"operationId":"get_capabilities","responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","properties":{"version":{"type":"string"},"transport":{"type":"string","const":"http-json"},"operations":{"type":"array","items":{"type":"object","properties":{"operation":{"type":"string"},"title":{"type":"string"},"description":{"type":"string"},"available":{"type":"boolean"},"inputSchema":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{}},"example":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{}},"docs":{"type":"string"}},"required":["operation","title","description","available","inputSchema","example","docs"],"additionalProperties":false}},"mapTypes":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{}},"classicFrameCounts":{"type":"array","items":{"type":"number"}}},"required":["version","transport","operations","mapTypes","classicFrameCounts"],"additionalProperties":false}}}},"default":{"description":"Request rejected or temporarily unavailable. Preserve the original idempotency key when recovering a submission.","content":{"application/json":{"schema":{"type":"object","required":["error","code","retryable","recovery"],"properties":{"error":{"type":"string"},"code":{"type":"string"},"retryable":{"type":"boolean"},"recovery":{"type":"string"},"fields":{"type":"array","items":{"type":"object","properties":{"path":{"type":"array","items":{"type":"string"}},"message":{"type":"string"}}}}}}}}}}}},"/estimates":{"post":{"operationId":"estimate_cost","requestBody":{"required":true,"content":{"application/json":{"schema":{"oneOf":[{"type":"object","additionalProperties":false,"required":["operation","input"],"properties":{"operation":{"const":"generate_character","type":"string"},"input":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"version":{"default":2,"type":"number","const":2},"outputType":{"type":"string","enum":["portrait","full-body","character-design-sheet","four-view-turnaround","equipment-prop-sheet","complete-character-bible"]},"character":{"type":"object","properties":{"narrativeRole":{"type":"string","enum":["hero","companion","rival","enemy","boss","supporting-character"]},"classOccupation":{"type":"string","maxLength":160},"gameGenre":{"type":"string","enum":["rpg","strategy-tactics","action-adventure","platformer","visual-novel","cozy-life-sim","roguelike"]},"facing":{"type":"string","enum":["front","three-quarter","side"]},"cameraPerspective":{"type":"string","enum":["eye-level","top-down","isometric"]},"ageRange":{"type":"string","maxLength":160},"bodyType":{"type":"string","maxLength":160},"hairstyle":{"type":"string","maxLength":160},"expression":{"type":"string","maxLength":160},"outfit":{"type":"string","maxLength":160},"equipment":{"type":"string","maxLength":160},"materials":{"type":"string","maxLength":160},"primaryColor":{"type":"string","maxLength":160},"silhouetteKeywords":{"type":"string","maxLength":160},"personality":{"type":"string","maxLength":160},"backstory":{"type":"string","maxLength":160},"faction":{"type":"string","maxLength":160}}},"style":{"type":"object","properties":{"source":{"type":"string","enum":["identity","preset","custom","reference"]},"preset":{"type":"string","enum":["pixel-16bit","pixel-32bit","hd-2d","anime-cel-shaded","gouache-animation","hand-painted","chibi","realistic-concept-art"]},"templateId":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"customDirection":{"type":"string","maxLength":500},"referenceAssetIds":{"maxItems":3,"type":"array","items":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"}}},"required":["preset"]},"output":{"type":"object","properties":{"resolution":{"type":"string","enum":["1k","2k","4k"]},"background":{"description":"Character outputs always use a transparent background.","default":"transparent","type":"string","const":"transparent"}},"required":["resolution"]},"additionalDirection":{"type":"string","maxLength":500},"projectId":{"type":"string","minLength":1,"maxLength":255},"folderId":{"anyOf":[{"type":"string","minLength":1,"maxLength":255},{"type":"null"}]},"characterId":{"type":"string","minLength":1,"maxLength":255},"characterTarget":{"oneOf":[{"type":"object","properties":{"kind":{"type":"string","const":"asset"},"slot":{"type":"string","enum":["design","sheet","direction","expression","prop","part","reference","other"]},"direction":{"anyOf":[{"type":"string","enum":["s","se","e","ne","n","nw","w","sw"]},{"type":"null"}]},"designAssetId":{"type":"string","minLength":1,"maxLength":255}},"required":["kind","slot"],"additionalProperties":false},{"type":"object","properties":{"kind":{"type":"string","const":"action"},"actionId":{"type":"string","minLength":1,"maxLength":255},"direction":{"anyOf":[{"type":"string","enum":["s","se","e","ne","n","nw","w","sw"]},{"type":"null"}]},"batchId":{"type":"string","minLength":1,"maxLength":255},"retryOfGenerationId":{"type":"string","minLength":1,"maxLength":255}},"required":["kind","actionId"],"additionalProperties":false}]},"inputAssetId":{"description":"Optional ready character image to preserve identity.","type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"}},"required":["outputType","character","style","output"],"additionalProperties":false},"webhookUrl":{"type":"string","format":"uri","maxLength":2048}},"description":"Create a character concept or design sheet from a brief; optional ready image assets preserve identity or art style. See /docs/characters/character-design.","x-available":true,"examples":[{"operation":"generate_character","input":{"outputType":"full-body","character":{"classOccupation":"Forest ranger","outfit":"Green cloak and leather boots"},"style":{"source":"preset","preset":"pixel-16bit"},"output":{"resolution":"1k","background":"transparent"}}}]},{"type":"object","additionalProperties":false,"required":["operation","input"],"properties":{"operation":{"const":"generate_sprite_motion","type":"string"},"input":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"prompt":{"type":"string","minLength":1,"maxLength":1500},"mode":{"default":"classic","type":"string","enum":["classic","pro"]},"backgroundRemovalMethod":{"type":"string","enum":["ai","cpu"]},"loop":{"default":false,"type":"boolean"},"motionDirection":{"type":"string","enum":["horizontal","square","vertical"]},"frameCount":{"description":"Classic supports the advertised frame options; Pro requires 32. Defaults to 8 for Classic or 32 for Pro.","type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"intelligentFrameCount":{"default":false,"type":"boolean"},"fps":{"default":8,"type":"integer","minimum":4,"maximum":12},"originalWidth":{"description":"Legacy hint; the service reads the asset dimensions.","type":"integer","exclusiveMinimum":0,"maximum":9007199254740991},"originalHeight":{"description":"Legacy hint; the service reads the asset dimensions.","type":"integer","exclusiveMinimum":0,"maximum":9007199254740991},"removeBackground":{"default":false,"type":"boolean"},"enhancePrompt":{"default":false,"type":"boolean"},"projectId":{"type":"string","minLength":1,"maxLength":255},"folderId":{"anyOf":[{"type":"string","minLength":1,"maxLength":255},{"type":"null"}]},"characterId":{"type":"string","minLength":1,"maxLength":255},"characterTarget":{"oneOf":[{"type":"object","properties":{"kind":{"type":"string","const":"asset"},"slot":{"type":"string","enum":["design","sheet","direction","expression","prop","part","reference","other"]},"direction":{"anyOf":[{"type":"string","enum":["s","se","e","ne","n","nw","w","sw"]},{"type":"null"}]},"designAssetId":{"type":"string","minLength":1,"maxLength":255}},"required":["kind","slot"],"additionalProperties":false},{"type":"object","properties":{"kind":{"type":"string","const":"action"},"actionId":{"type":"string","minLength":1,"maxLength":255},"direction":{"anyOf":[{"type":"string","enum":["s","se","e","ne","n","nw","w","sw"]},{"type":"null"}]},"batchId":{"type":"string","minLength":1,"maxLength":255},"retryOfGenerationId":{"type":"string","minLength":1,"maxLength":255}},"required":["kind","actionId"],"additionalProperties":false}]},"inputAssetId":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"}},"required":["prompt","inputAssetId"],"additionalProperties":false},"webhookUrl":{"type":"string","format":"uri","maxLength":2048}},"description":"Animate a ready character image using Classic or Pro mode. Use a full-body source with room around the character. See /docs/characters/pro-animation.","x-available":true,"examples":[{"operation":"generate_sprite_motion","input":{"inputAssetId":"00000000-0000-4000-8000-000000000001","mode":"pro","prompt":"Walk in place, facing right"}}]},{"type":"object","additionalProperties":false,"required":["operation","input"],"properties":{"operation":{"const":"generate_direction_sprites","type":"string"},"input":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"directions":{"anyOf":[{"type":"number","const":4},{"type":"number","const":8}]},"cameraPerspective":{"default":"auto","type":"string","enum":["auto","top-down","isometric"]},"prompt":{"default":"","type":"string","maxLength":2000},"removeBackground":{"default":false,"type":"boolean"},"characterId":{"type":"string","minLength":1,"maxLength":255},"characterTarget":{"oneOf":[{"type":"object","properties":{"kind":{"type":"string","const":"asset"},"slot":{"type":"string","enum":["design","sheet","direction","expression","prop","part","reference","other"]},"direction":{"anyOf":[{"type":"string","enum":["s","se","e","ne","n","nw","w","sw"]},{"type":"null"}]},"designAssetId":{"type":"string","minLength":1,"maxLength":255}},"required":["kind","slot"],"additionalProperties":false},{"type":"object","properties":{"kind":{"type":"string","const":"action"},"actionId":{"type":"string","minLength":1,"maxLength":255},"direction":{"anyOf":[{"type":"string","enum":["s","se","e","ne","n","nw","w","sw"]},{"type":"null"}]},"batchId":{"type":"string","minLength":1,"maxLength":255},"retryOfGenerationId":{"type":"string","minLength":1,"maxLength":255}},"required":["kind","actionId"],"additionalProperties":false}]},"projectId":{"type":"string","minLength":1,"maxLength":255},"folderId":{"anyOf":[{"type":"string","minLength":1,"maxLength":255},{"type":"null"}]},"inputAssetId":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"}},"required":["directions","inputAssetId"],"additionalProperties":false},"webhookUrl":{"type":"string","format":"uri","maxLength":2048}},"description":"Create four or eight matching character views from a ready image asset. See /docs/characters/direction-sprites.","x-available":true,"examples":[{"operation":"generate_direction_sprites","input":{"inputAssetId":"00000000-0000-4000-8000-000000000001","directions":4}}]},{"type":"object","additionalProperties":false,"required":["operation","input"],"properties":{"operation":{"const":"generate_direction_animation","type":"string"},"input":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"mode":{"default":"pro","type":"string","const":"pro"},"characterId":{"type":"string","minLength":1,"maxLength":255},"characterTarget":{"oneOf":[{"type":"object","properties":{"kind":{"type":"string","const":"asset"},"slot":{"type":"string","enum":["design","sheet","direction","expression","prop","part","reference","other"]},"direction":{"anyOf":[{"type":"string","enum":["s","se","e","ne","n","nw","w","sw"]},{"type":"null"}]},"designAssetId":{"type":"string","minLength":1,"maxLength":255}},"required":["kind","slot"],"additionalProperties":false},{"type":"object","properties":{"kind":{"type":"string","const":"action"},"actionId":{"type":"string","minLength":1,"maxLength":255},"direction":{"anyOf":[{"type":"string","enum":["s","se","e","ne","n","nw","w","sw"]},{"type":"null"}]},"batchId":{"type":"string","minLength":1,"maxLength":255},"retryOfGenerationId":{"type":"string","minLength":1,"maxLength":255}},"required":["kind","actionId"],"additionalProperties":false}]},"retryOfBatchId":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"projectId":{"type":"string","minLength":1,"maxLength":255},"folderId":{"anyOf":[{"type":"string","minLength":1,"maxLength":255},{"type":"null"}]},"motion":{"type":"string","enum":["idle","walk","run","dash","roll","crouch","punch","hit","interact","death"]},"directions":{"minItems":1,"maxItems":8,"type":"array","items":{"type":"string","enum":["N","NE","E","SE","S","SW","W","NW"]}},"inputAssetId":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"}},"required":["motion","directions","inputAssetId"],"additionalProperties":false},"webhookUrl":{"type":"string","format":"uri","maxLength":2048}},"description":"Animate one character action in selected compass directions. Each direction is billed separately and can finish or fail independently. See /docs/characters/direction-animation.","x-available":false,"examples":[{"operation":"generate_direction_animation","input":{"inputAssetId":"00000000-0000-4000-8000-000000000001","motion":"walk","directions":["N","E","S","W"]}}]},{"type":"object","additionalProperties":false,"required":["operation","input"],"properties":{"operation":{"const":"generate_npcs","type":"string"},"input":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"templateId":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"stylePreset":{"type":"string","enum":["16-bit-pixel","modern-anime","cyberpunk-chibi","dark-fantasy"]},"stylePrompt":{"type":"string","minLength":3,"maxLength":1000},"archetypes":{"maxItems":20,"type":"array","items":{"type":"string","minLength":1,"maxLength":50}},"framing":{"type":"string","enum":["bust","full-body","avatar"]},"mixAges":{"default":true,"type":"boolean"},"mixGenders":{"default":true,"type":"boolean"},"projectId":{"type":"string","minLength":1,"maxLength":255},"folderId":{"anyOf":[{"type":"string","minLength":1,"maxLength":255},{"type":"null"}]},"styleReferenceAssetId":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"}},"required":["archetypes","framing"],"additionalProperties":false},"webhookUrl":{"type":"string","format":"uri","maxLength":2048}},"description":"Create a coordinated cast of 4, 9 or 16 NPCs in one generation. Choose exactly one art style source. See /docs/characters/batch-npc.","x-available":true,"examples":[{"operation":"generate_npcs","input":{"stylePreset":"16-bit-pixel","archetypes":["Blacksmith","Healer","Merchant","Guard"],"framing":"full-body"}}]},{"type":"object","additionalProperties":false,"required":["operation","input"],"properties":{"operation":{"const":"generate_map","type":"string"},"input":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"version":{"default":2,"type":"number","const":2},"mapType":{"type":"string","enum":["world","region","settlement","interior","dungeon","top-down-level","side-scroller","metroidvania","roguelike-floor","tactics","tower-defense","arena","battle-background"]},"details":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{"anyOf":[{"type":"string","maxLength":120},{"type":"number"},{"type":"boolean"},{"maxItems":12,"type":"array","items":{"type":"string","maxLength":120}}]}},"cameraPerspective":{"default":"auto","type":"string","enum":["auto","top-down","oblique","isometric"]},"labels":{"type":"boolean"},"gridOverlay":{"type":"boolean"},"season":{"type":"string","enum":["auto","spring","summer","autumn","winter","day","night","dawn","dusk"]},"customPrompt":{"type":"string","maxLength":500},"style":{"type":"object","properties":{"preset":{"type":"string","enum":["pixel-16bit","pixel-32bit","hand-drawn-2d","anime-jrpg","sci-fi-topdown","parchment","watercolor","realistic-topdown"]},"templateId":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"customDirection":{"type":"string","maxLength":600},"referenceAnalysis":{"type":"object","properties":{"summary":{"type":"string","minLength":1,"maxLength":600},"palette":{"maxItems":6,"type":"array","items":{"type":"string","minLength":1,"maxLength":80}},"rendering":{"type":"string","minLength":1,"maxLength":160},"linework":{"type":"string","minLength":1,"maxLength":160},"lighting":{"type":"string","minLength":1,"maxLength":160},"detailDensity":{"type":"string","minLength":1,"maxLength":160},"perspective":{"type":"string","minLength":1,"maxLength":160},"coherence":{"type":"string","enum":["high","mixed"]}},"required":["summary","palette","rendering","linework","lighting","detailDensity","perspective","coherence"]},"referenceAssetIds":{"maxItems":3,"type":"array","items":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"}}},"required":["preset"]},"output":{"type":"object","properties":{"aspectRatio":{"type":"string","enum":["16:9","9:16","21:9","9:21","2:1","1:2","4:3","3:4","3:2","2:3"]},"resolution":{"type":"string","enum":["1k","2k","4k"]}},"required":["aspectRatio","resolution"]},"examplePresetId":{"type":"string","minLength":1,"maxLength":120},"seed":{"type":"integer","minimum":0,"maximum":9007199254740991},"characterId":{"type":"string","minLength":1,"maxLength":255},"characterTarget":{"oneOf":[{"type":"object","properties":{"kind":{"type":"string","const":"asset"},"slot":{"type":"string","enum":["design","sheet","direction","expression","prop","part","reference","other"]},"direction":{"anyOf":[{"type":"string","enum":["s","se","e","ne","n","nw","w","sw"]},{"type":"null"}]},"designAssetId":{"type":"string","minLength":1,"maxLength":255}},"required":["kind","slot"],"additionalProperties":false},{"type":"object","properties":{"kind":{"type":"string","const":"action"},"actionId":{"type":"string","minLength":1,"maxLength":255},"direction":{"anyOf":[{"type":"string","enum":["s","se","e","ne","n","nw","w","sw"]},{"type":"null"}]},"batchId":{"type":"string","minLength":1,"maxLength":255},"retryOfGenerationId":{"type":"string","minLength":1,"maxLength":255}},"required":["kind","actionId"],"additionalProperties":false}]},"projectId":{"type":"string","minLength":1,"maxLength":255},"folderId":{"anyOf":[{"type":"string","minLength":1,"maxLength":255},{"type":"null"}]}},"required":["mapType","details","style","output"],"additionalProperties":false},"webhookUrl":{"type":"string","format":"uri","maxLength":2048}},"description":"Generate a world, region, settlement or level map. Detail fields depend on mapType; inspect capabilities for the valid options. See /docs/environments/maps.","x-available":true,"examples":[{"operation":"generate_map","input":{"mapType":"world","details":{"worldShape":"continent","biomeMix":"balanced","boundaries":"natural","routeNetwork":"connected","waterCoverage":"medium","landmarkDensity":"medium"},"style":{"preset":"pixel-16bit"},"output":{"resolution":"1k","aspectRatio":"16:9"}}}]},{"type":"object","additionalProperties":false,"required":["operation","input"],"properties":{"operation":{"const":"generate_tileset","type":"string"},"input":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"characterId":{"type":"string","minLength":1,"maxLength":255},"characterTarget":{"oneOf":[{"type":"object","properties":{"kind":{"type":"string","const":"asset"},"slot":{"type":"string","enum":["design","sheet","direction","expression","prop","part","reference","other"]},"direction":{"anyOf":[{"type":"string","enum":["s","se","e","ne","n","nw","w","sw"]},{"type":"null"}]},"designAssetId":{"type":"string","minLength":1,"maxLength":255}},"required":["kind","slot"],"additionalProperties":false},{"type":"object","properties":{"kind":{"type":"string","const":"action"},"actionId":{"type":"string","minLength":1,"maxLength":255},"direction":{"anyOf":[{"type":"string","enum":["s","se","e","ne","n","nw","w","sw"]},{"type":"null"}]},"batchId":{"type":"string","minLength":1,"maxLength":255},"retryOfGenerationId":{"type":"string","minLength":1,"maxLength":255}},"required":["kind","actionId"],"additionalProperties":false}]},"projectId":{"type":"string","minLength":1,"maxLength":255},"folderId":{"anyOf":[{"type":"string","minLength":1,"maxLength":255},{"type":"null"}]},"layoutId":{"type":"string","const":"corner16-v2"},"roughness":{"default":25,"type":"integer","minimum":0,"maximum":100},"connection":{"default":50,"type":"integer","minimum":0,"maximum":100},"heightPercent":{"type":"integer","minimum":0,"maximum":25},"outputResolution":{"type":"string","enum":["1K","2K"]},"style":{"default":{"source":"preset","preset":"pixel-art","customDirection":"","referenceAssetIds":[]},"type":"object","properties":{"source":{"type":"string","enum":["preset","custom","reference"]},"preset":{"default":"pixel-art","type":"string","enum":["pixel-art","pixel-8bit","pixel-32bit","gba-rpg","handheld-monochrome","cozy-pastel","dark-fantasy","anime-jrpg","hand-painted-pixel","neon-cyberpunk","comic-pixel","minimal-flat"]},"customDirection":{"default":"","type":"string","maxLength":320},"referenceAssetIds":{"default":[],"maxItems":1,"type":"array","items":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"}}},"required":["source"]},"material":{"type":"string","enum":["grass","dirt","stone","sand","snow"]},"background":{"type":"string","enum":["transparent","water","lava"]},"tileSize":{"type":"number","const":32},"detail":{"default":"","type":"string","maxLength":500},"regions":{"type":"object","properties":{"terrain":{"type":"object","properties":{"mode":{"type":"string","enum":["transparent","material"]},"description":{"type":"string","maxLength":500}},"required":["mode","description"]},"background":{"type":"object","properties":{"mode":{"type":"string","enum":["transparent","material"]},"description":{"type":"string","maxLength":500}},"required":["mode","description"]},"cliff":{"type":"object","properties":{"mode":{"type":"string","const":"material"},"description":{"type":"string","maxLength":500}},"required":["mode","description"]}},"required":["terrain","background"]}},"required":["layoutId","material","background","tileSize"],"additionalProperties":false},"webhookUrl":{"type":"string","format":"uri","maxLength":2048}},"description":"Create a fixed four-corner terrain atlas. Use ready style reference assets when source is reference. See /docs/environments/tilesets.","x-available":true,"examples":[{"operation":"generate_tileset","input":{"layoutId":"corner16-v2","material":"grass","background":"transparent","tileSize":32,"outputResolution":"1K"}}]},{"type":"object","additionalProperties":false,"required":["operation","input"],"properties":{"operation":{"const":"generate_props","type":"string"},"input":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"templateId":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"stylePrompt":{"type":"string","minLength":3,"maxLength":1000},"gridSize":{"anyOf":[{"type":"number","const":4},{"type":"number","const":9},{"type":"number","const":16}]},"prompts":{"minItems":1,"maxItems":16,"type":"array","items":{"type":"string","maxLength":200}},"stylePresetId":{"type":"string","enum":["16-bit-pixel","modern-anime","cyberpunk-chibi","dark-fantasy"]},"characterId":{"type":"string","minLength":1,"maxLength":255},"characterTarget":{"oneOf":[{"type":"object","properties":{"kind":{"type":"string","const":"asset"},"slot":{"type":"string","enum":["design","sheet","direction","expression","prop","part","reference","other"]},"direction":{"anyOf":[{"type":"string","enum":["s","se","e","ne","n","nw","w","sw"]},{"type":"null"}]},"designAssetId":{"type":"string","minLength":1,"maxLength":255}},"required":["kind","slot"],"additionalProperties":false},{"type":"object","properties":{"kind":{"type":"string","const":"action"},"actionId":{"type":"string","minLength":1,"maxLength":255},"direction":{"anyOf":[{"type":"string","enum":["s","se","e","ne","n","nw","w","sw"]},{"type":"null"}]},"batchId":{"type":"string","minLength":1,"maxLength":255},"retryOfGenerationId":{"type":"string","minLength":1,"maxLength":255}},"required":["kind","actionId"],"additionalProperties":false}]},"projectId":{"type":"string","minLength":1,"maxLength":255},"folderId":{"anyOf":[{"type":"string","minLength":1,"maxLength":255},{"type":"null"}]},"styleReferenceAssetId":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"}},"required":["gridSize","prompts"],"additionalProperties":false},"webhookUrl":{"type":"string","format":"uri","maxLength":2048}},"description":"Create a 4, 9 or 16-slot prop grid with one nonempty prompt per slot and exactly one art style source. See /docs/environments/props.","x-available":true,"examples":[{"operation":"generate_props","input":{"gridSize":4,"prompts":["Iron sword","Wooden shield","Healing potion","Gold coin"],"stylePresetId":"16-bit-pixel"}}]},{"type":"object","additionalProperties":false,"required":["operation","input"],"properties":{"operation":{"const":"extract_scene_assets","type":"string"},"input":{"$schema":"https://json-schema.org/draft/2020-12/schema","oneOf":[{"type":"object","properties":{"characterId":{"type":"string","minLength":1,"maxLength":255},"characterTarget":{"oneOf":[{"type":"object","properties":{"kind":{"type":"string","const":"asset"},"slot":{"type":"string","enum":["design","sheet","direction","expression","prop","part","reference","other"]},"direction":{"anyOf":[{"type":"string","enum":["s","se","e","ne","n","nw","w","sw"]},{"type":"null"}]},"designAssetId":{"type":"string","minLength":1,"maxLength":255}},"required":["kind","slot"],"additionalProperties":false},{"type":"object","properties":{"kind":{"type":"string","const":"action"},"actionId":{"type":"string","minLength":1,"maxLength":255},"direction":{"anyOf":[{"type":"string","enum":["s","se","e","ne","n","nw","w","sw"]},{"type":"null"}]},"batchId":{"type":"string","minLength":1,"maxLength":255},"retryOfGenerationId":{"type":"string","minLength":1,"maxLength":255}},"required":["kind","actionId"],"additionalProperties":false}]},"projectId":{"type":"string","minLength":1,"maxLength":255},"folderId":{"anyOf":[{"type":"string","minLength":1,"maxLength":255},{"type":"null"}]},"version":{"type":"number","const":3},"resolution":{"type":"string","enum":["2k","4k"]},"mode":{"type":"string","const":"auto"},"inputAssetId":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"}},"required":["version","resolution","mode","inputAssetId"],"additionalProperties":false},{"type":"object","properties":{"characterId":{"type":"string","minLength":1,"maxLength":255},"characterTarget":{"oneOf":[{"type":"object","properties":{"kind":{"type":"string","const":"asset"},"slot":{"type":"string","enum":["design","sheet","direction","expression","prop","part","reference","other"]},"direction":{"anyOf":[{"type":"string","enum":["s","se","e","ne","n","nw","w","sw"]},{"type":"null"}]},"designAssetId":{"type":"string","minLength":1,"maxLength":255}},"required":["kind","slot"],"additionalProperties":false},{"type":"object","properties":{"kind":{"type":"string","const":"action"},"actionId":{"type":"string","minLength":1,"maxLength":255},"direction":{"anyOf":[{"type":"string","enum":["s","se","e","ne","n","nw","w","sw"]},{"type":"null"}]},"batchId":{"type":"string","minLength":1,"maxLength":255},"retryOfGenerationId":{"type":"string","minLength":1,"maxLength":255}},"required":["kind","actionId"],"additionalProperties":false}]},"projectId":{"type":"string","minLength":1,"maxLength":255},"folderId":{"anyOf":[{"type":"string","minLength":1,"maxLength":255},{"type":"null"}]},"version":{"type":"number","const":3},"resolution":{"type":"string","enum":["2k","4k"]},"mode":{"type":"string","const":"manual"},"points":{"minItems":1,"maxItems":32,"type":"array","items":{"type":"object","properties":{"x":{"type":"number","minimum":0,"maximum":1000},"y":{"type":"number","minimum":0,"maximum":1000}},"required":["x","y"]}},"inputAssetId":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"markedAssetId":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"}},"required":["version","resolution","mode","points","inputAssetId","markedAssetId"],"additionalProperties":false},{"type":"object","properties":{"characterId":{"type":"string","minLength":1,"maxLength":255},"characterTarget":{"oneOf":[{"type":"object","properties":{"kind":{"type":"string","const":"asset"},"slot":{"type":"string","enum":["design","sheet","direction","expression","prop","part","reference","other"]},"direction":{"anyOf":[{"type":"string","enum":["s","se","e","ne","n","nw","w","sw"]},{"type":"null"}]},"designAssetId":{"type":"string","minLength":1,"maxLength":255}},"required":["kind","slot"],"additionalProperties":false},{"type":"object","properties":{"kind":{"type":"string","const":"action"},"actionId":{"type":"string","minLength":1,"maxLength":255},"direction":{"anyOf":[{"type":"string","enum":["s","se","e","ne","n","nw","w","sw"]},{"type":"null"}]},"batchId":{"type":"string","minLength":1,"maxLength":255},"retryOfGenerationId":{"type":"string","minLength":1,"maxLength":255}},"required":["kind","actionId"],"additionalProperties":false}]},"projectId":{"type":"string","minLength":1,"maxLength":255},"folderId":{"anyOf":[{"type":"string","minLength":1,"maxLength":255},{"type":"null"}]},"version":{"type":"number","const":3},"resolution":{"type":"string","enum":["2k","4k"]},"mode":{"type":"string","const":"box"},"boxes":{"minItems":1,"maxItems":32,"type":"array","items":{"type":"array","prefixItems":[{"type":"number","minimum":0,"maximum":1000},{"type":"number","minimum":0,"maximum":1000},{"type":"number","minimum":0,"maximum":1000},{"type":"number","minimum":0,"maximum":1000}]}},"inputAssetId":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"markedAssetId":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"}},"required":["version","resolution","mode","boxes","inputAssetId","markedAssetId"],"additionalProperties":false}]},"webhookUrl":{"type":"string","format":"uri","maxLength":2048}},"description":"Extract reusable objects from a ready scene image. Manual and box modes also require an uploaded marked image. See /docs/environments/asset-extraction.","x-available":true,"examples":[{"operation":"extract_scene_assets","input":{"version":3,"mode":"auto","inputAssetId":"00000000-0000-4000-8000-000000000001","resolution":"2k"}}]},{"type":"object","additionalProperties":false,"required":["operation","input"],"properties":{"operation":{"const":"generate_music","type":"string"},"input":{"$schema":"https://json-schema.org/draft/2020-12/schema","allOf":[{"type":"object","properties":{"characterId":{"type":"string","minLength":1,"maxLength":255},"characterTarget":{"oneOf":[{"type":"object","properties":{"kind":{"type":"string","const":"asset"},"slot":{"type":"string","enum":["design","sheet","direction","expression","prop","part","reference","other"]},"direction":{"anyOf":[{"type":"string","enum":["s","se","e","ne","n","nw","w","sw"]},{"type":"null"}]},"designAssetId":{"type":"string","minLength":1,"maxLength":255}},"required":["kind","slot"],"additionalProperties":false},{"type":"object","properties":{"kind":{"type":"string","const":"action"},"actionId":{"type":"string","minLength":1,"maxLength":255},"direction":{"anyOf":[{"type":"string","enum":["s","se","e","ne","n","nw","w","sw"]},{"type":"null"}]},"batchId":{"type":"string","minLength":1,"maxLength":255},"retryOfGenerationId":{"type":"string","minLength":1,"maxLength":255}},"required":["kind","actionId"],"additionalProperties":false}]},"projectId":{"type":"string","minLength":1,"maxLength":255},"folderId":{"anyOf":[{"type":"string","minLength":1,"maxLength":255},{"type":"null"}]}}},{"type":"object","properties":{"title":{"default":"","type":"string","maxLength":120},"prompt":{"type":"string","minLength":3,"maxLength":800},"instrumental":{"default":true,"type":"boolean"},"lyrics":{"default":"","type":"string","maxLength":5000}},"required":["prompt"]},{"oneOf":[{"type":"object","properties":{"engine":{"type":"string","const":"lyria"},"durationSeconds":{"default":60,"type":"integer","minimum":1,"maximum":240},"bpm":{"type":"integer","minimum":1,"maximum":9007199254740991}},"required":["engine"]},{"type":"object","properties":{"engine":{"type":"string","const":"suno"},"title":{"default":"","type":"string","maxLength":80}},"required":["engine"]}]}]},"webhookUrl":{"type":"string","format":"uri","maxLength":2048}},"description":"Create game music with Lyria or Suno. Instrumental mode needs no lyrics; songs require lyrics. See /docs/audio/music.","x-available":true,"examples":[{"operation":"generate_music","input":{"engine":"lyria","prompt":"Quiet forest exploration, acoustic guitar and soft strings","durationSeconds":60,"instrumental":true}}]},{"type":"object","additionalProperties":false,"required":["operation","input"],"properties":{"operation":{"const":"generate_sound_effects","type":"string"},"input":{"$schema":"https://json-schema.org/draft/2020-12/schema","allOf":[{"type":"object","properties":{"characterId":{"type":"string","minLength":1,"maxLength":255},"characterTarget":{"oneOf":[{"type":"object","properties":{"kind":{"type":"string","const":"asset"},"slot":{"type":"string","enum":["design","sheet","direction","expression","prop","part","reference","other"]},"direction":{"anyOf":[{"type":"string","enum":["s","se","e","ne","n","nw","w","sw"]},{"type":"null"}]},"designAssetId":{"type":"string","minLength":1,"maxLength":255}},"required":["kind","slot"],"additionalProperties":false},{"type":"object","properties":{"kind":{"type":"string","const":"action"},"actionId":{"type":"string","minLength":1,"maxLength":255},"direction":{"anyOf":[{"type":"string","enum":["s","se","e","ne","n","nw","w","sw"]},{"type":"null"}]},"batchId":{"type":"string","minLength":1,"maxLength":255},"retryOfGenerationId":{"type":"string","minLength":1,"maxLength":255}},"required":["kind","actionId"],"additionalProperties":false}]},"projectId":{"type":"string","minLength":1,"maxLength":255},"folderId":{"anyOf":[{"type":"string","minLength":1,"maxLength":255},{"type":"null"}]}}},{"type":"object","properties":{"prompt":{"type":"string","minLength":3,"maxLength":450},"durationSeconds":{"type":"integer","minimum":1,"maximum":22},"promptInfluence":{"default":0.3,"type":"number","minimum":0,"maximum":1},"loop":{"default":false,"type":"boolean"},"counts":{"default":{"sonilo-v1.1":0,"elevenlabs-sound-effects-v2":1,"stable-audio-3-small-sfx":0},"type":"object","properties":{"sonilo-v1.1":{"type":"integer","minimum":0,"maximum":10},"elevenlabs-sound-effects-v2":{"type":"integer","minimum":0,"maximum":10},"stable-audio-3-small-sfx":{"type":"integer","minimum":0,"maximum":10}},"required":["sonilo-v1.1","elevenlabs-sound-effects-v2","stable-audio-3-small-sfx"]}},"required":["prompt","durationSeconds"]}]},"webhookUrl":{"type":"string","format":"uri","maxLength":2048}},"description":"Generate 1 to 10 short sound effects across the selected models. Each variant is charged by requested duration and has an independent result. See /docs/audio/sound-effects.","x-available":false,"examples":[{"operation":"generate_sound_effects","input":{"prompt":"A magical sword rings against a stone shield","durationSeconds":3}}]}]}}}},"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","properties":{"operation":{"type":"string"},"credits":{"type":"number","minimum":0},"available":{"type":"boolean"},"reserved":{"type":"boolean","const":false},"currency":{"type":"string","const":"credits"}},"required":["operation","credits","available","reserved","currency"],"additionalProperties":false}}}},"default":{"description":"Request rejected or temporarily unavailable. Preserve the original idempotency key when recovering a submission.","content":{"application/json":{"schema":{"type":"object","required":["error","code","retryable","recovery"],"properties":{"error":{"type":"string"},"code":{"type":"string"},"retryable":{"type":"boolean"},"recovery":{"type":"string"},"fields":{"type":"array","items":{"type":"object","properties":{"path":{"type":"array","items":{"type":"string"}},"message":{"type":"string"}}}}}}}}}}}},"/credits":{"get":{"operationId":"get_credit_balance","responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","properties":{"balance":{"type":"number"}},"required":["balance"],"additionalProperties":false}}}},"default":{"description":"Request rejected or temporarily unavailable. Preserve the original idempotency key when recovering a submission.","content":{"application/json":{"schema":{"type":"object","required":["error","code","retryable","recovery"],"properties":{"error":{"type":"string"},"code":{"type":"string"},"retryable":{"type":"boolean"},"recovery":{"type":"string"},"fields":{"type":"array","items":{"type":"object","properties":{"path":{"type":"array","items":{"type":"string"}},"message":{"type":"string"}}}}}}}}}}}},"/uploads":{"post":{"operationId":"create_upload_url","requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"fileName":{"type":"string","minLength":1,"maxLength":255},"contentType":{"type":"string","enum":["image/png","image/jpeg","image/webp"]},"sizeBytes":{"type":"integer","exclusiveMinimum":0,"maximum":20971520}},"required":["fileName","contentType","sizeBytes"],"additionalProperties":false}}}},"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","properties":{"assetId":{"type":"string"},"signature":{"type":"object","properties":{"uploadUrl":{"type":"string"},"key":{"type":"string"},"expiresAt":{"type":"number"},"maxFileSize":{"type":"number"},"allowedTypes":{"type":"array","items":{"type":"string"}}},"required":["uploadUrl","key","expiresAt","maxFileSize","allowedTypes"],"additionalProperties":false}},"required":["assetId","signature"],"additionalProperties":false}}}},"default":{"description":"Request rejected or temporarily unavailable. Preserve the original idempotency key when recovering a submission.","content":{"application/json":{"schema":{"type":"object","required":["error","code","retryable","recovery"],"properties":{"error":{"type":"string"},"code":{"type":"string"},"retryable":{"type":"boolean"},"recovery":{"type":"string"},"fields":{"type":"array","items":{"type":"object","properties":{"path":{"type":"array","items":{"type":"string"}},"message":{"type":"string"}}}}}}}}}}}},"/uploads/{assetId}/complete":{"post":{"operationId":"confirm_upload","parameters":[{"name":"assetId","in":"path","required":true,"schema":{"type":"string","format":"uuid"}}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","properties":{"assetId":{"type":"string"},"status":{"type":"string","const":"ready"},"fileName":{"type":"string"},"width":{"type":"number"},"height":{"type":"number"}},"required":["assetId","status","fileName","width","height"],"additionalProperties":false}}}},"default":{"description":"Request rejected or temporarily unavailable. Preserve the original idempotency key when recovering a submission.","content":{"application/json":{"schema":{"type":"object","required":["error","code","retryable","recovery"],"properties":{"error":{"type":"string"},"code":{"type":"string"},"retryable":{"type":"boolean"},"recovery":{"type":"string"},"fields":{"type":"array","items":{"type":"object","properties":{"path":{"type":"array","items":{"type":"string"}},"message":{"type":"string"}}}}}}}}}}}},"/assets":{"get":{"operationId":"search_assets","parameters":[{"name":"query","in":"query","required":false,"schema":{"type":"string","maxLength":200}},{"name":"projectId","in":"query","required":false,"schema":{"type":"string","minLength":1,"maxLength":255}},{"name":"kind","in":"query","required":false,"schema":{"type":"string","enum":["image","audio","video"]}},{"name":"cursor","in":"query","required":false,"schema":{"type":"string","minLength":1,"maxLength":255}},{"name":"limit","in":"query","required":false,"schema":{"default":25,"type":"integer","minimum":1,"maximum":100}}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","properties":{"assets":{"type":"array","items":{"type":"object","properties":{"assetId":{"type":"string"},"fileName":{"type":"string"},"kind":{"type":"string"},"contentType":{"type":"string"},"sizeBytes":{"type":"number"},"projectId":{"anyOf":[{"type":"string"},{"type":"null"}]},"sourceType":{"type":"string"}},"required":["assetId","fileName","kind","contentType","sizeBytes","projectId","sourceType"],"additionalProperties":false}},"nextCursor":{"anyOf":[{"type":"string"},{"type":"null"}]}},"required":["assets","nextCursor"],"additionalProperties":false}}}},"default":{"description":"Request rejected or temporarily unavailable. Preserve the original idempotency key when recovering a submission.","content":{"application/json":{"schema":{"type":"object","required":["error","code","retryable","recovery"],"properties":{"error":{"type":"string"},"code":{"type":"string"},"retryable":{"type":"boolean"},"recovery":{"type":"string"},"fields":{"type":"array","items":{"type":"object","properties":{"path":{"type":"array","items":{"type":"string"}},"message":{"type":"string"}}}}}}}}}}}},"/assets/{assetId}/download":{"get":{"operationId":"get_download_url","parameters":[{"name":"assetId","in":"path","required":true,"schema":{"type":"string","format":"uuid"}}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","properties":{"id":{"type":"string"},"fileName":{"type":"string"},"sizeBytes":{"type":"number"},"url":{"type":"string"},"expiresAt":{"anyOf":[{"type":"string"},{"type":"null"}]}},"required":["id","fileName","sizeBytes","url","expiresAt"],"additionalProperties":false}}}},"default":{"description":"Request rejected or temporarily unavailable. Preserve the original idempotency key when recovering a submission.","content":{"application/json":{"schema":{"type":"object","required":["error","code","retryable","recovery"],"properties":{"error":{"type":"string"},"code":{"type":"string"},"retryable":{"type":"boolean"},"recovery":{"type":"string"},"fields":{"type":"array","items":{"type":"object","properties":{"path":{"type":"array","items":{"type":"string"}},"message":{"type":"string"}}}}}}}}}}}},"/projects":{"get":{"operationId":"list_projects","parameters":[{"name":"projectId","in":"query","required":false,"schema":{"type":"string","minLength":1,"maxLength":255}},{"name":"cursor","in":"query","required":false,"schema":{"type":"string","minLength":1,"maxLength":255}},{"name":"limit","in":"query","required":false,"schema":{"default":25,"type":"integer","minimum":1,"maximum":100}},{"name":"childrenCursor","in":"query","required":false,"schema":{"type":"string","minLength":1,"maxLength":255}},{"name":"childrenLimit","in":"query","required":false,"schema":{"default":50,"type":"integer","minimum":1,"maximum":100}}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","properties":{"projects":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string"},"name":{"type":"string"},"isDefault":{"type":"boolean"}},"required":["id","name","isDefault"],"additionalProperties":false}},"folders":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string"},"projectId":{"type":"string"},"name":{"type":"string"}},"required":["id","projectId","name"],"additionalProperties":false}},"nextCursor":{"anyOf":[{"type":"string"},{"type":"null"}]},"foldersNextCursor":{"anyOf":[{"type":"string"},{"type":"null"}]}},"required":["projects","folders","nextCursor","foldersNextCursor"],"additionalProperties":false}}}},"default":{"description":"Request rejected or temporarily unavailable. Preserve the original idempotency key when recovering a submission.","content":{"application/json":{"schema":{"type":"object","required":["error","code","retryable","recovery"],"properties":{"error":{"type":"string"},"code":{"type":"string"},"retryable":{"type":"boolean"},"recovery":{"type":"string"},"fields":{"type":"array","items":{"type":"object","properties":{"path":{"type":"array","items":{"type":"string"}},"message":{"type":"string"}}}}}}}}}}}},"/characters":{"get":{"operationId":"list_characters","parameters":[{"name":"projectId","in":"query","required":false,"schema":{"type":"string","minLength":1,"maxLength":255}},{"name":"cursor","in":"query","required":false,"schema":{"type":"string","minLength":1,"maxLength":255}},{"name":"limit","in":"query","required":false,"schema":{"default":25,"type":"integer","minimum":1,"maximum":100}},{"name":"childrenCursor","in":"query","required":false,"schema":{"type":"string","minLength":1,"maxLength":255}},{"name":"childrenLimit","in":"query","required":false,"schema":{"default":50,"type":"integer","minimum":1,"maximum":100}}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","properties":{"characters":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string"},"projectId":{"type":"string"},"name":{"type":"string"},"directionMode":{"type":"string"},"currentDesignAssetId":{"description":"Character asset binding ID for characterTarget.designAssetId. This is not a file ID.","anyOf":[{"type":"string"},{"type":"null"}]},"currentDesignFileId":{"description":"Owned ready file ID for get_download_url.assetId or generation inputAssetId. Null when no ready, untrashed current design file is available.","anyOf":[{"type":"string"},{"type":"null"}]}},"required":["id","projectId","name","directionMode","currentDesignAssetId","currentDesignFileId"],"additionalProperties":false}},"actions":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string"},"characterId":{"type":"string"},"name":{"type":"string"}},"required":["id","characterId","name"],"additionalProperties":false}},"nextCursor":{"anyOf":[{"type":"string"},{"type":"null"}]},"actionsNextCursor":{"anyOf":[{"type":"string"},{"type":"null"}]}},"required":["characters","actions","nextCursor","actionsNextCursor"],"additionalProperties":false}}}},"default":{"description":"Request rejected or temporarily unavailable. Preserve the original idempotency key when recovering a submission.","content":{"application/json":{"schema":{"type":"object","required":["error","code","retryable","recovery"],"properties":{"error":{"type":"string"},"code":{"type":"string"},"retryable":{"type":"boolean"},"recovery":{"type":"string"},"fields":{"type":"array","items":{"type":"object","properties":{"path":{"type":"array","items":{"type":"string"}},"message":{"type":"string"}}}}}}}}}}}}}}