ユースケース

%% オデッサージュ ユースケース図
flowchart TB
    %% アクター定義
    Player("プレイヤー")
    System("システム")
    ScenarioCreator("シナリオ作成者")
    %% コアサブドメインのユースケース
    CreateCharacter["キャラクター作成"]
    EditCharacter["キャラクター情報編集"]
    SaveCharacterData["キャラクターデータの保存"]
    StartScenario["シナリオ開始"]
    SelectChoice["選択肢の選択"]
    ShowResult["分岐結果の表示"]
    RecordStory["物語の記録"]
    ViewLog["ログの閲覧"]
    ShareLog["ログの共有"]

    %% コアサブドメインの関係
    Player --> CreateCharacter
    Player --> EditCharacter
    System --> SaveCharacterData
    Player --> StartScenario
    Player --> SelectChoice
    System --> ShowResult
    System --> RecordStory
    Player --> ViewLog
    Player --> ShareLog



    %% 一般サブドメインのユースケース
    CreatePost["投稿の作成"]
    CommentPost["コメントの投稿"]
    ViewForum["フォーラムの閲覧"]
    CreateSession["セッションの作成"]
    CheckProgress["進行状況確認"]
    PauseResumeSession["進行の一時停止と再開"]
    SetChoices["選択肢の設定"]
    UseTemplate["テンプレートの使用"]
    EditTemplate["テンプレートの編集"]

    %% 一般サブドメインの関係
    Player --> CreatePost
    Player --> CommentPost
    Player --> ViewForum
    Player --> CreateSession
    Player --> CheckProgress
    Player --> PauseResumeSession
    ScenarioCreator --> SetChoices
    ScenarioCreator --> UseTemplate
    ScenarioCreator --> EditTemplate

    
    %% 補完サブドメインのユースケース
    SendProgressNotification["進行状況の通知"]
    SendNextChoiceNotification["次の選択肢への通知"]
    SendImportantEventNotification["重要イベントの通知"]
    AnalyzeData["プレイデータの分析"]
    ProvideFeedback["フィードバックの提供"]
    CreateReport["改善レポートの作成"]
    BackupData["データのバックアップ"]
    RestoreData["データの復元"]

    %% 補完サブドメインの関係
    System --> SendProgressNotification
    System --> SendNextChoiceNotification
    System --> SendImportantEventNotification
    System --> AnalyzeData
    System --> ProvideFeedback
    System --> CreateReport
    System --> BackupData
    System --> RestoreData