#pragma once #include #include #include #include // Small host-services boundary for functionality that must not leak Win32 // assumptions into runtime or game code. Guest execution, virtual memory, and // cooperative contexts remain outside this layer until dedicated macOS // prototypes establish a safe abstraction. namespace RuntimePlatform { std::optional ExecutableDirectory() noexcept; // Returns the platform's conventional per-user application-data directory. // It does not create the directory, leaving that policy to the caller. std::filesystem::path ApplicationDataDirectory(std::string_view applicationName); // The root for per-run diagnostics. Keeping this here ensures log placement // follows the same host convention as configuration and other user data. std::filesystem::path LogDirectory(std::string_view applicationName); uint64_t CurrentProcessId() noexcept; } // namespace RuntimePlatform