//
// GameSettingsFactory - Unified factory for creating GameSettings instances
// Used by both AI Performance Runner and AI Battle Simulator
//

#ifndef EAGLE0_SHARDOK_AI_TESTING_COMMON_GAME_SETTINGS_FACTORY_HPP
#define EAGLE0_SHARDOK_AI_TESTING_COMMON_GAME_SETTINGS_FACTORY_HPP

#include <memory>

#include "src/main/cpp/net/eagle0/shardok/library/settings/GameSettings.hpp"

namespace shardok::ai_testing_common {

/**
 * Factory class for creating GameSettings instances with standard configuration.
 *
 * This centralizes the game settings initialization logic that was duplicated
 * between AI Performance Runner and AI Battle Simulator.
 */
class GameSettingsFactory {
public:
    /**
     * Create a GameSettings instance with default configuration.
     *
     * This includes:
     * - Registering battalion types
     * - Loading settings from settings.tsv
     *
     * @return Shared pointer to initialized GameSettings
     */
    [[nodiscard]] static auto CreateDefault() -> GameSettingsSPtr;
};

}  // namespace shardok::ai_testing_common

#endif  // EAGLE0_SHARDOK_AI_TESTING_COMMON_GAME_SETTINGS_FACTORY_HPP
