# 组件类型自动匹配规则
# 用于节点4：根据列A类型 + 上下文信息匹配具体组件类型

# === 核心互动匹配 ===
core_interaction:
  listening:  # 列A = "核心互动-听力"
    candidates:
      - 合作听力
      - 听力拖拽
      - 听力选择
    signals:
      - 剧情描述含"听"/"listen"/"音频" → 合作听力
      - 剧情描述含"拖拽"/"drag"/"排序" → 听力拖拽
      - 剧情描述含"选择"/"choose"/"选项" → 听力选择

  speaking:  # 列A = "核心互动-口语"
    candidates:
      - 口语快答
      - 口语独白
      - 口语妙问
      - 看图说话
      - 口语探讨
    signals:
      - 台词短促/一问一答 → 口语快答
      - 台词长篇/角色独白 → 口语独白
      - 台词含问句/角色提问 → 口语妙问
      - 剧情描述含"看图"/"图片"/"image" → 看图说话
      - 剧情描述含"讨论"/"探讨"/"debate" → 口语探讨

  reading:  # 列A = "核心互动-阅读"
    candidates:
      - 合作阅读
    signals:
      - 剧情描述含"阅读"/"read"/"课文" → 合作阅读

  writing:  # 列A = "核心互动-写作"
    candidates:
      - 写作互动
      - 看图组句
      - 看图撰写
      - 邮件组句
      - 邮件撰写
    signals:
      - 剧情含"写作"/"write" + "图片" → 看图撰写/看图组句
      - 剧情含"邮件"/"email"/"letter" + "组句" → 邮件组句
      - 剧情含"邮件"/"email"/"letter" + "写" → 邮件撰写
      - 剧情含"写作"/"write" → 写作互动

# === 中互动匹配 ===
medium_interaction:  # 列A = "互动"
  candidates:
    - 对话朗读
    - 对话表达
    - 对话选择
    - 对话选读
    - 对话挖空
    - 对话组句
    - 看图说话
    - 物品互动
    - 图片单选
    - 图片多选
    - 图片有序
    - 信息描写
    - 信息拼词
    - 信息组句
    - 信息补词
    - 信息填词
    - 信息填句
    - 材料互动
    - 指令互动
    - 挖空互动
    - 组句互动
    - 填词互动
    - 语音互动
    - 造句互动
    - 发音互动
  signals:
    # 对话类
    - 台词E/F类含"(朗读)" → 对话朗读
    - 剧情描述含"表达"/"说出"/"say" + 非选择题模式 → 对话表达
    - 台词含"选项1"/"选项2" + "正确"标注 → 对话选择
    - 台词含"选项1"/"选项2" + 无正确标注 → 对话选读
    - 台词含"___" → 对话挖空
    - 剧情描述含"组句"/"拼单词"/"put together" → 对话组句
    # 图片类
    - 剧情描述含"看图"/"图片" + "选择" → 图片单选/图片多选
    - 剧情描述含"看图"/"图片" + "排序" → 图片有序
    # 物品类
    - 剧情描述含"物品"/"object"/"点击"/"tap" → 物品互动
    # 信息类
    - 剧情描述含"描写"/"describe" → 信息描写
    - 剧情描述含"拼词"/"spell" → 信息拼词
    - 剧情描述含"组句"/"sentence" → 信息组句
    - 剧情描述含"补词"/"fill" + "缺词" → 信息补词
    - 剧情描述含"填词"/"blank" → 信息填词
    - 剧情描述含"填句"/"complete sentence" → 信息填句
    # 其他
    - 剧情描述含"材料"/"material" → 材料互动
    - 剧情描述含"指令"/"command"/"direction" → 指令互动
    - 剧情描述含"发音"/"pronounce" → 发音互动
    - 剧情描述含"语音"/"voice"/"speak" → 语音互动
    - 剧情描述含"造句"/"make sentence" → 造句互动
    - 剧情描述含"挖空"/"cloze" + 非对话 → 挖空互动
    - 剧情描述含"组句" + 非对话 → 组句互动
    - 剧情描述含"填词" + 非对话 → 填词互动
