//! Typed, snapshot-decoupled view of a fabric ([`MatterController::fabrics`]).
/// Metadata about a fabric the controller has created.
///
/// Returned by [`MatterController::fabrics`](crate::MatterController::fabrics)
/// so callers can check which fabrics already exist — in particular, before
/// calling [`MatterController::create_fabric`](crate::MatterController::create_fabric)
/// on every startup. Since issue #110, `create_fabric` refuses to create a
/// second fabric with a `fabric_id` already present and returns
/// [`Error::FabricAlreadyExists`](crate::Error::FabricAlreadyExists) instead
/// of silently duplicating it; `fabrics()` is how a caller checks first.
///
/// `#[non_exhaustive]`: more fields may be added without a breaking change.