TEST 2 RECIPE HARDENING (generated)
- kubejs/startup_scripts/hardening_runtime.js: shared runtime (pick helpers, report counters); needs a game restart to change.
- kubejs/server_scripts/hardening/: generated KubeJS recipe changes (00_begin.js + one file per mod group + 99_report.js).
  One fixed crafting path for every world and player (no seed, no extra reload).
  Look for lines starting with [hardening] in logs/kubejs/server.log (applied ops, errors).
- kubejs/server_scripts/loot/10_loot_rules.js: generated LootJS rules (gen_loot.py): guns/ammo removed from loot, hardened parts found in
  chests made rare, tier-appropriate raw materials added to chests. Look for "[loot] rules applied: N" (and any "[loot]" error line) in
  logs/kubejs/server.log; delete the loot folder to switch it off. Loot is rolled when a container is first opened (Lootr: per player),
  so already-opened containers keep their old loot.
- config/ftbquests/quests/: the questbook (guidance only; nothing is locked behind quests).
- kubejs_shelved/: backups of anything replaced. To disable the hardening, move the hardening folder out of server_scripts.
