Partly the problem is there is no good defacto Record implementation in Scala so the library makers are not yet taking this seriously. There are few competing (?) that I've been looking at, one by cvogt here: https://github.com/cvogt/compossible and one called Scala records here: https://github.com/scala-records/scala-records
There's no "one size fits all". If quill's abstraction level is not enough for your domain, I suggest trying out http://activate-framework.org.
Currently, quill provides two alternatives:
1. Select tuples instead of case classes
2. As the mapping case classes are simple to create, it's possible to define an additional one only with the fields the user wants to select in the query.
This means that's possible select any subset of the database structure. I still wonder if records would be a better solution though.
Defining tables as case classes is pretty neat, but option to get Records out of queries would be preferred.
Though I can't figure out which Scala record implementation is going to prevail, making the choice hard, but creating own record type is probably not the way.