@playcraft/common 0.0.55 → 0.0.56

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (110) hide show
  1. package/dist/agent/competitor-report.d.ts +165 -0
  2. package/dist/agent/competitor-report.d.ts.map +1 -0
  3. package/dist/agent/competitor-report.js +261 -0
  4. package/dist/agent/competitor-report.js.map +1 -0
  5. package/dist/agent/context-usage.d.ts +8 -1
  6. package/dist/agent/context-usage.d.ts.map +1 -1
  7. package/dist/agent/context-usage.js +6 -1
  8. package/dist/agent/context-usage.js.map +1 -1
  9. package/dist/agent/index.d.ts +5 -0
  10. package/dist/agent/index.d.ts.map +1 -1
  11. package/dist/agent/index.js +5 -0
  12. package/dist/agent/index.js.map +1 -1
  13. package/dist/agent/model-context-window.d.ts.map +1 -1
  14. package/dist/agent/model-context-window.js +40 -4
  15. package/dist/agent/model-context-window.js.map +1 -1
  16. package/dist/agent/reference-images.d.ts +66 -0
  17. package/dist/agent/reference-images.d.ts.map +1 -0
  18. package/dist/agent/reference-images.js +181 -0
  19. package/dist/agent/reference-images.js.map +1 -0
  20. package/dist/agent/runtime-failure.d.ts +31 -0
  21. package/dist/agent/runtime-failure.d.ts.map +1 -0
  22. package/dist/agent/runtime-failure.js +83 -0
  23. package/dist/agent/runtime-failure.js.map +1 -0
  24. package/dist/agent/session-title.d.ts +8 -0
  25. package/dist/agent/session-title.d.ts.map +1 -0
  26. package/dist/agent/session-title.js +16 -0
  27. package/dist/agent/session-title.js.map +1 -0
  28. package/dist/agent/turn.d.ts +8 -0
  29. package/dist/agent/turn.d.ts.map +1 -0
  30. package/dist/agent/turn.js +7 -0
  31. package/dist/agent/turn.js.map +1 -0
  32. package/dist/agent-jobs/identity.d.ts +8 -0
  33. package/dist/agent-jobs/identity.d.ts.map +1 -0
  34. package/dist/agent-jobs/identity.js +32 -0
  35. package/dist/agent-jobs/identity.js.map +1 -0
  36. package/dist/agent-jobs/index.d.ts +34 -0
  37. package/dist/agent-jobs/index.d.ts.map +1 -0
  38. package/dist/agent-jobs/index.js +39 -0
  39. package/dist/agent-jobs/index.js.map +1 -0
  40. package/dist/agent-jobs/legacy-http-gone.d.ts +13 -0
  41. package/dist/agent-jobs/legacy-http-gone.d.ts.map +1 -0
  42. package/dist/agent-jobs/legacy-http-gone.js +15 -0
  43. package/dist/agent-jobs/legacy-http-gone.js.map +1 -0
  44. package/dist/agent-jobs/legacy-run-task.d.ts +12 -0
  45. package/dist/agent-jobs/legacy-run-task.d.ts.map +1 -0
  46. package/dist/agent-jobs/legacy-run-task.js +14 -0
  47. package/dist/agent-jobs/legacy-run-task.js.map +1 -0
  48. package/dist/agent-jobs/portal-sandbox-team-mount.d.ts +8 -0
  49. package/dist/agent-jobs/portal-sandbox-team-mount.d.ts.map +1 -0
  50. package/dist/agent-jobs/portal-sandbox-team-mount.js +10 -0
  51. package/dist/agent-jobs/portal-sandbox-team-mount.js.map +1 -0
  52. package/dist/agent-jobs/runtime-metrics.d.ts +12 -0
  53. package/dist/agent-jobs/runtime-metrics.d.ts.map +1 -0
  54. package/dist/agent-jobs/runtime-metrics.js +19 -0
  55. package/dist/agent-jobs/runtime-metrics.js.map +1 -0
  56. package/dist/agent-jobs/runtime-timing.d.ts +21 -0
  57. package/dist/agent-jobs/runtime-timing.d.ts.map +1 -0
  58. package/dist/agent-jobs/runtime-timing.js +20 -0
  59. package/dist/agent-jobs/runtime-timing.js.map +1 -0
  60. package/dist/agent-jobs/runtime-v2.d.ts +8 -0
  61. package/dist/agent-jobs/runtime-v2.d.ts.map +1 -0
  62. package/dist/agent-jobs/runtime-v2.js +10 -0
  63. package/dist/agent-jobs/runtime-v2.js.map +1 -0
  64. package/dist/agent-messages/db-message-converter.d.ts +61 -0
  65. package/dist/agent-messages/db-message-converter.d.ts.map +1 -0
  66. package/dist/agent-messages/db-message-converter.js +478 -0
  67. package/dist/agent-messages/db-message-converter.js.map +1 -0
  68. package/dist/agent-messages/index.d.ts +4 -0
  69. package/dist/agent-messages/index.d.ts.map +1 -0
  70. package/dist/agent-messages/index.js +4 -0
  71. package/dist/agent-messages/index.js.map +1 -0
  72. package/dist/agent-messages/message-merge.d.ts +31 -0
  73. package/dist/agent-messages/message-merge.d.ts.map +1 -0
  74. package/dist/agent-messages/message-merge.js +221 -0
  75. package/dist/agent-messages/message-merge.js.map +1 -0
  76. package/dist/agent-messages/runtime-user-messages.d.ts +51 -0
  77. package/dist/agent-messages/runtime-user-messages.d.ts.map +1 -0
  78. package/dist/agent-messages/runtime-user-messages.js +296 -0
  79. package/dist/agent-messages/runtime-user-messages.js.map +1 -0
  80. package/dist/index.d.ts +2 -0
  81. package/dist/index.d.ts.map +1 -1
  82. package/dist/index.js +2 -0
  83. package/dist/index.js.map +1 -1
  84. package/dist/prefab/index.d.ts +1 -0
  85. package/dist/prefab/index.d.ts.map +1 -1
  86. package/dist/prefab/index.js +1 -0
  87. package/dist/prefab/index.js.map +1 -1
  88. package/dist/prefab/schema-condition.d.ts +27 -0
  89. package/dist/prefab/schema-condition.d.ts.map +1 -0
  90. package/dist/prefab/schema-condition.js +107 -0
  91. package/dist/prefab/schema-condition.js.map +1 -0
  92. package/dist/prefab/schema-walker.d.ts +46 -4
  93. package/dist/prefab/schema-walker.d.ts.map +1 -1
  94. package/dist/prefab/schema-walker.js +155 -11
  95. package/dist/prefab/schema-walker.js.map +1 -1
  96. package/dist/prefab/types.d.ts +21 -2
  97. package/dist/prefab/types.d.ts.map +1 -1
  98. package/dist/recommend/atom-graph/basic-atom-graph.d.ts.map +1 -1
  99. package/dist/recommend/atom-graph/basic-atom-graph.js +80 -63
  100. package/dist/recommend/atom-graph/basic-atom-graph.js.map +1 -1
  101. package/dist/recommend/atom-graph/basic-atom-skill-graph.d.ts.map +1 -1
  102. package/dist/recommend/atom-graph/basic-atom-skill-graph.js +8 -0
  103. package/dist/recommend/atom-graph/basic-atom-skill-graph.js.map +1 -1
  104. package/dist/storage/cos.d.ts +4 -4
  105. package/dist/storage/cos.d.ts.map +1 -1
  106. package/dist/storage/cos.js +19 -1
  107. package/dist/storage/cos.js.map +1 -1
  108. package/dist/storage/interface.d.ts +5 -1
  109. package/dist/storage/interface.d.ts.map +1 -1
  110. package/package.json +28 -2
