factory Viewpoint.fromJson(Map<String, dynamic> json) { return Viewpoint.fromJsonString(jsonEncode(json)); }