openstranded-common-building 0.1.0

OpenStranded building domain types: BuildingDef, BuildingGroup, BuildSpace
Documentation
//! # openstranded-common-building
//!
//! Shared data types for the OpenStranded building system.
//!
//! This crate defines the canonical structures that represent building
//! recipes — what gets built, what materials are required, and where it
//! can be placed.
//!
//! ## Types
//!
//! | Type | Purpose |
//! |------|---------|
//! | [`BuildingDef`] | A single building recipe (from `buildings.inf`) |
//! | [`BuildingGroup`] | Category enum (building, storage, production, …) |
//! | [`BuildSpace`] | Placement requirement (land, water, at object, …) |
//! | [`BuildingRequirement`] | Material required: `item_id + count` |
//!
//! ## Relationship to `.inf` files
//!
//! Each `id=N` entry inside a `buildings*.inf` file corresponds to one
//! [`BuildingDef`].  `req=item_id,count` lines become
//! [`BuildingRequirement`]s.  The `buildspace=` field maps to
//! [`BuildSpace`].
//!
//! ## Dependency
//!
//! Only `serde` — this is a pure data crate with no engine or plugin API
//! dependencies.

mod building_def;

pub use building_def::{BuildingDef, BuildingGroup, BuildingRequirement, BuildSpace};