//! Tidepool service layer — upstream-agnostic, transport-agnostic.
//!
//! This crate owns:
//!
//! - **cNFT state**: replayed Bubblegum tree state, event-sourced from
//! `getSignaturesForAddress` + `getTransaction` responses.
//! - **DAS services** (step 3 — not yet landed): `get_asset`,
//! `get_asset_proof`, and the search family.
//! - **Pluggable adapter traits**: [`UpstreamClient`], [`CnftStore`],
//! [`CacheStore`]. Tests inject in-memory or fixture impls; the HTTP
//! server wires in network-backed impls.
//!
//! Pure algorithms (keccak, merkle proof) live in `tidepool-core`.
//! Anything with I/O, async, or Solana-protocol awareness lives here.
// Re-export core primitives so downstream consumers don't need to
// depend on both crates by hand.
pub use ;