//! Everything a hayson language binding needs that is not about the foreign boundary itself: the
//! `DatabaseError`/`TableError` → envelope mapping, the JSON shapes of the engine's result types,
//! the `open()` options document, and the predicate document `Table::query` takes.
//!
//! Nothing here knows what it is bound to. The bindings that do — `hayson-napi` (Node native
//! addon) and `hayson-wasm` (`wasm32-wasip1`) — own their own handle bookkeeping and their own way
//! of raising an error, and share the whole of this crate.