//! Generation **recipes**: named, validated assemblies of passes (spec §4.8).
//!
//! Where [`crate::passes`] is the *vocabulary* of individual generation steps, a
//! recipe is a *sentence*: it picks a concrete sequence of passes, sizes them to
//! a canvas, and hands back a ready-to-run [`crate::pass::Pipeline`]. A recipe
//! validates its configuration up front (spec §8) so a caller learns about an
//! impossible request as a [`dungeon::ConfigError`] rather than as a degenerate
//! map or a panic deep inside a pass.
//!
//! v1 ships exactly one recipe — [`dungeon`](dungeon::dungeon) — which assembles
//! the full five-pass dungeon chain (BSP → rooms → MST-connect → corridors →
//! doors). Future map types (towns, caves) would add sibling modules here.

pub mod dungeon;
