DatabaseProvider
Contract every provider package implements.
Query input stays generic so each driver keeps its native shape. PostgreSQL takes SQL. Firestore takes collection queries. Hosted providers (Supabase) set their own id and reuse a driver. The core does not translate one into the other.
Prop
Type
Hosts pass a provider instance into connect(). Driver packages export factories such as postgres() and firestore(). Hosted providers export factories such as supabase().
query() is read-only and fail-closed. SDK checks are extra; a read-only database role is the security boundary.