diff --git a/src/one-shot/schema.py b/src/one-shot/schema.py
new file mode 100644
index 0000000000000000000000000000000000000000..6ea2676df42d246faeaee0a96794802844d1b2d6
--- /dev/null
+++ b/src/one-shot/schema.py
@@ -0,0 +1,168 @@
+from typing import List, Literal, Optional
+from datetime import datetime
+
+from pydantic import BaseModel
+
+
+class MultiWOZ(BaseModel):
+    attractionArea: Optional[Literal[
+        "center",
+        "east",
+        "north",
+        "south",
+        "west",
+    ]]
+    attractionName: Optional[str]
+    attractionType: Optional[Literal[
+        "architecture",
+        "boat",
+        "cinema",
+        "college",
+        "college",
+        "concerthall"
+        "entertainment",
+        "multiple sports",
+        "museum",
+        "nightclub",
+        "park",
+        "swimmingpool",
+        "theatre",
+    ]]
+    hotelArea: Optional[Literal[
+        "center",
+        "east",
+        "north",
+        "south",
+        "west",
+    ]]
+    hotelBookday: Optional[Literal[
+        "monday", 
+        "tuesday",
+        "wednesday",
+        "thursday",
+        "friday",
+        "saturday", 
+        "sunday"
+    ]]
+    hotelBookpeople: Optional[int]
+    hotelBookstay: Optional[int]
+    hotelInternet: Optional[Literal["yes", "no"]]
+    hotelName: Optional[str]
+    hotelParking: Optional[Literal["limited", "yes", "no"]]
+    hotelPricerange: Optional[Literal["cheap", "moderate", "expensive"]]
+    hotelStars: Optional[int]
+    hotelType: Optional[Literal["guesthouse", "hotel"]]
+    restaurantArea: Optional[Literal[
+        "center",
+        "east",
+        "north",
+        "south",
+        "west",
+    ]]
+    restaurantBookday: Optional[Literal[
+        "monday", 
+        "tuesday",
+        "wednesday",
+        "thursday",
+        "friday",
+        "saturday", 
+        "sunday"
+    ]]
+    restaurantBookpeople: Optional[int]
+    restaurantBooktime: Optional[datetime]
+    restaurantFood: Optional[str]
+    restaurantName: Optional[str]
+    restaurantPricerange: Optional[Literal["cheap", "moderate", "expensive"]]
+    taxiArriveby: Optional[datetime]
+    taxiDeparture: Optional[str]
+    taxiDestination: Optional[str]
+    taxiLeaveat: Optional[datetime]
+    trainArriveby: Optional[datetime]
+    trainBookpeople: Optional[int]
+    trainDay: Optional[str]
+    trainDeparture: Optional[datetime]
+    trainDestination: Optional[str]
+    trainLeaveat: Optional[datetime]
+
+
+class HeidelKBerg(BaseModel):
+    attractionArea: Optional[Literal[
+        "center",
+        "east",
+        "north",
+        "south",
+        "west",
+    ]]
+    attractionName: Optional[str]
+    attractionType: Optional[List[Literal[
+        "active",
+        "architecture", 
+        "child_friendly",
+        "educational",
+        "historic",
+        "indoor",
+        "nature",
+        "outdoor",
+        "passive",
+        "view",
+        "zoo", 
+    ]]]
+    attractionPricerange: Optional[Literal["cheap", "moderate", "expensive", "free"]]
+    hotelArea: Optional[Literal[
+        "center",
+        "east",
+        "north",
+        "south",
+        "west",
+    ]]
+    hotelBookday: Optional[Literal[
+        "monday", 
+        "tuesday",
+        "wednesday",
+        "thursday",
+        "friday",
+        "saturday", 
+        "sunday"
+    ]]
+    hotelBookpeople: Optional[int]
+    hotelBookstay: Optional[int]
+    hotelInternet: Optional[Literal["yes", "no"]]
+    hotelName: Optional[str]
+    hotelParking: Optional[Literal["limited", "yes", "no"]]
+    hotelPricerange: Optional[Literal["cheap", "moderate", "expensive"]]
+    hotelStars: Optional[Literal["0", "1", "2", "3", "4", "5"]]
+    restaurantArea: Optional[Literal[
+        "center",
+        "east",
+        "north",
+        "south",
+        "west",
+    ]]
+    restaurantBookday: Optional[Literal[
+        "monday", 
+        "tuesday",
+        "wednesday",
+        "thursday",
+        "friday",
+        "saturday", 
+        "sunday"
+    ]]
+    restaurantBookpeople: Optional[int]
+    restaurantFood: Optional[List[Literal[
+        "african",
+        "american",
+        "asian",
+        "chinese",
+        "german",
+        "greek",
+        "indian",
+        "international",
+        "italian",
+        "japanese",
+        "korean",
+        "oriental",
+        "sushi",
+        "thai"
+    ]]]
+    restaurantName: Optional[str]
+    restaurantPricerange: Optional[Literal["cheap", "moderate", "expensive"]]
\ No newline at end of file