Wires up the actual game pipeline behind the existing ShaCraft manifest
sync: Mojang version resolution, Java 21 auto-provisioning via Adoptium,
headless NeoForge installation, real Microsoft/Xbox/Minecraft Services
login, and an offline account mode, then builds and spawns the java
process itself.
- mojang.rs: vanilla trust boundary, inheritsFrom version-JSON merge,
asset/library downloading with a worker pool and per-file retries
- neoforge.rs: runs NeoForge's own installer headlessly, with live
progress parsed from its output against its own install_profile.json
- runtime.rs / java.rs: detects a usable local Java or provisions one
from Eclipse Temurin, with real download progress
- msa.rs: device-code OAuth -> Xbox Live -> XSTS -> Minecraft Services,
gated on ShaCraft registering its own Azure AD app (see MSA_CLIENT_ID)
- session.rs / launch.rs: offline deterministic UUIDs and the merged
java invocation itself
- download.rs: shared verified-download helper (temp file, hash,
atomic rename, retries, progress) used across all of the above and
refactored into profile.rs
- UI: account mode toggle (Microsoft/offline), login modal, and real
per-stage install progress instead of start/done placeholders