diff --git a/BeckmanComms.Api.DataTransferObjects/BeckmanComms.Api.DataTransferObjects.csproj b/BeckmanComms.Api.DataTransferObjects/BeckmanComms.Api.DataTransferObjects.csproj
index b518c3c5c49b3c0a0ad0bc21027dd92b724d7585..ef0dc3f19c46b850158a05259394e69b6c39fc3d 100644
--- a/BeckmanComms.Api.DataTransferObjects/BeckmanComms.Api.DataTransferObjects.csproj
+++ b/BeckmanComms.Api.DataTransferObjects/BeckmanComms.Api.DataTransferObjects.csproj
@@ -16,4 +16,8 @@
     <PackageReference Include="System.Xml.XmlSerializer" Version="4.3.0" />
   </ItemGroup>
 
+  <ItemGroup>
+    <Folder Include="V2\Cafe\" />
+  </ItemGroup>
+
 </Project>
diff --git a/BeckmanComms.Api.DataTransferObjects/BeckmanComms.Api.DataTransferObjects.nuspec b/BeckmanComms.Api.DataTransferObjects/BeckmanComms.Api.DataTransferObjects.nuspec
index 3ca2b33c1dd736def1ba983e9630e58c301c4ab0..a90435bd500696c7e6bebc4394383dc4f9e3170f 100644
--- a/BeckmanComms.Api.DataTransferObjects/BeckmanComms.Api.DataTransferObjects.nuspec
+++ b/BeckmanComms.Api.DataTransferObjects/BeckmanComms.Api.DataTransferObjects.nuspec
@@ -2,39 +2,40 @@
 <package xmlns="http://schemas.microsoft.com/packaging/2012/06/nuspec.xsd">
   <metadata>
     <id>BeckmanComms.Api.DataTransferObjects</id>
-    <version>2.0.0-alpha01</version>
+    <version>2.0.0-alpha02</version>
     <title>Beckman API Data Transfer Objects</title>
     <authors>areynold</authors>
     <owners>Beckman Institute; University of Illinois</owners>
-    <projectUrl>https://gitlab.engr.illinois.edu/beckmancomms/beckman-api</projectUrl>
     <requireLicenseAcceptance>false</requireLicenseAcceptance>
+    <projectUrl>https://gitlab.engr.illinois.edu/beckmancomms/beckmancomms-api-datatransferobjects</projectUrl>
     <description>Model classes for use with the Beckman Institute web API.</description>
     <summary>Model classes for use with the Beckman Institute web API.</summary>
-    <releaseNotes>
+    <releaseNotes>2.0.0-alpha02:
+      * Add V2 cafe DTOs.
+
       2.0.0-alpha01:
       * Correct class namespaces to reference assembly name.
 
       1.1.0-alpha01:
-      * Add initial V2 directory DTOs
+      * Add initial V2 directory DTOs.
 
       1.0.0:
       * Migrate to .net standard library project.
-      * Rename project. (Was Api.DataTransferObjects.)
-      * Include only live (v1) api DTOs
+      * Rename project. (Was Api.DataTransferObjects.).
+      * Include only live (v1) api DTOs.
 
       0.0.4:
-      * Correct project link
-      * Set System.Xml.XmlSerializer dependency
+      * Correct project link.
+      * Set System.Xml.XmlSerializer dependency.
 
       0.0.3:
-      * Correct docstring typo
+      * Correct docstring typo.
 
       0.0.2:
-      * Add v1, v2 docstrings
+      * Add v1, v2 docstrings.
 
       0.0.1:
-      * Package initial v1, v2 data transfer objects.
-    </releaseNotes>
+      * Package initial v1, v2 data transfer objects.</releaseNotes>
     <copyright>Copyright 2017, University of Illinois Board of Trustees</copyright>
     <language>en-US</language>
     <tags>mvc, dto, api, beckman, uiuc, illinois</tags>
@@ -60,6 +61,6 @@
     <file src="bin\Release\netstandard1.4\BeckmanComms.Api.DataTransferObjects.deps.json" target="lib\netstandard1.4\BeckmanComms.Api.DataTransferObjects.deps.json" />
     <file src="bin\Release\netstandard1.4\BeckmanComms.Api.DataTransferObjects.dll" target="lib\netstandard1.4\BeckmanComms.Api.DataTransferObjects.dll" />
     <file src="bin\Release\netstandard1.4\BeckmanComms.Api.DataTransferObjects.pdb" target="lib\netstandard1.4\BeckmanComms.Api.DataTransferObjects.pdb" />
