Raw schema
{
"type": "object",
"properties": {
"project_name": {
"type": "string",
"minLength": 1,
"maxLength": 120,
"description": "Short name for the new 2ools project."
},
"conversation_summary": {
"type": "string",
"minLength": 1,
"maxLength": 12000,
"description": "Factual build brief distilled from the conversation, including the intended artifact and key decisions."
},
"headline": {
"description": "Exact hero headline to preserve verbatim in the generated site.",
"type": "string",
"minLength": 1,
"maxLength": 140
},
"entity": {
"description": "Grounded identity facts that must survive the build.",
"type": "object",
"properties": {
"name": {
"description": "Exact person, business, product, or project name.",
"type": "string",
"maxLength": 200
},
"category": {
"description": "Entity category, such as musician, restaurant, or SaaS.",
"type": "string",
"maxLength": 200
},
"description": {
"description": "Grounded description; omit unsupported claims.",
"type": "string",
"maxLength": 5000
},
"source_url": {
"description": "Optional source URL supplied by the user.",
"type": "string",
"maxLength": 2000,
"format": "uri"
}
}
},
"audience": {
"description": "Primary audience and the job they need to complete.",
"type": "string",
"maxLength": 1000
},
"requirements": {
"default": [],
"description": "Concrete functionality, content, and section requirements.",
"maxItems": 20,
"type": "array",
"items": {
"type": "string",
"minLength": 1,
"maxLength": 500
}
},
"pages": {
"default": [
"Home"
],
"description": "Pages to generate. Use Home for a one-page site or widget.",
"minItems": 1,
"maxItems": 8,
"type": "array",
"items": {
"type": "string",
"minLength": 1,
"maxLength": 120
}
},
"visual_direction": {
"description": "Desired visual character, composition, color, typography, or references.",
"type": "string",
"maxLength": 2000
},
"content_constraints": {
"default": [],
"description": "Claims, wording, exclusions, or fidelity constraints the build must obey.",
"maxItems": 20,
"type": "array",
"items": {
"type": "string",
"minLength": 1,
"maxLength": 500
}
},
"curator_id": {
"description": "Exact Curator ID from list_build_systems. Omit for automatic selection.",
"type": "string",
"minLength": 1,
"maxLength": 120
},
"rulebook_id": {
"description": "Exact compatible Rulebook ID from list_build_systems. Overrides the Curator's default Rulebook.",
"type": "string",
"minLength": 1,
"maxLength": 120
},
"skill_ids": {
"description": "Exact compatible Skill IDs from list_build_systems. When supplied, replaces the Rulebook's default Skill set.",
"minItems": 1,
"maxItems": 12,
"type": "array",
"items": {
"type": "string",
"minLength": 1,
"maxLength": 120
}
},
"output_target": {
"default": "web",
"description": "Delivery target: site, browser game, desktop wrapper, embeddable component, floating overlay, or standalone HTML.",
"type": "string",
"enum": [
"web",
"game",
"tauri",
"electron",
"widget",
"float",
"freeform"
]
},
"model": {
"default": "studio",
"description": "Generation engine. studio is keyless; other models require an available account provider or linked Engine.",
"type": "string",
"enum": [
"studio",
"openai",
"claude",
"gemini",
"grok"
]
},
"max_iterations": {
"default": 6,
"description": "Hard project cap for later outside-agent child revisions. Defaults to 6 and cannot exceed 12.",
"type": "integer",
"minimum": 1,
"maximum": 12
},
"idempotency_key": {
"type": "string",
"minLength": 8,
"maxLength": 120,
"pattern": "^[A-Za-z0-9._:-]+$",
"description": "Caller-generated unique key. Reusing it returns the original project/job instead of creating a duplicate."
}
},
"required": [
"project_name",
"conversation_summary",
"idempotency_key"
],
"$schema": "http://json-schema.org/draft-07/schema#"
}