Use a list of API fields and a more DSL-y layer.