First prototype
diff --git a/inc/Gtfs/Stop/LocationType.php b/inc/Gtfs/Stop/LocationType.php
new file mode 100644
index 0000000..204d537
--- /dev/null
+++ b/inc/Gtfs/Stop/LocationType.php
@@ -0,0 +1,76 @@
+<?php
+# Generated by the protocol buffer compiler.  DO NOT EDIT!
+# source: proto/gtfs.proto
+
+namespace Gtfs\Stop;
+
+use UnexpectedValueException;
+
+/**
+ * Protobuf type <code>gtfs.Stop.LocationType</code>
+ */
+class LocationType
+{
+    /**
+     * Stop (or Platform). A location where passengers board or disembark from a transit vehicle. Is called a platform when defined within a parent_station.
+     *
+     * Generated from protobuf enum <code>STOP = 0;</code>
+     */
+    const STOP = 0;
+    /**
+     * Station. A physical structure or area that contains one or more platform.
+     *
+     * Generated from protobuf enum <code>STATION = 1;</code>
+     */
+    const STATION = 1;
+    /**
+     * Entrance/Exit. A location where passengers can enter or exit a station from the street. If an entrance/exit belongs to multiple stations, it can be linked by pathways to both, but the data provider must pick one of them as parent.
+     *
+     * Generated from protobuf enum <code>ENTRANCE = 2;</code>
+     */
+    const ENTRANCE = 2;
+    /**
+     * Generic Node. A location within a station, not matching any other location_type, which can be used to link together pathways define in pathways.txt.
+     *
+     * Generated from protobuf enum <code>GENERIC_NODE = 3;</code>
+     */
+    const GENERIC_NODE = 3;
+    /**
+     * Boarding Area. A specific location on a platform, where passengers can board and/or alight vehicles.
+     *
+     * Generated from protobuf enum <code>BOARDING_AREA = 4;</code>
+     */
+    const BOARDING_AREA = 4;
+
+    private static $valueToName = [
+        self::STOP => 'STOP',
+        self::STATION => 'STATION',
+        self::ENTRANCE => 'ENTRANCE',
+        self::GENERIC_NODE => 'GENERIC_NODE',
+        self::BOARDING_AREA => 'BOARDING_AREA',
+    ];
+
+    public static function name($value)
+    {
+        if (!isset(self::$valueToName[$value])) {
+            throw new UnexpectedValueException(sprintf(
+                    'Enum %s has no name defined for value %s', __CLASS__, $value));
+        }
+        return self::$valueToName[$value];
+    }
+
+
+    public static function value($name)
+    {
+        $const = __CLASS__ . '::' . strtoupper($name);
+        if (!defined($const)) {
+            throw new UnexpectedValueException(sprintf(
+                    'Enum %s has no value defined for name %s', __CLASS__, $name));
+        }
+        return constant($const);
+    }
+}
+
+// Adding a class alias for backwards compatibility with the previous class name.
+class_alias(LocationType::class, \Gtfs\Stop_LocationType::class);
+