//! Talking to a ThoughtSync server — entirely opt-in. //! //! The app is local-first: `local` is the source of truth and everything works //! unlinked. Nothing in here runs until the user links a server. //! //! - `compat` — the version/capability handshake (M10.6): whether a given server can //! be talked to at all. Pure decision logic, no I/O. //! - `client` — HTTP transport: the handshake call and device-token auth. //! - `state` — the persisted link record (server, token, change-feed cursor). //! - `engine` — one full cycle: push local changes, then pull the server's. //! //! The UI surface that drives this lives in whichever client is wrapping the crate, //! not here. pub mod blobs; pub mod client; pub mod compat; pub mod engine; pub mod pull; pub mod push; pub mod state; pub mod wire;