export interface Schedule {
    pages: SchedulePage[]
}

export interface SchedulePage {
    day: Day
    events: Event[]
}

export interface Day {
    id: string
    date: Date
}

export interface Event {
    id: string
    title: string
    startTime: Date
    endTime: Date
    place: Place | null
    track: Track | null
    speakers: Speaker[]
    experienceLevel: string | null
    type: string
    description: string | null
}

export interface Place {
    id: string
    name: string
    floor: string | null
}

export interface Track {
    id: string
    name: string
    accentColor: string | null
    textColor: string | null
    iconUrl: string | null
}

export interface Speaker {
    id: string
    name: string
    bio: string
    companyName: string | null
    companyUrl: string | null
    personalUrl: string | null
    photoUrl: string | null
    twitterUsername: string | null
}

type Optional<T> = T | null

export interface Schedule {
    pages: SchedulePage[]
}

export interface SchedulePage {
    day: Day
    events: Event[]
}

export interface Day {
    id: string
    date: Date
}

export interface Event {
    id: string
    title: string
    startTime: Date
    endTime: Date
    place: Optional<Place>
    track: Optional<Track>
    speakers: Speaker[]
    experienceLevel: Optional<string>
    type: string
    description: Optional<string>
}

export interface Place {
    id: string
    name: string
    floor: Optional<string>
}

export interface Track {
    id: string
    name: string
    accentColor: Optional<string>
    textColor: Optional<string>
    iconUrl: Optional<string>
}

export interface Speaker {
    id: string
    name: string
    bio: string
    companyName: Optional<string>
    companyUrl: Optional<string>
    personalUrl: Optional<string>
    photoUrl: Optional<string>
    twitterUsername: Optional<string>
}

--- 
+++ 
@@ -1,5 +1,3 @@
-type Optional<T> = T | null
-
 export interface Schedule {
     pages: SchedulePage[]
 }
@@ -19,35 +17,35 @@
     title: string
     startTime: Date
     endTime: Date
-    place: Optional<Place>
-    track: Optional<Track>
+    place: Place | null
+    track: Track | null
     speakers: Speaker[]
-    experienceLevel: Optional<string>
+    experienceLevel: string | null
     type: string
-    description: Optional<string>
+    description: string | null
 }
 
 export interface Place {
     id: string
     name: string
-    floor: Optional<string>
+    floor: string | null
 }
 
 export interface Track {
     id: string
     name: string
-    accentColor: Optional<string>
-    textColor: Optional<string>
-    iconUrl: Optional<string>
+    accentColor: string | null
+    textColor: string | null
+    iconUrl: string | null
 }
 
 export interface Speaker {
     id: string
     name: string
     bio: string
-    companyName: Optional<string>
-    companyUrl: Optional<string>
-    personalUrl: Optional<string>
-    photoUrl: Optional<string>
-    twitterUsername: Optional<string>
+    companyName: string | null
+    companyUrl: string | null
+    personalUrl: string | null
+    photoUrl: string | null
+    twitterUsername: string | null
 }
Use T | null and remove duplicated optional declaration
