//! ADR-115 §3.11 — Matter Bridge (HA-FABRIC) scaffolding. //! //! This module owns the **Matter device-type and cluster mappings** //! independent of any specific Matter SDK. Pure types + lookup tables //! land here in v0.7.0; the actual SDK wiring (rs-matter or chip-tool //! FFI per §9.10) lands in P7 → P8 in v0.7.1 once the SDK choice is //! validated by a pairing spike against Apple Home / Google Home / HA. //! //! ## Why scaffolding-first //! //! 1. **Decision principle** (maintainer ACK §9): preserve clean //! protocols, avoid fake semantics, ship MQTT first, validate Matter //! second. This module defines what Matter *would* expose without //! committing to an SDK. //! 2. **Reusability**. The mapping table is the same regardless of SDK //! choice — rs-matter and chip-tool both speak in cluster IDs + //! attribute IDs. Defining it here means the SDK swap (if needed //! at P7) is local. //! 3. **Testability**. Cluster / attribute / event IDs are well-known //! integers in the Matter spec; we can validate the mapping against //! the spec without a live controller. //! //! ## Spec versions tracked //! //! - **Matter Core Spec 1.3** (CSA, 2024) — the surface this module //! targets. ID values below match §1.3 §A.1 Reserved Cluster IDs. //! //! Future Matter spec revisions that add biometric clusters (HR / BR) //! would expand `EntityKind::matter_mapping` to cover them. Today HR / //! BR have no Matter cluster and stay MQTT-only. mod bridge; mod clusters; mod commissioning; pub use bridge::{build_bridge_tree, BridgeTree, Endpoint, EndpointRef, NodeBranch}; pub use clusters::{ matter_mapping, ClusterId, EndpointTypeId, MatterClusterMapping, }; pub use commissioning::{ManualPairingCode, SetupCodeInput};