- Plan builder to express queries in JavaScript - Interoperability with other Java builders, such as cts:query or QBE - Efficient handling of tuple results - Map results to JavaScript/Node types and common I/O patterns (e.g. streams) - Performance, especially for large record sets, millions of results, rather than pages as we assume with search results