First prototype
diff --git a/inc/Gtfs/Route/RouteType.php b/inc/Gtfs/Route/RouteType.php
new file mode 100644
index 0000000..9e9f6cc
--- /dev/null
+++ b/inc/Gtfs/Route/RouteType.php
@@ -0,0 +1,99 @@
+<?php
+# Generated by the protocol buffer compiler. DO NOT EDIT!
+# source: proto/gtfs.proto
+
+namespace Gtfs\Route;
+
+use UnexpectedValueException;
+
+/**
+ * The route_type field describes the type of transportation used on a route.
+ *
+ * Protobuf type <code>gtfs.Route.RouteType</code>
+ */
+class RouteType
+{
+ /**
+ * Tram, Streetcar, Light rail. Any light rail or street level system within a metropolitan area.
+ *
+ * Generated from protobuf enum <code>TRAM = 0;</code>
+ */
+ const TRAM = 0;
+ /**
+ * Subway, Metro. Any underground rail system within a metropolitan area.
+ *
+ * Generated from protobuf enum <code>SUBWAY = 1;</code>
+ */
+ const SUBWAY = 1;
+ /**
+ * Rail. Used for intercity or long-distance travel.
+ *
+ * Generated from protobuf enum <code>RAIL = 2;</code>
+ */
+ const RAIL = 2;
+ /**
+ * Bus. Used for short- and long-distance bus routes.
+ *
+ * Generated from protobuf enum <code>BUS = 3;</code>
+ */
+ const BUS = 3;
+ /**
+ * Ferry. Used for short- and long-distance boat service.
+ *
+ * Generated from protobuf enum <code>FERRY = 4;</code>
+ */
+ const FERRY = 4;
+ /**
+ * Cable car. Used for street-level cable cars where the cable runs beneath the car.
+ *
+ * Generated from protobuf enum <code>CABLECAR = 5;</code>
+ */
+ const CABLECAR = 5;
+ /**
+ * Gondola, Suspended cable car. Typically used for aerial cable cars where the car is suspended from the cable.
+ *
+ * Generated from protobuf enum <code>GONDOLA = 6;</code>
+ */
+ const GONDOLA = 6;
+ /**
+ * Funicular. Any rail system designed for steep inclines.
+ *
+ * Generated from protobuf enum <code>FUNICULAR = 7;</code>
+ */
+ const FUNICULAR = 7;
+
+ private static $valueToName = [
+ self::TRAM => 'TRAM',
+ self::SUBWAY => 'SUBWAY',
+ self::RAIL => 'RAIL',
+ self::BUS => 'BUS',
+ self::FERRY => 'FERRY',
+ self::CABLECAR => 'CABLECAR',
+ self::GONDOLA => 'GONDOLA',
+ self::FUNICULAR => 'FUNICULAR',
+ ];
+
+ 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(RouteType::class, \Gtfs\Route_RouteType::class);
+