Date: 2026-02-12
Accepted
The Guide must support shareable modded views while keeping data behavior predictable.
We need to:
- represent active mods in a URL that can be bookmarked and shared;
- preserve mod override order deterministically;
- avoid partial in-place reconfiguration of a large immutable data model.
Active mods are represented by the mods query parameter as an ordered comma-separated list.
Order defines precedence: later mods override earlier layers.
Normalization rules:
- empty entries are ignored;
- duplicates are removed;
- core
bnis excluded from the URL-level active set.
The app does not compute or validate dependency graphs from arbitrary URLs. It accepts only known non-core mods and applies them in the provided order.
Changing the mod list (add/remove/reorder) triggers a full page reload. This keeps the data model single-lifetime and avoids complex invalidation logic.
At initialization, the app builds one data stream by appending selected mod data to base data in active order, then constructs the runtime indexes once for that page lifetime.
- deterministic and shareable modded URLs;
- simple and robust state model (no hot-swapping complexity);
- stable override behavior tied directly to URL order.
- changing mods has reload latency;
- invalid dependency combinations are not corrected client-side.
- behavior depends on upstream
all_mods.jsoncompleteness and quality.
src/routing.svelte.tssrc/App.sveltesrc/data.ts