pub fn spawn(program: &str, args: &[String]) -> Result<SubprocessHandle, String>
Spawn a program with piped stdin/stdout (stderr inherits to host). A background thread drains stdout so game init logs cannot deadlock the pipe.