@@ -43,18 +43,34 @@ export type JsonSchemaNode = {
43
43
  description?: string;
44
44
  title?: string;
45
45
  properties?: Record<string, JsonSchemaNode>;
46
+ /** array 类型的元素 schema(type === 'array' 时有效) */
47
+ items?: JsonSchemaNode;
46
48
  xplatform?: {
47
49
  value_type?: string;
48
50
  mime_type?: string;
49
51
  fit_mode?: 'contain' | 'cover' | 'fill';
50
- /** AI 生图后处理扩展协议(唯一真相源) */
52
+ /** 编辑器扩展协议(唯一真相源,涵盖 UI 交互控制/AI 生图后处理等所有扩展配置) */
51
53
  ext?: {
54
+ /** 是否允许增/删数组项(type === 'array' 时有效) */
55
+ isEdit?: boolean;
56
+ minNum?: number;
57
+ maxNum?: number;
58
+ minNumber?: number;
59
+ maxNumber?: number;
60
+ /** 序列帧数组:数组元素为图片路径,渲染为帧动画预览 */
61
+ frames?: boolean;
62
+ /** 帧动画编辑器「关键帧生成」默认提示词(编辑时自动带入 AI 帧动画生成对话框) */
63
+ frame_prompt?: string;
64
+ /** 帧动画编辑器「视频」阶段默认运动提示词(编辑时自动带入 AI 帧动画生成对话框) */
65
+ video_prompt?: string;
66
+ /** 在左侧菜单展开为子菜单(object → properties 子项;array → itemN 子项) */
67
+ subMenu?: boolean;
52
68
  /** 目标像素尺寸,如 "1920x1080" */
53
69
  resolution?: string;
54
70
  /** 目标宽高比,如 "16:9" / "1:1" / "9:16" / "4:3" / "3:4" / "2:3" / "3:2" / "21:9" */
55
71
  ratio?: '16:9' | '1:1' | '9:16' | '4:3' | '3:4' | '2:3' | '3:2' | '21:9';
56
72
  /** 推荐参考图:项目内路径或绝对 URL */
57
- reference_image: string[];
73
+ reference_image?: string[];
58
74
  /** 默认生成提示词(打开对话框时预填) */
59
75
  prompt?: string;
60
76
  remove_background?: boolean;
@@ -62,6 +78,9 @@ export type JsonSchemaNode = {
62
78
  padding_color?: string;
63
79
  fit_mode?: 'contain' | 'cover' | 'fill';
64
80
  upload_only?: boolean;
81
+ isCollapse?: boolean;
82
+ readonly?: boolean;
83
+ [key: string]: unknown;
65
84
  };
66
85
  /** 显示条件:不满足时隐藏该字段(数组 = AND 组合) */
67
86
  showIf?: Condition | Condition[];
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/prefab/types.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/prefab/types.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"basic-atom-graph.d.ts","sourceRoot":"","sources":["../../../src/recommend/atom-graph/basic-atom-graph.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAY,SAAS,EAAY,MAAM,YAAY,CAAC;AA2BhE,eAAO,MAAM,cAAc,EAAE,SA2wB5B,CAAC"}
1
+ {"version":3,"file":"basic-atom-graph.d.ts","sourceRoot":"","sources":["../../../src/recommend/atom-graph/basic-atom-graph.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAY,SAAS,EAAY,MAAM,YAAY,CAAC;AA2BhE,eAAO,MAAM,cAAc,EAAE,SA4xB5B,CAAC"}
@@ -40,11 +40,11 @@ export const basicAtomGraph = {
40
40
  node('game-backgrounds', 'asset', 'fixed', '游戏场景背景图', 'Game scene backgrounds', ["backgroundTexture"], ["background", "landscape", "portrait", "scene", "match3"]),
41
41
  node('level_data_pack', 'asset', 'generative', '关卡数据包', 'Level data pack', ["levelDataPack"], ["config", "level-data", "json", "puzzle", "paths", "grid"]),
42
42
  node('lose_sfx', 'asset', 'generative', '失去生命音效', 'Lose life SFX', ["sfxLose"], ["audio", "sfx", "lose", "life", "hearts"]),
43
- node('mahjong-match2-tile-assets-cats', 'asset', 'fixed', '猫咪风格麻将牌精灵图资源包', 'Cat-Style Mahjong Tile Spritesheet', ["tileAssets", "assetPack"], ["asset-pack"]),
44
- node('mahjong-match2-tile-assets-dog', 'asset', 'fixed', '萌狗风格麻将牌精灵图', 'Dog Style Mahjong Tile Spritesheet', ["tileAssets"], ["asset-pack", "phaser", "threejs"]),
45
- node('mahjong-match2-tile-assets-draft', 'asset', 'fixed', 'draft 风格麻将牌精灵图资源包', 'Draft Mahjong Tile Spritesheet Asset Pack', ["tileAsset", "mahjongTileSprite"], ["asset-pack", "phaser", "spritesheet", "casual", "puzzle"]),
46
- node('mahjong-match2-tile-assets-maple', 'asset', 'fixed', '枫叶风格麻将牌精灵图资源包', 'Maple Leaf Mahjong Tile Spritesheet Asset Pack', ["tileAsset", "mahjongTileSprite"], ["asset-pack", "phaser", "spritesheet", "casual", "puzzle"]),
47
- node('mahjong-match2-tile-assets-treasure', 'asset', 'fixed', '宝箱风格麻将牌精灵图资源包', 'Treasure Box Mahjong Tile Spritesheet Pack', ["tileSpritesheet"], ["asset-pack", "spritesheet", "phaser", "threejs", "puzzle"]),
43
+ node('mahjong-match2-tile-assets-cats', 'asset', 'fixed', '猫咪风格麻将牌精灵图资源包', 'Cat-Style Mahjong Tile Spritesheet', ["tileAssets", "assetPack"], ["asset-pack", "individual-sprites"]),
44
+ node('mahjong-match2-tile-assets-dog', 'asset', 'fixed', '萌狗风格麻将牌精灵图', 'Dog Style Mahjong Tile Spritesheet', ["tileAssets"], ["asset-pack", "phaser", "threejs", "individual-sprites"]),
45
+ node('mahjong-match2-tile-assets-draft', 'asset', 'fixed', 'draft 风格麻将牌精灵图资源包', 'Draft Mahjong Tile Spritesheet Asset Pack', ["tileAssets"], ["asset-pack", "phaser", "casual", "puzzle", "individual-sprites"]),
46
+ node('mahjong-match2-tile-assets-maple', 'asset', 'fixed', '枫叶风格麻将牌精灵图资源包', 'Maple Leaf Mahjong Tile Spritesheet Asset Pack', ["tileAssets"], ["asset-pack", "phaser", "casual", "puzzle", "individual-sprites"]),
47
+ node('mahjong-match2-tile-assets-treasure', 'asset', 'fixed', '宝箱风格麻将牌精灵图资源包', 'Treasure Box Mahjong Tile Spritesheet Pack', ["tileAssets"], ["asset-pack", "phaser", "threejs", "puzzle", "individual-sprites"]),
48
48
  node('mahjong-scroll-bg-chibi', 'asset', 'fixed', '麻将卷轴背景-Q版风格', 'Mahjong Scroll Bg - Chibi', ["backgroundTexture"], ["background", "mahjong", "scroll-match", "chibi"]),
49
49
  node('mahjong-scroll-bg-dark', 'asset', 'fixed', '麻将卷轴背景-暗黑风格', 'Mahjong Scroll Bg - Dark', ["backgroundTexture"], ["background", "mahjong", "scroll-match", "dark"]),
50
50
  node('mahjong-scroll-bg-default', 'asset', 'fixed', '麻将卷轴背景-默认风格', 'Mahjong Scroll Bg - Default', ["backgroundTexture"], ["background", "mahjong", "scroll-match", "default"]),
@@ -53,28 +53,29 @@ export const basicAtomGraph = {
53
53
  node('mahjong-scroll-bg-nature', 'asset', 'fixed', '麻将卷轴背景-自然风格', 'Mahjong Scroll Bg - Nature', ["backgroundTexture"], ["background", "mahjong", "scroll-match", "nature"]),
54
54
  node('mahjong-scroll-bg-wood', 'asset', 'fixed', '麻将卷轴背景-木纹风格', 'Mahjong Scroll Bg - Wood', ["backgroundTexture"], ["background", "mahjong", "scroll-match", "wood"]),
55
55
  node('mahjong-scroll-slot-bg', 'asset', 'fixed', '麻将卷轴槽位卡片背景', 'Mahjong Scroll Slot Card Background', ["slotCardBackground"], ["slot", "card-background", "mahjong", "scroll-match"]),
56
- node('mahjong-scroll-tile-chibi', 'asset', 'fixed', '麻将卷轴牌面-Q版风格', 'Mahjong Scroll Tile - Chibi', ["tileTextureSet"], ["tile", "spritesheet", "mahjong", "scroll-match", "chibi"]),
57
- node('mahjong-scroll-tile-dark', 'asset', 'fixed', '麻将卷轴牌面-暗黑风格', 'Mahjong Scroll Tile - Dark', ["tileTextureSet"], ["tile", "spritesheet", "mahjong", "scroll-match", "dark"]),
58
- node('mahjong-scroll-tile-default', 'asset', 'fixed', '麻将卷轴牌面-默认风格', 'Mahjong Scroll Tile - Default', ["tileTextureSet"], ["tile", "spritesheet", "mahjong", "scroll-match", "default"]),
59
- node('mahjong-scroll-tile-elder', 'asset', 'fixed', '麻将卷轴牌面-长辈风格', 'Mahjong Scroll Tile - Elder', ["tileTextureSet"], ["tile", "spritesheet", "mahjong", "scroll-match", "elder"]),
60
- node('mahjong-scroll-tile-meditation', 'asset', 'fixed', '麻将卷轴牌面-禅意风格', 'Mahjong Scroll Tile - Meditation', ["tileTextureSet"], ["tile", "spritesheet", "mahjong", "scroll-match", "meditation"]),
61
- node('mahjong-scroll-tile-nature', 'asset', 'fixed', '麻将卷轴牌面-自然风格', 'Mahjong Scroll Tile - Nature', ["tileTextureSet"], ["tile", "spritesheet", "mahjong", "scroll-match", "nature"]),
62
- node('mahjong-scroll-tile-wood', 'asset', 'fixed', '麻将卷轴牌面-木纹风格', 'Mahjong Scroll Tile - Wood', ["tileTextureSet"], ["tile", "spritesheet", "mahjong", "scroll-match", "wood"]),
56
+ node('mahjong-scroll-tile-chibi', 'asset', 'fixed', '麻将卷轴牌面-Q版风格', 'Mahjong Scroll Tile - Chibi', ["tileTextureSet"], ["tile", "mahjong", "scroll-match", "chibi", "individual-sprites", "individual-sprites"]),
57
+ node('mahjong-scroll-tile-dark', 'asset', 'fixed', '麻将卷轴牌面-暗黑风格', 'Mahjong Scroll Tile - Dark', ["tileTextureSet"], ["tile", "mahjong", "scroll-match", "dark", "individual-sprites", "individual-sprites"]),
58
+ node('mahjong-scroll-tile-default', 'asset', 'fixed', '麻将卷轴牌面-默认风格', 'Mahjong Scroll Tile - Default', ["tileTextureSet"], ["tile", "mahjong", "scroll-match", "default", "individual-sprites", "individual-sprites"]),
59
+ node('mahjong-scroll-tile-elder', 'asset', 'fixed', '麻将卷轴牌面-长辈风格', 'Mahjong Scroll Tile - Elder', ["tileTextureSet"], ["tile", "mahjong", "scroll-match", "elder", "individual-sprites", "individual-sprites"]),
60
+ node('mahjong-scroll-tile-meditation', 'asset', 'fixed', '麻将卷轴牌面-禅意风格', 'Mahjong Scroll Tile - Meditation', ["tileTextureSet"], ["tile", "mahjong", "scroll-match", "meditation", "individual-sprites", "individual-sprites"]),
61
+ node('mahjong-scroll-tile-nature', 'asset', 'fixed', '麻将卷轴牌面-自然风格', 'Mahjong Scroll Tile - Nature', ["tileTextureSet"], ["tile", "mahjong", "scroll-match", "nature", "individual-sprites", "individual-sprites"]),
62
+ node('mahjong-scroll-tile-wood', 'asset', 'fixed', '麻将卷轴牌面-木纹风格', 'Mahjong Scroll Tile - Wood', ["tileTextureSet"], ["tile", "mahjong", "scroll-match", "wood", "individual-sprites", "individual-sprites"]),
63
63
  node('mistake_sfx', 'asset', 'generative', '阻挡失败音效', 'Blocked path mistake SFX', ["sfxMistake"], ["audio", "sfx", "mistake", "blocked", "error"]),
64
64
  node('score_goal', 'asset', 'parametric', '分数达标目标配置', 'Score goal config', ["levelGoalConfig"], ["config", "goal", "score", "target", "mechanism", "level"]),
65
65
  node('success_sfx', 'asset', 'generative', '关卡通关音效', 'Level success SFX', ["sfxSuccess"], ["audio", "sfx", "success", "win", "level-complete"]),
66
66
  node('theme_variant', 'asset', 'parametric', '主题变体配置', 'Theme variant config', ["themeVariantConfig"], ["config", "theme", "variant", "color", "level-mode", "style"]),
67
- node('tile-effect-atlas', 'asset', 'fixed', '牌面特效 Atlas', 'Tile Effect Atlas', ["tileOverlayAtlas"], ["tile", "overlay", "atlas", "sprite-atlas", "lock-icon", "highlight", "mahjong", "match3", "asset-pack"]),
68
- node('tile-sheets-animals', 'asset', 'fixed', '动物牌面贴图', 'Animals tile sheet', ["tileTextureSet"], ["tile", "spritesheet", "mahjong", "animals", "cute", "match3"]),
69
- node('tile-sheets-colorful', 'asset', 'fixed', '彩色牌面贴图', 'Colorful tile sheet', ["tileTextureSet"], ["tile", "spritesheet", "mahjong", "colorful", "match3"]),
70
- node('tile-sheets-gold', 'asset', 'fixed', '金色牌面贴图', 'Gold tile sheet', ["tileTextureSet"], ["tile", "spritesheet", "mahjong", "gold", "premium", "match3"]),
71
- node('tile-sheets-normal', 'asset', 'fixed', '标准牌面贴图', 'Normal tile sheet', ["tileTextureSet"], ["tile", "spritesheet", "mahjong", "normal", "standard", "match3"]),
67
+ node('tile-effect-atlas', 'asset', 'fixed', '牌面特效素材集', 'Tile Effect Sprites', [], ["tile", "overlay", "atlas", "lock-icon", "highlight", "mahjong", "match3", "asset-pack"]),
68
+ node('tile-sheets-animals', 'asset', 'fixed', '动物牌面贴图', 'Animals tile sheet', ["tileTextureSet"], ["tile", "spritesheet", "mahjong", "animals", "cute", "match3", "individual-sprites"]),
69
+ node('tile-sheets-colorful', 'asset', 'fixed', '彩色牌面贴图', 'Colorful tile sheet', ["tileTextureSet"], ["tile", "spritesheet", "mahjong", "colorful", "match3", "individual-sprites"]),
70
+ node('tile-sheets-gold', 'asset', 'fixed', '金色牌面贴图', 'Gold tile sheet', ["tileTextureSet"], ["tile", "spritesheet", "mahjong", "gold", "premium", "match3", "individual-sprites"]),
71
+ node('tile-sheets-normal', 'asset', 'fixed', '标准牌面贴图', 'Normal tile sheet', ["tileTextureSet"], ["tile", "spritesheet", "mahjong", "normal", "standard", "match3", "individual-sprites"]),
72
72
  node('time_clear_goal', 'asset', 'parametric', '限时清除目标配置', 'Timed clear goal config', ["levelGoalConfig"], ["config", "goal", "timer", "time", "pressure", "mechanism", "level"]),
73
- node('ui-interact-atlas', 'asset', 'fixed', '游戏结算/CTA UI Atlas', 'UI Interact Atlas', ["uiButtonSet", "ctaPanel", "resultScreenAtlas"], ["ui", "cta", "result-screen", "atlas", "sprite-atlas", "play-button", "end-game", "mahjong", "asset-pack"]),
73
+ node('ui-interact-atlas', 'asset', 'fixed', '游戏结算/CTA UI 素材集', 'Game CTA UI Assets', [], ["ui", "cta", "result-screen", "atlas", "play-button", "end-game", "mahjong", "asset-pack"]),
74
74
  node('ux_flow_spec', 'asset', 'parametric', '试玩广告 UX 流程规范', 'Playable ads UX flow spec', ["adPlatformConfig"], ["config", "ux", "flow", "user-experience", "playable-ads", "tutorial", "onboarding", "cta"]),
75
75
  node('wave_difficulty', 'asset', 'parametric', '波浪难度曲线', 'Wave difficulty curve', ["difficultyConfig"], ["config", "difficulty", "wave", "curve", "level", "dynamic"]),
76
76
  node('win_anim_sfx', 'asset', 'generative', '胜利动画音效', 'Win animation SFX', ["sfxWinAnim"], ["audio", "sfx", "win", "animation", "sparkle", "victory"]),
77
- node('arrow_path_data_format', 'gameplay', 'fixed', '箭头路径关卡数据格式', 'Arrow path level data format', ["levelDataFormat"], ["level-data", "parser", "types", "json", "path", "arrow", "cocos-format", "threejs", "3d", "xz-plane"]),
77
+ node('arrow-level-generator', 'gameplay', 'fixed', '箭头关卡生成工具', 'Arrow level generator', ["arrowLevelGenerator"], ["level-generation", "layout", "arrow", "path-elimination", "image-to-level", "cli-tool", "solvability"]),
78
+ node('arrow-puzzle-data', 'gameplay', 'fixed', '箭头拼图数据层', 'Arrow Puzzle Data', ["levelDataFormat"], ["gameplay-data", "level-data", "parser", "types", "json", "path", "arrow", "cocos-format", "path-collision", "deadlock", "win-target", "threejs", "3d", "phaser", "path-rendering", "board-layout"]),
78
79
  node('billiards-shot-scene-phaser', 'gameplay', 'fixed', 'billiards-shot-scene-phaser', 'Billiards Shot Scene Phaser', [], ["scene", "phaser", "game-loop", "physics", "tutorial", "shader", "3d-rendering", "gameplay-rule", "billiards"]),
79
80
  node('car_parking', 'gameplay', 'fixed', '停车场解谜玩法', 'Car Parking Puzzle gameplay', ["gameplayRule"], ["gameplay", "puzzle", "parking", "sliding", "grid", "casual"]),
80
81
  node('collect-match-scene-phaser', 'gameplay', 'fixed', 'collect-match-scene-phaser', 'Collect Match Scene Phaser', [], ["system", "phaser", "gameplay-rule", "match3"]),
@@ -84,7 +85,7 @@ export const basicAtomGraph = {
84
85
  node('game_scene', 'gameplay', 'fixed', '主游戏场景', 'Main game scene', ["gameMainScene"], ["scene", "game", "main", "coordinator", "phaser"]),
85
86
  node('grid_board_layout', 'gameplay', 'fixed', '格子棋盘布局', 'Grid board layout', ["gridBoardLayout"], ["layout", "grid", "board", "cell-size", "zoom", "pan", "drag-bounds", "threejs", "3d", "xz-plane"]),
86
87
  node('layered-grid-layout', 'gameplay', 'fixed', 'layered-grid-layout', 'Layered Grid Layout', [], ["layout", "gameplay-data"]),
87
- node('layered-stack-board-phaser', 'gameplay', 'fixed', 'layered-stack-board-phaser', 'Layered Stack Board Phaser', [], ["component", "phaser", "gameplay-system"]),
88
+ node('layered-stack-board-phaser', 'gameplay', 'fixed', 'layered-stack-board-phaser(含可翻牌 Tile 实体)', 'Layered Stack Board with Flippable Tile Entity', [], ["component", "phaser", "gameplay-system", "flip-animation", "shadow", "tile-entity"]),
88
89
  node('level_state', 'gameplay', 'fixed', '关卡进度状态', 'Level progress state', ["levelProgress"], ["state", "level", "progress", "level-manager", "level-data"]),
89
90
  node('mahjong-board-layout-system', 'gameplay', 'fixed', '麻将棋盘布局坐标系统', 'Mahjong Board Layout Coordinate System', ["tileEntity", "boardLayoutSystem"], ["gameplay-entity", "gameplay-data", "layout", "grid", "coordinate", "board", "tile", "mahjong", "match2"]),
90
91
  node('mahjong-match2-audio-manager', 'gameplay', 'fixed', '音频管理器', 'Audio Manager', ["audioManager"], ["gameplay-system", "audio", "phaser"]),
@@ -123,10 +124,10 @@ export const basicAtomGraph = {
123
124
  node('settings_state', 'gameplay', 'fixed', '用户设置状态管理', 'User settings state manager', ["userSettings"], ["state", "settings", "music", "sound", "drag-speed", "preferences"]),
124
125
  node('theme_state', 'gameplay', 'fixed', '主题状态管理器', 'Theme state manager', ["themeManager"], ["state", "theme", "color", "style", "arrow-style", "ui-text"]),
125
126
  node('tile-data-generator', 'gameplay', 'fixed', 'tile-data-generator', 'Tile Data Generator', [], ["generator", "gameplay-data"]),
126
- node('tile-flip-animator-phaser', 'gameplay', 'fixed', 'tile-flip-animator-phaser', 'Tile Flip Animator Phaser', [], ["component", "phaser", "input-touch", "animation", "gameplay-system"]),
127
127
  node('tile-slot-storage-phaser', 'gameplay', 'fixed', 'tile-slot-storage-phaser', 'Tile Slot Storage Phaser', [], ["component", "phaser", "animation", "gameplay-system"]),
128
128
  node('web-audio-manager', 'gameplay', 'fixed', 'web-audio-manager', 'Web Audio Manager', ["audioPlayHelper"], ["system", "vanilla", "gameplay-system"]),
129
129
  node('web-sfx-synthesizer', 'gameplay', 'fixed', 'web-sfx-synthesizer', 'Web Sfx Synthesizer', ["audioPlayHelper"], ["system", "vanilla", "gameplay-system"]),
130
+ node('arrows-character-reaction-phaser', 'visual', 'fixed', '箭头拼图角色反应动画系统', 'Arrows puzzle character reaction spritesheet animation system', ["characterReactionAnimator"], ["visual-animator", "phaser", "spritesheet", "reaction", "character", "animation"]),
130
131
  node('candy_tile', 'visual', 'generative', '糖果牌面贴图组', 'Candy tile set', ["tileTextureSet"], ["tile", "visual", "candy", "sweet", "match3", "cute", "colorful"]),
131
132
  node('castle', 'visual', 'generative', '城堡背景', 'Castle background', ["backgroundTexture"], ["background", "visual", "castle", "fantasy", "medieval", "epic"]),
132
133
  node('combo-vfx', 'visual', 'fixed', 'combo-vfx', 'Combo Vfx', [], ["component", "playcanvas", "animation"]),
@@ -179,7 +180,7 @@ export const basicAtomGraph = {
179
180
  node('game_over_panel', 'ui', 'fixed', '结果弹窗 UI', 'Result Popup UI', ["gameOverDialog", "resultPopup", "endGameOverlay"], ["component", "overlay", "phaser", "popup", "end-game"]),
180
181
  node('graphics-helper-phaser', 'ui', 'fixed', 'graphics-helper-phaser', 'Graphics Helper Phaser', [], ["component", "phaser"]),
181
182
  node('hand-guide-overlay-phaser', 'ui', 'fixed', 'hand-guide-overlay-phaser', 'Hand Guide Overlay Phaser', [], ["component", "phaser", "input-touch", "tutorial"]),
182
- node('mahjong-match2-hint-ui', 'ui', 'fixed', '手指提示 UI 组件', 'Finger Hint UI Component', ["tutorialHint", "pairHint", "fingerGuide"], ["component", "tutorial", "phaser", "overlay"]),
183
+ node('mahjong-match2-hint-ui', 'ui', 'fixed', '手指提示 UI 组件', 'Finger Hint UI Component', ["hintSystem"], ["component", "tutorial", "phaser", "overlay"]),
183
184
  node('pair-guide-phaser', 'ui', 'fixed', 'pair-guide-phaser', 'Pair Guide Phaser', [], ["component", "phaser", "tutorial"]),
184
185
  node('power-bar-phaser', 'ui', 'fixed', 'power-bar-phaser', 'Power Bar Phaser', [], ["component", "phaser", "input", "animation", "billiards"]),
185
186
  node('score-ui-phaser', 'ui', 'fixed', 'score-ui-phaser', 'Score Ui Phaser', ["scoreDisplay"], ["component", "phaser", "numeric"]),
@@ -216,14 +217,15 @@ export const basicAtomGraph = {
216
217
  ],
217
218
  edges: [
218
219
  edge('theme_switcher_build', 'playable_scripts_build', 'requires', 'buildPipeline'),
219
- edge('level_data_pack', 'arrow_path_data_format', 'requires', 'dataFormat'),
220
+ edge('level_data_pack', 'arrow-puzzle-data', 'requires', 'dataFormat'),
220
221
  edge('mahjong-match2-tile-assets-cats', 'mahjong-match2-tile-entity', 'requires', 'tile-definition'),
221
222
  edge('mahjong-match2-tile-assets-dog', 'mahjong-match2-tile-entity', 'requires', 'tileDefinition'),
222
223
  edge('mahjong-match2-tile-assets-draft', 'mahjong-match2-tile-entity', 'requires', 'tile-definition'),
223
224
  edge('mahjong-match2-tile-assets-maple', 'mahjong-match2-tile-entity', 'requires', 'tile-definition'),
224
225
  edge('mahjong-match2-tile-assets-treasure', 'mahjong-match2-tile-entity', 'requires', 'tile-definition'),
225
226
  edge('theme_variant', 'level_data_pack', 'requires', 'levelDataPack'),
226
- edge('theme_variant', 'arrow_path_data_format', 'requires', 'dataFormat'),
227
+ edge('theme_variant', 'arrow-puzzle-data', 'requires', 'dataFormat'),
228
+ edge('arrow-level-generator', 'arrow-puzzle-data', 'requires', 'dataFormat'),
227
229
  edge('billiards-shot-scene-phaser', 'billiards-ball-sprites', 'requires', '16 颗 matcap 球贴图(WebGL shader 纹理输入)'),
228
230
  edge('billiards-shot-scene-phaser', 'cue-aim-line-phaser', 'requires', '球杆瞄准线(含单次反弹预览)'),
229
231
  edge('billiards-shot-scene-phaser', 'pool-ball-physics', 'requires', '台球物理运算(碰撞、运动、袋口检测)'),
@@ -363,11 +365,25 @@ export const basicAtomGraph = {
363
365
  edge('eight_ball_pool', 'hand-guide-overlay-phaser', 'requires', '新手引导手指浮层(首次进入时触发)'),
364
366
  edge('eight_ball_pool', 'tutorial_overlay', 'compatibleWith', '新手引导浮层'),
365
367
  edge('game_scene', 'phaser', 'requires', 'engine'),
368
+ edge('game_scene', 'arrow-puzzle-data', 'requires', 'levelData'),
366
369
  edge('game_scene', 'grid_board_layout', 'requires', 'boardLayout'),
367
- edge('game_scene', 'path_elimination_rules', 'requires', 'gameplay'),
368
- edge('game_scene', 'phaser_scene_lifecycle', 'requires', 'lifecycle'),
370
+ edge('game_scene', 'level_state', 'requires', 'levelState'),
371
+ edge('game_scene', 'phaser_scene_lifecycle', 'compatibleWith', '双场景架构约定(Preloader→Game),约定而非必须'),
372
+ edge('game_scene', 'theme_state', 'requires', 'theme'),
373
+ edge('game_scene', 'game_over_panel', 'compatibleWith', '结算面板(胜利/失败弹窗、SDK 回调)'),
374
+ edge('game_scene', 'combo_display', 'requires', '连击系统(连击计数、表扬文案、进度环)'),
375
+ edge('game_scene', 'download_button', 'compatibleWith', 'CTA 下载按钮(胶囊形、呼吸动画、SDK 安装)'),
376
+ edge('game_scene', 'level_lifecycle', 'compatibleWith', '关卡生命周期(扣命/胜负/危险闪光),补全游戏体验但非必须'),
377
+ edge('game_scene', 'path_animation', 'requires', 'animator'),
378
+ edge('game_scene', 'path_input_handler', 'requires', 'input'),
379
+ edge('game_scene', 'path_renderer', 'requires', 'renderer'),
380
+ edge('game_scene', 'top_ui_bar', 'requires', '顶部状态栏(关卡标题、生命值、倒计时、进度)'),
381
+ edge('game_scene', 'tutorial_overlay', 'requires', '新手引导系统(分步教程、缩放指南、空闲提示)'),
369
382
  edge('grid_board_layout', 'phaser', 'requires', 'engine'),
383
+ edge('grid_board_layout', 'arrow-puzzle-data', 'compatibleWith', '关卡数据,路径坐标在格子上才有意义'),
370
384
  edge('grid_board_layout', 'responsive_2d_layout', 'requires', 'responsiveLayout'),
385
+ edge('grid_board_layout', 'path_input_handler', 'compatibleWith', '点击/拖拽/缩放,消费格子坐标做命中检测'),
386
+ edge('grid_board_layout', 'path_renderer', 'compatibleWith', '路径渲染器,消费格子坐标画线'),
371
387
  edge('layered-stack-board-phaser', 'mahjong-scroll-tile-chibi', 'compatibleWith', '牌面贴图组(colorfulTile/goldTile/animalsTile/normalTile)'),
372
388
  edge('layered-stack-board-phaser', 'mahjong-scroll-tile-dark', 'compatibleWith', '牌面贴图组(colorfulTile/goldTile/animalsTile/normalTile)'),
373
389
  edge('layered-stack-board-phaser', 'mahjong-scroll-tile-default', 'compatibleWith', '牌面贴图组(colorfulTile/goldTile/animalsTile/normalTile)'),
@@ -381,21 +397,30 @@ export const basicAtomGraph = {
381
397
  edge('layered-stack-board-phaser', 'tile-sheets-gold', 'compatibleWith', '牌面贴图组(colorfulTile/goldTile/animalsTile/normalTile)'),
382
398
  edge('layered-stack-board-phaser', 'tile-sheets-normal', 'compatibleWith', '牌面贴图组(colorfulTile/goldTile/animalsTile/normalTile)'),
383
399
  edge('layered-stack-board-phaser', 'layered-grid-layout', 'requires', 'layered-grid-layout'),
384
- edge('layered-stack-board-phaser', 'tile-flip-animator-phaser', 'requires', 'tile-flip-animator-phaser'),
385
400
  edge('layered-stack-board-phaser', 'tile-slot-storage-phaser', 'requires', 'collection target for tiles clicked on this board'),
386
401
  edge('layered-stack-board-phaser', 'candy_tile', 'compatibleWith', '牌面贴图组(colorfulTile/goldTile/animalsTile/normalTile)'),
387
402
  edge('layered-stack-board-phaser', 'fruit_tile', 'compatibleWith', '牌面贴图组(colorfulTile/goldTile/animalsTile/normalTile)'),
388
403
  edge('layered-stack-board-phaser', 'jewel_tile', 'compatibleWith', '牌面贴图组(colorfulTile/goldTile/animalsTile/normalTile)'),
389
404
  edge('level_state', 'phaser', 'requires', 'engine'),
390
- edge('level_state', 'arrow_path_data_format', 'requires', 'levelData'),
405
+ edge('level_state', 'arrow-puzzle-data', 'requires', 'levelData'),
406
+ edge('mahjong-board-layout-system', 'mahjong-match2-layout-castle', 'compatibleWith', 'boardLayout'),
407
+ edge('mahjong-board-layout-system', 'mahjong-match2-layout-duncher', 'compatibleWith', 'boardLayout'),
408
+ edge('mahjong-board-layout-system', 'mahjong-match2-layout-flat', 'compatibleWith', 'boardLayout'),
409
+ edge('mahjong-board-layout-system', 'mahjong-match2-layout-heart', 'compatibleWith', 'boardLayout'),
410
+ edge('mahjong-board-layout-system', 'mahjong-match2-layout-turtle', 'compatibleWith', 'boardLayout'),
391
411
  edge('mahjong-match2-board-entity', 'mahjong-match2-gameplay-rule', 'requires', 'rule'),
392
412
  edge('mahjong-match2-board-entity', 'mahjong-match2-tile-entity', 'requires', 'tileEntity'),
393
413
  edge('mahjong-match2-core-rule', 'mahjong-board-layout-system', 'requires', 'tileEntity'),
394
414
  edge('mahjong-match2-core-rule', 'mahjong-board-layout-system', 'requires', 'boardLayout'),
415
+ edge('mahjong-match2-core-rule', 'mahjong-match2-audio-manager', 'compatibleWith', 'audioManager'),
416
+ edge('mahjong-match2-core-rule', 'mahjong-match2-layout-data', 'compatibleWith', 'layoutData'),
395
417
  edge('mahjong-match2-core-rule', 'match-combo-effect-system', 'compatibleWith', 'comboEffect'),
418
+ edge('mahjong-match2-core-rule', 'mahjong-match2-entrance-vfx', 'compatibleWith', 'entranceAnimation'),
396
419
  edge('mahjong-match2-core-rule', 'tile-collision-fly-animation-phaser', 'compatibleWith', 'collisionAnimation'),
420
+ edge('mahjong-match2-core-rule', 'tile-entrance-animation-phaser', 'compatibleWith', 'entranceAnimation'),
397
421
  edge('mahjong-match2-core-rule', 'tile-fragment-explosion-phaser', 'compatibleWith', 'explosionEffect'),
398
422
  edge('mahjong-match2-core-rule', 'countdown-ui-phaser', 'compatibleWith', 'countdownTimer'),
423
+ edge('mahjong-match2-core-rule', 'mahjong-match2-hint-ui', 'compatibleWith', 'hintSystem'),
399
424
  edge('mahjong-match2-core-rule', 'countdown_timer', 'compatibleWith', 'countdownTimer'),
400
425
  edge('mahjong-match2-gameplay-rule', 'bg_music', 'compatibleWith', 'bgMusic'),
401
426
  edge('mahjong-match2-gameplay-rule', 'calm_piano', 'compatibleWith', 'bgMusic'),
@@ -419,7 +444,12 @@ export const basicAtomGraph = {
419
444
  edge('mahjong-match2-layout-flat', 'mahjong-board-layout-system', 'requires', 'boardLayoutSystem'),
420
445
  edge('mahjong-match2-layout-heart', 'mahjong-board-layout-system', 'requires', 'boardLayoutSystem'),
421
446
  edge('mahjong-match2-layout-turtle', 'mahjong-board-layout-system', 'requires', 'boardLayoutSystem'),
422
- edge('mahjong-match2-tile-entity', 'mahjong-match2-gameplay-rule', 'requires', 'rule'),
447
+ edge('mahjong-match2-tile-entity', 'mahjong-match2-tile-assets-cats', 'compatibleWith', 'tileAssets'),
448
+ edge('mahjong-match2-tile-entity', 'mahjong-match2-tile-assets-dog', 'compatibleWith', 'tileAssets'),
449
+ edge('mahjong-match2-tile-entity', 'mahjong-match2-tile-assets-draft', 'compatibleWith', 'tileAssets'),
450
+ edge('mahjong-match2-tile-entity', 'mahjong-match2-tile-assets-maple', 'compatibleWith', 'tileAssets'),
451
+ edge('mahjong-match2-tile-entity', 'mahjong-match2-tile-assets-treasure', 'compatibleWith', 'tileAssets'),
452
+ edge('mahjong-match2-tile-entity', 'mahjong-match2-core-rule', 'requires', 'rule'),
423
453
  edge('mahjong-scroll-scene-phaser', 'bg_music', 'compatibleWith', '背景循环音乐'),
424
454
  edge('mahjong-scroll-scene-phaser', 'button_click_sfx', 'compatibleWith', '按钮点击音效'),
425
455
  edge('mahjong-scroll-scene-phaser', 'calm_piano', 'compatibleWith', '背景循环音乐'),
@@ -490,8 +520,8 @@ export const basicAtomGraph = {
490
520
  edge('mahjong-tile-atlas-factory', 'fruit_tile', 'requires', '待切割的统一牌面精灵图(tileTextureSet 资产)'),
491
521
  edge('mahjong-tile-atlas-factory', 'jewel_tile', 'requires', '待切割的统一牌面精灵图(tileTextureSet 资产)'),
492
522
  edge('mahjong-triple-elimination-rule', 'layered-grid-layout', 'semanticallyRelatedTo', '布局数据:MahjongLayoutConfig 格式,pyramid/heart 等预置布局'),
523
+ edge('mahjong-triple-elimination-rule', 'layered-stack-board-phaser', 'semanticallyRelatedTo', 'Board 内置 Tile 实体:翻牌状态机、遮挡/双边锁定检测、点击路由、setOnFailHandler 回调'),
493
524
  edge('mahjong-triple-elimination-rule', 'layered-stack-board-phaser', 'semanticallyRelatedTo', 'Board 实体:多层布局、AABB 遮挡判定、牌面分配(easy/normal)'),
494
- edge('mahjong-triple-elimination-rule', 'tile-flip-animator-phaser', 'semanticallyRelatedTo', 'Tile 实体:翻牌状态机、遮挡/双边锁定检测、setOnFail 回调'),
495
525
  edge('mahjong-triple-elimination-rule', 'tile-slot-storage-phaser', 'semanticallyRelatedTo', '槽位系统:配对检测、消除动画、连击计数、满槽检测,回调驱动输出'),
496
526
  edge('mahjong-triple-elimination-rule', 'mahjong-elimination-effects', 'compatibleWith', '消除粒子特效(碎片/花瓣/菊花散射)'),
497
527
  edge('mahjong-triple-elimination-rule', 'mahjong-streak-celebration', 'compatibleWith', '连击庆祝特效(碎片雨+彩带炮+IP弹出)'),
@@ -601,18 +631,16 @@ export const basicAtomGraph = {
601
631
  edge('path_elimination_rules', 'mahjong-scroll-bg-nature', 'compatibleWith', '游戏背景图'),
602
632
  edge('path_elimination_rules', 'mahjong-scroll-bg-wood', 'compatibleWith', '游戏背景图'),
603
633
  edge('path_elimination_rules', 'theme_variant', 'compatibleWith', '主题变体配置(颜色/关卡模式等)'),
604
- edge('path_elimination_rules', 'arrow_path_data_format', 'requires', 'levelData'),
605
- edge('path_elimination_rules', 'grid_board_layout', 'requires', 'boardLayout'),
634
+ edge('path_elimination_rules', 'arrow-level-generator', 'compatibleWith', '关卡生成器,将图片/参数转为 RawLevelJson 关卡数据'),
635
+ edge('path_elimination_rules', 'game_scene', 'requires', 'gameScene'),
636
+ edge('path_elimination_rules', 'phaser_scene_lifecycle', 'requires', 'sceneArchitecture'),
637
+ edge('path_elimination_rules', 'preloader_scene', 'requires', 'preloader'),
606
638
  edge('path_elimination_rules', 'castle', 'compatibleWith', '游戏背景图'),
607
639
  edge('path_elimination_rules', 'desert', 'compatibleWith', '游戏背景图'),
608
640
  edge('path_elimination_rules', 'forest', 'compatibleWith', '游戏背景图'),
609
641
  edge('path_elimination_rules', 'lose_result_panel', 'compatibleWith', '失败反馈面板视觉'),
610
642
  edge('path_elimination_rules', 'ocean', 'compatibleWith', '游戏背景图'),
611
643
  edge('path_elimination_rules', 'win_result_panel', 'compatibleWith', '通关反馈面板视觉'),
612
- edge('path_elimination_rules', 'level_lifecycle', 'requires', 'lifecycle'),
613
- edge('path_elimination_rules', 'path_animation', 'requires', 'animator'),
614
- edge('path_elimination_rules', 'path_input_handler', 'requires', 'input'),
615
- edge('path_elimination_rules', 'path_renderer', 'requires', 'renderer'),
616
644
  edge('phaser_scene_lifecycle', 'phaser', 'requires', 'engine'),
617
645
  edge('phaser-preload-scene', 'phaser-responsive-scale', 'requires', 'phaser-responsive-scale'),
618
646
  edge('pick_and_match_rules', 'phaser', 'requires', 'engine'),
@@ -654,9 +682,6 @@ export const basicAtomGraph = {
654
682
  edge('playable_end_screen_layout', 'responsive_2d_layout', 'requires', 'layout'),
655
683
  edge('playable_guidance_layer', 'responsive_2d_layout', 'requires', 'layout'),
656
684
  edge('playable_hud_layout', 'responsive_2d_layout', 'requires', 'layout'),
657
- edge('preloader_scene', 'phaser', 'requires', 'engine'),
658
- edge('preloader_scene', 'phaser_scene_lifecycle', 'requires', 'lifecycle'),
659
- edge('preloader_scene', 'loading_screen', 'compatibleWith', 'Loading 页面 UI 组件(logo/title/stars/desc/dots 动画)'),
660
685
  edge('responsive_2d_layout', 'phaser', 'requires', 'engine'),
661
686
  edge('screw_puzzle', 'phaser', 'requires', 'engine'),
662
687
  edge('screw_puzzle', 'bg_music', 'compatibleWith', '背景循环音乐'),
@@ -695,28 +720,15 @@ export const basicAtomGraph = {
695
720
  edge('screw_puzzle', 'tutorial_overlay', 'compatibleWith', '新手引导浮层'),
696
721
  edge('settings_state', 'phaser', 'requires', 'engine'),
697
722
  edge('theme_state', 'phaser', 'requires', 'engine'),
698
- edge('tile-flip-animator-phaser', 'mahjong-scroll-tile-chibi', 'compatibleWith', '牌面贴图组'),
699
- edge('tile-flip-animator-phaser', 'mahjong-scroll-tile-dark', 'compatibleWith', '牌面贴图组'),
700
- edge('tile-flip-animator-phaser', 'mahjong-scroll-tile-default', 'compatibleWith', '牌面贴图组'),
701
- edge('tile-flip-animator-phaser', 'mahjong-scroll-tile-elder', 'compatibleWith', '牌面贴图组'),
702
- edge('tile-flip-animator-phaser', 'mahjong-scroll-tile-meditation', 'compatibleWith', '牌面贴图组'),
703
- edge('tile-flip-animator-phaser', 'mahjong-scroll-tile-nature', 'compatibleWith', '牌面贴图组'),
704
- edge('tile-flip-animator-phaser', 'mahjong-scroll-tile-wood', 'compatibleWith', '牌面贴图组'),
705
- edge('tile-flip-animator-phaser', 'tile-effect-atlas', 'requires', 'tile-effect-atlas'),
706
- edge('tile-flip-animator-phaser', 'tile-sheets-animals', 'compatibleWith', '牌面贴图组'),
707
- edge('tile-flip-animator-phaser', 'tile-sheets-colorful', 'compatibleWith', '牌面贴图组'),
708
- edge('tile-flip-animator-phaser', 'tile-sheets-gold', 'compatibleWith', '牌面贴图组'),
709
- edge('tile-flip-animator-phaser', 'tile-sheets-normal', 'compatibleWith', '牌面贴图组'),
710
- edge('tile-flip-animator-phaser', 'candy_tile', 'compatibleWith', '牌面贴图组'),
711
- edge('tile-flip-animator-phaser', 'fruit_tile', 'compatibleWith', '牌面贴图组'),
712
- edge('tile-flip-animator-phaser', 'jewel_tile', 'compatibleWith', '牌面贴图组'),
723
+ edge('tile-slot-storage-phaser', 'mahjong-scroll-slot-bg', 'compatibleWith', '槽位卡片背景'),
713
724
  edge('tile-slot-storage-phaser', 'tile-effect-atlas', 'requires', 'tile-effect-atlas'),
714
725
  edge('tile-slot-storage-phaser', 'ui-interact-atlas', 'requires', 'UI 交互图集(连击庆祝用 ip/good 帧)'),
726
+ edge('tile-slot-storage-phaser', 'layered-stack-board-phaser', 'semanticallyRelatedTo', 'Board 提供 Tile 实体(翻牌动画、遮挡/双边检测、setClickHandler)'),
715
727
  edge('tile-slot-storage-phaser', 'layered-stack-board-phaser', 'requires', 'source board providing tiles to collect'),
716
- edge('tile-slot-storage-phaser', 'tile-flip-animator-phaser', 'requires', 'tile-flip-animator-phaser'),
717
728
  edge('tile-slot-storage-phaser', 'mahjong-elimination-effects', 'compatibleWith', '消除粒子特效(碎片/花瓣/菊花散射)'),
718
729
  edge('tile-slot-storage-phaser', 'mahjong-streak-celebration', 'compatibleWith', '连击庆祝特效(碎片雨+彩带炮+IP弹出)'),
719
730
  edge('tile-slot-storage-phaser', 'match_engine', 'compatibleWith', '托盘 N 消匹配引擎'),
731
+ edge('arrows-character-reaction-phaser', 'arrow-puzzle-data', 'requires', 'levelData'),
720
732
  edge('combo-vfx', 'tile-eliminate-vfx', 'requires', 'Fires tileEliminateVFX:on_eliminated which combo-vfx listens to for screen position'),
721
733
  edge('combo-vfx', 'tile-vfx', 'requires', 'All-in-one alternative that includes combo text functionality'),
722
734
  edge('mahjong-match2-entrance-vfx', 'mahjong-match2-board-entity', 'requires', 'boardEntity'),
@@ -741,7 +753,14 @@ export const basicAtomGraph = {
741
753
  edge('claw-intro-animator-phaser', 'tile-slot-storage-phaser', 'requires', 'tile-slot-storage-phaser'),
742
754
  edge('claw-intro-animator-phaser', 'tile-slot-storage-phaser', 'requires', 'collection target receiving claw-grabbed tiles'),
743
755
  edge('countdown-ui-phaser', 'mahjong-match2-gameplay-rule', 'requires', 'rule'),
744
- edge('game_over_panel', 'mahjong-match2-gameplay-rule', 'requires', 'rule'),
756
+ edge('game_over_panel', 'car_parking', 'compatibleWith', '玩法规则(胜负判定接口);麻将/箭头消除等各玩法自行实现'),
757
+ edge('game_over_panel', 'eight_ball_pool', 'compatibleWith', '玩法规则(胜负判定接口);麻将/箭头消除等各玩法自行实现'),
758
+ edge('game_over_panel', 'mahjong-match2-core-rule', 'compatibleWith', '玩法规则(胜负判定接口);麻将/箭头消除等各玩法自行实现'),
759
+ edge('game_over_panel', 'mahjong-match2-gameplay-rule', 'compatibleWith', '玩法规则(胜负判定接口);麻将/箭头消除等各玩法自行实现'),
760
+ edge('game_over_panel', 'match3_core', 'compatibleWith', '玩法规则(胜负判定接口);麻将/箭头消除等各玩法自行实现'),
761
+ edge('game_over_panel', 'memory_match', 'compatibleWith', '玩法规则(胜负判定接口);麻将/箭头消除等各玩法自行实现'),
762
+ edge('game_over_panel', 'path_elimination_rules', 'compatibleWith', '玩法规则(胜负判定接口);麻将/箭头消除等各玩法自行实现'),
763
+ edge('game_over_panel', 'screw_puzzle', 'compatibleWith', '玩法规则(胜负判定接口);麻将/箭头消除等各玩法自行实现'),
745
764
  edge('game_over_panel', 'lose_result_panel', 'compatibleWith', 'losePanel'),
746
765
  edge('game_over_panel', 'win_result_panel', 'compatibleWith', 'winPanel'),
747
766
  edge('mahjong-match2-hint-ui', 'mahjong-match2-tile-entity', 'requires', 'tileEntity'),
@@ -764,25 +783,23 @@ export const basicAtomGraph = {
764
783
  edge('level_lifecycle', 'fail_sfx', 'compatibleWith', '关卡失败音效'),
765
784
  edge('level_lifecycle', 'lose_sfx', 'compatibleWith', '生命耗尽/游戏结束音效'),
766
785
  edge('level_lifecycle', 'success_sfx', 'compatibleWith', '关卡通关成功音效'),
767
- edge('level_lifecycle', 'level_state', 'requires', 'levelState'),
786
+ edge('level_lifecycle', 'level_state', 'compatibleWith', '关卡进度状态管理(进关/循环),补全生命系统的关卡流转能力'),
768
787
  edge('level_lifecycle', 'nomove_hint_overlay', 'compatibleWith', '危险提示全屏闪光覆盖层图片'),
769
788
  edge('level_lifecycle', 'game_over_panel', 'compatibleWith', '游戏结束面板组件(胜利/失败结果展示)'),
770
- edge('loading_screen', 'phaser', 'requires', 'engine'),
771
- edge('loading_screen', 'responsive_2d_layout', 'requires', 'layout'),
772
- edge('loading_screen', 'playable_app_logo', 'compatibleWith', '应用 logo 图片(每次投放不同)'),
773
789
  edge('path_animation', 'phaser', 'requires', 'engine'),
790
+ edge('path_animation', 'grid_board_layout', 'requires', 'boardLayout'),
774
791
  edge('path_animation', 'normal_dot', 'compatibleWith', '普通消除粒子特效图片资产'),
775
792
  edge('path_animation', 'normal_dot', 'compatibleWith', '胜利钻石粒子特效图片资产'),
776
- edge('path_animation', 'path_renderer', 'requires', 'renderer'),
793
+ edge('path_animation', 'path_renderer', 'compatibleWith', '路径渲染器,动画后触发重绘'),
777
794
  edge('path_input_handler', 'phaser', 'requires', 'engine'),
778
795
  edge('path_input_handler', 'appear_sfx', 'compatibleWith', '新元素出现/弹出音效'),
779
796
  edge('path_input_handler', 'arrow_move_error_sfx', 'compatibleWith', '箭头移动错误音效'),
780
797
  edge('path_input_handler', 'click_sfx', 'compatibleWith', '点击/选中路径头部音效'),
781
798
  edge('path_input_handler', 'mistake_sfx', 'compatibleWith', '操作错误/无效移动音效'),
782
799
  edge('path_input_handler', 'grid_board_layout', 'requires', 'boardLayout'),
783
- edge('path_input_handler', 'path_renderer', 'requires', 'renderer'),
784
800
  edge('path_renderer', 'phaser', 'requires', 'engine'),
785
- edge('path_renderer', 'arrow_path_data_format', 'requires', 'levelData'),
801
+ edge('path_renderer', 'arrow-puzzle-data', 'requires', 'levelData'),
802
+ edge('path_renderer', 'grid_board_layout', 'requires', 'boardLayout'),
786
803
  edge('path_renderer', 'theme_state', 'requires', 'themeState'),
787
804
  edge('playable_scripts_build', 'phaser', 'requires', 'engine'),
788
805
  edge('progress_bar', 'phaser', 'requires', 'engine'),