namespace ProjectM.Simulation
{
///
/// The resolved, concrete spec for ONE room the party is about to enter — a pure function of its map node
/// () + its depth, produced by . Consumed server-side by
/// the room field/enemy directors to lay out resources + seed the enemy wave; transient (never replicated —
/// the client only needs the small published RunInfo mirror for the HUD). All-value, unmanaged, Burst-safe.
///
public struct RoomPlan
{
/// (drives node/enemy density + the difficulty bump).
public byte RoomType;
/// (cosmetic, forwarded to the client HUD/atmosphere).
public byte Biome;
/// (the arena footprint scatter uses).
public byte ShapeId;
/// Arena scatter radius (world units) for this shape.
public float Radius;
/// Base number of resource nodes to scatter (before the run-wide scarcity budget floors it).
public int NodeCount;
/// Depth-based difficulty rung fed to ZoneEnemyMath (higher = harder; Elite/Boss bump it).
public int DifficultyEpoch;
}
}