It's best to imagine tRPC like a way to just call functions as if they're local to your client. It's not a query system, but any query system you could build using functions and typescript magic can be used with tRPC
So the simple answer is: build a dedicated procedure for each use case, or accept that you might fetch more data than you need over more requests than you might like. The complex answer is: build yourself a query layer which meets your needs