The App Needed a Real Desktop, Not Just a Real Windows Machine

Before any of the debugging stories, gotchas, or architecture arguments in this series existed, there was one earlier decision that had to fail first and it's the one that actually explains why everything after it looks the way it does.

The plan that looked right on paper

The system in question wraps a Windows-only, GUI-first desktop application the kind of software that ships as a .exe, expects to be installed via a wizard, and exposes automation only through a first-party SDK that talks to the running application process. No web API, no headless mode, nothing designed for servers at all.

The instinct, reasonably, was: don't fight that. Run it inside a Windows compatibility layer, in a Linux container. Keeps everything in the same containerized, cloud-native tooling as the rest of the stack. Cheaper to host. Fits the mental model everything else in the system already used.