$limit, $skip order will forever require quick documentation lookup.
I foresee $queryFields becoming part of a $queryDocument in the near future, on the same level as $orderyBy

I think having these as separate arguments will is indeed asking for problems down the line.
I would prefer an array of "our own" query options so we do not tie us into a dedicated implementation detail on how the current query and opcode wire protocol works.

I don't understand the difference between your suggested alternative vs the original suggestion.. So refactor this into an array of _our own_ query options as you suggested please :)