#pragma once #include #include #include "BuildingType.h" // A single entry from buildings.toml [[building]]. struct BuildingDef { std::string id; // Raw id string from TOML, e.g. "miner". BuildingType type; // Parsed from id at load time. int cost; // REQ-BLD-COST bool playerPlaceable; // Shown in the build menu if true. double constructionTimeSeconds; // REQ-BLD-QUEUE // Rows of the surface_mask (REQ-BLD requirements, "Surface Mask Format"). // Stored as raw strings here; parsing into per-cell tiles + output ports // happens when buildings are placed, not at load time. std::vector surfaceMask; }; struct BuildingsConfig { std::vector buildings; };