This lets users distinguish multiple queries in a batch. It also
protects against users modifying the context in one query and
affecting another. (Although modifications to existing properties
of the context object will still be visible in other queries because
we only shallow copy.)