#pragma once
#include "server_config.hpp"
#include <filesystem>
#include <string>
namespace nethack_mcp
{
/// Records settings whose explicit values are required for public mode.
struct ConfigExplicitSettings
{
/// Whether the canonical public URL was specified.
bool public_base_url = false;
/// Whether the active game limit was specified.
bool max_active_games = false;
/// Whether the game creation quota was specified.
bool new_games_per_client = false;
/// Whether the game creation quota window was specified.
bool new_game_rate_window = false;
/// Whether the client tracking capacity was specified.
bool max_rate_limit_clients = false;
/// Whether the HTTP worker capacity was specified.
bool max_concurrent_requests = false;
/// Whether the HTTP connection capacity was specified.
bool max_open_connections = false;
/// Whether the worker output limit was specified.
bool max_worker_output_bytes = false;
};
/// Loads TOML settings into the existing server configuration.
bool readConfigFile(const std::filesystem::path& path,
ServerConfig& config,
ConfigExplicitSettings& explicit_settings,
std::string& error);
} // namespace nethack_mcp