# 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`.
