//! Talking to an Inkwell 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. //! - `link` — linking a device to a server and unlinking it, one flow for every client. //! - `pull` / `push` — the two halves of that cycle. //! - `wire` — the delta-feed JSON shapes, as the server sends them. //! - `blobs` — attachment bytes on disk, filed under their own sha256. //! - `sharing` — the Share dialog's calls, straight to the server (#5175). //! //! 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 link; pub mod pull; pub mod push; pub mod sharing; pub mod state; pub mod wire;