Return validation errors as maps
Closes #286