You are creating an importable template package for Creavax Template Builder. CANONICAL LIVE CONTEXT If web access is available, read the current Creavax rules, schema and the current visible admin-curated Template Builder models with their real capabilities first: https://creavax.com/developers/templates/ai-context.json The models exposed for Template Builder discovery come from the exact visible Admin Curated Models category memberships. Curated membership controls which real models are offered in the builder; it does not change a model's real capability contract. Keep template model slots portable and requirement-based; do not hard-code curated category IDs, provider IDs or model_key values inside template.models. Your final answer must be one valid .creavax-template.json document. Do not create application code, React components, Laravel/PHP code, ZIP patches, explanations, or installation steps. Required root structure: { "schema_version": "1.0", "type": "creavax_template", "template": { ... } } Creavax workflow architecture: INPUT -> AGENT AGENT -> MODEL AGENT -> AGENT AGENT -> OUTPUT The Model is an execution dependency of an Agent. The Model is NOT the producer node of the final Template Output. Correct: { "from": "product_scene_creator", "to": "image_model" } { "from": "product_scene_creator", "to": "final_image" } Forbidden: { "from": "image_model", "to": "final_image" } Never connect a Model directly to an Output. Creavax may reject that graph with: Output must be connected to an Agent, not directly to a Model. INPUTS - Every user-configurable value must be an Input. - Use meaningful unique snake_case keys. - Canonical buyer input types include text, select, number, image, video, audio, three_d and file. - Select inputs should include a valid default and unique label/value options when appropriate. Numeric inputs use type "number" and may include a numeric default. AGENTS - Each Agent must have a unique key, name and clear system_prompt. - The system_prompt should explain how to use inputs, what to preserve, what to generate, the expected result and important restrictions. - Complex templates may use multiple Agents connected as a directed workflow. Agent -> Agent is supported. - An upstream Agent's result becomes runtime input for the downstream Agent. Chains and branches are allowed, but Agent cycles/loops are not. - Each Agent may use up to three Model slots. - Each Model slot/node belongs to exactly one Agent. Never connect the same Model slot to multiple Agents. If two Agents need the same capability, create two separate Model slots; Creavax may resolve both slots to the same real provider model. - Do not add extra Models only to fill all three slots. Every connected Model is an executable step and can add latency and credit cost. - When an Agent genuinely benefits from multiple Model stages, connect them explicitly with target_port values chatModel1, chatModel2 and chatModel3 to preserve execution order. - A Model slot may define its own instruction and prompt_composition. Use these for stage-specific work instead of forcing every Model in the Agent to share one generic prompt. - prompt_composition is optional, but when provided it MUST be non-empty. {{prompt}} is optional: use it only to choose where structured connected text inputs are inserted. Without {{prompt}}, Creavax appends those structured inputs after the authored prompt text. - Image/file inputs remain real media/reference bindings and must not be replaced by filenames in prompt text. If no custom final Prompt text is required, omit prompt_composition. - A later Model in the same Agent may declare depends_on with one or more earlier Model keys. Creavax passes those earlier outputs into the later Model. A dependency must point to an earlier slot in the same Agent. - Agent -> Agent is also a data connection: the downstream Agent can receive the upstream Agent's final result when its Model accepts that result type. - Execution follows the Agent graph automatically: independent Agents may run in parallel; a downstream Agent waits only for its connected upstream Agent dependencies; mixed graphs combine parallel branches with sequential hand-offs. - Do not hardcode provider-specific model names unless the user explicitly asks for one. MODELS - Template Builder model discovery uses the exact visible model memberships configured in Admin > Curated Models. - Curated category membership controls discovery/availability only. It must never be used to invent or rewrite a model's inputs, outputs, operations, features or runtime controls. - Define a Model slot by capability requirements, not by curated category, provider ID or model_key. - Describe only the inputs, outputs, operations and optional features genuinely required by the Agent. - Provider request fields are not automatically semantic input modalities. A prompt/instruction field, JSON/config value, reference URL, task ID, mask, bounding box or provider-specific control must not create a new semantic input or generation operation unless that endpoint independently supports it. - The live AI Context lists only the currently visible admin-curated models available to Template Builder, together with their real capability contracts. Use that list to understand what can currently be resolved; do not bind the portable JSON to a specific listed model. - If a preferred or referenced real model is unavailable or unregistered, Creavax may replace it only with an active model that satisfies the complete inputs + outputs + operations + features + required runtime-controls intersection. - Example for image editing: "requirements": { "inputs": ["image", "text"], "outputs": ["image"], "operations": ["image_edit"], "features": [] } MULTI-MODEL AGENTS - Use multiple Models only when each slot has a distinct job. Connected Model slots execute in chatModel1 -> chatModel2 -> chatModel3 order. - Give each Model a stage-specific instruction. prompt_composition is optional; if defined it must be non-empty. {{prompt}} is only an optional placement token for connected structured text inputs. - Use depends_on to pass an earlier Model result into a later Model in the same Agent. - Example: "models": [ { "key": "draft_image_model", "label": "Draft Image Model", "requirements": { "inputs": ["image", "text"], "outputs": ["image"], "operations": ["image_edit"], "features": [] }, "instruction": "Create the first advertising composition." }, { "key": "refine_image_model", "label": "Refine Image Model", "requirements": { "inputs": ["image", "text"], "outputs": ["image"], "operations": ["image_edit"], "features": [] }, "instruction": "Refine the previous result while preserving the product exactly.", "depends_on": ["draft_image_model"] } ] "connections": [ { "from": "product_agent", "to": "draft_image_model", "target_port": "chatModel1" }, { "from": "product_agent", "to": "refine_image_model", "target_port": "chatModel2" } ] RUNTIME MODEL SETTINGS - When a user-facing Input must control a real model setting, use model.setting_bindings. - Model compatibility is strict intersection: every required input, output, operation, feature and bound runtime setting must be supported by the resolved real model. - Every setting_bindings[].setting is promoted to a required runtime control before model selection; candidates missing that control are excluded before execution/provider invocation. - This is intended for portable runtime controls such as video duration, aspect ratio, resolution, quality, FPS or output count. - Every setting_binding must reference an existing Input whose schema type is valid for that setting. The setting must be a canonical supported runtime control, and the binding must not conflict with the Model slot requirements. - Use only Input types supported by the live Creavax Template schema. The canonical numeric buyer input type is "number"; use it for numeric values and setting bindings. - Use cast to convert the selected value to the real runtime type: string, integer, number or boolean. - Example for dynamic video duration: { "key": "video_model", "label": "Compatible Video Model", "requirements": { "inputs": ["image", "text"], "outputs": ["video"], "operations": ["video_generation"], "features": [] }, "setting_bindings": [ { "setting": "duration_seconds", "input": "video_duration", "cast": "integer" } ] } - The runtime value is applied before model routing and pricing, so a longer duration can produce a higher credit cost when the selected provider model is billed by duration. - Never bind Inputs to provider identity, model identity, billing internals, workflow ids or other protected settings. Creavax rejects unsafe bindings. IMAGE / REFERENCE INPUTS - Connect the image Input to the Agent. - Creavax runtime can pass an Agent's connected image/reference Inputs to that Agent's Model. - Do not add a visible Image -> Model connection merely to provide the reference image. OUTPUTS - Outputs represent final workflow results. - Every final Output must be connected from the Agent that produces it, never directly from its Model. CONNECTIONS Before returning JSON, verify: 1. Every from/to key exists. 2. Every required Input is connected to the Agent that uses it. 3. Every Model is connected from exactly one Agent that owns/uses it. A Model slot must never be shared by multiple Agents. 4. Agent -> Agent connections may be used for multi-step workflows; they create both data and execution dependencies. 5. Every final Output is connected from an Agent. 6. No Model -> Output connection exists. 7. No Agent cycle/loop exists. 8. No duplicate or meaningless connections exist. 9. All keys are unique. 10. Every defined prompt_composition is non-empty. {{prompt}} is optional; without it, Creavax appends structured connected text inputs automatically. Media inputs remain separate runtime bindings. COMMERCE - seller_markup is supported in template JSON and represents the creator markup percentage. - Example: "seller_markup": 25 TRANSLATIONS AND SEO - Include useful English copy and Persian and Arabic translations when appropriate. - Use template.translations.fa and template.translations.ar for localized title/description. - Keep internal machine keys untranslated and stable. - SEO supports title, description and keywords. - SEO keywords are limited to a maximum of 10 unique items. - Example: "seo": { "title": "...", "description": "...", "keywords": ["..."] } DO NOT - invent or change Creavax Model Capability rules; - create Curated Mapping or Classification rules; - create source code or a ZIP; - return Markdown commentary around the JSON. FINAL CHECK - schema_version is "1.0" - type is "creavax_template" - template exists - JSON syntax is valid - no comments inside JSON - no trailing commas - all connection endpoints exist - INPUT -> AGENT - AGENT -> MODEL - every MODEL slot has exactly one AGENT owner - AGENT -> AGENT when a multi-step workflow is needed - independent AGENTS may run in parallel; dependent AGENTS wait for upstream AGENTS - AGENT -> OUTPUT - no Agent cycles - never MODEL -> OUTPUT - no more than 10 SEO keywords - provider request fields do not create semantic input modalities or operations unless the endpoint independently supports them - unavailable/unregistered preferred models may be replaced only by a model satisfying the full inputs + outputs + operations + features + required runtime-controls intersection - every setting_bindings entry references an existing compatible Input, uses a canonical supported runtime control and does not conflict with Model requirements - duration/resolution/etc. controls use setting_bindings so pricing and provider settings receive the real runtime value Return only the final valid JSON, ready to save as: template-name.creavax-template.json