-    <file src="bin\Release\netstandard1.4\BeckmanComms.Api.DataTransferObjects.xml" target="lib\netstandard1.4\BeckmanComms.Api.DataTransferObjects.xml" />
+    <file src="bin\Release\shared\BeckmanComms.Api.DataTransferObjects.xml" target="lib\netstandard1.4\BeckmanComms.Api.DataTransferObjects.xml" />
   </files>
 </package>
\ No newline at end of file
diff --git a/BeckmanComms.Api.DataTransferObjects/README.md b/BeckmanComms.Api.DataTransferObjects/README.md
index 4e1933d957c1f04a315a0d8470f60c15bcee56c4..9da87980cf0e87432c9a1828cc57c3d160394086 100644
--- a/BeckmanComms.Api.DataTransferObjects/README.md
+++ b/BeckmanComms.Api.DataTransferObjects/README.md
@@ -18,7 +18,7 @@ The DTO project should be repackaged and published with each update to the `Api.
     * Summarize version changes in the **Release Notes** field.
     * Update package dependencies if needed.
 7. Save Metadata (**File > Save Metadata As...**) `Api.DataTransferObjects.nuspec` in the Api.DataTransferObjects project folder and commit to version control.
-8. Save package (**File > Save As...**) `G:\External Relations\CommsInternalNuGetFeed\Api.DataTransferObjects.{version}`.
+8. Save package (**File > Save As...**) `G:\NuGetFeed\BeckmanComms.Api.DataTransferObjects.{version}`.
 
 ### Resources
 
@@ -31,7 +31,7 @@ The DTO project should be repackaged and published with each update to the `Api.
 0. In Visual Studio, open your NuGet package sources config (**Tools > Options > NuGet Package Manager > Package Sources**).
 1. Click the **+** icon to add a new source with default settings.
     * In the **Name** field, give the feed a meaningful name (e.g., "Beckman Internal Feed").
-    * Use the **...** icon next to the **Source** field to browse to `G:\External Relations\CommsInternalNuGetFeed`.
+    * Use the **...** icon next to the **Source** field to browse to `G:\NuGetFeed`.
 2. Click **Update**.
 3. Click **OK**.
 4. Search and install NuGet packages as usual.
