GROQ, in full
Queries are parsed with groq-js, narrowed to a candidate set by a SQL planner, then evaluated completely — so no query can silently fail because a compiler did not understand it.
shipped
The engine is deliberately conservative: correctness first, performance incrementally.
A planner lifts the predicates Postgres can evaluate cheaply — _type, _id, defined(), field equality, slug.current, the perspective's draft discrimination, and sometimes order and a trailing slice — and the rows that survive are handed to groq-js for the complete expression.
Dereferences resolve through a per-request DataLoader, so a projection over a hundred documents costs one extra query rather than a hundred.
