# Task 01 — Builder + Config API **Goal:** expose a fluent API that hides all the knobs required to open a single-process tidalDB instance. ## Deliverables - `TidalDbBuilder` with methods: `ephemeral()`, `with_data_dir(Path)`, `cache_dir(Path)`, `wal_dir(Path)`, `validate()` and `open()`. - `Config` struct that can be serialized (for CLI) and implements `Default` tuned for embeddable use (single WAL segment, no background threads yet). - Unit tests proving builder errors when directories are missing/unwritable. ## Acceptance Criteria - `cargo test builder` passes on macOS + Linux runners. - Builder docs contain runnable snippet used in Phase 3 doctests. - No public API exposes fjall/useless internals; consumers only see `Config` + `TidalDbBuilder`.