QueryBackend
Aggregate-bound SPI for raw query results.
Inputs carry their explicit scope. Model defaults such as Snapshot ACTIVE are applied by QueryGateway; direct SPI callers must supply any required deletion or access predicates themselves.
Every subscription to a returned publisher, including subscriptions created by retry, repeat, or concurrent callers, must own fresh mutable ObjectNode instances. Implementations must not cache or share nodes across subscriptions, publish cached nodes, mutate emitted nodes asynchronously, or mutate them after delivery.
Results must contain only standard JSON-tree values. Storage-driver Map/Document values, BSON values, POJONode, and arbitrary POJOs must be normalized inside the Backend or rejected before crossing this boundary.