WDL 1.1.3
- Beginner setup now makes keep_loaded / Bed Respawn explicitly opt-in: omit both sections unless enabling them with true.

Release Packaging / Documentation Hardening
- Updated the release version to 1.1.3.
- Fixed the build packaging so the Japanese and English user guides are actually bundled inside the final JAR.
- Bundled copy-ready config samples, changelog, license, credits, and root README inside the JAR.
- Reworked the Japanese and English guides for first-time users, including a shortest-path setup tutorial.
- Added a clear existing-user config upgrade guide.
- Existing configs remain compatible and are not automatically rewritten.
- Users who want newly generated settings/comments can back up and move the old config folder, generate a fresh config, then copy their Dimension/Gate definitions into the new files.
- Documented per-dimension [dimensions.runtime] keep_loaded behavior and its max_loaded_dimensions interaction.
- Documented Creative Dimension Igniter master/admin behavior and same-frame ambiguity safety.
- Documented Session Resume and shutdown hardening behavior.
- No new runtime travel mechanic is introduced over 1.1.2; 1.1.3 focuses on release quality and documentation packaging.

Compatibility
- Existing 1.0.0 / 1.1.x configs remain supported.
- Missing dimensions.runtime.keep_loaded defaults to false.
- Missing dimensions.bed.allow_bed_respawn defaults to false.
- Existing Return History, Session Resume, Gate selection, rarity/weight, Anchor, Auto-Unload, source WorldGen inheritance, and VS cleanup behavior is preserved.

---

WDL 1.1.2

New / Advanced Runtime
- Added per-dimension [dimensions.runtime] keep_loaded.
- keep_loaded=false (or omitted) preserves normal Lazy Mount / Auto-Unload behavior.
- keep_loaded=true automatically requests the READY dimension and pins it resident so Auto-Unload/capacity eviction cannot remove it.
- keep_loaded dimensions still consume max_loaded_dimensions slots; WDL warns when configured resident worlds exceed the global cap.
- /wdl scan reconciles keep_loaded changes immediately.
- Initial generated dimensions.toml, example/template configs, and README documentation include the new setting and comments.

Creative Dimension Igniter
- worlddimensionloader:creative_dimension_igniter is now an admin/master Igniter.
- It may activate a Gate even when omitted from allowed_igniters.
- It bypasses configured Gate costs and remains unlimited.
- Physical frame validation, destination validity, current-dimension exclusion, and same-frame ambiguity safety remain enforced.
- When multiple Gate definitions physically match one frame, Creative fails closed unless exactly one matching definition explicitly lists Creative as a disambiguation hint.

Shutdown Hardening
- Added a lifecycle shutdown guard when vanilla/Forge begins server shutdown.
- New staging, mount, unload, Auto-Unload, and keep_loaded mount requests are blocked during shutdown.
- Pending mount/unload queues are canceled instead of being dispatched while worlds are being saved/stopped.
- Late background staging results are discarded using a runtime-generation guard.
- Added WDL SHUTDOWN BEGIN / COMPLETE diagnostics, including lifecycle queue and runtime-pin counts.
- No synchronous shutdown wait was added, avoiding deadlock-prone blocking behavior.

Compatibility
- Existing 1.1.0/1.1.1 configs require no migration. Missing dimensions.runtime.keep_loaded defaults to false.
- Session Resume, Return History, Bed Respawn, rarity/weight, LIST/ALL, source WorldGen inheritance, Gate lifecycle, Anchor, and VS 2.4.11 cleanup are preserved.

---

WDL 1.1.1

Bug Fix
- Fixed players being restored into the Overworld at stale WDL coordinates after logging out inside a Lazy-Mounted WDL dimension and restarting/reconnecting.
- Added persistent per-player Session Resume records for WDL logout location (dimension, position, yaw, pitch).
- On login, WDL now Lazy Mounts the previous WDL dimension when necessary and restores the player after the target becomes available.
- Players are moved to a safe Overworld holding position while the previous WDL dimension is being prepared, preventing underground/unsafe stale-coordinate placement.
- Missing, disabled, or invalid resume targets safely fall back to the Overworld.
- Session Resume is player-specific and uses runtime pin tokens so multiplayer restore operations do not interfere with each other.
- Session Resume does not alter Return History.

Compatibility
- No config migration is required.
- No new config key is added in 1.1.1.
- Lazy Dimension Loading remains enabled; this fix makes reconnect/restart restoration compatible with Lazy Mount.
- Gate selection, Return History, Bed Respawn, Anchor, Auto-Unload, WorldGen inheritance, and VS 2.4.11 cleanup are intentionally unchanged.

---

WDL 1.1.0

New
- Player Return History for normal successful DIMENSION Gate travel.
- Return Gate uses unresolved Gate history by default.
- Return Scroll can optionally use Gate history; default remains direct Overworld return.
- Per-dimension bed respawn opt-in with safe sleep-only default.
- Multiplayer-safe token-based runtime dimension pins.

Return History
- Default max history: 3; configurable 1-10.
- Loop compression treats history as unresolved return path, not a chronological log.
- Auto-unloaded WDL history targets may Lazy Mount and return in one request.
- History is cleared by death, direct Overworld return, and successful /wdl tp admin teleport.
- Permanent stale entries are pruned; transient mount failures keep history intact.

Bed Respawn
- [dimensions.bed] allow_bed_respawn = false by default or when omitted.
- false: beds remain usable for sleep but do not replace the player's respawn point with a WDL dimension.
- true: that WDL dimension may be used as a personal bed respawn target.
- Opted-in unloaded targets may Lazy Mount for respawn.
- Missing/blocked beds safely fall back to Overworld; Dimensional Anchor is never used as a death fallback.

Compatibility
- Existing 1.0.0 configs load without migration edits.
- LIST / ALL / rarity / weight, Gate Resolver, current-dimension exclusion, Gate lifecycle, Anchor, Auto-Unload and VS 2.4.11 cleanup remain unchanged.

---

WDL 1.0.0

First public release of World Dimension Loader for Minecraft Forge 1.20.1.

Highlights
- Import existing Minecraft worlds and expose them as configurable WDL dimensions.
- Lightweight catalog with lazy mount/unmount instead of keeping every registered world loaded.
- Preserve imported WorldGenSettings / LevelStem behavior, including superflat generators.
- Configurable Dimension Gates and Return Gates with timed or permanent sessions.
- LIST / ALL destination pools with rarity weights and explicit per-dimension weight overrides.
- Multiple Gate definitions can share one physical frame when size/Igniter conditions are unambiguous.
- Current-dimension exclusion prevents DIMENSION Gates from acting as same-dimension spawn warps.
- Atomic Gate costs for items, XP, health, and hunger.
- Dimensional Anchor and Return Scroll support.
- Configurable Overworld respawn behavior.
- Auto-Unload and loaded-dimension limits.
- Valkyrien Skies 2.4.11 same-ID unload/remount cleanup compatibility.
- Thin X/Z-oriented DIMENSION and RETURN portal membrane visuals.

Release hardening
- Breaking/replacing required Gate frame, corner, or portal blocks closes the entire active Gate session.
- Stale OPEN states self-heal and allow safe re-activation.
- Gate definition resolution is deterministic and config-order independent.
- Ambiguous activation fails closed without consuming costs, mounting a destination, or creating an ActiveGate.
- Existing LIST / ALL weighted selection behavior is preserved after current-dimension exclusion.

Known scope
- IMPORT is the stable 1.0.0 storage path.
- DIRECT remains future/experimental work and is not a stable 1.0.0 feature.
