NinaPlayer R12 verification
===========================

Checkpoint: 0.12.0-r12
Scope: source checkpoint / Nina-quality UI/UX pass

PASS
- R12 UI/UX static smoke
- R01-R12 full verify-all regression
- deterministic Kotlin core smoke
- provider/runtime/share/rendezvous builder gates
- JSON/XML/tree sanity
- primary music surfaces contain no downloader/runtime jargon
- no Bluetooth/Nearby permission introduced by Share UX

SOURCE-ONLY / EXPLICIT SKIP
- Android compile/lint/APK: Android SDK/NDK/Gradle bootstrap unavailable in this runtime.
- Compose rendering, accessibility, TalkBack, font scaling, edge-to-edge and physical device interaction: device gate for R13.
- Embedded CPython/yt-dlp/EJS/QuickJS-NG/FFmpeg and libwebrtc runtime execution: device/build gate.

R13 device gate
- build and lint the private ARM64 APK;
- exercise first-run with provider configured and skipped;
- deny/retry MediaStore/SAF permissions;
- validate light/dark, font scaling, TalkBack and keyboard overlap;
- validate mini-player/player/background controls and long metadata;
- validate Health and QR Share on the private devices;
- perform runtime download/transcode/publish/play and restart/recovery smoke.
