{
  "schemaVersion": 1,
  "atomId": "path_animation.aicomponent",
  "bundleType": "aicomponent",
  "category": "component",
  "mode": "fixed",
  "label": { "zh": "路径动画导演", "en": "Path animation director" },
  "tags": ["animation", "path", "tween", "phaser", "elimination", "blocked", "victory", "threejs", "3d", "raf"],
  "bindingRoles": ["pathAnimationDirector"],
  "renderBackend": ["phaser", "threejs"],
  "engineVariants": {
    "phaser": {
      "imports": ["phaser.aicomponent", "path_renderer.aicomponent"],
      "scaffoldFiles": {
        "src/game/scenes/GameUI/AnimationManager.ts": { "source": "ref/AnimationManager.ts", "mode": "full", "weight": 10 }
      }
    },
    "threejs": {
      "imports": ["threejs.aicomponent"],
      "scaffoldFiles": {
        "src/game/rendering/AnimationManager3D.ts": { "source": "ref/AnimationManager3D.ts", "mode": "full", "weight": 10 }
      }
    }
  },
  "scaffold": {
    "files": {
      "src/game/scenes/GameUI/AnimationManager.ts": {
        "source": "ref/AnimationManager.ts",
        "mode": "full",
        "weight": 10
      }
    }
  },
  "imports": [
    { "slot": "engine",   "pinAtomId": "phaser.aicomponent",          "edgeKind": "requires", "bindAs": "engine" },
    { "slot": "renderer", "pinAtomId": "path_renderer.aicomponent",   "edgeKind": "requires", "bindAs": "renderer" },
    {
      "slot": "normalParticleAsset",
      "description": "普通消除粒子特效图片资产",
      "bindAs": "normalParticle",
      "required": false,
      "edgeKind": "compatibleWith",
      "matchBindingRoles": ["particleAsset"],
      "allowedBundleTypes": ["aiimage"]
    },
    {
      "slot": "winParticleAsset",
      "description": "胜利钻石粒子特效图片资产",
      "bindAs": "winParticle",
      "required": false,
      "edgeKind": "compatibleWith",
      "matchBindingRoles": ["particleAsset"],
      "allowedBundleTypes": ["aiimage"]
    }
  ],
  "exports": [
    { "name": "AnimationManager", "kind": "class", "location": "src/game/scenes/GameUI/AnimationManager.ts" },
    { "name": "AnimationManager3D", "kind": "class", "location": "src/game/rendering/AnimationManager3D.ts" },
    { "name": "Easing", "kind": "object", "location": "src/game/rendering/AnimationManager3D.ts" }
  ],
  "neutralDescriptor": {
    "geometry": "animation director for grid path objects: sliding exit animation, blocked flash animation, victory diamond particle animation",
    "layers": ["tween", "particle-effect", "easing"],
    "replaceable": ["exit animation style", "blocked animation style", "victory effect"]
  },
  "usageHints": [
    "animatePathOffBoard：路径成功消除时沿方向滑出棋盘的动画",
    "animateBlockedPath：路径被阻挡时的震动/闪红动画",
    "playWinDiamondAnimation：全部路径消除后的胜利钻石粒子动画",
    "resetBoardViewForWin：胜利时重置棋盘缩放/位置以适配动画"
  ],
  "files": {
    "skill": "SKILL.md",
    "animationManager": "ref/AnimationManager.ts",
    "animationManager3D": "ref/AnimationManager3D.ts"
  }
}
