export interface Subsystem { id: string; name: string; responsibilities: string[]; provides: string[]; depends_on: string[]; } export interface Module { id: string; name: string; parent_subsystem: string; responsibility: string; public_api: { fn: string; params: { name: string; type: string }[]; returns: { type: string }; }[]; } export interface SystemMeta { name: string; version: string; type: string; description: string; target_runtime: string; } export interface BlueprintData { meta: SystemMeta; subsystems: Subsystem[]; modules: Module[]; } export const sampleBlueprint: BlueprintData = { meta: { name: 'UnityEngine', version: '0.1.0', type: 'game-engine', description: '轻量级3D游戏引擎,支持场景管理、渲染、物理、脚本系统', target_runtime: 'C++17 / C#' }, subsystems: [ { id: 'Core', name: 'Core', responsibilities: ['基础数据类型和算法', '内存管理', '平台抽象层'], provides: ['IAllocator', 'IPlatform', 'IFileSystem'], depends_on: [] }, { id: 'Rendering', name: 'Rendering', responsibilities: ['渲染管线管理', '渲染资源管理', 'Shader管理', 'Camera管理'], provides: ['IRenderPipeline', 'IRenderResource', 'IShader', 'ICamera'], depends_on: ['Core'] }, { id: 'Physics', name: 'Physics', responsibilities: ['物理模拟', '碰撞检测', '刚体/关节系统'], provides: ['IPhysicsWorld', 'ICollider', 'IRigidbody'], depends_on: ['Core'] }, { id: 'Scripting', name: 'Scripting', responsibilities: ['脚本生命周期管理', 'C#运行时集成', '组件系统'], provides: ['IScriptRuntime', 'IMonoBehaviour', 'IComponent'], depends_on: ['Core'] }, { id: 'Scene', name: 'Scene', responsibilities: ['场景图管理', 'GameObject层级管理', '变换层级'], provides: ['IScene', 'IGameObject', 'ITransform'], depends_on: ['Core'] }, { id: 'Asset', name: 'Asset', responsibilities: ['资源加载/卸载', '资源引用计数', '资源格式支持'], provides: ['IAssetLoader', 'IAssetDatabase'], depends_on: ['Core'] }, { id: 'Input', name: 'Input', responsibilities: ['输入事件采集', '输入映射'], provides: ['IInputSystem'], depends_on: ['Core'] }, { id: 'Platform', name: 'Platform', responsibilities: ['平台特定实现', '窗口管理', '主循环'], provides: ['IWindow', 'IApplication'], depends_on: ['Core'] } ], modules: [ { id: 'RHI', name: 'RHI', parent_subsystem: 'Rendering', responsibility: '渲染硬件抽象层', public_api: [ { fn: 'CreateGraphicsPipeline', params: [{ name: 'desc', type: 'GraphicsPipelineDesc' }], returns: { type: 'IPipeline' } }, { fn: 'Draw', params: [{ name: 'pipeline', type: 'IPipeline' }, { name: 'mesh', type: 'IMesh' }], returns: { type: 'void' } } ] }, { id: 'RenderPipeline', name: 'RenderPipeline', parent_subsystem: 'Rendering', responsibility: '渲染管线调度', public_api: [ { fn: 'Render', params: [{ name: 'scene', type: 'IScene' }, { name: 'camera', type: 'ICamera' }], returns: { type: 'void' } } ] }, { id: 'ShaderManager', name: 'ShaderManager', parent_subsystem: 'Rendering', responsibility: 'Shader编译和缓存', public_api: [ { fn: 'LoadShader', params: [{ name: 'path', type: 'string' }], returns: { type: 'IShader' } } ] }, { id: 'PhysicsWorld', name: 'PhysicsWorld', parent_subsystem: 'Physics', responsibility: '物理世界模拟', public_api: [ { fn: 'Step', params: [{ name: 'dt', type: 'float' }], returns: { type: 'void' } } ] }, { id: 'MonoBehaviour', name: 'MonoBehaviour', parent_subsystem: 'Scripting', responsibility: '脚本组件基类', public_api: [ { fn: 'Awake', params: [], returns: { type: 'void' } }, { fn: 'Start', params: [], returns: { type: 'void' } }, { fn: 'Update', params: [{ name: 'dt', type: 'float' }], returns: { type: 'void' } } ] }, { id: 'Transform', name: 'Transform', parent_subsystem: 'Scene', responsibility: '变换层级管理', public_api: [ { fn: 'SetParent', params: [{ name: 'parent', type: 'ITransform' }], returns: { type: 'void' } }, { fn: 'LocalToWorld', params: [{ name: 'localPos', type: 'vec3' }], returns: { type: 'vec3' } } ] }, { id: 'GameObject', name: 'GameObject', parent_subsystem: 'Scene', responsibility: '场景对象管理', public_api: [ { fn: 'AddComponent', params: [{ name: 'type', type: 'type_info' }], returns: { type: 'IComponent' } }, { fn: 'GetComponent', params: [{ name: 'type', type: 'type_info' }], returns: { type: 'IComponent' } } ] }, { id: 'AssetLoader', name: 'AssetLoader', parent_subsystem: 'Asset', responsibility: '资源异步加载', public_api: [ { fn: 'LoadAsync', params: [{ name: 'path', type: 'string' }], returns: { type: 'AssetFuture' } } ] } ] };