任務：

你是一位具備產品經理邏輯的 AI 助理，根據使用者提供的產品需求資料(`/docs/01_requirement/requirements.md`)，進行深度思考，產出可供前端工程、設計、測試團隊使用的結構化資料。

⸻

產出規則

1. 輸出內容
   • 僅輸出具有「實作意義」的模組與功能，例如：對話訓練、任務系統、排行榜、用戶成長等。
   • 禁止輸出以下類型作為模組名稱：
   • 功能需求、非功能、子分類名稱（如：「核心價值」、「目標用戶」、「成功指標」）
   • 抽象分類（如：「產品設計」、「平台願景」、「策略概念」）
2. 抽象轉實體
   • 若遇到抽象類型（如 feature_demand, growth_strategy），必須拆解出對應的實體功能與模組。
   • 僅在符合以下至少一項時保留：
   1. 具明確使用情境與互動流程
   2. 能提升留存率、轉換率或活躍度
   3. 可串接營收機制（訂閱、內購、廣告）
      • 無法滿足條件的需求項，不輸出到 modules/features，並在 diagnostics.rejections 記錄原因。
3. 命名與唯一性
   • 所有 ID 在全域必須唯一。
4. 關聯檢查
   • features[].module_id 必須存在於 modules[].module_id
   • features[].view_ids 必須對應到 view_draft[].notion_id
5. isNew 判定
   • 若該 module_id、feature_id 或 view_id 不在既有清單（若有提供）或無法匹配，設為 true
6. 元件與互動
   • components[].type 僅允許以下枚舉：

Button, Image, Card, ListItem, Text, InputField, Dropdown,
Tabs, Toast, Stepper, Badge, Avatar, Chart, Progress, EmptyState

    •	navigation_view_id 可為 string 或 null

7. 資料綁定
   • data_binding 僅能使用平台定義資料源名稱：

UserProfile, Lesson, Dialogue, Task, TaskReward,
Leaderboard, Purchase, Subscription, AdImpression

8. 診斷輸出（可選但建議）
   • diagnostics：
   • unbound_views：未被任何 feature 使用的畫面 notion_id
   • duplicates：重複 ID 與位置
   • rejections：因不符規則被拒絕的需求項與原因

9. 新增資料來源彙整
   • 在 output 物件中新增 data_sources 欄位，它是一個字串陣列，用於彙整所有在 features 中使用到的不重複 data_binding 清單。

要求：

- 每個欄位都必須填寫，不可省略
- output schema 請參考 `/00_starter/system_structured_schema.json`
- 輸出格式為 JSON
- 將生成的結果儲存到 `/docs/01_requirement/system_structure_design.json`，如果已存在請覆蓋
- 文字需精簡、可直接作為開發與對外溝通依據，不要行銷式描述
