Updated: 2026-07-08
Status: Phase 7 foundation
MetalSharp should behave like a compatibility runtime without pretending macOS Steam exposes Linux Proton's exact compatibilitytools.d contract. The current app-owned model stays authoritative: Steam owns account/session/download state, while MetalSharp owns the game process route, bottle, compatdata, logs, and runtime assets.
Steam game compatdata now records:
compat_tool_namelaunch_command_templatelaunch_pipelinesteam_identity_modebottle_idprefix_pathsteam_prefix_path- runtime assets, components, and launch ledger state
The launch command template is intentionally backend-shaped:
POST /steam/launch-game {"appid":<appid>,"launchMethod":"<pipeline>"}
That keeps the contract honest. The current supported path is still MetalSharp launching the game process while Wine Steam remains alive in the background for Steamworks connectivity.
Linux Proton is installed as a Steam compatibility tool under compatibilitytools.d. macOS Steam does not provide that same documented Proton tool surface. Wine Steam also needs to remain a normal Windows Steam client for login, downloads, and session state. For now, MetalSharp records a compatibility-tool-like contract in compatdata and uses its backend as the launcher.
- Verify whether any current macOS Steam or Wine Steam path honors compatibility tool metadata in a useful way.
- Generate optional
compatibilitytool.vdfscaffolding only for experiments, not as the default app path. - Add last-known-good runtime rollback per appid.
- Add a visible per-game route template/debug view so users can see exactly what MetalSharp will launch.