NodeJS datasource agnostic model, schema and validation layer