\ No newline at end of file
diff --git a/BeckmanComms.Api.DataTransferObjects/V2/Cafe/CafeAnnouncementDto.cs b/BeckmanComms.Api.DataTransferObjects/V2/Cafe/CafeAnnouncementDto.cs
new file mode 100644
index 0000000000000000000000000000000000000000..9a32b26871c0268c8383ec56151176336dec5c9e
--- /dev/null
+++ b/BeckmanComms.Api.DataTransferObjects/V2/Cafe/CafeAnnouncementDto.cs
@@ -0,0 +1,20 @@
+using System;
+
+namespace BeckmanComms.Api.DataTransferObjects.V2.Cafe
+{
+    /// <summary>
+    /// Data Transfer Object representing a cafe announcement.
+    /// </summary>
+    public class CafeAnnouncementDto
+    {
+        /// <summary>
+        /// Date to post the announcement.
+        /// </summary>
+        public DateTime Date { get; set; }
+
+        /// <summary>
+        /// Message to be displayed in the announcement.
+        /// </summary>
+        public string Message { get; set; }
+    }
+}
\ No newline at end of file
diff --git a/BeckmanComms.Api.DataTransferObjects/V2/Cafe/DishDto.cs b/BeckmanComms.Api.DataTransferObjects/V2/Cafe/DishDto.cs
new file mode 100644
index 0000000000000000000000000000000000000000..93f4d9b9e97bfd35060e06fb44e318c028524c0c
--- /dev/null
+++ b/BeckmanComms.Api.DataTransferObjects/V2/Cafe/DishDto.cs
@@ -0,0 +1,69 @@
+using System.Collections.Generic;
+
+namespace BeckmanComms.Api.DataTransferObjects.V2.Cafe
+{
+    /// <summary>
+    /// Data Transfer Object representing a
+    /// </summary>
+    public class DishDto
+    {
+        /// <summary>
+        /// The name of the dish.
+        /// </summary>
+        public string Name { get; set; }
+
+        /// <summary>
+        /// The category of the dish (e.g., Soup, Sandwich, Salad).
+        /// </summary>
+        public string Category { get; set; }
+
+        /// <summary>
+        /// The description of the dish.
+        /// </summary>
+        public string Description { get; set; }
+
+        /// <summary>
+        /// The path to the image of the dish.
+        /// </summary>
+        public string Image { get; set; }
+
+        /// <summary>
+        /// The description of the image of the dish, suitable for use as alt text.
+        /// </summary>
+        public string ImageDescription { get; set; }
+
+        /// <summary>
+        /// The standard price of the dish.
+        /// </summary>
+        public double StandardPrice { get; set; }
+
+        /// <summary>
+        /// The price of a half-order of the dish, when available.
+        /// </summary>
+        public double? HalfPrice { get; set; }
+
+        /// <summary>
+        /// Indicates whether the item is available every day ( <c>DishDto.Specialty == false</c>) or
+        /// as an occasional specialty item ( <c>DishDto.Specialty == true</c>).
+        /// </summary>
+        public bool Specialty { get; set; }
+
+        /// <summary>
+        /// Indicates whether the item is in-stock ( <c>DishDto.SoldOut == false</c>) or sold-out (
+        /// <c>DishDto.SoldOut == true</c>).
+        /// </summary>
+        public bool SoldOut { get; set; }
+
+        /// <summary>
+        /// Indicates whether the item should not be displayed as a featured item (
+        /// <c>DishDto.Featured == false</c>) or should be displayed as a featured item (
+        /// <c>DishDto.SoldOut == true</c>).
+        /// </summary>
+        public bool Featured { get; set; }
+
+        /// <summary>
+        /// The qualities of a dish (e.g., Vegetarian, Vegan, Gluten Free).
+        /// </summary>
+        public IEnumerable<DishQualityDto> DishQualities { get; set; }
+    }
+}
\ No newline at end of file
diff --git a/BeckmanComms.Api.DataTransferObjects/V2/Cafe/DishQualityDto.cs b/BeckmanComms.Api.DataTransferObjects/V2/Cafe/DishQualityDto.cs
new file mode 100644
index 0000000000000000000000000000000000000000..6de39b577fe9c74a0993c40207c4e7f9f31c8c55
--- /dev/null
+++ b/BeckmanComms.Api.DataTransferObjects/V2/Cafe/DishQualityDto.cs
@@ -0,0 +1,26 @@
+namespace BeckmanComms.Api.DataTransferObjects.V2.Cafe
+{
+    /// <summary>
+    /// Data Transfer Object representing a dish quality.
+    /// </summary>
+    /// <example>Gluten Free</example>
+    /// <example>Spicy</example>
+    /// <example>Vegan</example>
+    public class DishQualityDto
+    {
+        /// <summary>
+        /// The name of the dish quality.
+        /// </summary>
+        public string Name { get; set; }
+
+        /// <summary>
+        /// The icon representing the dish quality.
+        /// </summary>
+        public string Icon { get; set; }
+
+        /// <summary>
+        /// The description of the icon representing the dish quality.
+        /// </summary>
+        public string IconDescription { get; set; }
+    }
+}
\ No newline at end of file
diff --git a/BeckmanComms.Api.DataTransferObjects/V2/Cafe/MenuDto.cs b/BeckmanComms.Api.DataTransferObjects/V2/Cafe/MenuDto.cs
new file mode 100644
index 0000000000000000000000000000000000000000..afc5d0d84bbca352cff7baf0a765fed9bfc16725
--- /dev/null
+++ b/BeckmanComms.Api.DataTransferObjects/V2/Cafe/MenuDto.cs
@@ -0,0 +1,26 @@
+using System;
+using System.Collections.Generic;
+
+namespace BeckmanComms.Api.DataTransferObjects.V2.Cafe
+{
+    /// <summary>
+    /// Data Transfer Object containing combined menu database fields.
+    /// </summary>
+    public class MenuDto
+    {
+        /// <summary>
+        /// Menu date in a human-readable format.
+        /// </summary>
+        public string Title { get; set; }
+
+        /// <summary>
+        /// Menu date.
+        /// </summary>
+        public DateTime Date { get; set; }
+
+        /// <summary>
+        /// Collection containing dishes that belong to this menu.
+        /// </summary>
+        public IEnumerable<DishDto> Dishes { get; set; }
+    }
+}
\ No newline at end of file