Use Q1 for now - definitely a good start. Then when Q2 is ready (which I may rename to "Dash" when it's done), you can seamlessly upgrade. Methods will also have various names: foreach, each, forEach; where, filter; uniq, unique; length, count, size; etc. So that just increases it's drop-in compatibility. But the .from() part of it may change; if it does I'd just wrap a compatibility thing around it that's all.
I had designed Query with turn based battle systems in mind. 
That said, Query2 does have all the core functionality working. It's current API (all complete except reduce and every):
chainable:
- take(n) - take the first n results.
- first(|fn) - take first satisfying item, or if no function, the very first item.
- map(fn) - perform a map operation with fn.
- where(fn) - perform a filter using fn as the predicate.
- get(num) - tries to get the indexed item.
- uniq() - filters the results to only unique items.
non-chainable:
- each(fn) - perform the query, running the results through a function.
- toArray() - perform the query, returning an array.
- contains(o|p) - perform the query, returning true if it satisfies the predicate or matches the object.
- indexOf(o) - perform the query, returning -1 if item not found, or the index.
- every(fn) - perform the query, checking to see if all items satisfy the predicate.
- reduce(fn, memo) - perform the query, reducing the results, starting at memo, or if not, the first item.
- length() - perform the query, returning the overall length.
- count(p) - perform the query, returning the overall number of times the predicate was satisfied.
Reduce and every are not hard to implement, so they'll be done soon.
Next I have planned:
Zip,
Slice,
Reverse, <-- gonna be HARD in my very linear system 
Sort, <-- gonna be HARD in my very linear system 
Concat,
Union,
Intersection,
Difference,
First,
Random.
And that's all.