Versioned history

Every change creates a new version instead of overwriting prior state. Earlier snapshots remain queryable, so you can answer what the system believed at any point.

Before vs after

Before: a row update erases the old value unless you added custom history tables. After: each correction is appended as a new observation, so historical state is preserved by default.

# Current snapshot
neotoma entities search --query "Ana Rivera" --type contact

# Historical lineage
neotoma observations list --entity-id <entity_id>

This aligns with event-sourcing principles: the observation log is authoritative, snapshots are derived views. See deterministic state evolution, auditable change log, and human inspectability.