introduce JsonView and ModelJSONEncoder