"fail fast" to reduce nesting, a bit more idiomatic
no need to check len
use 'v' instead of '_item'
add support for pointer in fieldSpec; suspect there's a way to combine common fields with genSpec
add support for projection (Select) + tests; basic error handling for imported types