by servers that support it, or manually provided in the client. Used for client side validation and navigation properties. function addPerson() { addType({ name: 'Person', dataProperties: { id: { type: ID }, firstName: { max: 50, required: true }, lastName: { max: 50, required: true }, // could add validators here; let model.validation add them email: { max: 400 }, blog: { max: 400 }, twitter: { max: 400 }, gender: { max: 1 }, imageSource: { max: 400 }, // could let Breeze add unmapped but we do so to lock in the Boolean data type isPartial: { type: BOOL, required: true, isUnmapped: true }, isSpeaker: { type: BOOL, required: true, isUnmapped: true } }, navigationProperties: { speakerSessions: { type: 'Session', hasMany: true } } }); } function addSession() { addType({ name: 'Session', dataProperties: { id: { type: ID }, title: { max: 50, required: true }, code: { max: 10 }, description: { max: 4000 }, level: { max: 30 }, tags: { max: 4000 }, roomId: { type: ID, required: true }, speakerId: { type: ID, required: true }, timeSlotId: { type: ID, required: true }, trackId: { type: ID, required: true }, isPartial: { type: BOOL, required: true, isUnmapped: true } }, // Let model.validation add the requireReferenceEntity validators navigationProperties: { room: 'Room', speaker: 'Person', timeSlot: 'TimeSlot', track: 'Track' } }); }