Entities & invariants
Events emitted
contact.created|updated|merged · consent.granted|revoked · event.tracked · segment.entered|exitedEndpoints (permission each — DEC-D5)
- POST /v1/core/track|identify|batch → core.events.write (Runtime, fast-ack 202)
- GET/POST/PATCH /v1/core/contacts[…] → core.contacts.read|create|update; full national_id read → core.contacts.read_national_id
- POST /v1/core/contacts/{id}/erasure → core.contacts.erase (ARCO; ≤30 days automated, ledger anonymization)
- GET /v1/core/contacts/{id}/export → core.contacts.export (ARCO portability)
- CRUD /v1/core/segments → core.segments.* · POST /v1/core/auth/token-exchange (per ADR-010)
- Import: POST /v1/core/imports (CSV) → duplicate-DNI rows land in suggested-merge queue (DEC-A6)