#pragma once #include namespace radiantwave::config { struct AudioConfig { bool enabled = true; // audio master enabled toggle int volume = 80; // 0 - 100 std::string output_device = ""; // empty = system default std::string current_track = "OriginalAudio.wav"; // active audio track filename bool dynamic_audio = true; // audio follows the displayed proclamation's solfeggio frequency }; struct ProclamationConfig { float scroll_speed = 1.0f; // scroll speed multiplier int font_size = 32; // font size in pt std::string current_id = ""; // currently active proclamation ID bool schedule_active = false; // follow the portal's listening schedule bool schedule_enabled = true; // local Schedule on/off toggle (default on) }; struct AppConfig { std::string license_key = ""; std::string email_address = ""; std::string provisioning_status = "FIRST_RUN"; std::string timezone = "UTC"; // IANA timezone code (e.g. America/New_York, UTC) AudioConfig audio; ProclamationConfig proclamation; // Single source of truth for default values static AppConfig defaults() { return AppConfig{}; } }; } // namespace radiantwave::config