World Dimension Loader (WDL) 1.4.0
Minecraft 1.20.1 / Forge 47.4.22 / Java 17
Mod ID: worlddimensionloader

============================================================
1. WDLとは
============================================================
既存Minecraftワールドの「コピー」をWDL管理Dimensionとして読み込み、設定可能なGateで行き来できるMODです。

重要:
- 元ワールドは必ず別途バックアップしてください。
- WDL_custom_dimensionsには必ずコピーを置いてください。
- 既存Configは自動上書きされません。
- Reset対象Dimensionは、次の世代をインポート元コピーから作り直すため、プレイ中に加えた変更がResetで失われる場合があります。

============================================================
2. 初めて使う場合
============================================================
1) サーバーと接続クライアントにWDLを導入します。シングルプレイでは通常どおりクライアントmodsへ入れます。
2) 一度起動し、config/worlddimensionloader/ を生成します。
3) ワールドのコピーを置きます:
   WDL_custom_dimensions/test_world_01/level.dat
4) dimensions.toml:

[[dimensions]]
id = "test_world_01"

5) gates.toml:

[[gates]]
id = "test_world_01_gate"
dimensions = ["test_world_01"]

6) /wdl scan を実行するか再起動します。

この最小Gateは通常の黒曜石設定を使い、test_world_01だけを対象にします。

別途、WDLにはデフォルトOverworld Gateもあります。
石レンガの枠、エメラルドブロックの角、常時開放、エメラルド1個のコストです。

============================================================
3. Config
============================================================
config/worlddimensionloader/
  common.toml
  dimensions.toml
  gates.toml

生成Configは次のゾーンに分かれます。
- ALL OPTIONS: 全オプション、初期値/継承、簡単な説明
- MINIMAL/PRACTICAL EXAMPLE: コピーして使える最小例
- LEGACY COMPATIBILITY: 新規設定では使わない旧互換キー

アップデート後に最新コメントを確認したい場合は、Configをバックアップして旧ファイルを退避し、一度起動して再生成したあと、必要な変更だけ移してください。既存Configは自動書換えされません。

============================================================
4. Gateの行先
============================================================
新しい基本動作:
- dimensions=[...]あり、selection_mode省略 -> LIST
- selection_mode="LIST" -> LIST
- selection_mode="ALL" -> READYなWDLインポートDimension全体
- modeもdimensionsも省略 -> 旧Config互換としてALL

ALLにOverworldは自動で含まれません。Overworldはminecraft:overworldをLISTで明示します。

複数Gateが、枠/角ブロック、サイズ範囲、利用可能Igniterの条件で重複すると、WDLは曖昧なGate定義を安全側で無効化します。行先IDが違うだけでは物理Gateを区別できません。

============================================================
5. Runtime ID、Reset、保存先
============================================================
Dimension Resetは初期状態では無効です。

新規/Pristine Runtimeで reset_on_empty=false の場合:
- 物理Dimension ID: wdl:<id>
- 保存先: dimensions/wdl/<id>/
- timestampは付与しません。

これは「新しく初期化されるRuntime」の規則です。
1.3.0などで既にtimestamp世代がcurrentになっているDimensionは、Resetをfalseへ変更しても自動で固定IDへ戻しません。既存current authorityを優先し、その場で維持します。

重要:
- 既存Runtimeフォルダを手動でリネーム/移動して固定ID化しないでください。
- 1.4.0はtimestamp -> fixed-IDの自動/手動in-place移行機能を提供しません。
- exact lifecycle authorityが無い状態で複数のWDL Physical候補が見つかった場合、1.4.0は推測せずFAIL-CLOSEDします。データを勝手に移動/削除しません。

reset_on_empty=true の新規Runtimeはtimestamp物理世代を使用します。
固定ID Runtimeを後からReset ONへ変更しても即時リネームは行わず、最初の実Reset時にtimestamp世代へRotationします。

Reset有効時の内部保存例:
dimensions/wdl/test_world_01/20260822123000/

Resetはインポート元コピーから次のRuntime世代を作り直します。
そのため、建築、ブロック変更、EntityなどRuntime Dimension内の変更はResetで失われる場合があります。インポート元コピー自体は変更しません。

安全側初期設定:
defer_dimension_cleanup_until_restart = true

旧世代は次回ゲーム/サーバー起動まで保持され、Startup GCが「安全にretiredと証明できる世代」だけを削除します。再起動前にResetを繰り返すと、一時的に大きなディスク容量を使う場合があります。

falseでゲーム中削除も可能ですが非推奨です。Valkyrien Skies検知時は安全のためdeferred cleanupを強制します。

Reset処理がすでに破壊/Recovery authorityを持つ段階へ進んだ後にConfigでResetをOFFへ変更しても、その進行中取引は単純キャンセルされません。Recovery/transaction safetyがConfig変更より優先されます。

Reset診断ログ:
- `WDL RESET DEFERRED` (INFO) は、現在のReset operationが意図的に待機/再試行している状態です。同じreasonは logical Dimension + operation + phase ごとに1回へ抑制されます。
- `WDL RESET BLOCKED` (ERROR) は、WDLがterminal FAIL-CLOSEDへ入ったことを示します。Runtimeファイルを変更する前に原因を確認してください。

============================================================
6. 主な機能
============================================================
- Dimensional Anchor
- Return Scroll
- Inventory import/export policy
- Travel import/export policy
- Dimensionごとのゲームモード、固定時刻、難易度、リスポーン、ベッド設定
- Timed SessionとPREVIOUS/OVERWORLD Forced Exit
- Gateコスト、再開Cooldown、rarity/weight抽選、Igniter制限
- Gate Travel History

============================================================
7. 互換性
============================================================
Valkyrien Skies (VS) と Distant Horizons (DH) はどちらも任意です。
VS/DHを導入していない通常環境でもWDLを使用できます。

現在の安全対策はValkyrien Skies 2.4.11の挙動を中心に実機検証しています。VS検知時はdeferred cleanupを強制します。
Distant HorizonsはDH 3.2.0-bの挙動を中心に互換対応・検証しています。

将来の未知バージョンまで互換性を保証するものではありません。

============================================================
8. よく使うコマンド
============================================================
/wdl scan
/wdl list
/wdl status
/wdl loaded
/wdl probe <id>

STARTUP ONLY設定は再起動が必要です。/wdl scanだけでは実行中プロセスの方式は切り替わりません。

詳細:
- WDL_TUTORIAL_JA_1.4.0.txt
- WDL_CONFIG_GUIDE_JA_1.4.0.txt
- WDL_EXAMPLES_AND_PLAY_IDEAS_JA_1.4.0.txt
- WDL_TROUBLESHOOTING_JA_1.4.0.txt
