database agnostic modeling and validation for javascript