EngineBackend implementation backed by SQLite — dev-only
per RFC-023.
Phase 1a scope
This crate is the RFC-023 Phase 1a scaffold: construction
semantics (FF_DEV_MODE=1 guard, per-path registry, connection
pool, WARN banner), the SQLite transient-busy error classifier
skeleton, and an EngineBackend
impl whose data-plane methods return
EngineError::Unavailable.
Phase 1b lands the hand-ported SQLite-dialect migrations;
Phase 2+ replaces the Unavailable stubs with real bodies
paralleling ff-backend-postgres.
Production guard
[SqliteBackend::new] refuses to construct without
FF_DEV_MODE=1 in the process environment. The refusal is on
the TYPE (RFC-023 §3.3 A3 / §4.5) so every path — embedded
library consumers, ff_server::start_sqlite_branch, and
ff_sdk::FlowFabricWorker::connect_with — pays the guard.
No ferriskey dep — this crate's transport is sqlx.