// base case - date is required for time entry class TimeEntry{ Date date; } class TimeEntry{ Time startTime; Time endTime; } class Project{ String name; } association { 0..1 Project <- * TimeEntry; } class TimeEntry{ String comment; } association { 0..1 Project parent <- * Project; } class Project{ Double timeEstimate; } class Project{ Boolean archived; } class Client{ String name; } association { 0..1 Client <- * Project; } class Client{ String emailAddress; } class Client{ String phoneNumber; }