/** * Scaffold engine types — manifest, templates, and generation options. */ export type ScaffoldType = 'web' | 'backend' | 'mobile' | 'full'; export interface ScaffoldOptions { type: ScaffoldType; name: string; path: string; ask?: boolean; link?: boolean; taskId?: string; } export interface ScaffoldTokens { slug: string; projectName: string; packageName: string; port: number; apiPort: number; description: string; } export interface TemplateFile { /** Relative path from the scaffold root (e.g. "src/app/layout.tsx") */ path: string; /** Source path relative to templates/ directory, or inline content */ source?: string; /** Inline template content (if not from a file) */ content?: string; /** Whether this file is a tokenized template ({{slug}} etc.) */ tokenized?: boolean; } export interface ScaffoldManifest { type: ScaffoldType; files: TemplateFile[]; }