# Architectural Response

**Re:** REQ-2026-04-13-rules-mod-config-fix-versioning
**Date:** 2026-04-13

## 1. Verdict
Fixed in v1.0.2. Root cause was `ModConfig.Type.SERVER` — switched to `COMMON`.

## 2. What Changed
- SERVER configs in `world/serverconfig/` are tied to world load/unload lifecycle — Forge overwrites them every restart
- COMMON configs in `config/` load once at startup and persist reliably
- Config path: `config/firefrostrules-common.toml` (was `world/serverconfig/firefrostrules-server.toml`)
- Loading handler + version bump to 1.0.2 applied to all 6 builds
- 1.16.5 uses `ModConfig.Loading` (inner class), 1.20.1+ uses `ModConfigEvent.Loading`

## 3. Deliverables (all committed + pushed)
- firefrostrules-1.0.2-1.21.1-neoforge.jar
- firefrostrules-1.0.2-1.20.1-forge.jar
- firefrostrules-1.0.2-1.16.5-forge.jar
- discord-rules-1.0.2-1.21.1-neoforge.jar
- discord-rules-1.0.2-1.20.1-forge.jar
- discord-rules-1.0.2-1.16.5-forge.jar
- CHANGELOG.md, INSTALL.md, CLAUDE.md updated

## 4. Otherworld Deploy Steps
1. Stop Otherworld
2. Replace jar with firefrostrules-1.0.2-1.20.1-forge.jar
3. Delete old world/serverconfig/firefrostrules-server.toml
4. Start server — generates config/firefrostrules-common.toml
5. Stop — edit config with real values
6. Start — values persist
7. Restart again — confirm persistence
8. Player runs /rules — real Discord rules show
