#pragma once #include #include // A single [[unlock]] entry from unlocks.toml — an unlock group, the unit of // loot awarded by defence station drops (REQ-DEF-SCHEMATIC-DROP, // REQ-LOCK-EXPLICIT). Awarding a group unlocks all of its granted members at // once. Anything not granted by any group is available from game start. struct UnlockGroupDef { std::string id; // Unique unlock-group id. int stationLevel; // Min destroyed station level to become eligible. std::vector requiredGroupIds; // Prerequisite unlock-group ids (REQ-LOCK-PREREQ). // Granted ids by kind (each defaults to empty; a group grants >= 1 item). std::vector ships; std::vector modules; std::vector buildings; std::vector recipes; // Assembler recipe ids only. }; struct UnlocksConfig { std::vector groups; };