   use Protobuf, syntax: :proto2
 
   @type t :: %__MODULE__{
-    key:          [integer],
-    hue:          integer,
-    hat:          integer,
-    deadline:     float,
-    somegroup:    any,
-    name_mapping: %{integer => String.t},
-    msg_mapping:  %{integer => My.Test.Reply.t},
-    reset:        integer,
-    get_key:      String.t
-  }
-  defstruct [:key, :hue, :hat, :deadline, :somegroup, :name_mapping, :msg_mapping, :reset, :get_key]
+          key: [integer],
+          hue: integer,
+          hat: integer,
+          deadline: float,
+          somegroup: any,
+          name_mapping: %{integer => String.t()},
+          msg_mapping: %{integer => My.Test.Reply.t()},
+          reset: integer,
+          get_key: String.t()
+        }
+  defstruct [
+    :key,
+    :hue,
+    :hat,
+    :deadline,
+    :somegroup,
+    :name_mapping,
+    :msg_mapping,
+    :reset,
+    :get_key
+  ]
 
   field :key, 1, repeated: true, type: :int64
   field :hue, 3, optional: true, type: My.Test.Request.Color, enum: true

  use Protobuf, syntax: :proto2

  defstruct []

end

defmodule My.Test.HatType do

  use Protobuf, syntax: :proto2

  defstruct []
end

defmodule My.Test.OtherReplyExtensions do
  use Protobuf, syntax: :proto2

  @type t :: %__MODULE__{
          key: integer
        }
  defstruct [:key]

  field :key, 1, optional: true, type: :int32
