Task searching severely limited

I am finally getting around to rewriting the Perl CPAN Toodledo module for API 2.0, and I am perturbed by the limited options for task searching. Am I missing something, or is the interface for selecting tasks considerably less capable than the V1.0 API? It appears optimized only for task synchronization.

For instance, where in 1.0 I could search for tasks due in a date range, in 2.0 I have to iterate through all tasks. And for performance, I would have to select only the due date field, pick out the id of the matching tasks, then requery for those IDs and the full set of fields that I wanted.

That doesn't seem efficient or easy. I have ~4000 uncompleted tasks of my own, for instance, and iterating through all of them to find the three that have the "garden" tag seems incredibly wasteful. How do people do this? Is there some method aside from 'get' that does what the 1.0 getTasks method did?

You are correct. The API 2.0 is optimized for syncing, since this is what 99% of the apps built on Toodledo do. The best thing to do is to sync the data and then do all your searching on your local copy of the data. This will be much faster than doing all your searches on the server.