{
  "schemaVersion": 1,
  "atomId": "camera_controller_3d.aicomponent",
  "bundleType": "aicomponent",
  "category": "component",
  "mode": "fixed",
  "label": { "zh": "3D 相机控制器", "en": "3D Camera Controller" },
  "tags": ["camera", "3d", "threejs", "isometric", "top-down", "follow", "shake", "transition", "puzzle-view"],
  "bindingRoles": ["cameraController"],
  "scaffold": {
    "files": {
      "src/game/utils/CameraController.ts": {
        "source": "ref/CameraController.ts",
        "mode": "full",
        "weight": 10,
        "_comment": "3D 相机控制器：棋盘俯瞰、震动、过渡动画"
      },
      "src/game/utils/OrbitControlsAdapter.ts": {
        "source": "ref/OrbitControlsAdapter.ts",
        "mode": "full",
        "weight": 8,
        "_comment": "OrbitControls 封装：拖动旋转/缩放/平移，与 CameraController 协同"
      }
    }
  },
  "imports": [
    { "slot": "engine", "pinAtomId": "threejs.aicomponent", "edgeKind": "requires", "bindAs": "engine" }
  ],
  "exports": [
    { "name": "CameraController", "kind": "class", "location": "src/game/utils/CameraController.ts" },
    { "name": "CameraMode", "kind": "type", "location": "src/game/utils/CameraController.ts" },
    { "name": "OrbitControlsAdapter", "kind": "class", "location": "src/game/utils/OrbitControlsAdapter.ts" },
    { "name": "OrbitConfig", "kind": "interface", "location": "src/game/utils/OrbitControlsAdapter.ts" }
  ],
  "neutralDescriptor": {
    "geometry": "3D camera controller for board/puzzle games: auto-framing grid boards, smooth transitions, screen shake, multiple viewing modes (top-down, isometric, orbit-debug)",
    "layers": ["camera-positioning", "animation", "screen-effects"],
    "replaceable": ["camera mode", "tilt angle", "shake intensity", "transition easing", "FOV"]
  },
  "usageHints": [
    "setupForBoard(rows, cols, cellSize) 自动计算相机位置和角度使棋盘完整可见",
    "支持三种模式：top-down-fixed（俯视）、isometric-45（45°等距）、orbit-debug（自由轨道）",
    "shake(intensity, duration) 提供推出/阻挡时的相机震动反馈",
    "transitionTo(position, lookAt, duration) 支持关卡切换时的平滑相机过渡",
    "游戏模式下自动禁用 OrbitControls，调试模式下可开启"
  ],
  "files": {
    "skill": "SKILL.md",
    "cameraController": "ref/CameraController.ts",
    "orbitControlsAdapter": "ref/OrbitControlsAdapter.ts"
  }
}
