diff --git a/LICENSE b/LICENSE
new file mode 100644
--- /dev/null
+++ b/LICENSE
@@ -0,0 +1,30 @@
+Copyright (c) 2016, Ricky Elrod
+
+All rights reserved.
+
+Redistribution and use in source and binary forms, with or without
+modification, are permitted provided that the following conditions are met:
+
+    * Redistributions of source code must retain the above copyright
+      notice, this list of conditions and the following disclaimer.
+
+    * Redistributions in binary form must reproduce the above
+      copyright notice, this list of conditions and the following
+      disclaimer in the documentation and/or other materials provided
+      with the distribution.
+
+    * Neither the name of Ricky Elrod nor the names of other
+      contributors may be used to endorse or promote products derived
+      from this software without specific prior written permission.
+
+THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
diff --git a/Setup.hs b/Setup.hs
new file mode 100644
--- /dev/null
+++ b/Setup.hs
@@ -0,0 +1,2 @@
+import Distribution.Simple
+main = defaultMain
diff --git a/pokemon-go-protobuf-types.cabal b/pokemon-go-protobuf-types.cabal
new file mode 100644
--- /dev/null
+++ b/pokemon-go-protobuf-types.cabal
@@ -0,0 +1,244 @@
+name:                pokemon-go-protobuf-types
+version:             0.1.0.0
+synopsis:            Haskell types for the Pokemon Go protobuf protocol.
+homepage:            https://github.com/relrod/pokemon-go-protobuf-types
+license:             BSD3
+license-file:        LICENSE
+author:              Ricky Elrod
+maintainer:          ricky@elrod.me
+copyright:           (c) 2016 Ricky Elrod
+category:            Game
+build-type:          Simple
+cabal-version:       >= 1.10
+
+library
+  build-depends:       base >= 4 && < 5
+                     , proto-lens >= 0.1 && < 1
+                     , lens-family >= 1 && < 2
+                     , data-default-class >= 0.0.1 && < 0.1
+                     , text > 1 && < 2
+                     , containers > 0.5 && < 1
+                     , bytestring >= 0.10 && < 1
+  hs-source-dirs:      src
+  default-language:    Haskell2010
+  exposed-modules:
+    Proto.POGOProtos.Data.AssetDigestEntry,
+    Proto.POGOProtos.Data.Battle.BattleAction,
+    Proto.POGOProtos.Data.Battle.BattleActionType,
+    Proto.POGOProtos.Data.Battle.BattleLog,
+    Proto.POGOProtos.Data.Battle.BattleParticipant,
+    Proto.POGOProtos.Data.Battle.BattlePokemonInfo,
+    Proto.POGOProtos.Data.Battle.BattleResults,
+    Proto.POGOProtos.Data.Battle.BattleState,
+    Proto.POGOProtos.Data.Battle.BattleType,
+    Proto.POGOProtos.Data.Capture.CaptureAward,
+    Proto.POGOProtos.Data.Capture.CaptureProbability,
+    Proto.POGOProtos.Data.DownloadUrlEntry,
+    Proto.POGOProtos.Data.Gym.GymMembership,
+    Proto.POGOProtos.Data.Gym.GymState,
+    Proto.POGOProtos.Data.Logs.ActionLogEntry,
+    Proto.POGOProtos.Data.Logs.CatchPokemonLogEntry,
+    Proto.POGOProtos.Data.Logs.FortSearchLogEntry,
+    Proto.POGOProtos.Data.PlayerBadge,
+    Proto.POGOProtos.Data.Player.ContactSettings,
+    Proto.POGOProtos.Data.Player.Currency,
+    Proto.POGOProtos.Data.Player.DailyBonus,
+    Proto.POGOProtos.Data.PlayerData,
+    Proto.POGOProtos.Data.Player.EquippedBadge,
+    Proto.POGOProtos.Data.Player.PlayerAvatar,
+    Proto.POGOProtos.Data.Player.PlayerCamera,
+    Proto.POGOProtos.Data.Player.PlayerCurrency,
+    Proto.POGOProtos.Data.Player.PlayerPublicProfile,
+    Proto.POGOProtos.Data.Player.PlayerStats,
+    Proto.POGOProtos.Data.PokedexEntry,
+    Proto.POGOProtos.Data.PokemonData,
+    Proto.POGOProtos.Enums.ActivityType,
+    Proto.POGOProtos.Enums.BadgeType,
+    Proto.POGOProtos.Enums.CameraInterpolation,
+    Proto.POGOProtos.Enums.CameraTarget,
+    Proto.POGOProtos.Enums.Gender,
+    Proto.POGOProtos.Enums.IapItemCategory,
+    Proto.POGOProtos.Enums.ItemCategory,
+    Proto.POGOProtos.Enums.ItemEffect,
+    Proto.POGOProtos.Enums.Platform,
+    Proto.POGOProtos.Enums.PokemonId,
+    Proto.POGOProtos.Enums.PokemonMove,
+    Proto.POGOProtos.Enums.PokemonMovementType,
+    Proto.POGOProtos.Enums.PokemonRarity,
+    Proto.POGOProtos.Enums.PokemonType,
+    Proto.POGOProtos.Enums.TeamColor,
+    Proto.POGOProtos.Enums.TutorialState,
+    Proto.POGOProtos.Inventory.AppliedItem,
+    Proto.POGOProtos.Inventory.AppliedItems,
+    Proto.POGOProtos.Inventory.Candy,
+    Proto.POGOProtos.Inventory.EggIncubator,
+    Proto.POGOProtos.Inventory.EggIncubators,
+    Proto.POGOProtos.Inventory.EggIncubatorType,
+    Proto.POGOProtos.Inventory.InventoryDelta,
+    Proto.POGOProtos.Inventory.InventoryItem,
+    Proto.POGOProtos.Inventory.InventoryItemData,
+    Proto.POGOProtos.Inventory.InventoryUpgrade,
+    Proto.POGOProtos.Inventory.InventoryUpgrades,
+    Proto.POGOProtos.Inventory.InventoryUpgradeType,
+    Proto.POGOProtos.Inventory.Item.ItemAward,
+    Proto.POGOProtos.Inventory.Item.ItemData,
+    Proto.POGOProtos.Inventory.Item.ItemId,
+    Proto.POGOProtos.Inventory.Item.ItemType,
+    Proto.POGOProtos.Map.Fort.FortData,
+    Proto.POGOProtos.Map.Fort.FortLureInfo,
+    Proto.POGOProtos.Map.Fort.FortModifier,
+    Proto.POGOProtos.Map.Fort.FortRenderingType,
+    Proto.POGOProtos.Map.Fort.FortSponsor,
+    Proto.POGOProtos.Map.Fort.FortSummary,
+    Proto.POGOProtos.Map.Fort.FortType,
+    Proto.POGOProtos.Map.MapCell,
+    Proto.POGOProtos.Map.MapObjectsStatus,
+    Proto.POGOProtos.Map.Pokemon.MapPokemon,
+    Proto.POGOProtos.Map.Pokemon.NearbyPokemon,
+    Proto.POGOProtos.Map.Pokemon.WildPokemon,
+    Proto.POGOProtos.Map.SpawnPoint,
+    Proto.POGOProtos.Networking.Envelopes.AuthTicket,
+    Proto.POGOProtos.Networking.Envelopes.RequestEnvelope,
+    Proto.POGOProtos.Networking.Envelopes.ResponseEnvelope,
+    Proto.POGOProtos.Networking.Envelopes.Unknown6,
+    Proto.POGOProtos.Networking.Envelopes.Unknown6Response,
+    Proto.POGOProtos.Networking.Requests.Messages.AddFortModifierMessage,
+    Proto.POGOProtos.Networking.Requests.Messages.AttackGymMessage,
+    Proto.POGOProtos.Networking.Requests.Messages.CatchPokemonMessage,
+    Proto.POGOProtos.Networking.Requests.Messages.CheckAwardedBadgesMessage,
+    Proto.POGOProtos.Networking.Requests.Messages.CheckCodenameAvailableMessage,
+    Proto.POGOProtos.Networking.Requests.Messages.ClaimCodenameMessage,
+    Proto.POGOProtos.Networking.Requests.Messages.CollectDailyBonusMessage,
+    Proto.POGOProtos.Networking.Requests.Messages.CollectDailyDefenderBonusMessage,
+    Proto.POGOProtos.Networking.Requests.Messages.DiskEncounterMessage,
+    Proto.POGOProtos.Networking.Requests.Messages.DownloadItemTemplatesMessage,
+    Proto.POGOProtos.Networking.Requests.Messages.DownloadRemoteConfigVersionMessage,
+    Proto.POGOProtos.Networking.Requests.Messages.DownloadSettingsMessage,
+    Proto.POGOProtos.Networking.Requests.Messages.EchoMessage,
+    Proto.POGOProtos.Networking.Requests.Messages.EncounterMessage,
+    Proto.POGOProtos.Networking.Requests.Messages.EncounterTutorialCompleteMessage,
+    Proto.POGOProtos.Networking.Requests.Messages.EquipBadgeMessage,
+    Proto.POGOProtos.Networking.Requests.Messages.EvolvePokemonMessage,
+    Proto.POGOProtos.Networking.Requests.Messages.FortDeployPokemonMessage,
+    Proto.POGOProtos.Networking.Requests.Messages.FortDetailsMessage,
+    Proto.POGOProtos.Networking.Requests.Messages.FortRecallPokemonMessage,
+    Proto.POGOProtos.Networking.Requests.Messages.FortSearchMessage,
+    Proto.POGOProtos.Networking.Requests.Messages.GetAssetDigestMessage,
+    Proto.POGOProtos.Networking.Requests.Messages.GetDownloadUrlsMessage,
+    Proto.POGOProtos.Networking.Requests.Messages.GetGymDetailsMessage,
+    Proto.POGOProtos.Networking.Requests.Messages.GetHatchedEggsMessage,
+    Proto.POGOProtos.Networking.Requests.Messages.GetIncensePokemonMessage,
+    Proto.POGOProtos.Networking.Requests.Messages.GetInventoryMessage,
+    Proto.POGOProtos.Networking.Requests.Messages.GetMapObjectsMessage,
+    Proto.POGOProtos.Networking.Requests.Messages.GetPlayerMessage,
+    Proto.POGOProtos.Networking.Requests.Messages.GetPlayerProfileMessage,
+    Proto.POGOProtos.Networking.Requests.Messages.GetSuggestedCodenamesMessage,
+    Proto.POGOProtos.Networking.Requests.Messages.IncenseEncounterMessage,
+    Proto.POGOProtos.Networking.Requests.Messages.LevelUpRewardsMessage,
+    Proto.POGOProtos.Networking.Requests.Messages.MarkTutorialCompleteMessage,
+    Proto.POGOProtos.Networking.Requests.Messages.NicknamePokemonMessage,
+    Proto.POGOProtos.Networking.Requests.Messages.PlayerUpdateMessage,
+    Proto.POGOProtos.Networking.Requests.Messages.RecycleInventoryItemMessage,
+    Proto.POGOProtos.Networking.Requests.Messages.ReleasePokemonMessage,
+    Proto.POGOProtos.Networking.Requests.Messages.SetAvatarMessage,
+    Proto.POGOProtos.Networking.Requests.Messages.SetContactSettingsMessage,
+    Proto.POGOProtos.Networking.Requests.Messages.SetFavoritePokemonMessage,
+    Proto.POGOProtos.Networking.Requests.Messages.SetPlayerTeamMessage,
+    Proto.POGOProtos.Networking.Requests.Messages.SfidaActionLogMessage,
+    Proto.POGOProtos.Networking.Requests.Messages.StartGymBattleMessage,
+    Proto.POGOProtos.Networking.Requests.Messages.UpgradePokemonMessage,
+    Proto.POGOProtos.Networking.Requests.Messages.UseIncenseMessage,
+    Proto.POGOProtos.Networking.Requests.Messages.UseItemCaptureMessage,
+    Proto.POGOProtos.Networking.Requests.Messages.UseItemEggIncubatorMessage,
+    Proto.POGOProtos.Networking.Requests.Messages.UseItemGymMessage,
+    Proto.POGOProtos.Networking.Requests.Messages.UseItemPotionMessage,
+    Proto.POGOProtos.Networking.Requests.Messages.UseItemReviveMessage,
+    Proto.POGOProtos.Networking.Requests.Messages.UseItemXpBoostMessage,
+    Proto.POGOProtos.Networking.Requests.Request,
+    Proto.POGOProtos.Networking.Requests.RequestType,
+    Proto.POGOProtos.Networking.Responses.AddFortModifierResponse,
+    Proto.POGOProtos.Networking.Responses.AttackGymResponse,
+    Proto.POGOProtos.Networking.Responses.CatchPokemonResponse,
+    Proto.POGOProtos.Networking.Responses.CheckAwardedBadgesResponse,
+    Proto.POGOProtos.Networking.Responses.CheckCodenameAvailableResponse,
+    Proto.POGOProtos.Networking.Responses.ClaimCodenameResponse,
+    Proto.POGOProtos.Networking.Responses.CollectDailyBonusResponse,
+    Proto.POGOProtos.Networking.Responses.CollectDailyDefenderBonusResponse,
+    Proto.POGOProtos.Networking.Responses.DiskEncounterResponse,
+    Proto.POGOProtos.Networking.Responses.DownloadItemTemplatesResponse,
+    Proto.POGOProtos.Networking.Responses.DownloadRemoteConfigVersionResponse,
+    Proto.POGOProtos.Networking.Responses.DownloadSettingsResponse,
+    Proto.POGOProtos.Networking.Responses.EchoResponse,
+    Proto.POGOProtos.Networking.Responses.EncounterResponse,
+    Proto.POGOProtos.Networking.Responses.EncounterTutorialCompleteResponse,
+    Proto.POGOProtos.Networking.Responses.EquipBadgeResponse,
+    Proto.POGOProtos.Networking.Responses.EvolvePokemonResponse,
+    Proto.POGOProtos.Networking.Responses.FortDeployPokemonResponse,
+    Proto.POGOProtos.Networking.Responses.FortDetailsResponse,
+    Proto.POGOProtos.Networking.Responses.FortRecallPokemonResponse,
+    Proto.POGOProtos.Networking.Responses.FortSearchResponse,
+    Proto.POGOProtos.Networking.Responses.GetAssetDigestResponse,
+    Proto.POGOProtos.Networking.Responses.GetDownloadUrlsResponse,
+    Proto.POGOProtos.Networking.Responses.GetGymDetailsResponse,
+    Proto.POGOProtos.Networking.Responses.GetHatchedEggsResponse,
+    Proto.POGOProtos.Networking.Responses.GetIncensePokemonResponse,
+    Proto.POGOProtos.Networking.Responses.GetInventoryResponse,
+    Proto.POGOProtos.Networking.Responses.GetMapObjectsResponse,
+    Proto.POGOProtos.Networking.Responses.GetPlayerProfileResponse,
+    Proto.POGOProtos.Networking.Responses.GetPlayerResponse,
+    Proto.POGOProtos.Networking.Responses.GetSuggestedCodenamesResponse,
+    Proto.POGOProtos.Networking.Responses.IncenseEncounterResponse,
+    Proto.POGOProtos.Networking.Responses.LevelUpRewardsResponse,
+    Proto.POGOProtos.Networking.Responses.MarkTutorialCompleteResponse,
+    Proto.POGOProtos.Networking.Responses.NicknamePokemonResponse,
+    Proto.POGOProtos.Networking.Responses.PlayerUpdateResponse,
+    Proto.POGOProtos.Networking.Responses.RecycleInventoryItemResponse,
+    Proto.POGOProtos.Networking.Responses.ReleasePokemonResponse,
+    Proto.POGOProtos.Networking.Responses.SetAvatarResponse,
+    Proto.POGOProtos.Networking.Responses.SetContactSettingsResponse,
+    Proto.POGOProtos.Networking.Responses.SetFavoritePokemonResponse,
+    Proto.POGOProtos.Networking.Responses.SetPlayerTeamResponse,
+    Proto.POGOProtos.Networking.Responses.SfidaActionLogResponse,
+    Proto.POGOProtos.Networking.Responses.StartGymBattleResponse,
+    Proto.POGOProtos.Networking.Responses.UpgradePokemonResponse,
+    Proto.POGOProtos.Networking.Responses.UseIncenseResponse,
+    Proto.POGOProtos.Networking.Responses.UseItemCaptureResponse,
+    Proto.POGOProtos.Networking.Responses.UseItemEggIncubatorResponse,
+    Proto.POGOProtos.Networking.Responses.UseItemGymResponse,
+    Proto.POGOProtos.Networking.Responses.UseItemPotionResponse,
+    Proto.POGOProtos.Networking.Responses.UseItemReviveResponse,
+    Proto.POGOProtos.Networking.Responses.UseItemXpBoostResponse,
+    Proto.POGOProtos.Settings.DownloadSettingsAction,
+    Proto.POGOProtos.Settings.FortSettings,
+    Proto.POGOProtos.Settings.GlobalSettings,
+    Proto.POGOProtos.Settings.InventorySettings,
+    Proto.POGOProtos.Settings.LevelSettings,
+    Proto.POGOProtos.Settings.MapSettings,
+    Proto.POGOProtos.Settings.Master.BadgeSettings,
+    Proto.POGOProtos.Settings.Master.CameraSettings,
+    Proto.POGOProtos.Settings.Master.EncounterSettings,
+    Proto.POGOProtos.Settings.Master.EquippedBadgeSettings,
+    Proto.POGOProtos.Settings.Master.GymBattleSettings,
+    Proto.POGOProtos.Settings.Master.GymLevelSettings,
+    Proto.POGOProtos.Settings.Master.IapItemDisplay,
+    Proto.POGOProtos.Settings.Master.IapSettings,
+    Proto.POGOProtos.Settings.Master.Item.BattleAttributes,
+    Proto.POGOProtos.Settings.Master.Item.EggIncubatorAttributes,
+    Proto.POGOProtos.Settings.Master.Item.ExperienceBoostAttributes,
+    Proto.POGOProtos.Settings.Master.Item.FoodAttributes,
+    Proto.POGOProtos.Settings.Master.Item.FortModifierAttributes,
+    Proto.POGOProtos.Settings.Master.Item.IncenseAttributes,
+    Proto.POGOProtos.Settings.Master.Item.InventoryUpgradeAttributes,
+    Proto.POGOProtos.Settings.Master.Item.PokeballAttributes,
+    Proto.POGOProtos.Settings.Master.Item.PotionAttributes,
+    Proto.POGOProtos.Settings.Master.Item.ReviveAttributes,
+    Proto.POGOProtos.Settings.Master.ItemSettings,
+    Proto.POGOProtos.Settings.Master.MoveSequenceSettings,
+    Proto.POGOProtos.Settings.Master.MoveSettings,
+    Proto.POGOProtos.Settings.Master.PlayerLevelSettings,
+    Proto.POGOProtos.Settings.Master.Pokemon.CameraAttributes,
+    Proto.POGOProtos.Settings.Master.Pokemon.EncounterAttributes,
+    Proto.POGOProtos.Settings.Master.PokemonSettings,
+    Proto.POGOProtos.Settings.Master.Pokemon.StatsAttributes,
+    Proto.POGOProtos.Settings.Master.PokemonUpgradeSettings,
+    Proto.POGOProtos.Settings.Master.TypeEffectiveSettings
diff --git a/src/Proto/POGOProtos/Data/AssetDigestEntry.hs b/src/Proto/POGOProtos/Data/AssetDigestEntry.hs
new file mode 100644
--- /dev/null
+++ b/src/Proto/POGOProtos/Data/AssetDigestEntry.hs
@@ -0,0 +1,185 @@
+{- This file was auto-generated from POGOProtos/Data/AssetDigestEntry.proto by the proto-lens-protoc program. -}
+{-# LANGUAGE ScopedTypeVariables, DataKinds, TypeFamilies,
+  MultiParamTypeClasses, FlexibleContexts, FlexibleInstances #-}
+{-# OPTIONS_GHC -fno-warn-unused-imports#-}
+module Proto.POGOProtos.Data.AssetDigestEntry where
+import qualified Prelude
+import qualified Data.ProtoLens
+import qualified Data.ProtoLens.Message.Enum
+import qualified Lens.Family2
+import qualified Lens.Family2.Unchecked
+import qualified Data.Default.Class
+import qualified Data.Text
+import qualified Data.Int
+import qualified Data.Word
+import qualified Data.Map
+import qualified Data.ByteString
+
+data AssetDigestEntry = AssetDigestEntry{_AssetDigestEntry'assetId
+                                         :: Data.Text.Text,
+                                         _AssetDigestEntry'bundleName :: Data.Text.Text,
+                                         _AssetDigestEntry'version :: Data.Int.Int64,
+                                         _AssetDigestEntry'checksum :: Data.Word.Word32,
+                                         _AssetDigestEntry'size :: Data.Int.Int32,
+                                         _AssetDigestEntry'key :: Data.ByteString.ByteString}
+                      deriving (Prelude.Show, Prelude.Eq)
+
+type instance Data.ProtoLens.Field "assetId" AssetDigestEntry =
+     Data.Text.Text
+
+instance Data.ProtoLens.HasField "assetId" AssetDigestEntry
+         AssetDigestEntry where
+        field _
+          = Lens.Family2.Unchecked.lens _AssetDigestEntry'assetId
+              (\ x__ y__ -> x__{_AssetDigestEntry'assetId = y__})
+
+type instance Data.ProtoLens.Field "bundleName" AssetDigestEntry =
+     Data.Text.Text
+
+instance Data.ProtoLens.HasField "bundleName" AssetDigestEntry
+         AssetDigestEntry where
+        field _
+          = Lens.Family2.Unchecked.lens _AssetDigestEntry'bundleName
+              (\ x__ y__ -> x__{_AssetDigestEntry'bundleName = y__})
+
+type instance Data.ProtoLens.Field "version" AssetDigestEntry =
+     Data.Int.Int64
+
+instance Data.ProtoLens.HasField "version" AssetDigestEntry
+         AssetDigestEntry where
+        field _
+          = Lens.Family2.Unchecked.lens _AssetDigestEntry'version
+              (\ x__ y__ -> x__{_AssetDigestEntry'version = y__})
+
+type instance Data.ProtoLens.Field "checksum" AssetDigestEntry =
+     Data.Word.Word32
+
+instance Data.ProtoLens.HasField "checksum" AssetDigestEntry
+         AssetDigestEntry where
+        field _
+          = Lens.Family2.Unchecked.lens _AssetDigestEntry'checksum
+              (\ x__ y__ -> x__{_AssetDigestEntry'checksum = y__})
+
+type instance Data.ProtoLens.Field "size" AssetDigestEntry =
+     Data.Int.Int32
+
+instance Data.ProtoLens.HasField "size" AssetDigestEntry
+         AssetDigestEntry where
+        field _
+          = Lens.Family2.Unchecked.lens _AssetDigestEntry'size
+              (\ x__ y__ -> x__{_AssetDigestEntry'size = y__})
+
+type instance Data.ProtoLens.Field "key" AssetDigestEntry =
+     Data.ByteString.ByteString
+
+instance Data.ProtoLens.HasField "key" AssetDigestEntry
+         AssetDigestEntry where
+        field _
+          = Lens.Family2.Unchecked.lens _AssetDigestEntry'key
+              (\ x__ y__ -> x__{_AssetDigestEntry'key = y__})
+
+instance Data.Default.Class.Default AssetDigestEntry where
+        def
+          = AssetDigestEntry{_AssetDigestEntry'assetId =
+                               Data.ProtoLens.fieldDefault,
+                             _AssetDigestEntry'bundleName = Data.ProtoLens.fieldDefault,
+                             _AssetDigestEntry'version = Data.ProtoLens.fieldDefault,
+                             _AssetDigestEntry'checksum = Data.ProtoLens.fieldDefault,
+                             _AssetDigestEntry'size = Data.ProtoLens.fieldDefault,
+                             _AssetDigestEntry'key = Data.ProtoLens.fieldDefault}
+
+instance Data.ProtoLens.Message AssetDigestEntry where
+        descriptor
+          = let assetId__field_descriptor
+                  = Data.ProtoLens.FieldDescriptor "asset_id"
+                      (Data.ProtoLens.StringField ::
+                         Data.ProtoLens.FieldTypeDescriptor Data.Text.Text)
+                      (Data.ProtoLens.PlainField Data.ProtoLens.Optional assetId)
+                bundleName__field_descriptor
+                  = Data.ProtoLens.FieldDescriptor "bundle_name"
+                      (Data.ProtoLens.StringField ::
+                         Data.ProtoLens.FieldTypeDescriptor Data.Text.Text)
+                      (Data.ProtoLens.PlainField Data.ProtoLens.Optional bundleName)
+                version__field_descriptor
+                  = Data.ProtoLens.FieldDescriptor "version"
+                      (Data.ProtoLens.Int64Field ::
+                         Data.ProtoLens.FieldTypeDescriptor Data.Int.Int64)
+                      (Data.ProtoLens.PlainField Data.ProtoLens.Optional version)
+                checksum__field_descriptor
+                  = Data.ProtoLens.FieldDescriptor "checksum"
+                      (Data.ProtoLens.Fixed32Field ::
+                         Data.ProtoLens.FieldTypeDescriptor Data.Word.Word32)
+                      (Data.ProtoLens.PlainField Data.ProtoLens.Optional checksum)
+                size__field_descriptor
+                  = Data.ProtoLens.FieldDescriptor "size"
+                      (Data.ProtoLens.Int32Field ::
+                         Data.ProtoLens.FieldTypeDescriptor Data.Int.Int32)
+                      (Data.ProtoLens.PlainField Data.ProtoLens.Optional size)
+                key__field_descriptor
+                  = Data.ProtoLens.FieldDescriptor "key"
+                      (Data.ProtoLens.BytesField ::
+                         Data.ProtoLens.FieldTypeDescriptor Data.ByteString.ByteString)
+                      (Data.ProtoLens.PlainField Data.ProtoLens.Optional key)
+              in
+              Data.ProtoLens.MessageDescriptor
+                (Data.Map.fromList
+                   [(Data.ProtoLens.Tag 1, assetId__field_descriptor),
+                    (Data.ProtoLens.Tag 2, bundleName__field_descriptor),
+                    (Data.ProtoLens.Tag 3, version__field_descriptor),
+                    (Data.ProtoLens.Tag 4, checksum__field_descriptor),
+                    (Data.ProtoLens.Tag 5, size__field_descriptor),
+                    (Data.ProtoLens.Tag 6, key__field_descriptor)])
+                (Data.Map.fromList
+                   [("asset_id", assetId__field_descriptor),
+                    ("bundle_name", bundleName__field_descriptor),
+                    ("version", version__field_descriptor),
+                    ("checksum", checksum__field_descriptor),
+                    ("size", size__field_descriptor), ("key", key__field_descriptor)])
+
+assetId ::
+        forall msg msg' . Data.ProtoLens.HasField "assetId" msg msg' =>
+          Lens.Family2.Lens msg msg' (Data.ProtoLens.Field "assetId" msg)
+            (Data.ProtoLens.Field "assetId" msg')
+assetId
+  = Data.ProtoLens.field
+      (Data.ProtoLens.ProxySym :: Data.ProtoLens.ProxySym "assetId")
+
+bundleName ::
+           forall msg msg' . Data.ProtoLens.HasField "bundleName" msg msg' =>
+             Lens.Family2.Lens msg msg' (Data.ProtoLens.Field "bundleName" msg)
+               (Data.ProtoLens.Field "bundleName" msg')
+bundleName
+  = Data.ProtoLens.field
+      (Data.ProtoLens.ProxySym :: Data.ProtoLens.ProxySym "bundleName")
+
+checksum ::
+         forall msg msg' . Data.ProtoLens.HasField "checksum" msg msg' =>
+           Lens.Family2.Lens msg msg' (Data.ProtoLens.Field "checksum" msg)
+             (Data.ProtoLens.Field "checksum" msg')
+checksum
+  = Data.ProtoLens.field
+      (Data.ProtoLens.ProxySym :: Data.ProtoLens.ProxySym "checksum")
+
+key ::
+    forall msg msg' . Data.ProtoLens.HasField "key" msg msg' =>
+      Lens.Family2.Lens msg msg' (Data.ProtoLens.Field "key" msg)
+        (Data.ProtoLens.Field "key" msg')
+key
+  = Data.ProtoLens.field
+      (Data.ProtoLens.ProxySym :: Data.ProtoLens.ProxySym "key")
+
+size ::
+     forall msg msg' . Data.ProtoLens.HasField "size" msg msg' =>
+       Lens.Family2.Lens msg msg' (Data.ProtoLens.Field "size" msg)
+         (Data.ProtoLens.Field "size" msg')
+size
+  = Data.ProtoLens.field
+      (Data.ProtoLens.ProxySym :: Data.ProtoLens.ProxySym "size")
+
+version ::
+        forall msg msg' . Data.ProtoLens.HasField "version" msg msg' =>
+          Lens.Family2.Lens msg msg' (Data.ProtoLens.Field "version" msg)
+            (Data.ProtoLens.Field "version" msg')
+version
+  = Data.ProtoLens.field
+      (Data.ProtoLens.ProxySym :: Data.ProtoLens.ProxySym "version")
diff --git a/src/Proto/POGOProtos/Data/Battle/BattleAction.hs b/src/Proto/POGOProtos/Data/Battle/BattleAction.hs
new file mode 100644
--- /dev/null
+++ b/src/Proto/POGOProtos/Data/Battle/BattleAction.hs
@@ -0,0 +1,485 @@
+{- This file was auto-generated from POGOProtos/Data/Battle/BattleAction.proto by the proto-lens-protoc program. -}
+{-# LANGUAGE ScopedTypeVariables, DataKinds, TypeFamilies,
+  MultiParamTypeClasses, FlexibleContexts, FlexibleInstances #-}
+{-# OPTIONS_GHC -fno-warn-unused-imports#-}
+module Proto.POGOProtos.Data.Battle.BattleAction where
+import qualified Prelude
+import qualified Data.ProtoLens
+import qualified Data.ProtoLens.Message.Enum
+import qualified Lens.Family2
+import qualified Lens.Family2.Unchecked
+import qualified Data.Default.Class
+import qualified Data.Text
+import qualified Data.Int
+import qualified Data.Word
+import qualified Data.Map
+import qualified Data.ByteString
+import qualified Proto.POGOProtos.Data.Battle.BattleActionType
+import qualified Proto.POGOProtos.Data.Battle.BattleParticipant
+import qualified Proto.POGOProtos.Data.Battle.BattleResults
+
+data BattleAction = BattleAction{_BattleAction'type' ::
+                                 Proto.POGOProtos.Data.Battle.BattleActionType.BattleActionType,
+                                 _BattleAction'actionStartMs :: Data.Int.Int64,
+                                 _BattleAction'durationMs :: Data.Int.Int32,
+                                 _BattleAction'energyDelta :: Data.Int.Int32,
+                                 _BattleAction'attackerIndex :: Data.Int.Int32,
+                                 _BattleAction'targetIndex :: Data.Int.Int32,
+                                 _BattleAction'activePokemonId :: Data.Word.Word64,
+                                 _BattleAction'playerJoined ::
+                                 Prelude.Maybe
+                                   Proto.POGOProtos.Data.Battle.BattleParticipant.BattleParticipant,
+                                 _BattleAction'battleResults ::
+                                 Prelude.Maybe
+                                   Proto.POGOProtos.Data.Battle.BattleResults.BattleResults,
+                                 _BattleAction'damageWindowsStartTimestampMss :: Data.Int.Int64,
+                                 _BattleAction'damageWindowsEndTimestampMss :: Data.Int.Int64,
+                                 _BattleAction'playerLeft ::
+                                 Prelude.Maybe
+                                   Proto.POGOProtos.Data.Battle.BattleParticipant.BattleParticipant,
+                                 _BattleAction'targetPokemonId :: Data.Word.Word64}
+                  deriving (Prelude.Show, Prelude.Eq)
+
+type instance Data.ProtoLens.Field "type'" BattleAction =
+     Proto.POGOProtos.Data.Battle.BattleActionType.BattleActionType
+
+instance Data.ProtoLens.HasField "type'" BattleAction BattleAction
+         where
+        field _
+          = Lens.Family2.Unchecked.lens _BattleAction'type'
+              (\ x__ y__ -> x__{_BattleAction'type' = y__})
+
+type instance Data.ProtoLens.Field "actionStartMs" BattleAction =
+     Data.Int.Int64
+
+instance Data.ProtoLens.HasField "actionStartMs" BattleAction
+         BattleAction where
+        field _
+          = Lens.Family2.Unchecked.lens _BattleAction'actionStartMs
+              (\ x__ y__ -> x__{_BattleAction'actionStartMs = y__})
+
+type instance Data.ProtoLens.Field "durationMs" BattleAction =
+     Data.Int.Int32
+
+instance Data.ProtoLens.HasField "durationMs" BattleAction
+         BattleAction where
+        field _
+          = Lens.Family2.Unchecked.lens _BattleAction'durationMs
+              (\ x__ y__ -> x__{_BattleAction'durationMs = y__})
+
+type instance Data.ProtoLens.Field "energyDelta" BattleAction =
+     Data.Int.Int32
+
+instance Data.ProtoLens.HasField "energyDelta" BattleAction
+         BattleAction where
+        field _
+          = Lens.Family2.Unchecked.lens _BattleAction'energyDelta
+              (\ x__ y__ -> x__{_BattleAction'energyDelta = y__})
+
+type instance Data.ProtoLens.Field "attackerIndex" BattleAction =
+     Data.Int.Int32
+
+instance Data.ProtoLens.HasField "attackerIndex" BattleAction
+         BattleAction where
+        field _
+          = Lens.Family2.Unchecked.lens _BattleAction'attackerIndex
+              (\ x__ y__ -> x__{_BattleAction'attackerIndex = y__})
+
+type instance Data.ProtoLens.Field "targetIndex" BattleAction =
+     Data.Int.Int32
+
+instance Data.ProtoLens.HasField "targetIndex" BattleAction
+         BattleAction where
+        field _
+          = Lens.Family2.Unchecked.lens _BattleAction'targetIndex
+              (\ x__ y__ -> x__{_BattleAction'targetIndex = y__})
+
+type instance Data.ProtoLens.Field "activePokemonId" BattleAction =
+     Data.Word.Word64
+
+instance Data.ProtoLens.HasField "activePokemonId" BattleAction
+         BattleAction where
+        field _
+          = Lens.Family2.Unchecked.lens _BattleAction'activePokemonId
+              (\ x__ y__ -> x__{_BattleAction'activePokemonId = y__})
+
+type instance Data.ProtoLens.Field "playerJoined" BattleAction =
+     Proto.POGOProtos.Data.Battle.BattleParticipant.BattleParticipant
+
+instance Data.ProtoLens.HasField "playerJoined" BattleAction
+         BattleAction where
+        field _
+          = (Prelude..) maybe'playerJoined
+              (Data.ProtoLens.maybeLens Data.Default.Class.def)
+
+type instance
+     Data.ProtoLens.Field "maybe'playerJoined" BattleAction =
+     Prelude.Maybe
+       Proto.POGOProtos.Data.Battle.BattleParticipant.BattleParticipant
+
+instance Data.ProtoLens.HasField "maybe'playerJoined" BattleAction
+         BattleAction where
+        field _
+          = Lens.Family2.Unchecked.lens _BattleAction'playerJoined
+              (\ x__ y__ -> x__{_BattleAction'playerJoined = y__})
+
+type instance Data.ProtoLens.Field "battleResults" BattleAction =
+     Proto.POGOProtos.Data.Battle.BattleResults.BattleResults
+
+instance Data.ProtoLens.HasField "battleResults" BattleAction
+         BattleAction where
+        field _
+          = (Prelude..) maybe'battleResults
+              (Data.ProtoLens.maybeLens Data.Default.Class.def)
+
+type instance
+     Data.ProtoLens.Field "maybe'battleResults" BattleAction =
+     Prelude.Maybe
+       Proto.POGOProtos.Data.Battle.BattleResults.BattleResults
+
+instance Data.ProtoLens.HasField "maybe'battleResults" BattleAction
+         BattleAction where
+        field _
+          = Lens.Family2.Unchecked.lens _BattleAction'battleResults
+              (\ x__ y__ -> x__{_BattleAction'battleResults = y__})
+
+type instance
+     Data.ProtoLens.Field "damageWindowsStartTimestampMss" BattleAction
+     = Data.Int.Int64
+
+instance Data.ProtoLens.HasField "damageWindowsStartTimestampMss"
+         BattleAction BattleAction where
+        field _
+          = Lens.Family2.Unchecked.lens
+              _BattleAction'damageWindowsStartTimestampMss
+              (\ x__ y__ ->
+                 x__{_BattleAction'damageWindowsStartTimestampMss = y__})
+
+type instance
+     Data.ProtoLens.Field "damageWindowsEndTimestampMss" BattleAction =
+     Data.Int.Int64
+
+instance Data.ProtoLens.HasField "damageWindowsEndTimestampMss"
+         BattleAction BattleAction where
+        field _
+          = Lens.Family2.Unchecked.lens
+              _BattleAction'damageWindowsEndTimestampMss
+              (\ x__ y__ ->
+                 x__{_BattleAction'damageWindowsEndTimestampMss = y__})
+
+type instance Data.ProtoLens.Field "playerLeft" BattleAction =
+     Proto.POGOProtos.Data.Battle.BattleParticipant.BattleParticipant
+
+instance Data.ProtoLens.HasField "playerLeft" BattleAction
+         BattleAction where
+        field _
+          = (Prelude..) maybe'playerLeft
+              (Data.ProtoLens.maybeLens Data.Default.Class.def)
+
+type instance Data.ProtoLens.Field "maybe'playerLeft" BattleAction
+     =
+     Prelude.Maybe
+       Proto.POGOProtos.Data.Battle.BattleParticipant.BattleParticipant
+
+instance Data.ProtoLens.HasField "maybe'playerLeft" BattleAction
+         BattleAction where
+        field _
+          = Lens.Family2.Unchecked.lens _BattleAction'playerLeft
+              (\ x__ y__ -> x__{_BattleAction'playerLeft = y__})
+
+type instance Data.ProtoLens.Field "targetPokemonId" BattleAction =
+     Data.Word.Word64
+
+instance Data.ProtoLens.HasField "targetPokemonId" BattleAction
+         BattleAction where
+        field _
+          = Lens.Family2.Unchecked.lens _BattleAction'targetPokemonId
+              (\ x__ y__ -> x__{_BattleAction'targetPokemonId = y__})
+
+instance Data.Default.Class.Default BattleAction where
+        def
+          = BattleAction{_BattleAction'type' = Data.Default.Class.def,
+                         _BattleAction'actionStartMs = Data.ProtoLens.fieldDefault,
+                         _BattleAction'durationMs = Data.ProtoLens.fieldDefault,
+                         _BattleAction'energyDelta = Data.ProtoLens.fieldDefault,
+                         _BattleAction'attackerIndex = Data.ProtoLens.fieldDefault,
+                         _BattleAction'targetIndex = Data.ProtoLens.fieldDefault,
+                         _BattleAction'activePokemonId = Data.ProtoLens.fieldDefault,
+                         _BattleAction'playerJoined = Prelude.Nothing,
+                         _BattleAction'battleResults = Prelude.Nothing,
+                         _BattleAction'damageWindowsStartTimestampMss =
+                           Data.ProtoLens.fieldDefault,
+                         _BattleAction'damageWindowsEndTimestampMss =
+                           Data.ProtoLens.fieldDefault,
+                         _BattleAction'playerLeft = Prelude.Nothing,
+                         _BattleAction'targetPokemonId = Data.ProtoLens.fieldDefault}
+
+instance Data.ProtoLens.Message BattleAction where
+        descriptor
+          = let type'__field_descriptor
+                  = Data.ProtoLens.FieldDescriptor "Type"
+                      (Data.ProtoLens.EnumField ::
+                         Data.ProtoLens.FieldTypeDescriptor
+                           Proto.POGOProtos.Data.Battle.BattleActionType.BattleActionType)
+                      (Data.ProtoLens.PlainField Data.ProtoLens.Optional type')
+                actionStartMs__field_descriptor
+                  = Data.ProtoLens.FieldDescriptor "action_start_ms"
+                      (Data.ProtoLens.Int64Field ::
+                         Data.ProtoLens.FieldTypeDescriptor Data.Int.Int64)
+                      (Data.ProtoLens.PlainField Data.ProtoLens.Optional actionStartMs)
+                durationMs__field_descriptor
+                  = Data.ProtoLens.FieldDescriptor "duration_ms"
+                      (Data.ProtoLens.Int32Field ::
+                         Data.ProtoLens.FieldTypeDescriptor Data.Int.Int32)
+                      (Data.ProtoLens.PlainField Data.ProtoLens.Optional durationMs)
+                energyDelta__field_descriptor
+                  = Data.ProtoLens.FieldDescriptor "energy_delta"
+                      (Data.ProtoLens.Int32Field ::
+                         Data.ProtoLens.FieldTypeDescriptor Data.Int.Int32)
+                      (Data.ProtoLens.PlainField Data.ProtoLens.Optional energyDelta)
+                attackerIndex__field_descriptor
+                  = Data.ProtoLens.FieldDescriptor "attacker_index"
+                      (Data.ProtoLens.Int32Field ::
+                         Data.ProtoLens.FieldTypeDescriptor Data.Int.Int32)
+                      (Data.ProtoLens.PlainField Data.ProtoLens.Optional attackerIndex)
+                targetIndex__field_descriptor
+                  = Data.ProtoLens.FieldDescriptor "target_index"
+                      (Data.ProtoLens.Int32Field ::
+                         Data.ProtoLens.FieldTypeDescriptor Data.Int.Int32)
+                      (Data.ProtoLens.PlainField Data.ProtoLens.Optional targetIndex)
+                activePokemonId__field_descriptor
+                  = Data.ProtoLens.FieldDescriptor "active_pokemon_id"
+                      (Data.ProtoLens.UInt64Field ::
+                         Data.ProtoLens.FieldTypeDescriptor Data.Word.Word64)
+                      (Data.ProtoLens.PlainField Data.ProtoLens.Optional activePokemonId)
+                playerJoined__field_descriptor
+                  = Data.ProtoLens.FieldDescriptor "player_joined"
+                      (Data.ProtoLens.MessageField ::
+                         Data.ProtoLens.FieldTypeDescriptor
+                           Proto.POGOProtos.Data.Battle.BattleParticipant.BattleParticipant)
+                      (Data.ProtoLens.OptionalField maybe'playerJoined)
+                battleResults__field_descriptor
+                  = Data.ProtoLens.FieldDescriptor "battle_results"
+                      (Data.ProtoLens.MessageField ::
+                         Data.ProtoLens.FieldTypeDescriptor
+                           Proto.POGOProtos.Data.Battle.BattleResults.BattleResults)
+                      (Data.ProtoLens.OptionalField maybe'battleResults)
+                damageWindowsStartTimestampMss__field_descriptor
+                  = Data.ProtoLens.FieldDescriptor
+                      "damage_windows_start_timestamp_mss"
+                      (Data.ProtoLens.Int64Field ::
+                         Data.ProtoLens.FieldTypeDescriptor Data.Int.Int64)
+                      (Data.ProtoLens.PlainField Data.ProtoLens.Optional
+                         damageWindowsStartTimestampMss)
+                damageWindowsEndTimestampMss__field_descriptor
+                  = Data.ProtoLens.FieldDescriptor "damage_windows_end_timestamp_mss"
+                      (Data.ProtoLens.Int64Field ::
+                         Data.ProtoLens.FieldTypeDescriptor Data.Int.Int64)
+                      (Data.ProtoLens.PlainField Data.ProtoLens.Optional
+                         damageWindowsEndTimestampMss)
+                playerLeft__field_descriptor
+                  = Data.ProtoLens.FieldDescriptor "player_left"
+                      (Data.ProtoLens.MessageField ::
+                         Data.ProtoLens.FieldTypeDescriptor
+                           Proto.POGOProtos.Data.Battle.BattleParticipant.BattleParticipant)
+                      (Data.ProtoLens.OptionalField maybe'playerLeft)
+                targetPokemonId__field_descriptor
+                  = Data.ProtoLens.FieldDescriptor "target_pokemon_id"
+                      (Data.ProtoLens.UInt64Field ::
+                         Data.ProtoLens.FieldTypeDescriptor Data.Word.Word64)
+                      (Data.ProtoLens.PlainField Data.ProtoLens.Optional targetPokemonId)
+              in
+              Data.ProtoLens.MessageDescriptor
+                (Data.Map.fromList
+                   [(Data.ProtoLens.Tag 1, type'__field_descriptor),
+                    (Data.ProtoLens.Tag 2, actionStartMs__field_descriptor),
+                    (Data.ProtoLens.Tag 3, durationMs__field_descriptor),
+                    (Data.ProtoLens.Tag 5, energyDelta__field_descriptor),
+                    (Data.ProtoLens.Tag 6, attackerIndex__field_descriptor),
+                    (Data.ProtoLens.Tag 7, targetIndex__field_descriptor),
+                    (Data.ProtoLens.Tag 8, activePokemonId__field_descriptor),
+                    (Data.ProtoLens.Tag 9, playerJoined__field_descriptor),
+                    (Data.ProtoLens.Tag 10, battleResults__field_descriptor),
+                    (Data.ProtoLens.Tag 11,
+                     damageWindowsStartTimestampMss__field_descriptor),
+                    (Data.ProtoLens.Tag 12,
+                     damageWindowsEndTimestampMss__field_descriptor),
+                    (Data.ProtoLens.Tag 13, playerLeft__field_descriptor),
+                    (Data.ProtoLens.Tag 14, targetPokemonId__field_descriptor)])
+                (Data.Map.fromList
+                   [("Type", type'__field_descriptor),
+                    ("action_start_ms", actionStartMs__field_descriptor),
+                    ("duration_ms", durationMs__field_descriptor),
+                    ("energy_delta", energyDelta__field_descriptor),
+                    ("attacker_index", attackerIndex__field_descriptor),
+                    ("target_index", targetIndex__field_descriptor),
+                    ("active_pokemon_id", activePokemonId__field_descriptor),
+                    ("player_joined", playerJoined__field_descriptor),
+                    ("battle_results", battleResults__field_descriptor),
+                    ("damage_windows_start_timestamp_mss",
+                     damageWindowsStartTimestampMss__field_descriptor),
+                    ("damage_windows_end_timestamp_mss",
+                     damageWindowsEndTimestampMss__field_descriptor),
+                    ("player_left", playerLeft__field_descriptor),
+                    ("target_pokemon_id", targetPokemonId__field_descriptor)])
+
+actionStartMs ::
+              forall msg msg' .
+                Data.ProtoLens.HasField "actionStartMs" msg msg' =>
+                Lens.Family2.Lens msg msg'
+                  (Data.ProtoLens.Field "actionStartMs" msg)
+                  (Data.ProtoLens.Field "actionStartMs" msg')
+actionStartMs
+  = Data.ProtoLens.field
+      (Data.ProtoLens.ProxySym ::
+         Data.ProtoLens.ProxySym "actionStartMs")
+
+activePokemonId ::
+                forall msg msg' .
+                  Data.ProtoLens.HasField "activePokemonId" msg msg' =>
+                  Lens.Family2.Lens msg msg'
+                    (Data.ProtoLens.Field "activePokemonId" msg)
+                    (Data.ProtoLens.Field "activePokemonId" msg')
+activePokemonId
+  = Data.ProtoLens.field
+      (Data.ProtoLens.ProxySym ::
+         Data.ProtoLens.ProxySym "activePokemonId")
+
+attackerIndex ::
+              forall msg msg' .
+                Data.ProtoLens.HasField "attackerIndex" msg msg' =>
+                Lens.Family2.Lens msg msg'
+                  (Data.ProtoLens.Field "attackerIndex" msg)
+                  (Data.ProtoLens.Field "attackerIndex" msg')
+attackerIndex
+  = Data.ProtoLens.field
+      (Data.ProtoLens.ProxySym ::
+         Data.ProtoLens.ProxySym "attackerIndex")
+
+battleResults ::
+              forall msg msg' .
+                Data.ProtoLens.HasField "battleResults" msg msg' =>
+                Lens.Family2.Lens msg msg'
+                  (Data.ProtoLens.Field "battleResults" msg)
+                  (Data.ProtoLens.Field "battleResults" msg')
+battleResults
+  = Data.ProtoLens.field
+      (Data.ProtoLens.ProxySym ::
+         Data.ProtoLens.ProxySym "battleResults")
+
+damageWindowsEndTimestampMss ::
+                             forall msg msg' .
+                               Data.ProtoLens.HasField "damageWindowsEndTimestampMss" msg msg' =>
+                               Lens.Family2.Lens msg msg'
+                                 (Data.ProtoLens.Field "damageWindowsEndTimestampMss" msg)
+                                 (Data.ProtoLens.Field "damageWindowsEndTimestampMss" msg')
+damageWindowsEndTimestampMss
+  = Data.ProtoLens.field
+      (Data.ProtoLens.ProxySym ::
+         Data.ProtoLens.ProxySym "damageWindowsEndTimestampMss")
+
+damageWindowsStartTimestampMss ::
+                               forall msg msg' .
+                                 Data.ProtoLens.HasField "damageWindowsStartTimestampMss" msg
+                                   msg' =>
+                                 Lens.Family2.Lens msg msg'
+                                   (Data.ProtoLens.Field "damageWindowsStartTimestampMss" msg)
+                                   (Data.ProtoLens.Field "damageWindowsStartTimestampMss" msg')
+damageWindowsStartTimestampMss
+  = Data.ProtoLens.field
+      (Data.ProtoLens.ProxySym ::
+         Data.ProtoLens.ProxySym "damageWindowsStartTimestampMss")
+
+durationMs ::
+           forall msg msg' . Data.ProtoLens.HasField "durationMs" msg msg' =>
+             Lens.Family2.Lens msg msg' (Data.ProtoLens.Field "durationMs" msg)
+               (Data.ProtoLens.Field "durationMs" msg')
+durationMs
+  = Data.ProtoLens.field
+      (Data.ProtoLens.ProxySym :: Data.ProtoLens.ProxySym "durationMs")
+
+energyDelta ::
+            forall msg msg' . Data.ProtoLens.HasField "energyDelta" msg msg' =>
+              Lens.Family2.Lens msg msg' (Data.ProtoLens.Field "energyDelta" msg)
+                (Data.ProtoLens.Field "energyDelta" msg')
+energyDelta
+  = Data.ProtoLens.field
+      (Data.ProtoLens.ProxySym :: Data.ProtoLens.ProxySym "energyDelta")
+
+maybe'battleResults ::
+                    forall msg msg' .
+                      Data.ProtoLens.HasField "maybe'battleResults" msg msg' =>
+                      Lens.Family2.Lens msg msg'
+                        (Data.ProtoLens.Field "maybe'battleResults" msg)
+                        (Data.ProtoLens.Field "maybe'battleResults" msg')
+maybe'battleResults
+  = Data.ProtoLens.field
+      (Data.ProtoLens.ProxySym ::
+         Data.ProtoLens.ProxySym "maybe'battleResults")
+
+maybe'playerJoined ::
+                   forall msg msg' .
+                     Data.ProtoLens.HasField "maybe'playerJoined" msg msg' =>
+                     Lens.Family2.Lens msg msg'
+                       (Data.ProtoLens.Field "maybe'playerJoined" msg)
+                       (Data.ProtoLens.Field "maybe'playerJoined" msg')
+maybe'playerJoined
+  = Data.ProtoLens.field
+      (Data.ProtoLens.ProxySym ::
+         Data.ProtoLens.ProxySym "maybe'playerJoined")
+
+maybe'playerLeft ::
+                 forall msg msg' .
+                   Data.ProtoLens.HasField "maybe'playerLeft" msg msg' =>
+                   Lens.Family2.Lens msg msg'
+                     (Data.ProtoLens.Field "maybe'playerLeft" msg)
+                     (Data.ProtoLens.Field "maybe'playerLeft" msg')
+maybe'playerLeft
+  = Data.ProtoLens.field
+      (Data.ProtoLens.ProxySym ::
+         Data.ProtoLens.ProxySym "maybe'playerLeft")
+
+playerJoined ::
+             forall msg msg' .
+               Data.ProtoLens.HasField "playerJoined" msg msg' =>
+               Lens.Family2.Lens msg msg'
+                 (Data.ProtoLens.Field "playerJoined" msg)
+                 (Data.ProtoLens.Field "playerJoined" msg')
+playerJoined
+  = Data.ProtoLens.field
+      (Data.ProtoLens.ProxySym :: Data.ProtoLens.ProxySym "playerJoined")
+
+playerLeft ::
+           forall msg msg' . Data.ProtoLens.HasField "playerLeft" msg msg' =>
+             Lens.Family2.Lens msg msg' (Data.ProtoLens.Field "playerLeft" msg)
+               (Data.ProtoLens.Field "playerLeft" msg')
+playerLeft
+  = Data.ProtoLens.field
+      (Data.ProtoLens.ProxySym :: Data.ProtoLens.ProxySym "playerLeft")
+
+targetIndex ::
+            forall msg msg' . Data.ProtoLens.HasField "targetIndex" msg msg' =>
+              Lens.Family2.Lens msg msg' (Data.ProtoLens.Field "targetIndex" msg)
+                (Data.ProtoLens.Field "targetIndex" msg')
+targetIndex
+  = Data.ProtoLens.field
+      (Data.ProtoLens.ProxySym :: Data.ProtoLens.ProxySym "targetIndex")
+
+targetPokemonId ::
+                forall msg msg' .
+                  Data.ProtoLens.HasField "targetPokemonId" msg msg' =>
+                  Lens.Family2.Lens msg msg'
+                    (Data.ProtoLens.Field "targetPokemonId" msg)
+                    (Data.ProtoLens.Field "targetPokemonId" msg')
+targetPokemonId
+  = Data.ProtoLens.field
+      (Data.ProtoLens.ProxySym ::
+         Data.ProtoLens.ProxySym "targetPokemonId")
+
+type' ::
+      forall msg msg' . Data.ProtoLens.HasField "type'" msg msg' =>
+        Lens.Family2.Lens msg msg' (Data.ProtoLens.Field "type'" msg)
+          (Data.ProtoLens.Field "type'" msg')
+type'
+  = Data.ProtoLens.field
+      (Data.ProtoLens.ProxySym :: Data.ProtoLens.ProxySym "type'")
diff --git a/src/Proto/POGOProtos/Data/Battle/BattleActionType.hs b/src/Proto/POGOProtos/Data/Battle/BattleActionType.hs
new file mode 100644
--- /dev/null
+++ b/src/Proto/POGOProtos/Data/Battle/BattleActionType.hs
@@ -0,0 +1,127 @@
+{- This file was auto-generated from POGOProtos/Data/Battle/BattleActionType.proto by the proto-lens-protoc program. -}
+{-# LANGUAGE ScopedTypeVariables, DataKinds, TypeFamilies,
+  MultiParamTypeClasses, FlexibleContexts, FlexibleInstances #-}
+{-# OPTIONS_GHC -fno-warn-unused-imports#-}
+module Proto.POGOProtos.Data.Battle.BattleActionType where
+import qualified Prelude
+import qualified Data.ProtoLens
+import qualified Data.ProtoLens.Message.Enum
+import qualified Lens.Family2
+import qualified Lens.Family2.Unchecked
+import qualified Data.Default.Class
+import qualified Data.Text
+import qualified Data.Int
+import qualified Data.Word
+import qualified Data.Map
+import qualified Data.ByteString
+
+data BattleActionType = ACTION_UNSET
+                      | ACTION_ATTACK
+                      | ACTION_DODGE
+                      | ACTION_SPECIAL_ATTACK
+                      | ACTION_SWAP_POKEMON
+                      | ACTION_FAINT
+                      | ACTION_PLAYER_JOIN
+                      | ACTION_PLAYER_QUIT
+                      | ACTION_VICTORY
+                      | ACTION_DEFEAT
+                      | ACTION_TIMED_OUT
+                      deriving (Prelude.Show, Prelude.Eq)
+
+instance Data.Default.Class.Default BattleActionType where
+        def = ACTION_UNSET
+
+instance Data.ProtoLens.FieldDefault BattleActionType where
+        fieldDefault = ACTION_UNSET
+
+instance Data.ProtoLens.MessageEnum BattleActionType where
+        maybeToEnum 0 = Prelude.Just ACTION_UNSET
+        maybeToEnum 1 = Prelude.Just ACTION_ATTACK
+        maybeToEnum 2 = Prelude.Just ACTION_DODGE
+        maybeToEnum 3 = Prelude.Just ACTION_SPECIAL_ATTACK
+        maybeToEnum 4 = Prelude.Just ACTION_SWAP_POKEMON
+        maybeToEnum 5 = Prelude.Just ACTION_FAINT
+        maybeToEnum 6 = Prelude.Just ACTION_PLAYER_JOIN
+        maybeToEnum 7 = Prelude.Just ACTION_PLAYER_QUIT
+        maybeToEnum 8 = Prelude.Just ACTION_VICTORY
+        maybeToEnum 9 = Prelude.Just ACTION_DEFEAT
+        maybeToEnum 10 = Prelude.Just ACTION_TIMED_OUT
+        maybeToEnum _ = Prelude.Nothing
+        showEnum ACTION_UNSET = "ACTION_UNSET"
+        showEnum ACTION_ATTACK = "ACTION_ATTACK"
+        showEnum ACTION_DODGE = "ACTION_DODGE"
+        showEnum ACTION_SPECIAL_ATTACK = "ACTION_SPECIAL_ATTACK"
+        showEnum ACTION_SWAP_POKEMON = "ACTION_SWAP_POKEMON"
+        showEnum ACTION_FAINT = "ACTION_FAINT"
+        showEnum ACTION_PLAYER_JOIN = "ACTION_PLAYER_JOIN"
+        showEnum ACTION_PLAYER_QUIT = "ACTION_PLAYER_QUIT"
+        showEnum ACTION_VICTORY = "ACTION_VICTORY"
+        showEnum ACTION_DEFEAT = "ACTION_DEFEAT"
+        showEnum ACTION_TIMED_OUT = "ACTION_TIMED_OUT"
+        readEnum "ACTION_UNSET" = Prelude.Just ACTION_UNSET
+        readEnum "ACTION_ATTACK" = Prelude.Just ACTION_ATTACK
+        readEnum "ACTION_DODGE" = Prelude.Just ACTION_DODGE
+        readEnum "ACTION_SPECIAL_ATTACK"
+          = Prelude.Just ACTION_SPECIAL_ATTACK
+        readEnum "ACTION_SWAP_POKEMON" = Prelude.Just ACTION_SWAP_POKEMON
+        readEnum "ACTION_FAINT" = Prelude.Just ACTION_FAINT
+        readEnum "ACTION_PLAYER_JOIN" = Prelude.Just ACTION_PLAYER_JOIN
+        readEnum "ACTION_PLAYER_QUIT" = Prelude.Just ACTION_PLAYER_QUIT
+        readEnum "ACTION_VICTORY" = Prelude.Just ACTION_VICTORY
+        readEnum "ACTION_DEFEAT" = Prelude.Just ACTION_DEFEAT
+        readEnum "ACTION_TIMED_OUT" = Prelude.Just ACTION_TIMED_OUT
+        readEnum _ = Prelude.Nothing
+
+instance Prelude.Enum BattleActionType where
+        toEnum k__
+          = Prelude.maybe
+              (Prelude.error
+                 ((Prelude.++) "toEnum: unknown value for enum BattleActionType: "
+                    (Prelude.show k__)))
+              Prelude.id
+              (Data.ProtoLens.maybeToEnum k__)
+        fromEnum ACTION_UNSET = 0
+        fromEnum ACTION_ATTACK = 1
+        fromEnum ACTION_DODGE = 2
+        fromEnum ACTION_SPECIAL_ATTACK = 3
+        fromEnum ACTION_SWAP_POKEMON = 4
+        fromEnum ACTION_FAINT = 5
+        fromEnum ACTION_PLAYER_JOIN = 6
+        fromEnum ACTION_PLAYER_QUIT = 7
+        fromEnum ACTION_VICTORY = 8
+        fromEnum ACTION_DEFEAT = 9
+        fromEnum ACTION_TIMED_OUT = 10
+        succ ACTION_TIMED_OUT
+          = Prelude.error
+              "Ident \"BattleActionType\".Ident \"succ\": bad argument Ident \"ACTION_TIMED_OUT\". This value would be out of bounds."
+        succ ACTION_UNSET = ACTION_ATTACK
+        succ ACTION_ATTACK = ACTION_DODGE
+        succ ACTION_DODGE = ACTION_SPECIAL_ATTACK
+        succ ACTION_SPECIAL_ATTACK = ACTION_SWAP_POKEMON
+        succ ACTION_SWAP_POKEMON = ACTION_FAINT
+        succ ACTION_FAINT = ACTION_PLAYER_JOIN
+        succ ACTION_PLAYER_JOIN = ACTION_PLAYER_QUIT
+        succ ACTION_PLAYER_QUIT = ACTION_VICTORY
+        succ ACTION_VICTORY = ACTION_DEFEAT
+        succ ACTION_DEFEAT = ACTION_TIMED_OUT
+        pred ACTION_UNSET
+          = Prelude.error
+              "Ident \"BattleActionType\".Ident \"pred\": bad argument Ident \"ACTION_UNSET\". This value would be out of bounds."
+        pred ACTION_ATTACK = ACTION_UNSET
+        pred ACTION_DODGE = ACTION_ATTACK
+        pred ACTION_SPECIAL_ATTACK = ACTION_DODGE
+        pred ACTION_SWAP_POKEMON = ACTION_SPECIAL_ATTACK
+        pred ACTION_FAINT = ACTION_SWAP_POKEMON
+        pred ACTION_PLAYER_JOIN = ACTION_FAINT
+        pred ACTION_PLAYER_QUIT = ACTION_PLAYER_JOIN
+        pred ACTION_VICTORY = ACTION_PLAYER_QUIT
+        pred ACTION_DEFEAT = ACTION_VICTORY
+        pred ACTION_TIMED_OUT = ACTION_DEFEAT
+        enumFrom = Data.ProtoLens.Message.Enum.messageEnumFrom
+        enumFromTo = Data.ProtoLens.Message.Enum.messageEnumFromTo
+        enumFromThen = Data.ProtoLens.Message.Enum.messageEnumFromThen
+        enumFromThenTo = Data.ProtoLens.Message.Enum.messageEnumFromThenTo
+
+instance Prelude.Bounded BattleActionType where
+        minBound = ACTION_UNSET
+        maxBound = ACTION_TIMED_OUT
diff --git a/src/Proto/POGOProtos/Data/Battle/BattleLog.hs b/src/Proto/POGOProtos/Data/Battle/BattleLog.hs
new file mode 100644
--- /dev/null
+++ b/src/Proto/POGOProtos/Data/Battle/BattleLog.hs
@@ -0,0 +1,207 @@
+{- This file was auto-generated from POGOProtos/Data/Battle/BattleLog.proto by the proto-lens-protoc program. -}
+{-# LANGUAGE ScopedTypeVariables, DataKinds, TypeFamilies,
+  MultiParamTypeClasses, FlexibleContexts, FlexibleInstances #-}
+{-# OPTIONS_GHC -fno-warn-unused-imports#-}
+module Proto.POGOProtos.Data.Battle.BattleLog where
+import qualified Prelude
+import qualified Data.ProtoLens
+import qualified Data.ProtoLens.Message.Enum
+import qualified Lens.Family2
+import qualified Lens.Family2.Unchecked
+import qualified Data.Default.Class
+import qualified Data.Text
+import qualified Data.Int
+import qualified Data.Word
+import qualified Data.Map
+import qualified Data.ByteString
+import qualified Proto.POGOProtos.Data.Battle.BattleAction
+import qualified Proto.POGOProtos.Data.Battle.BattleState
+import qualified Proto.POGOProtos.Data.Battle.BattleType
+
+data BattleLog = BattleLog{_BattleLog'state ::
+                           Proto.POGOProtos.Data.Battle.BattleState.BattleState,
+                           _BattleLog'battleType ::
+                           Proto.POGOProtos.Data.Battle.BattleType.BattleType,
+                           _BattleLog'serverMs :: Data.Int.Int64,
+                           _BattleLog'battleActions ::
+                           [Proto.POGOProtos.Data.Battle.BattleAction.BattleAction],
+                           _BattleLog'battleStartTimestampMs :: Data.Int.Int64,
+                           _BattleLog'battleEndTimestampMs :: Data.Int.Int64}
+               deriving (Prelude.Show, Prelude.Eq)
+
+type instance Data.ProtoLens.Field "state" BattleLog =
+     Proto.POGOProtos.Data.Battle.BattleState.BattleState
+
+instance Data.ProtoLens.HasField "state" BattleLog BattleLog where
+        field _
+          = Lens.Family2.Unchecked.lens _BattleLog'state
+              (\ x__ y__ -> x__{_BattleLog'state = y__})
+
+type instance Data.ProtoLens.Field "battleType" BattleLog =
+     Proto.POGOProtos.Data.Battle.BattleType.BattleType
+
+instance Data.ProtoLens.HasField "battleType" BattleLog BattleLog
+         where
+        field _
+          = Lens.Family2.Unchecked.lens _BattleLog'battleType
+              (\ x__ y__ -> x__{_BattleLog'battleType = y__})
+
+type instance Data.ProtoLens.Field "serverMs" BattleLog =
+     Data.Int.Int64
+
+instance Data.ProtoLens.HasField "serverMs" BattleLog BattleLog
+         where
+        field _
+          = Lens.Family2.Unchecked.lens _BattleLog'serverMs
+              (\ x__ y__ -> x__{_BattleLog'serverMs = y__})
+
+type instance Data.ProtoLens.Field "battleActions" BattleLog =
+     [Proto.POGOProtos.Data.Battle.BattleAction.BattleAction]
+
+instance Data.ProtoLens.HasField "battleActions" BattleLog
+         BattleLog where
+        field _
+          = Lens.Family2.Unchecked.lens _BattleLog'battleActions
+              (\ x__ y__ -> x__{_BattleLog'battleActions = y__})
+
+type instance
+     Data.ProtoLens.Field "battleStartTimestampMs" BattleLog =
+     Data.Int.Int64
+
+instance Data.ProtoLens.HasField "battleStartTimestampMs" BattleLog
+         BattleLog where
+        field _
+          = Lens.Family2.Unchecked.lens _BattleLog'battleStartTimestampMs
+              (\ x__ y__ -> x__{_BattleLog'battleStartTimestampMs = y__})
+
+type instance Data.ProtoLens.Field "battleEndTimestampMs" BattleLog
+     = Data.Int.Int64
+
+instance Data.ProtoLens.HasField "battleEndTimestampMs" BattleLog
+         BattleLog where
+        field _
+          = Lens.Family2.Unchecked.lens _BattleLog'battleEndTimestampMs
+              (\ x__ y__ -> x__{_BattleLog'battleEndTimestampMs = y__})
+
+instance Data.Default.Class.Default BattleLog where
+        def
+          = BattleLog{_BattleLog'state = Data.Default.Class.def,
+                      _BattleLog'battleType = Data.Default.Class.def,
+                      _BattleLog'serverMs = Data.ProtoLens.fieldDefault,
+                      _BattleLog'battleActions = [],
+                      _BattleLog'battleStartTimestampMs = Data.ProtoLens.fieldDefault,
+                      _BattleLog'battleEndTimestampMs = Data.ProtoLens.fieldDefault}
+
+instance Data.ProtoLens.Message BattleLog where
+        descriptor
+          = let state__field_descriptor
+                  = Data.ProtoLens.FieldDescriptor "state"
+                      (Data.ProtoLens.EnumField ::
+                         Data.ProtoLens.FieldTypeDescriptor
+                           Proto.POGOProtos.Data.Battle.BattleState.BattleState)
+                      (Data.ProtoLens.PlainField Data.ProtoLens.Optional state)
+                battleType__field_descriptor
+                  = Data.ProtoLens.FieldDescriptor "battle_type"
+                      (Data.ProtoLens.EnumField ::
+                         Data.ProtoLens.FieldTypeDescriptor
+                           Proto.POGOProtos.Data.Battle.BattleType.BattleType)
+                      (Data.ProtoLens.PlainField Data.ProtoLens.Optional battleType)
+                serverMs__field_descriptor
+                  = Data.ProtoLens.FieldDescriptor "server_ms"
+                      (Data.ProtoLens.Int64Field ::
+                         Data.ProtoLens.FieldTypeDescriptor Data.Int.Int64)
+                      (Data.ProtoLens.PlainField Data.ProtoLens.Optional serverMs)
+                battleActions__field_descriptor
+                  = Data.ProtoLens.FieldDescriptor "battle_actions"
+                      (Data.ProtoLens.MessageField ::
+                         Data.ProtoLens.FieldTypeDescriptor
+                           Proto.POGOProtos.Data.Battle.BattleAction.BattleAction)
+                      (Data.ProtoLens.RepeatedField Data.ProtoLens.Unpacked
+                         battleActions)
+                battleStartTimestampMs__field_descriptor
+                  = Data.ProtoLens.FieldDescriptor "battle_start_timestamp_ms"
+                      (Data.ProtoLens.Int64Field ::
+                         Data.ProtoLens.FieldTypeDescriptor Data.Int.Int64)
+                      (Data.ProtoLens.PlainField Data.ProtoLens.Optional
+                         battleStartTimestampMs)
+                battleEndTimestampMs__field_descriptor
+                  = Data.ProtoLens.FieldDescriptor "battle_end_timestamp_ms"
+                      (Data.ProtoLens.Int64Field ::
+                         Data.ProtoLens.FieldTypeDescriptor Data.Int.Int64)
+                      (Data.ProtoLens.PlainField Data.ProtoLens.Optional
+                         battleEndTimestampMs)
+              in
+              Data.ProtoLens.MessageDescriptor
+                (Data.Map.fromList
+                   [(Data.ProtoLens.Tag 1, state__field_descriptor),
+                    (Data.ProtoLens.Tag 2, battleType__field_descriptor),
+                    (Data.ProtoLens.Tag 3, serverMs__field_descriptor),
+                    (Data.ProtoLens.Tag 4, battleActions__field_descriptor),
+                    (Data.ProtoLens.Tag 5, battleStartTimestampMs__field_descriptor),
+                    (Data.ProtoLens.Tag 6, battleEndTimestampMs__field_descriptor)])
+                (Data.Map.fromList
+                   [("state", state__field_descriptor),
+                    ("battle_type", battleType__field_descriptor),
+                    ("server_ms", serverMs__field_descriptor),
+                    ("battle_actions", battleActions__field_descriptor),
+                    ("battle_start_timestamp_ms",
+                     battleStartTimestampMs__field_descriptor),
+                    ("battle_end_timestamp_ms",
+                     battleEndTimestampMs__field_descriptor)])
+
+battleActions ::
+              forall msg msg' .
+                Data.ProtoLens.HasField "battleActions" msg msg' =>
+                Lens.Family2.Lens msg msg'
+                  (Data.ProtoLens.Field "battleActions" msg)
+                  (Data.ProtoLens.Field "battleActions" msg')
+battleActions
+  = Data.ProtoLens.field
+      (Data.ProtoLens.ProxySym ::
+         Data.ProtoLens.ProxySym "battleActions")
+
+battleEndTimestampMs ::
+                     forall msg msg' .
+                       Data.ProtoLens.HasField "battleEndTimestampMs" msg msg' =>
+                       Lens.Family2.Lens msg msg'
+                         (Data.ProtoLens.Field "battleEndTimestampMs" msg)
+                         (Data.ProtoLens.Field "battleEndTimestampMs" msg')
+battleEndTimestampMs
+  = Data.ProtoLens.field
+      (Data.ProtoLens.ProxySym ::
+         Data.ProtoLens.ProxySym "battleEndTimestampMs")
+
+battleStartTimestampMs ::
+                       forall msg msg' .
+                         Data.ProtoLens.HasField "battleStartTimestampMs" msg msg' =>
+                         Lens.Family2.Lens msg msg'
+                           (Data.ProtoLens.Field "battleStartTimestampMs" msg)
+                           (Data.ProtoLens.Field "battleStartTimestampMs" msg')
+battleStartTimestampMs
+  = Data.ProtoLens.field
+      (Data.ProtoLens.ProxySym ::
+         Data.ProtoLens.ProxySym "battleStartTimestampMs")
+
+battleType ::
+           forall msg msg' . Data.ProtoLens.HasField "battleType" msg msg' =>
+             Lens.Family2.Lens msg msg' (Data.ProtoLens.Field "battleType" msg)
+               (Data.ProtoLens.Field "battleType" msg')
+battleType
+  = Data.ProtoLens.field
+      (Data.ProtoLens.ProxySym :: Data.ProtoLens.ProxySym "battleType")
+
+serverMs ::
+         forall msg msg' . Data.ProtoLens.HasField "serverMs" msg msg' =>
+           Lens.Family2.Lens msg msg' (Data.ProtoLens.Field "serverMs" msg)
+             (Data.ProtoLens.Field "serverMs" msg')
+serverMs
+  = Data.ProtoLens.field
+      (Data.ProtoLens.ProxySym :: Data.ProtoLens.ProxySym "serverMs")
+
+state ::
+      forall msg msg' . Data.ProtoLens.HasField "state" msg msg' =>
+        Lens.Family2.Lens msg msg' (Data.ProtoLens.Field "state" msg)
+          (Data.ProtoLens.Field "state" msg')
+state
+  = Data.ProtoLens.field
+      (Data.ProtoLens.ProxySym :: Data.ProtoLens.ProxySym "state")
diff --git a/src/Proto/POGOProtos/Data/Battle/BattleParticipant.hs b/src/Proto/POGOProtos/Data/Battle/BattleParticipant.hs
new file mode 100644
--- /dev/null
+++ b/src/Proto/POGOProtos/Data/Battle/BattleParticipant.hs
@@ -0,0 +1,210 @@
+{- This file was auto-generated from POGOProtos/Data/Battle/BattleParticipant.proto by the proto-lens-protoc program. -}
+{-# LANGUAGE ScopedTypeVariables, DataKinds, TypeFamilies,
+  MultiParamTypeClasses, FlexibleContexts, FlexibleInstances #-}
+{-# OPTIONS_GHC -fno-warn-unused-imports#-}
+module Proto.POGOProtos.Data.Battle.BattleParticipant where
+import qualified Prelude
+import qualified Data.ProtoLens
+import qualified Data.ProtoLens.Message.Enum
+import qualified Lens.Family2
+import qualified Lens.Family2.Unchecked
+import qualified Data.Default.Class
+import qualified Data.Text
+import qualified Data.Int
+import qualified Data.Word
+import qualified Data.Map
+import qualified Data.ByteString
+import qualified Proto.POGOProtos.Data.Battle.BattlePokemonInfo
+import qualified Proto.POGOProtos.Data.Player.PlayerPublicProfile
+
+data BattleParticipant = BattleParticipant{_BattleParticipant'activePokemon
+                                           ::
+                                           Prelude.Maybe
+                                             Proto.POGOProtos.Data.Battle.BattlePokemonInfo.BattlePokemonInfo,
+                                           _BattleParticipant'trainerPublicProfile ::
+                                           Prelude.Maybe
+                                             Proto.POGOProtos.Data.Player.PlayerPublicProfile.PlayerPublicProfile,
+                                           _BattleParticipant'reversePokemon ::
+                                           [Proto.POGOProtos.Data.Battle.BattlePokemonInfo.BattlePokemonInfo],
+                                           _BattleParticipant'defeatedPokemon ::
+                                           [Proto.POGOProtos.Data.Battle.BattlePokemonInfo.BattlePokemonInfo]}
+                       deriving (Prelude.Show, Prelude.Eq)
+
+type instance
+     Data.ProtoLens.Field "activePokemon" BattleParticipant =
+     Proto.POGOProtos.Data.Battle.BattlePokemonInfo.BattlePokemonInfo
+
+instance Data.ProtoLens.HasField "activePokemon" BattleParticipant
+         BattleParticipant where
+        field _
+          = (Prelude..) maybe'activePokemon
+              (Data.ProtoLens.maybeLens Data.Default.Class.def)
+
+type instance
+     Data.ProtoLens.Field "maybe'activePokemon" BattleParticipant =
+     Prelude.Maybe
+       Proto.POGOProtos.Data.Battle.BattlePokemonInfo.BattlePokemonInfo
+
+instance Data.ProtoLens.HasField "maybe'activePokemon"
+         BattleParticipant BattleParticipant where
+        field _
+          = Lens.Family2.Unchecked.lens _BattleParticipant'activePokemon
+              (\ x__ y__ -> x__{_BattleParticipant'activePokemon = y__})
+
+type instance
+     Data.ProtoLens.Field "trainerPublicProfile" BattleParticipant =
+     Proto.POGOProtos.Data.Player.PlayerPublicProfile.PlayerPublicProfile
+
+instance Data.ProtoLens.HasField "trainerPublicProfile"
+         BattleParticipant BattleParticipant where
+        field _
+          = (Prelude..) maybe'trainerPublicProfile
+              (Data.ProtoLens.maybeLens Data.Default.Class.def)
+
+type instance
+     Data.ProtoLens.Field "maybe'trainerPublicProfile" BattleParticipant
+     =
+     Prelude.Maybe
+       Proto.POGOProtos.Data.Player.PlayerPublicProfile.PlayerPublicProfile
+
+instance Data.ProtoLens.HasField "maybe'trainerPublicProfile"
+         BattleParticipant BattleParticipant where
+        field _
+          = Lens.Family2.Unchecked.lens
+              _BattleParticipant'trainerPublicProfile
+              (\ x__ y__ -> x__{_BattleParticipant'trainerPublicProfile = y__})
+
+type instance
+     Data.ProtoLens.Field "reversePokemon" BattleParticipant =
+     [Proto.POGOProtos.Data.Battle.BattlePokemonInfo.BattlePokemonInfo]
+
+instance Data.ProtoLens.HasField "reversePokemon" BattleParticipant
+         BattleParticipant where
+        field _
+          = Lens.Family2.Unchecked.lens _BattleParticipant'reversePokemon
+              (\ x__ y__ -> x__{_BattleParticipant'reversePokemon = y__})
+
+type instance
+     Data.ProtoLens.Field "defeatedPokemon" BattleParticipant =
+     [Proto.POGOProtos.Data.Battle.BattlePokemonInfo.BattlePokemonInfo]
+
+instance Data.ProtoLens.HasField "defeatedPokemon"
+         BattleParticipant BattleParticipant where
+        field _
+          = Lens.Family2.Unchecked.lens _BattleParticipant'defeatedPokemon
+              (\ x__ y__ -> x__{_BattleParticipant'defeatedPokemon = y__})
+
+instance Data.Default.Class.Default BattleParticipant where
+        def
+          = BattleParticipant{_BattleParticipant'activePokemon =
+                                Prelude.Nothing,
+                              _BattleParticipant'trainerPublicProfile = Prelude.Nothing,
+                              _BattleParticipant'reversePokemon = [],
+                              _BattleParticipant'defeatedPokemon = []}
+
+instance Data.ProtoLens.Message BattleParticipant where
+        descriptor
+          = let activePokemon__field_descriptor
+                  = Data.ProtoLens.FieldDescriptor "active_pokemon"
+                      (Data.ProtoLens.MessageField ::
+                         Data.ProtoLens.FieldTypeDescriptor
+                           Proto.POGOProtos.Data.Battle.BattlePokemonInfo.BattlePokemonInfo)
+                      (Data.ProtoLens.OptionalField maybe'activePokemon)
+                trainerPublicProfile__field_descriptor
+                  = Data.ProtoLens.FieldDescriptor "trainer_public_profile"
+                      (Data.ProtoLens.MessageField ::
+                         Data.ProtoLens.FieldTypeDescriptor
+                           Proto.POGOProtos.Data.Player.PlayerPublicProfile.PlayerPublicProfile)
+                      (Data.ProtoLens.OptionalField maybe'trainerPublicProfile)
+                reversePokemon__field_descriptor
+                  = Data.ProtoLens.FieldDescriptor "reverse_pokemon"
+                      (Data.ProtoLens.MessageField ::
+                         Data.ProtoLens.FieldTypeDescriptor
+                           Proto.POGOProtos.Data.Battle.BattlePokemonInfo.BattlePokemonInfo)
+                      (Data.ProtoLens.RepeatedField Data.ProtoLens.Unpacked
+                         reversePokemon)
+                defeatedPokemon__field_descriptor
+                  = Data.ProtoLens.FieldDescriptor "defeated_pokemon"
+                      (Data.ProtoLens.MessageField ::
+                         Data.ProtoLens.FieldTypeDescriptor
+                           Proto.POGOProtos.Data.Battle.BattlePokemonInfo.BattlePokemonInfo)
+                      (Data.ProtoLens.RepeatedField Data.ProtoLens.Unpacked
+                         defeatedPokemon)
+              in
+              Data.ProtoLens.MessageDescriptor
+                (Data.Map.fromList
+                   [(Data.ProtoLens.Tag 1, activePokemon__field_descriptor),
+                    (Data.ProtoLens.Tag 2, trainerPublicProfile__field_descriptor),
+                    (Data.ProtoLens.Tag 3, reversePokemon__field_descriptor),
+                    (Data.ProtoLens.Tag 4, defeatedPokemon__field_descriptor)])
+                (Data.Map.fromList
+                   [("active_pokemon", activePokemon__field_descriptor),
+                    ("trainer_public_profile", trainerPublicProfile__field_descriptor),
+                    ("reverse_pokemon", reversePokemon__field_descriptor),
+                    ("defeated_pokemon", defeatedPokemon__field_descriptor)])
+
+activePokemon ::
+              forall msg msg' .
+                Data.ProtoLens.HasField "activePokemon" msg msg' =>
+                Lens.Family2.Lens msg msg'
+                  (Data.ProtoLens.Field "activePokemon" msg)
+                  (Data.ProtoLens.Field "activePokemon" msg')
+activePokemon
+  = Data.ProtoLens.field
+      (Data.ProtoLens.ProxySym ::
+         Data.ProtoLens.ProxySym "activePokemon")
+
+defeatedPokemon ::
+                forall msg msg' .
+                  Data.ProtoLens.HasField "defeatedPokemon" msg msg' =>
+                  Lens.Family2.Lens msg msg'
+                    (Data.ProtoLens.Field "defeatedPokemon" msg)
+                    (Data.ProtoLens.Field "defeatedPokemon" msg')
+defeatedPokemon
+  = Data.ProtoLens.field
+      (Data.ProtoLens.ProxySym ::
+         Data.ProtoLens.ProxySym "defeatedPokemon")
+
+maybe'activePokemon ::
+                    forall msg msg' .
+                      Data.ProtoLens.HasField "maybe'activePokemon" msg msg' =>
+                      Lens.Family2.Lens msg msg'
+                        (Data.ProtoLens.Field "maybe'activePokemon" msg)
+                        (Data.ProtoLens.Field "maybe'activePokemon" msg')
+maybe'activePokemon
+  = Data.ProtoLens.field
+      (Data.ProtoLens.ProxySym ::
+         Data.ProtoLens.ProxySym "maybe'activePokemon")
+
+maybe'trainerPublicProfile ::
+                           forall msg msg' .
+                             Data.ProtoLens.HasField "maybe'trainerPublicProfile" msg msg' =>
+                             Lens.Family2.Lens msg msg'
+                               (Data.ProtoLens.Field "maybe'trainerPublicProfile" msg)
+                               (Data.ProtoLens.Field "maybe'trainerPublicProfile" msg')
+maybe'trainerPublicProfile
+  = Data.ProtoLens.field
+      (Data.ProtoLens.ProxySym ::
+         Data.ProtoLens.ProxySym "maybe'trainerPublicProfile")
+
+reversePokemon ::
+               forall msg msg' .
+                 Data.ProtoLens.HasField "reversePokemon" msg msg' =>
+                 Lens.Family2.Lens msg msg'
+                   (Data.ProtoLens.Field "reversePokemon" msg)
+                   (Data.ProtoLens.Field "reversePokemon" msg')
+reversePokemon
+  = Data.ProtoLens.field
+      (Data.ProtoLens.ProxySym ::
+         Data.ProtoLens.ProxySym "reversePokemon")
+
+trainerPublicProfile ::
+                     forall msg msg' .
+                       Data.ProtoLens.HasField "trainerPublicProfile" msg msg' =>
+                       Lens.Family2.Lens msg msg'
+                         (Data.ProtoLens.Field "trainerPublicProfile" msg)
+                         (Data.ProtoLens.Field "trainerPublicProfile" msg')
+trainerPublicProfile
+  = Data.ProtoLens.field
+      (Data.ProtoLens.ProxySym ::
+         Data.ProtoLens.ProxySym "trainerPublicProfile")
diff --git a/src/Proto/POGOProtos/Data/Battle/BattlePokemonInfo.hs b/src/Proto/POGOProtos/Data/Battle/BattlePokemonInfo.hs
new file mode 100644
--- /dev/null
+++ b/src/Proto/POGOProtos/Data/Battle/BattlePokemonInfo.hs
@@ -0,0 +1,141 @@
+{- This file was auto-generated from POGOProtos/Data/Battle/BattlePokemonInfo.proto by the proto-lens-protoc program. -}
+{-# LANGUAGE ScopedTypeVariables, DataKinds, TypeFamilies,
+  MultiParamTypeClasses, FlexibleContexts, FlexibleInstances #-}
+{-# OPTIONS_GHC -fno-warn-unused-imports#-}
+module Proto.POGOProtos.Data.Battle.BattlePokemonInfo where
+import qualified Prelude
+import qualified Data.ProtoLens
+import qualified Data.ProtoLens.Message.Enum
+import qualified Lens.Family2
+import qualified Lens.Family2.Unchecked
+import qualified Data.Default.Class
+import qualified Data.Text
+import qualified Data.Int
+import qualified Data.Word
+import qualified Data.Map
+import qualified Data.ByteString
+import qualified Proto.POGOProtos.Data.PokemonData
+
+data BattlePokemonInfo = BattlePokemonInfo{_BattlePokemonInfo'pokemonData
+                                           ::
+                                           Prelude.Maybe
+                                             Proto.POGOProtos.Data.PokemonData.PokemonData,
+                                           _BattlePokemonInfo'currentHealth :: Data.Int.Int32,
+                                           _BattlePokemonInfo'currentEnergy :: Data.Int.Int32}
+                       deriving (Prelude.Show, Prelude.Eq)
+
+type instance Data.ProtoLens.Field "pokemonData" BattlePokemonInfo
+     = Proto.POGOProtos.Data.PokemonData.PokemonData
+
+instance Data.ProtoLens.HasField "pokemonData" BattlePokemonInfo
+         BattlePokemonInfo where
+        field _
+          = (Prelude..) maybe'pokemonData
+              (Data.ProtoLens.maybeLens Data.Default.Class.def)
+
+type instance
+     Data.ProtoLens.Field "maybe'pokemonData" BattlePokemonInfo =
+     Prelude.Maybe Proto.POGOProtos.Data.PokemonData.PokemonData
+
+instance Data.ProtoLens.HasField "maybe'pokemonData"
+         BattlePokemonInfo BattlePokemonInfo where
+        field _
+          = Lens.Family2.Unchecked.lens _BattlePokemonInfo'pokemonData
+              (\ x__ y__ -> x__{_BattlePokemonInfo'pokemonData = y__})
+
+type instance
+     Data.ProtoLens.Field "currentHealth" BattlePokemonInfo =
+     Data.Int.Int32
+
+instance Data.ProtoLens.HasField "currentHealth" BattlePokemonInfo
+         BattlePokemonInfo where
+        field _
+          = Lens.Family2.Unchecked.lens _BattlePokemonInfo'currentHealth
+              (\ x__ y__ -> x__{_BattlePokemonInfo'currentHealth = y__})
+
+type instance
+     Data.ProtoLens.Field "currentEnergy" BattlePokemonInfo =
+     Data.Int.Int32
+
+instance Data.ProtoLens.HasField "currentEnergy" BattlePokemonInfo
+         BattlePokemonInfo where
+        field _
+          = Lens.Family2.Unchecked.lens _BattlePokemonInfo'currentEnergy
+              (\ x__ y__ -> x__{_BattlePokemonInfo'currentEnergy = y__})
+
+instance Data.Default.Class.Default BattlePokemonInfo where
+        def
+          = BattlePokemonInfo{_BattlePokemonInfo'pokemonData =
+                                Prelude.Nothing,
+                              _BattlePokemonInfo'currentHealth = Data.ProtoLens.fieldDefault,
+                              _BattlePokemonInfo'currentEnergy = Data.ProtoLens.fieldDefault}
+
+instance Data.ProtoLens.Message BattlePokemonInfo where
+        descriptor
+          = let pokemonData__field_descriptor
+                  = Data.ProtoLens.FieldDescriptor "pokemon_data"
+                      (Data.ProtoLens.MessageField ::
+                         Data.ProtoLens.FieldTypeDescriptor
+                           Proto.POGOProtos.Data.PokemonData.PokemonData)
+                      (Data.ProtoLens.OptionalField maybe'pokemonData)
+                currentHealth__field_descriptor
+                  = Data.ProtoLens.FieldDescriptor "current_health"
+                      (Data.ProtoLens.Int32Field ::
+                         Data.ProtoLens.FieldTypeDescriptor Data.Int.Int32)
+                      (Data.ProtoLens.PlainField Data.ProtoLens.Optional currentHealth)
+                currentEnergy__field_descriptor
+                  = Data.ProtoLens.FieldDescriptor "current_energy"
+                      (Data.ProtoLens.Int32Field ::
+                         Data.ProtoLens.FieldTypeDescriptor Data.Int.Int32)
+                      (Data.ProtoLens.PlainField Data.ProtoLens.Optional currentEnergy)
+              in
+              Data.ProtoLens.MessageDescriptor
+                (Data.Map.fromList
+                   [(Data.ProtoLens.Tag 1, pokemonData__field_descriptor),
+                    (Data.ProtoLens.Tag 2, currentHealth__field_descriptor),
+                    (Data.ProtoLens.Tag 3, currentEnergy__field_descriptor)])
+                (Data.Map.fromList
+                   [("pokemon_data", pokemonData__field_descriptor),
+                    ("current_health", currentHealth__field_descriptor),
+                    ("current_energy", currentEnergy__field_descriptor)])
+
+currentEnergy ::
+              forall msg msg' .
+                Data.ProtoLens.HasField "currentEnergy" msg msg' =>
+                Lens.Family2.Lens msg msg'
+                  (Data.ProtoLens.Field "currentEnergy" msg)
+                  (Data.ProtoLens.Field "currentEnergy" msg')
+currentEnergy
+  = Data.ProtoLens.field
+      (Data.ProtoLens.ProxySym ::
+         Data.ProtoLens.ProxySym "currentEnergy")
+
+currentHealth ::
+              forall msg msg' .
+                Data.ProtoLens.HasField "currentHealth" msg msg' =>
+                Lens.Family2.Lens msg msg'
+                  (Data.ProtoLens.Field "currentHealth" msg)
+                  (Data.ProtoLens.Field "currentHealth" msg')
+currentHealth
+  = Data.ProtoLens.field
+      (Data.ProtoLens.ProxySym ::
+         Data.ProtoLens.ProxySym "currentHealth")
+
+maybe'pokemonData ::
+                  forall msg msg' .
+                    Data.ProtoLens.HasField "maybe'pokemonData" msg msg' =>
+                    Lens.Family2.Lens msg msg'
+                      (Data.ProtoLens.Field "maybe'pokemonData" msg)
+                      (Data.ProtoLens.Field "maybe'pokemonData" msg')
+maybe'pokemonData
+  = Data.ProtoLens.field
+      (Data.ProtoLens.ProxySym ::
+         Data.ProtoLens.ProxySym "maybe'pokemonData")
+
+pokemonData ::
+            forall msg msg' . Data.ProtoLens.HasField "pokemonData" msg msg' =>
+              Lens.Family2.Lens msg msg' (Data.ProtoLens.Field "pokemonData" msg)
+                (Data.ProtoLens.Field "pokemonData" msg')
+pokemonData
+  = Data.ProtoLens.field
+      (Data.ProtoLens.ProxySym :: Data.ProtoLens.ProxySym "pokemonData")
diff --git a/src/Proto/POGOProtos/Data/Battle/BattleResults.hs b/src/Proto/POGOProtos/Data/Battle/BattleResults.hs
new file mode 100644
--- /dev/null
+++ b/src/Proto/POGOProtos/Data/Battle/BattleResults.hs
@@ -0,0 +1,200 @@
+{- This file was auto-generated from POGOProtos/Data/Battle/BattleResults.proto by the proto-lens-protoc program. -}
+{-# LANGUAGE ScopedTypeVariables, DataKinds, TypeFamilies,
+  MultiParamTypeClasses, FlexibleContexts, FlexibleInstances #-}
+{-# OPTIONS_GHC -fno-warn-unused-imports#-}
+module Proto.POGOProtos.Data.Battle.BattleResults where
+import qualified Prelude
+import qualified Data.ProtoLens
+import qualified Data.ProtoLens.Message.Enum
+import qualified Lens.Family2
+import qualified Lens.Family2.Unchecked
+import qualified Data.Default.Class
+import qualified Data.Text
+import qualified Data.Int
+import qualified Data.Word
+import qualified Data.Map
+import qualified Data.ByteString
+import qualified Proto.POGOProtos.Data.Battle.BattleParticipant
+import qualified Proto.POGOProtos.Data.Gym.GymState
+
+data BattleResults = BattleResults{_BattleResults'gymState ::
+                                   Prelude.Maybe Proto.POGOProtos.Data.Gym.GymState.GymState,
+                                   _BattleResults'attackers ::
+                                   [Proto.POGOProtos.Data.Battle.BattleParticipant.BattleParticipant],
+                                   _BattleResults'playerExperienceAwarded :: [Data.Int.Int32],
+                                   _BattleResults'nextDefenderPokemonId :: Data.Int.Int64,
+                                   _BattleResults'gymPointsDelta :: Data.Int.Int32}
+                   deriving (Prelude.Show, Prelude.Eq)
+
+type instance Data.ProtoLens.Field "gymState" BattleResults =
+     Proto.POGOProtos.Data.Gym.GymState.GymState
+
+instance Data.ProtoLens.HasField "gymState" BattleResults
+         BattleResults where
+        field _
+          = (Prelude..) maybe'gymState
+              (Data.ProtoLens.maybeLens Data.Default.Class.def)
+
+type instance Data.ProtoLens.Field "maybe'gymState" BattleResults =
+     Prelude.Maybe Proto.POGOProtos.Data.Gym.GymState.GymState
+
+instance Data.ProtoLens.HasField "maybe'gymState" BattleResults
+         BattleResults where
+        field _
+          = Lens.Family2.Unchecked.lens _BattleResults'gymState
+              (\ x__ y__ -> x__{_BattleResults'gymState = y__})
+
+type instance Data.ProtoLens.Field "attackers" BattleResults =
+     [Proto.POGOProtos.Data.Battle.BattleParticipant.BattleParticipant]
+
+instance Data.ProtoLens.HasField "attackers" BattleResults
+         BattleResults where
+        field _
+          = Lens.Family2.Unchecked.lens _BattleResults'attackers
+              (\ x__ y__ -> x__{_BattleResults'attackers = y__})
+
+type instance
+     Data.ProtoLens.Field "playerExperienceAwarded" BattleResults =
+     [Data.Int.Int32]
+
+instance Data.ProtoLens.HasField "playerExperienceAwarded"
+         BattleResults BattleResults where
+        field _
+          = Lens.Family2.Unchecked.lens
+              _BattleResults'playerExperienceAwarded
+              (\ x__ y__ -> x__{_BattleResults'playerExperienceAwarded = y__})
+
+type instance
+     Data.ProtoLens.Field "nextDefenderPokemonId" BattleResults =
+     Data.Int.Int64
+
+instance Data.ProtoLens.HasField "nextDefenderPokemonId"
+         BattleResults BattleResults where
+        field _
+          = Lens.Family2.Unchecked.lens _BattleResults'nextDefenderPokemonId
+              (\ x__ y__ -> x__{_BattleResults'nextDefenderPokemonId = y__})
+
+type instance Data.ProtoLens.Field "gymPointsDelta" BattleResults =
+     Data.Int.Int32
+
+instance Data.ProtoLens.HasField "gymPointsDelta" BattleResults
+         BattleResults where
+        field _
+          = Lens.Family2.Unchecked.lens _BattleResults'gymPointsDelta
+              (\ x__ y__ -> x__{_BattleResults'gymPointsDelta = y__})
+
+instance Data.Default.Class.Default BattleResults where
+        def
+          = BattleResults{_BattleResults'gymState = Prelude.Nothing,
+                          _BattleResults'attackers = [],
+                          _BattleResults'playerExperienceAwarded = [],
+                          _BattleResults'nextDefenderPokemonId = Data.ProtoLens.fieldDefault,
+                          _BattleResults'gymPointsDelta = Data.ProtoLens.fieldDefault}
+
+instance Data.ProtoLens.Message BattleResults where
+        descriptor
+          = let gymState__field_descriptor
+                  = Data.ProtoLens.FieldDescriptor "gym_state"
+                      (Data.ProtoLens.MessageField ::
+                         Data.ProtoLens.FieldTypeDescriptor
+                           Proto.POGOProtos.Data.Gym.GymState.GymState)
+                      (Data.ProtoLens.OptionalField maybe'gymState)
+                attackers__field_descriptor
+                  = Data.ProtoLens.FieldDescriptor "attackers"
+                      (Data.ProtoLens.MessageField ::
+                         Data.ProtoLens.FieldTypeDescriptor
+                           Proto.POGOProtos.Data.Battle.BattleParticipant.BattleParticipant)
+                      (Data.ProtoLens.RepeatedField Data.ProtoLens.Unpacked attackers)
+                playerExperienceAwarded__field_descriptor
+                  = Data.ProtoLens.FieldDescriptor "player_experience_awarded"
+                      (Data.ProtoLens.Int32Field ::
+                         Data.ProtoLens.FieldTypeDescriptor Data.Int.Int32)
+                      (Data.ProtoLens.RepeatedField Data.ProtoLens.Unpacked
+                         playerExperienceAwarded)
+                nextDefenderPokemonId__field_descriptor
+                  = Data.ProtoLens.FieldDescriptor "next_defender_pokemon_id"
+                      (Data.ProtoLens.Int64Field ::
+                         Data.ProtoLens.FieldTypeDescriptor Data.Int.Int64)
+                      (Data.ProtoLens.PlainField Data.ProtoLens.Optional
+                         nextDefenderPokemonId)
+                gymPointsDelta__field_descriptor
+                  = Data.ProtoLens.FieldDescriptor "gym_points_delta"
+                      (Data.ProtoLens.Int32Field ::
+                         Data.ProtoLens.FieldTypeDescriptor Data.Int.Int32)
+                      (Data.ProtoLens.PlainField Data.ProtoLens.Optional gymPointsDelta)
+              in
+              Data.ProtoLens.MessageDescriptor
+                (Data.Map.fromList
+                   [(Data.ProtoLens.Tag 1, gymState__field_descriptor),
+                    (Data.ProtoLens.Tag 2, attackers__field_descriptor),
+                    (Data.ProtoLens.Tag 3, playerExperienceAwarded__field_descriptor),
+                    (Data.ProtoLens.Tag 4, nextDefenderPokemonId__field_descriptor),
+                    (Data.ProtoLens.Tag 5, gymPointsDelta__field_descriptor)])
+                (Data.Map.fromList
+                   [("gym_state", gymState__field_descriptor),
+                    ("attackers", attackers__field_descriptor),
+                    ("player_experience_awarded",
+                     playerExperienceAwarded__field_descriptor),
+                    ("next_defender_pokemon_id",
+                     nextDefenderPokemonId__field_descriptor),
+                    ("gym_points_delta", gymPointsDelta__field_descriptor)])
+
+attackers ::
+          forall msg msg' . Data.ProtoLens.HasField "attackers" msg msg' =>
+            Lens.Family2.Lens msg msg' (Data.ProtoLens.Field "attackers" msg)
+              (Data.ProtoLens.Field "attackers" msg')
+attackers
+  = Data.ProtoLens.field
+      (Data.ProtoLens.ProxySym :: Data.ProtoLens.ProxySym "attackers")
+
+gymPointsDelta ::
+               forall msg msg' .
+                 Data.ProtoLens.HasField "gymPointsDelta" msg msg' =>
+                 Lens.Family2.Lens msg msg'
+                   (Data.ProtoLens.Field "gymPointsDelta" msg)
+                   (Data.ProtoLens.Field "gymPointsDelta" msg')
+gymPointsDelta
+  = Data.ProtoLens.field
+      (Data.ProtoLens.ProxySym ::
+         Data.ProtoLens.ProxySym "gymPointsDelta")
+
+gymState ::
+         forall msg msg' . Data.ProtoLens.HasField "gymState" msg msg' =>
+           Lens.Family2.Lens msg msg' (Data.ProtoLens.Field "gymState" msg)
+             (Data.ProtoLens.Field "gymState" msg')
+gymState
+  = Data.ProtoLens.field
+      (Data.ProtoLens.ProxySym :: Data.ProtoLens.ProxySym "gymState")
+
+maybe'gymState ::
+               forall msg msg' .
+                 Data.ProtoLens.HasField "maybe'gymState" msg msg' =>
+                 Lens.Family2.Lens msg msg'
+                   (Data.ProtoLens.Field "maybe'gymState" msg)
+                   (Data.ProtoLens.Field "maybe'gymState" msg')
+maybe'gymState
+  = Data.ProtoLens.field
+      (Data.ProtoLens.ProxySym ::
+         Data.ProtoLens.ProxySym "maybe'gymState")
+
+nextDefenderPokemonId ::
+                      forall msg msg' .
+                        Data.ProtoLens.HasField "nextDefenderPokemonId" msg msg' =>
+                        Lens.Family2.Lens msg msg'
+                          (Data.ProtoLens.Field "nextDefenderPokemonId" msg)
+                          (Data.ProtoLens.Field "nextDefenderPokemonId" msg')
+nextDefenderPokemonId
+  = Data.ProtoLens.field
+      (Data.ProtoLens.ProxySym ::
+         Data.ProtoLens.ProxySym "nextDefenderPokemonId")
+
+playerExperienceAwarded ::
+                        forall msg msg' .
+                          Data.ProtoLens.HasField "playerExperienceAwarded" msg msg' =>
+                          Lens.Family2.Lens msg msg'
+                            (Data.ProtoLens.Field "playerExperienceAwarded" msg)
+                            (Data.ProtoLens.Field "playerExperienceAwarded" msg')
+playerExperienceAwarded
+  = Data.ProtoLens.field
+      (Data.ProtoLens.ProxySym ::
+         Data.ProtoLens.ProxySym "playerExperienceAwarded")
diff --git a/src/Proto/POGOProtos/Data/Battle/BattleState.hs b/src/Proto/POGOProtos/Data/Battle/BattleState.hs
new file mode 100644
--- /dev/null
+++ b/src/Proto/POGOProtos/Data/Battle/BattleState.hs
@@ -0,0 +1,84 @@
+{- This file was auto-generated from POGOProtos/Data/Battle/BattleState.proto by the proto-lens-protoc program. -}
+{-# LANGUAGE ScopedTypeVariables, DataKinds, TypeFamilies,
+  MultiParamTypeClasses, FlexibleContexts, FlexibleInstances #-}
+{-# OPTIONS_GHC -fno-warn-unused-imports#-}
+module Proto.POGOProtos.Data.Battle.BattleState where
+import qualified Prelude
+import qualified Data.ProtoLens
+import qualified Data.ProtoLens.Message.Enum
+import qualified Lens.Family2
+import qualified Lens.Family2.Unchecked
+import qualified Data.Default.Class
+import qualified Data.Text
+import qualified Data.Int
+import qualified Data.Word
+import qualified Data.Map
+import qualified Data.ByteString
+
+data BattleState = STATE_UNSET
+                 | ACTIVE
+                 | VICTORY
+                 | DEFEATED
+                 | TIMED_OUT
+                 deriving (Prelude.Show, Prelude.Eq)
+
+instance Data.Default.Class.Default BattleState where
+        def = STATE_UNSET
+
+instance Data.ProtoLens.FieldDefault BattleState where
+        fieldDefault = STATE_UNSET
+
+instance Data.ProtoLens.MessageEnum BattleState where
+        maybeToEnum 0 = Prelude.Just STATE_UNSET
+        maybeToEnum 1 = Prelude.Just ACTIVE
+        maybeToEnum 2 = Prelude.Just VICTORY
+        maybeToEnum 3 = Prelude.Just DEFEATED
+        maybeToEnum 4 = Prelude.Just TIMED_OUT
+        maybeToEnum _ = Prelude.Nothing
+        showEnum STATE_UNSET = "STATE_UNSET"
+        showEnum ACTIVE = "ACTIVE"
+        showEnum VICTORY = "VICTORY"
+        showEnum DEFEATED = "DEFEATED"
+        showEnum TIMED_OUT = "TIMED_OUT"
+        readEnum "STATE_UNSET" = Prelude.Just STATE_UNSET
+        readEnum "ACTIVE" = Prelude.Just ACTIVE
+        readEnum "VICTORY" = Prelude.Just VICTORY
+        readEnum "DEFEATED" = Prelude.Just DEFEATED
+        readEnum "TIMED_OUT" = Prelude.Just TIMED_OUT
+        readEnum _ = Prelude.Nothing
+
+instance Prelude.Enum BattleState where
+        toEnum k__
+          = Prelude.maybe
+              (Prelude.error
+                 ((Prelude.++) "toEnum: unknown value for enum BattleState: "
+                    (Prelude.show k__)))
+              Prelude.id
+              (Data.ProtoLens.maybeToEnum k__)
+        fromEnum STATE_UNSET = 0
+        fromEnum ACTIVE = 1
+        fromEnum VICTORY = 2
+        fromEnum DEFEATED = 3
+        fromEnum TIMED_OUT = 4
+        succ TIMED_OUT
+          = Prelude.error
+              "Ident \"BattleState\".Ident \"succ\": bad argument Ident \"TIMED_OUT\". This value would be out of bounds."
+        succ STATE_UNSET = ACTIVE
+        succ ACTIVE = VICTORY
+        succ VICTORY = DEFEATED
+        succ DEFEATED = TIMED_OUT
+        pred STATE_UNSET
+          = Prelude.error
+              "Ident \"BattleState\".Ident \"pred\": bad argument Ident \"STATE_UNSET\". This value would be out of bounds."
+        pred ACTIVE = STATE_UNSET
+        pred VICTORY = ACTIVE
+        pred DEFEATED = VICTORY
+        pred TIMED_OUT = DEFEATED
+        enumFrom = Data.ProtoLens.Message.Enum.messageEnumFrom
+        enumFromTo = Data.ProtoLens.Message.Enum.messageEnumFromTo
+        enumFromThen = Data.ProtoLens.Message.Enum.messageEnumFromThen
+        enumFromThenTo = Data.ProtoLens.Message.Enum.messageEnumFromThenTo
+
+instance Prelude.Bounded BattleState where
+        minBound = STATE_UNSET
+        maxBound = TIMED_OUT
diff --git a/src/Proto/POGOProtos/Data/Battle/BattleType.hs b/src/Proto/POGOProtos/Data/Battle/BattleType.hs
new file mode 100644
--- /dev/null
+++ b/src/Proto/POGOProtos/Data/Battle/BattleType.hs
@@ -0,0 +1,70 @@
+{- This file was auto-generated from POGOProtos/Data/Battle/BattleType.proto by the proto-lens-protoc program. -}
+{-# LANGUAGE ScopedTypeVariables, DataKinds, TypeFamilies,
+  MultiParamTypeClasses, FlexibleContexts, FlexibleInstances #-}
+{-# OPTIONS_GHC -fno-warn-unused-imports#-}
+module Proto.POGOProtos.Data.Battle.BattleType where
+import qualified Prelude
+import qualified Data.ProtoLens
+import qualified Data.ProtoLens.Message.Enum
+import qualified Lens.Family2
+import qualified Lens.Family2.Unchecked
+import qualified Data.Default.Class
+import qualified Data.Text
+import qualified Data.Int
+import qualified Data.Word
+import qualified Data.Map
+import qualified Data.ByteString
+
+data BattleType = BATTLE_TYPE_UNSET
+                | NORMAL
+                | TRAINING
+                deriving (Prelude.Show, Prelude.Eq)
+
+instance Data.Default.Class.Default BattleType where
+        def = BATTLE_TYPE_UNSET
+
+instance Data.ProtoLens.FieldDefault BattleType where
+        fieldDefault = BATTLE_TYPE_UNSET
+
+instance Data.ProtoLens.MessageEnum BattleType where
+        maybeToEnum 0 = Prelude.Just BATTLE_TYPE_UNSET
+        maybeToEnum 1 = Prelude.Just NORMAL
+        maybeToEnum 2 = Prelude.Just TRAINING
+        maybeToEnum _ = Prelude.Nothing
+        showEnum BATTLE_TYPE_UNSET = "BATTLE_TYPE_UNSET"
+        showEnum NORMAL = "NORMAL"
+        showEnum TRAINING = "TRAINING"
+        readEnum "BATTLE_TYPE_UNSET" = Prelude.Just BATTLE_TYPE_UNSET
+        readEnum "NORMAL" = Prelude.Just NORMAL
+        readEnum "TRAINING" = Prelude.Just TRAINING
+        readEnum _ = Prelude.Nothing
+
+instance Prelude.Enum BattleType where
+        toEnum k__
+          = Prelude.maybe
+              (Prelude.error
+                 ((Prelude.++) "toEnum: unknown value for enum BattleType: "
+                    (Prelude.show k__)))
+              Prelude.id
+              (Data.ProtoLens.maybeToEnum k__)
+        fromEnum BATTLE_TYPE_UNSET = 0
+        fromEnum NORMAL = 1
+        fromEnum TRAINING = 2
+        succ TRAINING
+          = Prelude.error
+              "Ident \"BattleType\".Ident \"succ\": bad argument Ident \"TRAINING\". This value would be out of bounds."
+        succ BATTLE_TYPE_UNSET = NORMAL
+        succ NORMAL = TRAINING
+        pred BATTLE_TYPE_UNSET
+          = Prelude.error
+              "Ident \"BattleType\".Ident \"pred\": bad argument Ident \"BATTLE_TYPE_UNSET\". This value would be out of bounds."
+        pred NORMAL = BATTLE_TYPE_UNSET
+        pred TRAINING = NORMAL
+        enumFrom = Data.ProtoLens.Message.Enum.messageEnumFrom
+        enumFromTo = Data.ProtoLens.Message.Enum.messageEnumFromTo
+        enumFromThen = Data.ProtoLens.Message.Enum.messageEnumFromThen
+        enumFromThenTo = Data.ProtoLens.Message.Enum.messageEnumFromThenTo
+
+instance Prelude.Bounded BattleType where
+        minBound = BATTLE_TYPE_UNSET
+        maxBound = TRAINING
diff --git a/src/Proto/POGOProtos/Data/Capture/CaptureAward.hs b/src/Proto/POGOProtos/Data/Capture/CaptureAward.hs
new file mode 100644
--- /dev/null
+++ b/src/Proto/POGOProtos/Data/Capture/CaptureAward.hs
@@ -0,0 +1,135 @@
+{- This file was auto-generated from POGOProtos/Data/Capture/CaptureAward.proto by the proto-lens-protoc program. -}
+{-# LANGUAGE ScopedTypeVariables, DataKinds, TypeFamilies,
+  MultiParamTypeClasses, FlexibleContexts, FlexibleInstances #-}
+{-# OPTIONS_GHC -fno-warn-unused-imports#-}
+module Proto.POGOProtos.Data.Capture.CaptureAward where
+import qualified Prelude
+import qualified Data.ProtoLens
+import qualified Data.ProtoLens.Message.Enum
+import qualified Lens.Family2
+import qualified Lens.Family2.Unchecked
+import qualified Data.Default.Class
+import qualified Data.Text
+import qualified Data.Int
+import qualified Data.Word
+import qualified Data.Map
+import qualified Data.ByteString
+import qualified Proto.POGOProtos.Enums.ActivityType
+
+data CaptureAward = CaptureAward{_CaptureAward'activityType ::
+                                 [Proto.POGOProtos.Enums.ActivityType.ActivityType],
+                                 _CaptureAward'xp :: [Data.Int.Int32],
+                                 _CaptureAward'candy :: [Data.Int.Int32],
+                                 _CaptureAward'stardust :: [Data.Int.Int32]}
+                  deriving (Prelude.Show, Prelude.Eq)
+
+type instance Data.ProtoLens.Field "activityType" CaptureAward =
+     [Proto.POGOProtos.Enums.ActivityType.ActivityType]
+
+instance Data.ProtoLens.HasField "activityType" CaptureAward
+         CaptureAward where
+        field _
+          = Lens.Family2.Unchecked.lens _CaptureAward'activityType
+              (\ x__ y__ -> x__{_CaptureAward'activityType = y__})
+
+type instance Data.ProtoLens.Field "xp" CaptureAward =
+     [Data.Int.Int32]
+
+instance Data.ProtoLens.HasField "xp" CaptureAward CaptureAward
+         where
+        field _
+          = Lens.Family2.Unchecked.lens _CaptureAward'xp
+              (\ x__ y__ -> x__{_CaptureAward'xp = y__})
+
+type instance Data.ProtoLens.Field "candy" CaptureAward =
+     [Data.Int.Int32]
+
+instance Data.ProtoLens.HasField "candy" CaptureAward CaptureAward
+         where
+        field _
+          = Lens.Family2.Unchecked.lens _CaptureAward'candy
+              (\ x__ y__ -> x__{_CaptureAward'candy = y__})
+
+type instance Data.ProtoLens.Field "stardust" CaptureAward =
+     [Data.Int.Int32]
+
+instance Data.ProtoLens.HasField "stardust" CaptureAward
+         CaptureAward where
+        field _
+          = Lens.Family2.Unchecked.lens _CaptureAward'stardust
+              (\ x__ y__ -> x__{_CaptureAward'stardust = y__})
+
+instance Data.Default.Class.Default CaptureAward where
+        def
+          = CaptureAward{_CaptureAward'activityType = [],
+                         _CaptureAward'xp = [], _CaptureAward'candy = [],
+                         _CaptureAward'stardust = []}
+
+instance Data.ProtoLens.Message CaptureAward where
+        descriptor
+          = let activityType__field_descriptor
+                  = Data.ProtoLens.FieldDescriptor "activity_type"
+                      (Data.ProtoLens.EnumField ::
+                         Data.ProtoLens.FieldTypeDescriptor
+                           Proto.POGOProtos.Enums.ActivityType.ActivityType)
+                      (Data.ProtoLens.RepeatedField Data.ProtoLens.Unpacked activityType)
+                xp__field_descriptor
+                  = Data.ProtoLens.FieldDescriptor "xp"
+                      (Data.ProtoLens.Int32Field ::
+                         Data.ProtoLens.FieldTypeDescriptor Data.Int.Int32)
+                      (Data.ProtoLens.RepeatedField Data.ProtoLens.Unpacked xp)
+                candy__field_descriptor
+                  = Data.ProtoLens.FieldDescriptor "candy"
+                      (Data.ProtoLens.Int32Field ::
+                         Data.ProtoLens.FieldTypeDescriptor Data.Int.Int32)
+                      (Data.ProtoLens.RepeatedField Data.ProtoLens.Unpacked candy)
+                stardust__field_descriptor
+                  = Data.ProtoLens.FieldDescriptor "stardust"
+                      (Data.ProtoLens.Int32Field ::
+                         Data.ProtoLens.FieldTypeDescriptor Data.Int.Int32)
+                      (Data.ProtoLens.RepeatedField Data.ProtoLens.Unpacked stardust)
+              in
+              Data.ProtoLens.MessageDescriptor
+                (Data.Map.fromList
+                   [(Data.ProtoLens.Tag 1, activityType__field_descriptor),
+                    (Data.ProtoLens.Tag 2, xp__field_descriptor),
+                    (Data.ProtoLens.Tag 3, candy__field_descriptor),
+                    (Data.ProtoLens.Tag 4, stardust__field_descriptor)])
+                (Data.Map.fromList
+                   [("activity_type", activityType__field_descriptor),
+                    ("xp", xp__field_descriptor), ("candy", candy__field_descriptor),
+                    ("stardust", stardust__field_descriptor)])
+
+activityType ::
+             forall msg msg' .
+               Data.ProtoLens.HasField "activityType" msg msg' =>
+               Lens.Family2.Lens msg msg'
+                 (Data.ProtoLens.Field "activityType" msg)
+                 (Data.ProtoLens.Field "activityType" msg')
+activityType
+  = Data.ProtoLens.field
+      (Data.ProtoLens.ProxySym :: Data.ProtoLens.ProxySym "activityType")
+
+candy ::
+      forall msg msg' . Data.ProtoLens.HasField "candy" msg msg' =>
+        Lens.Family2.Lens msg msg' (Data.ProtoLens.Field "candy" msg)
+          (Data.ProtoLens.Field "candy" msg')
+candy
+  = Data.ProtoLens.field
+      (Data.ProtoLens.ProxySym :: Data.ProtoLens.ProxySym "candy")
+
+stardust ::
+         forall msg msg' . Data.ProtoLens.HasField "stardust" msg msg' =>
+           Lens.Family2.Lens msg msg' (Data.ProtoLens.Field "stardust" msg)
+             (Data.ProtoLens.Field "stardust" msg')
+stardust
+  = Data.ProtoLens.field
+      (Data.ProtoLens.ProxySym :: Data.ProtoLens.ProxySym "stardust")
+
+xp ::
+   forall msg msg' . Data.ProtoLens.HasField "xp" msg msg' =>
+     Lens.Family2.Lens msg msg' (Data.ProtoLens.Field "xp" msg)
+       (Data.ProtoLens.Field "xp" msg')
+xp
+  = Data.ProtoLens.field
+      (Data.ProtoLens.ProxySym :: Data.ProtoLens.ProxySym "xp")
diff --git a/src/Proto/POGOProtos/Data/Capture/CaptureProbability.hs b/src/Proto/POGOProtos/Data/Capture/CaptureProbability.hs
new file mode 100644
--- /dev/null
+++ b/src/Proto/POGOProtos/Data/Capture/CaptureProbability.hs
@@ -0,0 +1,129 @@
+{- This file was auto-generated from POGOProtos/Data/Capture/CaptureProbability.proto by the proto-lens-protoc program. -}
+{-# LANGUAGE ScopedTypeVariables, DataKinds, TypeFamilies,
+  MultiParamTypeClasses, FlexibleContexts, FlexibleInstances #-}
+{-# OPTIONS_GHC -fno-warn-unused-imports#-}
+module Proto.POGOProtos.Data.Capture.CaptureProbability where
+import qualified Prelude
+import qualified Data.ProtoLens
+import qualified Data.ProtoLens.Message.Enum
+import qualified Lens.Family2
+import qualified Lens.Family2.Unchecked
+import qualified Data.Default.Class
+import qualified Data.Text
+import qualified Data.Int
+import qualified Data.Word
+import qualified Data.Map
+import qualified Data.ByteString
+import qualified Proto.POGOProtos.Inventory.Item.ItemId
+
+data CaptureProbability = CaptureProbability{_CaptureProbability'pokeballType
+                                             :: [Proto.POGOProtos.Inventory.Item.ItemId.ItemId],
+                                             _CaptureProbability'captureProbability ::
+                                             [Prelude.Float],
+                                             _CaptureProbability'reticleDifficultyScale ::
+                                             Prelude.Double}
+                        deriving (Prelude.Show, Prelude.Eq)
+
+type instance
+     Data.ProtoLens.Field "pokeballType" CaptureProbability =
+     [Proto.POGOProtos.Inventory.Item.ItemId.ItemId]
+
+instance Data.ProtoLens.HasField "pokeballType" CaptureProbability
+         CaptureProbability where
+        field _
+          = Lens.Family2.Unchecked.lens _CaptureProbability'pokeballType
+              (\ x__ y__ -> x__{_CaptureProbability'pokeballType = y__})
+
+type instance
+     Data.ProtoLens.Field "captureProbability" CaptureProbability =
+     [Prelude.Float]
+
+instance Data.ProtoLens.HasField "captureProbability"
+         CaptureProbability CaptureProbability where
+        field _
+          = Lens.Family2.Unchecked.lens
+              _CaptureProbability'captureProbability
+              (\ x__ y__ -> x__{_CaptureProbability'captureProbability = y__})
+
+type instance
+     Data.ProtoLens.Field "reticleDifficultyScale" CaptureProbability =
+     Prelude.Double
+
+instance Data.ProtoLens.HasField "reticleDifficultyScale"
+         CaptureProbability CaptureProbability where
+        field _
+          = Lens.Family2.Unchecked.lens
+              _CaptureProbability'reticleDifficultyScale
+              (\ x__ y__ ->
+                 x__{_CaptureProbability'reticleDifficultyScale = y__})
+
+instance Data.Default.Class.Default CaptureProbability where
+        def
+          = CaptureProbability{_CaptureProbability'pokeballType = [],
+                               _CaptureProbability'captureProbability = [],
+                               _CaptureProbability'reticleDifficultyScale =
+                                 Data.ProtoLens.fieldDefault}
+
+instance Data.ProtoLens.Message CaptureProbability where
+        descriptor
+          = let pokeballType__field_descriptor
+                  = Data.ProtoLens.FieldDescriptor "pokeball_type"
+                      (Data.ProtoLens.EnumField ::
+                         Data.ProtoLens.FieldTypeDescriptor
+                           Proto.POGOProtos.Inventory.Item.ItemId.ItemId)
+                      (Data.ProtoLens.RepeatedField Data.ProtoLens.Packed pokeballType)
+                captureProbability__field_descriptor
+                  = Data.ProtoLens.FieldDescriptor "capture_probability"
+                      (Data.ProtoLens.FloatField ::
+                         Data.ProtoLens.FieldTypeDescriptor Prelude.Float)
+                      (Data.ProtoLens.RepeatedField Data.ProtoLens.Packed
+                         captureProbability)
+                reticleDifficultyScale__field_descriptor
+                  = Data.ProtoLens.FieldDescriptor "reticle_difficulty_scale"
+                      (Data.ProtoLens.DoubleField ::
+                         Data.ProtoLens.FieldTypeDescriptor Prelude.Double)
+                      (Data.ProtoLens.PlainField Data.ProtoLens.Optional
+                         reticleDifficultyScale)
+              in
+              Data.ProtoLens.MessageDescriptor
+                (Data.Map.fromList
+                   [(Data.ProtoLens.Tag 1, pokeballType__field_descriptor),
+                    (Data.ProtoLens.Tag 2, captureProbability__field_descriptor),
+                    (Data.ProtoLens.Tag 12, reticleDifficultyScale__field_descriptor)])
+                (Data.Map.fromList
+                   [("pokeball_type", pokeballType__field_descriptor),
+                    ("capture_probability", captureProbability__field_descriptor),
+                    ("reticle_difficulty_scale",
+                     reticleDifficultyScale__field_descriptor)])
+
+captureProbability ::
+                   forall msg msg' .
+                     Data.ProtoLens.HasField "captureProbability" msg msg' =>
+                     Lens.Family2.Lens msg msg'
+                       (Data.ProtoLens.Field "captureProbability" msg)
+                       (Data.ProtoLens.Field "captureProbability" msg')
+captureProbability
+  = Data.ProtoLens.field
+      (Data.ProtoLens.ProxySym ::
+         Data.ProtoLens.ProxySym "captureProbability")
+
+pokeballType ::
+             forall msg msg' .
+               Data.ProtoLens.HasField "pokeballType" msg msg' =>
+               Lens.Family2.Lens msg msg'
+                 (Data.ProtoLens.Field "pokeballType" msg)
+                 (Data.ProtoLens.Field "pokeballType" msg')
+pokeballType
+  = Data.ProtoLens.field
+      (Data.ProtoLens.ProxySym :: Data.ProtoLens.ProxySym "pokeballType")
+
+reticleDifficultyScale ::
+                       forall msg msg' .
+                         Data.ProtoLens.HasField "reticleDifficultyScale" msg msg' =>
+                         Lens.Family2.Lens msg msg'
+                           (Data.ProtoLens.Field "reticleDifficultyScale" msg)
+                           (Data.ProtoLens.Field "reticleDifficultyScale" msg')
+reticleDifficultyScale
+  = Data.ProtoLens.field
+      (Data.ProtoLens.ProxySym ::
+         Data.ProtoLens.ProxySym "reticleDifficultyScale")
diff --git a/src/Proto/POGOProtos/Data/DownloadUrlEntry.hs b/src/Proto/POGOProtos/Data/DownloadUrlEntry.hs
new file mode 100644
--- /dev/null
+++ b/src/Proto/POGOProtos/Data/DownloadUrlEntry.hs
@@ -0,0 +1,133 @@
+{- This file was auto-generated from POGOProtos/Data/DownloadUrlEntry.proto by the proto-lens-protoc program. -}
+{-# LANGUAGE ScopedTypeVariables, DataKinds, TypeFamilies,
+  MultiParamTypeClasses, FlexibleContexts, FlexibleInstances #-}
+{-# OPTIONS_GHC -fno-warn-unused-imports#-}
+module Proto.POGOProtos.Data.DownloadUrlEntry where
+import qualified Prelude
+import qualified Data.ProtoLens
+import qualified Data.ProtoLens.Message.Enum
+import qualified Lens.Family2
+import qualified Lens.Family2.Unchecked
+import qualified Data.Default.Class
+import qualified Data.Text
+import qualified Data.Int
+import qualified Data.Word
+import qualified Data.Map
+import qualified Data.ByteString
+
+data DownloadUrlEntry = DownloadUrlEntry{_DownloadUrlEntry'assetId
+                                         :: Data.Text.Text,
+                                         _DownloadUrlEntry'url :: Data.Text.Text,
+                                         _DownloadUrlEntry'size :: Data.Int.Int32,
+                                         _DownloadUrlEntry'checksum :: Data.Word.Word32}
+                      deriving (Prelude.Show, Prelude.Eq)
+
+type instance Data.ProtoLens.Field "assetId" DownloadUrlEntry =
+     Data.Text.Text
+
+instance Data.ProtoLens.HasField "assetId" DownloadUrlEntry
+         DownloadUrlEntry where
+        field _
+          = Lens.Family2.Unchecked.lens _DownloadUrlEntry'assetId
+              (\ x__ y__ -> x__{_DownloadUrlEntry'assetId = y__})
+
+type instance Data.ProtoLens.Field "url" DownloadUrlEntry =
+     Data.Text.Text
+
+instance Data.ProtoLens.HasField "url" DownloadUrlEntry
+         DownloadUrlEntry where
+        field _
+          = Lens.Family2.Unchecked.lens _DownloadUrlEntry'url
+              (\ x__ y__ -> x__{_DownloadUrlEntry'url = y__})
+
+type instance Data.ProtoLens.Field "size" DownloadUrlEntry =
+     Data.Int.Int32
+
+instance Data.ProtoLens.HasField "size" DownloadUrlEntry
+         DownloadUrlEntry where
+        field _
+          = Lens.Family2.Unchecked.lens _DownloadUrlEntry'size
+              (\ x__ y__ -> x__{_DownloadUrlEntry'size = y__})
+
+type instance Data.ProtoLens.Field "checksum" DownloadUrlEntry =
+     Data.Word.Word32
+
+instance Data.ProtoLens.HasField "checksum" DownloadUrlEntry
+         DownloadUrlEntry where
+        field _
+          = Lens.Family2.Unchecked.lens _DownloadUrlEntry'checksum
+              (\ x__ y__ -> x__{_DownloadUrlEntry'checksum = y__})
+
+instance Data.Default.Class.Default DownloadUrlEntry where
+        def
+          = DownloadUrlEntry{_DownloadUrlEntry'assetId =
+                               Data.ProtoLens.fieldDefault,
+                             _DownloadUrlEntry'url = Data.ProtoLens.fieldDefault,
+                             _DownloadUrlEntry'size = Data.ProtoLens.fieldDefault,
+                             _DownloadUrlEntry'checksum = Data.ProtoLens.fieldDefault}
+
+instance Data.ProtoLens.Message DownloadUrlEntry where
+        descriptor
+          = let assetId__field_descriptor
+                  = Data.ProtoLens.FieldDescriptor "asset_id"
+                      (Data.ProtoLens.StringField ::
+                         Data.ProtoLens.FieldTypeDescriptor Data.Text.Text)
+                      (Data.ProtoLens.PlainField Data.ProtoLens.Optional assetId)
+                url__field_descriptor
+                  = Data.ProtoLens.FieldDescriptor "url"
+                      (Data.ProtoLens.StringField ::
+                         Data.ProtoLens.FieldTypeDescriptor Data.Text.Text)
+                      (Data.ProtoLens.PlainField Data.ProtoLens.Optional url)
+                size__field_descriptor
+                  = Data.ProtoLens.FieldDescriptor "size"
+                      (Data.ProtoLens.Int32Field ::
+                         Data.ProtoLens.FieldTypeDescriptor Data.Int.Int32)
+                      (Data.ProtoLens.PlainField Data.ProtoLens.Optional size)
+                checksum__field_descriptor
+                  = Data.ProtoLens.FieldDescriptor "checksum"
+                      (Data.ProtoLens.UInt32Field ::
+                         Data.ProtoLens.FieldTypeDescriptor Data.Word.Word32)
+                      (Data.ProtoLens.PlainField Data.ProtoLens.Optional checksum)
+              in
+              Data.ProtoLens.MessageDescriptor
+                (Data.Map.fromList
+                   [(Data.ProtoLens.Tag 1, assetId__field_descriptor),
+                    (Data.ProtoLens.Tag 2, url__field_descriptor),
+                    (Data.ProtoLens.Tag 3, size__field_descriptor),
+                    (Data.ProtoLens.Tag 4, checksum__field_descriptor)])
+                (Data.Map.fromList
+                   [("asset_id", assetId__field_descriptor),
+                    ("url", url__field_descriptor), ("size", size__field_descriptor),
+                    ("checksum", checksum__field_descriptor)])
+
+assetId ::
+        forall msg msg' . Data.ProtoLens.HasField "assetId" msg msg' =>
+          Lens.Family2.Lens msg msg' (Data.ProtoLens.Field "assetId" msg)
+            (Data.ProtoLens.Field "assetId" msg')
+assetId
+  = Data.ProtoLens.field
+      (Data.ProtoLens.ProxySym :: Data.ProtoLens.ProxySym "assetId")
+
+checksum ::
+         forall msg msg' . Data.ProtoLens.HasField "checksum" msg msg' =>
+           Lens.Family2.Lens msg msg' (Data.ProtoLens.Field "checksum" msg)
+             (Data.ProtoLens.Field "checksum" msg')
+checksum
+  = Data.ProtoLens.field
+      (Data.ProtoLens.ProxySym :: Data.ProtoLens.ProxySym "checksum")
+
+size ::
+     forall msg msg' . Data.ProtoLens.HasField "size" msg msg' =>
+       Lens.Family2.Lens msg msg' (Data.ProtoLens.Field "size" msg)
+         (Data.ProtoLens.Field "size" msg')
+size
+  = Data.ProtoLens.field
+      (Data.ProtoLens.ProxySym :: Data.ProtoLens.ProxySym "size")
+
+url ::
+    forall msg msg' . Data.ProtoLens.HasField "url" msg msg' =>
+      Lens.Family2.Lens msg msg' (Data.ProtoLens.Field "url" msg)
+        (Data.ProtoLens.Field "url" msg')
+url
+  = Data.ProtoLens.field
+      (Data.ProtoLens.ProxySym :: Data.ProtoLens.ProxySym "url")
diff --git a/src/Proto/POGOProtos/Data/Gym/GymMembership.hs b/src/Proto/POGOProtos/Data/Gym/GymMembership.hs
new file mode 100644
--- /dev/null
+++ b/src/Proto/POGOProtos/Data/Gym/GymMembership.hs
@@ -0,0 +1,135 @@
+{- This file was auto-generated from POGOProtos/Data/Gym/GymMembership.proto by the proto-lens-protoc program. -}
+{-# LANGUAGE ScopedTypeVariables, DataKinds, TypeFamilies,
+  MultiParamTypeClasses, FlexibleContexts, FlexibleInstances #-}
+{-# OPTIONS_GHC -fno-warn-unused-imports#-}
+module Proto.POGOProtos.Data.Gym.GymMembership where
+import qualified Prelude
+import qualified Data.ProtoLens
+import qualified Data.ProtoLens.Message.Enum
+import qualified Lens.Family2
+import qualified Lens.Family2.Unchecked
+import qualified Data.Default.Class
+import qualified Data.Text
+import qualified Data.Int
+import qualified Data.Word
+import qualified Data.Map
+import qualified Data.ByteString
+import qualified Proto.POGOProtos.Data.Player.PlayerPublicProfile
+import qualified Proto.POGOProtos.Data.PokemonData
+
+data GymMembership = GymMembership{_GymMembership'pokemonData ::
+                                   Prelude.Maybe Proto.POGOProtos.Data.PokemonData.PokemonData,
+                                   _GymMembership'trainerPublicProfile ::
+                                   Prelude.Maybe
+                                     Proto.POGOProtos.Data.Player.PlayerPublicProfile.PlayerPublicProfile}
+                   deriving (Prelude.Show, Prelude.Eq)
+
+type instance Data.ProtoLens.Field "pokemonData" GymMembership =
+     Proto.POGOProtos.Data.PokemonData.PokemonData
+
+instance Data.ProtoLens.HasField "pokemonData" GymMembership
+         GymMembership where
+        field _
+          = (Prelude..) maybe'pokemonData
+              (Data.ProtoLens.maybeLens Data.Default.Class.def)
+
+type instance
+     Data.ProtoLens.Field "maybe'pokemonData" GymMembership =
+     Prelude.Maybe Proto.POGOProtos.Data.PokemonData.PokemonData
+
+instance Data.ProtoLens.HasField "maybe'pokemonData" GymMembership
+         GymMembership where
+        field _
+          = Lens.Family2.Unchecked.lens _GymMembership'pokemonData
+              (\ x__ y__ -> x__{_GymMembership'pokemonData = y__})
+
+type instance
+     Data.ProtoLens.Field "trainerPublicProfile" GymMembership =
+     Proto.POGOProtos.Data.Player.PlayerPublicProfile.PlayerPublicProfile
+
+instance Data.ProtoLens.HasField "trainerPublicProfile"
+         GymMembership GymMembership where
+        field _
+          = (Prelude..) maybe'trainerPublicProfile
+              (Data.ProtoLens.maybeLens Data.Default.Class.def)
+
+type instance
+     Data.ProtoLens.Field "maybe'trainerPublicProfile" GymMembership =
+     Prelude.Maybe
+       Proto.POGOProtos.Data.Player.PlayerPublicProfile.PlayerPublicProfile
+
+instance Data.ProtoLens.HasField "maybe'trainerPublicProfile"
+         GymMembership GymMembership where
+        field _
+          = Lens.Family2.Unchecked.lens _GymMembership'trainerPublicProfile
+              (\ x__ y__ -> x__{_GymMembership'trainerPublicProfile = y__})
+
+instance Data.Default.Class.Default GymMembership where
+        def
+          = GymMembership{_GymMembership'pokemonData = Prelude.Nothing,
+                          _GymMembership'trainerPublicProfile = Prelude.Nothing}
+
+instance Data.ProtoLens.Message GymMembership where
+        descriptor
+          = let pokemonData__field_descriptor
+                  = Data.ProtoLens.FieldDescriptor "pokemon_data"
+                      (Data.ProtoLens.MessageField ::
+                         Data.ProtoLens.FieldTypeDescriptor
+                           Proto.POGOProtos.Data.PokemonData.PokemonData)
+                      (Data.ProtoLens.OptionalField maybe'pokemonData)
+                trainerPublicProfile__field_descriptor
+                  = Data.ProtoLens.FieldDescriptor "trainer_public_profile"
+                      (Data.ProtoLens.MessageField ::
+                         Data.ProtoLens.FieldTypeDescriptor
+                           Proto.POGOProtos.Data.Player.PlayerPublicProfile.PlayerPublicProfile)
+                      (Data.ProtoLens.OptionalField maybe'trainerPublicProfile)
+              in
+              Data.ProtoLens.MessageDescriptor
+                (Data.Map.fromList
+                   [(Data.ProtoLens.Tag 1, pokemonData__field_descriptor),
+                    (Data.ProtoLens.Tag 2, trainerPublicProfile__field_descriptor)])
+                (Data.Map.fromList
+                   [("pokemon_data", pokemonData__field_descriptor),
+                    ("trainer_public_profile",
+                     trainerPublicProfile__field_descriptor)])
+
+maybe'pokemonData ::
+                  forall msg msg' .
+                    Data.ProtoLens.HasField "maybe'pokemonData" msg msg' =>
+                    Lens.Family2.Lens msg msg'
+                      (Data.ProtoLens.Field "maybe'pokemonData" msg)
+                      (Data.ProtoLens.Field "maybe'pokemonData" msg')
+maybe'pokemonData
+  = Data.ProtoLens.field
+      (Data.ProtoLens.ProxySym ::
+         Data.ProtoLens.ProxySym "maybe'pokemonData")
+
+maybe'trainerPublicProfile ::
+                           forall msg msg' .
+                             Data.ProtoLens.HasField "maybe'trainerPublicProfile" msg msg' =>
+                             Lens.Family2.Lens msg msg'
+                               (Data.ProtoLens.Field "maybe'trainerPublicProfile" msg)
+                               (Data.ProtoLens.Field "maybe'trainerPublicProfile" msg')
+maybe'trainerPublicProfile
+  = Data.ProtoLens.field
+      (Data.ProtoLens.ProxySym ::
+         Data.ProtoLens.ProxySym "maybe'trainerPublicProfile")
+
+pokemonData ::
+            forall msg msg' . Data.ProtoLens.HasField "pokemonData" msg msg' =>
+              Lens.Family2.Lens msg msg' (Data.ProtoLens.Field "pokemonData" msg)
+                (Data.ProtoLens.Field "pokemonData" msg')
+pokemonData
+  = Data.ProtoLens.field
+      (Data.ProtoLens.ProxySym :: Data.ProtoLens.ProxySym "pokemonData")
+
+trainerPublicProfile ::
+                     forall msg msg' .
+                       Data.ProtoLens.HasField "trainerPublicProfile" msg msg' =>
+                       Lens.Family2.Lens msg msg'
+                         (Data.ProtoLens.Field "trainerPublicProfile" msg)
+                         (Data.ProtoLens.Field "trainerPublicProfile" msg')
+trainerPublicProfile
+  = Data.ProtoLens.field
+      (Data.ProtoLens.ProxySym ::
+         Data.ProtoLens.ProxySym "trainerPublicProfile")
diff --git a/src/Proto/POGOProtos/Data/Gym/GymState.hs b/src/Proto/POGOProtos/Data/Gym/GymState.hs
new file mode 100644
--- /dev/null
+++ b/src/Proto/POGOProtos/Data/Gym/GymState.hs
@@ -0,0 +1,105 @@
+{- This file was auto-generated from POGOProtos/Data/Gym/GymState.proto by the proto-lens-protoc program. -}
+{-# LANGUAGE ScopedTypeVariables, DataKinds, TypeFamilies,
+  MultiParamTypeClasses, FlexibleContexts, FlexibleInstances #-}
+{-# OPTIONS_GHC -fno-warn-unused-imports#-}
+module Proto.POGOProtos.Data.Gym.GymState where
+import qualified Prelude
+import qualified Data.ProtoLens
+import qualified Data.ProtoLens.Message.Enum
+import qualified Lens.Family2
+import qualified Lens.Family2.Unchecked
+import qualified Data.Default.Class
+import qualified Data.Text
+import qualified Data.Int
+import qualified Data.Word
+import qualified Data.Map
+import qualified Data.ByteString
+import qualified Proto.POGOProtos.Data.Gym.GymMembership
+import qualified Proto.POGOProtos.Map.Fort.FortData
+
+data GymState = GymState{_GymState'fortData ::
+                         Prelude.Maybe Proto.POGOProtos.Map.Fort.FortData.FortData,
+                         _GymState'memberships ::
+                         [Proto.POGOProtos.Data.Gym.GymMembership.GymMembership]}
+              deriving (Prelude.Show, Prelude.Eq)
+
+type instance Data.ProtoLens.Field "fortData" GymState =
+     Proto.POGOProtos.Map.Fort.FortData.FortData
+
+instance Data.ProtoLens.HasField "fortData" GymState GymState where
+        field _
+          = (Prelude..) maybe'fortData
+              (Data.ProtoLens.maybeLens Data.Default.Class.def)
+
+type instance Data.ProtoLens.Field "maybe'fortData" GymState =
+     Prelude.Maybe Proto.POGOProtos.Map.Fort.FortData.FortData
+
+instance Data.ProtoLens.HasField "maybe'fortData" GymState GymState
+         where
+        field _
+          = Lens.Family2.Unchecked.lens _GymState'fortData
+              (\ x__ y__ -> x__{_GymState'fortData = y__})
+
+type instance Data.ProtoLens.Field "memberships" GymState =
+     [Proto.POGOProtos.Data.Gym.GymMembership.GymMembership]
+
+instance Data.ProtoLens.HasField "memberships" GymState GymState
+         where
+        field _
+          = Lens.Family2.Unchecked.lens _GymState'memberships
+              (\ x__ y__ -> x__{_GymState'memberships = y__})
+
+instance Data.Default.Class.Default GymState where
+        def
+          = GymState{_GymState'fortData = Prelude.Nothing,
+                     _GymState'memberships = []}
+
+instance Data.ProtoLens.Message GymState where
+        descriptor
+          = let fortData__field_descriptor
+                  = Data.ProtoLens.FieldDescriptor "fort_data"
+                      (Data.ProtoLens.MessageField ::
+                         Data.ProtoLens.FieldTypeDescriptor
+                           Proto.POGOProtos.Map.Fort.FortData.FortData)
+                      (Data.ProtoLens.OptionalField maybe'fortData)
+                memberships__field_descriptor
+                  = Data.ProtoLens.FieldDescriptor "memberships"
+                      (Data.ProtoLens.MessageField ::
+                         Data.ProtoLens.FieldTypeDescriptor
+                           Proto.POGOProtos.Data.Gym.GymMembership.GymMembership)
+                      (Data.ProtoLens.RepeatedField Data.ProtoLens.Unpacked memberships)
+              in
+              Data.ProtoLens.MessageDescriptor
+                (Data.Map.fromList
+                   [(Data.ProtoLens.Tag 1, fortData__field_descriptor),
+                    (Data.ProtoLens.Tag 2, memberships__field_descriptor)])
+                (Data.Map.fromList
+                   [("fort_data", fortData__field_descriptor),
+                    ("memberships", memberships__field_descriptor)])
+
+fortData ::
+         forall msg msg' . Data.ProtoLens.HasField "fortData" msg msg' =>
+           Lens.Family2.Lens msg msg' (Data.ProtoLens.Field "fortData" msg)
+             (Data.ProtoLens.Field "fortData" msg')
+fortData
+  = Data.ProtoLens.field
+      (Data.ProtoLens.ProxySym :: Data.ProtoLens.ProxySym "fortData")
+
+maybe'fortData ::
+               forall msg msg' .
+                 Data.ProtoLens.HasField "maybe'fortData" msg msg' =>
+                 Lens.Family2.Lens msg msg'
+                   (Data.ProtoLens.Field "maybe'fortData" msg)
+                   (Data.ProtoLens.Field "maybe'fortData" msg')
+maybe'fortData
+  = Data.ProtoLens.field
+      (Data.ProtoLens.ProxySym ::
+         Data.ProtoLens.ProxySym "maybe'fortData")
+
+memberships ::
+            forall msg msg' . Data.ProtoLens.HasField "memberships" msg msg' =>
+              Lens.Family2.Lens msg msg' (Data.ProtoLens.Field "memberships" msg)
+                (Data.ProtoLens.Field "memberships" msg')
+memberships
+  = Data.ProtoLens.field
+      (Data.ProtoLens.ProxySym :: Data.ProtoLens.ProxySym "memberships")
diff --git a/src/Proto/POGOProtos/Data/Logs/ActionLogEntry.hs b/src/Proto/POGOProtos/Data/Logs/ActionLogEntry.hs
new file mode 100644
--- /dev/null
+++ b/src/Proto/POGOProtos/Data/Logs/ActionLogEntry.hs
@@ -0,0 +1,188 @@
+{- This file was auto-generated from POGOProtos/Data/Logs/ActionLogEntry.proto by the proto-lens-protoc program. -}
+{-# LANGUAGE ScopedTypeVariables, DataKinds, TypeFamilies,
+  MultiParamTypeClasses, FlexibleContexts, FlexibleInstances #-}
+{-# OPTIONS_GHC -fno-warn-unused-imports#-}
+module Proto.POGOProtos.Data.Logs.ActionLogEntry where
+import qualified Prelude
+import qualified Data.ProtoLens
+import qualified Data.ProtoLens.Message.Enum
+import qualified Lens.Family2
+import qualified Lens.Family2.Unchecked
+import qualified Data.Default.Class
+import qualified Data.Text
+import qualified Data.Int
+import qualified Data.Word
+import qualified Data.Map
+import qualified Data.ByteString
+import qualified Proto.POGOProtos.Data.Logs.CatchPokemonLogEntry
+import qualified Proto.POGOProtos.Data.Logs.FortSearchLogEntry
+
+data ActionLogEntry = ActionLogEntry{_ActionLogEntry'timestampMs ::
+                                     Data.Int.Int64,
+                                     _ActionLogEntry'sfida :: Prelude.Bool,
+                                     _ActionLogEntry'catchPokemon ::
+                                     Prelude.Maybe
+                                       Proto.POGOProtos.Data.Logs.CatchPokemonLogEntry.CatchPokemonLogEntry,
+                                     _ActionLogEntry'fortSearch ::
+                                     Prelude.Maybe
+                                       Proto.POGOProtos.Data.Logs.FortSearchLogEntry.FortSearchLogEntry}
+                    deriving (Prelude.Show, Prelude.Eq)
+
+type instance Data.ProtoLens.Field "timestampMs" ActionLogEntry =
+     Data.Int.Int64
+
+instance Data.ProtoLens.HasField "timestampMs" ActionLogEntry
+         ActionLogEntry where
+        field _
+          = Lens.Family2.Unchecked.lens _ActionLogEntry'timestampMs
+              (\ x__ y__ -> x__{_ActionLogEntry'timestampMs = y__})
+
+type instance Data.ProtoLens.Field "sfida" ActionLogEntry =
+     Prelude.Bool
+
+instance Data.ProtoLens.HasField "sfida" ActionLogEntry
+         ActionLogEntry where
+        field _
+          = Lens.Family2.Unchecked.lens _ActionLogEntry'sfida
+              (\ x__ y__ -> x__{_ActionLogEntry'sfida = y__})
+
+type instance Data.ProtoLens.Field "catchPokemon" ActionLogEntry =
+     Proto.POGOProtos.Data.Logs.CatchPokemonLogEntry.CatchPokemonLogEntry
+
+instance Data.ProtoLens.HasField "catchPokemon" ActionLogEntry
+         ActionLogEntry where
+        field _
+          = (Prelude..) maybe'catchPokemon
+              (Data.ProtoLens.maybeLens Data.Default.Class.def)
+
+type instance
+     Data.ProtoLens.Field "maybe'catchPokemon" ActionLogEntry =
+     Prelude.Maybe
+       Proto.POGOProtos.Data.Logs.CatchPokemonLogEntry.CatchPokemonLogEntry
+
+instance Data.ProtoLens.HasField "maybe'catchPokemon"
+         ActionLogEntry ActionLogEntry where
+        field _
+          = Lens.Family2.Unchecked.lens _ActionLogEntry'catchPokemon
+              (\ x__ y__ -> x__{_ActionLogEntry'catchPokemon = y__})
+
+type instance Data.ProtoLens.Field "fortSearch" ActionLogEntry =
+     Proto.POGOProtos.Data.Logs.FortSearchLogEntry.FortSearchLogEntry
+
+instance Data.ProtoLens.HasField "fortSearch" ActionLogEntry
+         ActionLogEntry where
+        field _
+          = (Prelude..) maybe'fortSearch
+              (Data.ProtoLens.maybeLens Data.Default.Class.def)
+
+type instance
+     Data.ProtoLens.Field "maybe'fortSearch" ActionLogEntry =
+     Prelude.Maybe
+       Proto.POGOProtos.Data.Logs.FortSearchLogEntry.FortSearchLogEntry
+
+instance Data.ProtoLens.HasField "maybe'fortSearch" ActionLogEntry
+         ActionLogEntry where
+        field _
+          = Lens.Family2.Unchecked.lens _ActionLogEntry'fortSearch
+              (\ x__ y__ -> x__{_ActionLogEntry'fortSearch = y__})
+
+instance Data.Default.Class.Default ActionLogEntry where
+        def
+          = ActionLogEntry{_ActionLogEntry'timestampMs =
+                             Data.ProtoLens.fieldDefault,
+                           _ActionLogEntry'sfida = Data.ProtoLens.fieldDefault,
+                           _ActionLogEntry'catchPokemon = Prelude.Nothing,
+                           _ActionLogEntry'fortSearch = Prelude.Nothing}
+
+instance Data.ProtoLens.Message ActionLogEntry where
+        descriptor
+          = let timestampMs__field_descriptor
+                  = Data.ProtoLens.FieldDescriptor "timestamp_ms"
+                      (Data.ProtoLens.Int64Field ::
+                         Data.ProtoLens.FieldTypeDescriptor Data.Int.Int64)
+                      (Data.ProtoLens.PlainField Data.ProtoLens.Optional timestampMs)
+                sfida__field_descriptor
+                  = Data.ProtoLens.FieldDescriptor "sfida"
+                      (Data.ProtoLens.BoolField ::
+                         Data.ProtoLens.FieldTypeDescriptor Prelude.Bool)
+                      (Data.ProtoLens.PlainField Data.ProtoLens.Optional sfida)
+                catchPokemon__field_descriptor
+                  = Data.ProtoLens.FieldDescriptor "catch_pokemon"
+                      (Data.ProtoLens.MessageField ::
+                         Data.ProtoLens.FieldTypeDescriptor
+                           Proto.POGOProtos.Data.Logs.CatchPokemonLogEntry.CatchPokemonLogEntry)
+                      (Data.ProtoLens.OptionalField maybe'catchPokemon)
+                fortSearch__field_descriptor
+                  = Data.ProtoLens.FieldDescriptor "fort_search"
+                      (Data.ProtoLens.MessageField ::
+                         Data.ProtoLens.FieldTypeDescriptor
+                           Proto.POGOProtos.Data.Logs.FortSearchLogEntry.FortSearchLogEntry)
+                      (Data.ProtoLens.OptionalField maybe'fortSearch)
+              in
+              Data.ProtoLens.MessageDescriptor
+                (Data.Map.fromList
+                   [(Data.ProtoLens.Tag 1, timestampMs__field_descriptor),
+                    (Data.ProtoLens.Tag 2, sfida__field_descriptor),
+                    (Data.ProtoLens.Tag 3, catchPokemon__field_descriptor),
+                    (Data.ProtoLens.Tag 4, fortSearch__field_descriptor)])
+                (Data.Map.fromList
+                   [("timestamp_ms", timestampMs__field_descriptor),
+                    ("sfida", sfida__field_descriptor),
+                    ("catch_pokemon", catchPokemon__field_descriptor),
+                    ("fort_search", fortSearch__field_descriptor)])
+
+catchPokemon ::
+             forall msg msg' .
+               Data.ProtoLens.HasField "catchPokemon" msg msg' =>
+               Lens.Family2.Lens msg msg'
+                 (Data.ProtoLens.Field "catchPokemon" msg)
+                 (Data.ProtoLens.Field "catchPokemon" msg')
+catchPokemon
+  = Data.ProtoLens.field
+      (Data.ProtoLens.ProxySym :: Data.ProtoLens.ProxySym "catchPokemon")
+
+fortSearch ::
+           forall msg msg' . Data.ProtoLens.HasField "fortSearch" msg msg' =>
+             Lens.Family2.Lens msg msg' (Data.ProtoLens.Field "fortSearch" msg)
+               (Data.ProtoLens.Field "fortSearch" msg')
+fortSearch
+  = Data.ProtoLens.field
+      (Data.ProtoLens.ProxySym :: Data.ProtoLens.ProxySym "fortSearch")
+
+maybe'catchPokemon ::
+                   forall msg msg' .
+                     Data.ProtoLens.HasField "maybe'catchPokemon" msg msg' =>
+                     Lens.Family2.Lens msg msg'
+                       (Data.ProtoLens.Field "maybe'catchPokemon" msg)
+                       (Data.ProtoLens.Field "maybe'catchPokemon" msg')
+maybe'catchPokemon
+  = Data.ProtoLens.field
+      (Data.ProtoLens.ProxySym ::
+         Data.ProtoLens.ProxySym "maybe'catchPokemon")
+
+maybe'fortSearch ::
+                 forall msg msg' .
+                   Data.ProtoLens.HasField "maybe'fortSearch" msg msg' =>
+                   Lens.Family2.Lens msg msg'
+                     (Data.ProtoLens.Field "maybe'fortSearch" msg)
+                     (Data.ProtoLens.Field "maybe'fortSearch" msg')
+maybe'fortSearch
+  = Data.ProtoLens.field
+      (Data.ProtoLens.ProxySym ::
+         Data.ProtoLens.ProxySym "maybe'fortSearch")
+
+sfida ::
+      forall msg msg' . Data.ProtoLens.HasField "sfida" msg msg' =>
+        Lens.Family2.Lens msg msg' (Data.ProtoLens.Field "sfida" msg)
+          (Data.ProtoLens.Field "sfida" msg')
+sfida
+  = Data.ProtoLens.field
+      (Data.ProtoLens.ProxySym :: Data.ProtoLens.ProxySym "sfida")
+
+timestampMs ::
+            forall msg msg' . Data.ProtoLens.HasField "timestampMs" msg msg' =>
+              Lens.Family2.Lens msg msg' (Data.ProtoLens.Field "timestampMs" msg)
+                (Data.ProtoLens.Field "timestampMs" msg')
+timestampMs
+  = Data.ProtoLens.field
+      (Data.ProtoLens.ProxySym :: Data.ProtoLens.ProxySym "timestampMs")
diff --git a/src/Proto/POGOProtos/Data/Logs/CatchPokemonLogEntry.hs b/src/Proto/POGOProtos/Data/Logs/CatchPokemonLogEntry.hs
new file mode 100644
--- /dev/null
+++ b/src/Proto/POGOProtos/Data/Logs/CatchPokemonLogEntry.hs
@@ -0,0 +1,209 @@
+{- This file was auto-generated from POGOProtos/Data/Logs/CatchPokemonLogEntry.proto by the proto-lens-protoc program. -}
+{-# LANGUAGE ScopedTypeVariables, DataKinds, TypeFamilies,
+  MultiParamTypeClasses, FlexibleContexts, FlexibleInstances #-}
+{-# OPTIONS_GHC -fno-warn-unused-imports#-}
+module Proto.POGOProtos.Data.Logs.CatchPokemonLogEntry where
+import qualified Prelude
+import qualified Data.ProtoLens
+import qualified Data.ProtoLens.Message.Enum
+import qualified Lens.Family2
+import qualified Lens.Family2.Unchecked
+import qualified Data.Default.Class
+import qualified Data.Text
+import qualified Data.Int
+import qualified Data.Word
+import qualified Data.Map
+import qualified Data.ByteString
+import qualified Proto.POGOProtos.Enums.PokemonId
+
+data CatchPokemonLogEntry = CatchPokemonLogEntry{_CatchPokemonLogEntry'result
+                                                 :: CatchPokemonLogEntry'Result,
+                                                 _CatchPokemonLogEntry'pokemonId ::
+                                                 Proto.POGOProtos.Enums.PokemonId.PokemonId,
+                                                 _CatchPokemonLogEntry'combatPoints ::
+                                                 Data.Int.Int32,
+                                                 _CatchPokemonLogEntry'pokemonDataId ::
+                                                 Data.Word.Word64}
+                          deriving (Prelude.Show, Prelude.Eq)
+
+type instance Data.ProtoLens.Field "result" CatchPokemonLogEntry =
+     CatchPokemonLogEntry'Result
+
+instance Data.ProtoLens.HasField "result" CatchPokemonLogEntry
+         CatchPokemonLogEntry where
+        field _
+          = Lens.Family2.Unchecked.lens _CatchPokemonLogEntry'result
+              (\ x__ y__ -> x__{_CatchPokemonLogEntry'result = y__})
+
+type instance Data.ProtoLens.Field "pokemonId" CatchPokemonLogEntry
+     = Proto.POGOProtos.Enums.PokemonId.PokemonId
+
+instance Data.ProtoLens.HasField "pokemonId" CatchPokemonLogEntry
+         CatchPokemonLogEntry where
+        field _
+          = Lens.Family2.Unchecked.lens _CatchPokemonLogEntry'pokemonId
+              (\ x__ y__ -> x__{_CatchPokemonLogEntry'pokemonId = y__})
+
+type instance
+     Data.ProtoLens.Field "combatPoints" CatchPokemonLogEntry =
+     Data.Int.Int32
+
+instance Data.ProtoLens.HasField "combatPoints"
+         CatchPokemonLogEntry CatchPokemonLogEntry where
+        field _
+          = Lens.Family2.Unchecked.lens _CatchPokemonLogEntry'combatPoints
+              (\ x__ y__ -> x__{_CatchPokemonLogEntry'combatPoints = y__})
+
+type instance
+     Data.ProtoLens.Field "pokemonDataId" CatchPokemonLogEntry =
+     Data.Word.Word64
+
+instance Data.ProtoLens.HasField "pokemonDataId"
+         CatchPokemonLogEntry CatchPokemonLogEntry where
+        field _
+          = Lens.Family2.Unchecked.lens _CatchPokemonLogEntry'pokemonDataId
+              (\ x__ y__ -> x__{_CatchPokemonLogEntry'pokemonDataId = y__})
+
+instance Data.Default.Class.Default CatchPokemonLogEntry where
+        def
+          = CatchPokemonLogEntry{_CatchPokemonLogEntry'result =
+                                   Data.Default.Class.def,
+                                 _CatchPokemonLogEntry'pokemonId = Data.Default.Class.def,
+                                 _CatchPokemonLogEntry'combatPoints = Data.ProtoLens.fieldDefault,
+                                 _CatchPokemonLogEntry'pokemonDataId = Data.ProtoLens.fieldDefault}
+
+instance Data.ProtoLens.Message CatchPokemonLogEntry where
+        descriptor
+          = let result__field_descriptor
+                  = Data.ProtoLens.FieldDescriptor "result"
+                      (Data.ProtoLens.EnumField ::
+                         Data.ProtoLens.FieldTypeDescriptor CatchPokemonLogEntry'Result)
+                      (Data.ProtoLens.PlainField Data.ProtoLens.Optional result)
+                pokemonId__field_descriptor
+                  = Data.ProtoLens.FieldDescriptor "pokemon_id"
+                      (Data.ProtoLens.EnumField ::
+                         Data.ProtoLens.FieldTypeDescriptor
+                           Proto.POGOProtos.Enums.PokemonId.PokemonId)
+                      (Data.ProtoLens.PlainField Data.ProtoLens.Optional pokemonId)
+                combatPoints__field_descriptor
+                  = Data.ProtoLens.FieldDescriptor "combat_points"
+                      (Data.ProtoLens.Int32Field ::
+                         Data.ProtoLens.FieldTypeDescriptor Data.Int.Int32)
+                      (Data.ProtoLens.PlainField Data.ProtoLens.Optional combatPoints)
+                pokemonDataId__field_descriptor
+                  = Data.ProtoLens.FieldDescriptor "pokemon_data_id"
+                      (Data.ProtoLens.UInt64Field ::
+                         Data.ProtoLens.FieldTypeDescriptor Data.Word.Word64)
+                      (Data.ProtoLens.PlainField Data.ProtoLens.Optional pokemonDataId)
+              in
+              Data.ProtoLens.MessageDescriptor
+                (Data.Map.fromList
+                   [(Data.ProtoLens.Tag 1, result__field_descriptor),
+                    (Data.ProtoLens.Tag 2, pokemonId__field_descriptor),
+                    (Data.ProtoLens.Tag 3, combatPoints__field_descriptor),
+                    (Data.ProtoLens.Tag 4, pokemonDataId__field_descriptor)])
+                (Data.Map.fromList
+                   [("result", result__field_descriptor),
+                    ("pokemon_id", pokemonId__field_descriptor),
+                    ("combat_points", combatPoints__field_descriptor),
+                    ("pokemon_data_id", pokemonDataId__field_descriptor)])
+
+data CatchPokemonLogEntry'Result = CatchPokemonLogEntry'UNSET
+                                 | CatchPokemonLogEntry'POKEMON_CAPTURED
+                                 | CatchPokemonLogEntry'POKEMON_FLED
+                                 deriving (Prelude.Show, Prelude.Eq)
+
+instance Data.Default.Class.Default CatchPokemonLogEntry'Result
+         where
+        def = CatchPokemonLogEntry'UNSET
+
+instance Data.ProtoLens.FieldDefault CatchPokemonLogEntry'Result
+         where
+        fieldDefault = CatchPokemonLogEntry'UNSET
+
+instance Data.ProtoLens.MessageEnum CatchPokemonLogEntry'Result
+         where
+        maybeToEnum 0 = Prelude.Just CatchPokemonLogEntry'UNSET
+        maybeToEnum 1 = Prelude.Just CatchPokemonLogEntry'POKEMON_CAPTURED
+        maybeToEnum 2 = Prelude.Just CatchPokemonLogEntry'POKEMON_FLED
+        maybeToEnum _ = Prelude.Nothing
+        showEnum CatchPokemonLogEntry'UNSET = "UNSET"
+        showEnum CatchPokemonLogEntry'POKEMON_CAPTURED = "POKEMON_CAPTURED"
+        showEnum CatchPokemonLogEntry'POKEMON_FLED = "POKEMON_FLED"
+        readEnum "UNSET" = Prelude.Just CatchPokemonLogEntry'UNSET
+        readEnum "POKEMON_CAPTURED"
+          = Prelude.Just CatchPokemonLogEntry'POKEMON_CAPTURED
+        readEnum "POKEMON_FLED"
+          = Prelude.Just CatchPokemonLogEntry'POKEMON_FLED
+        readEnum _ = Prelude.Nothing
+
+instance Prelude.Enum CatchPokemonLogEntry'Result where
+        toEnum k__
+          = Prelude.maybe
+              (Prelude.error
+                 ((Prelude.++) "toEnum: unknown value for enum Result: "
+                    (Prelude.show k__)))
+              Prelude.id
+              (Data.ProtoLens.maybeToEnum k__)
+        fromEnum CatchPokemonLogEntry'UNSET = 0
+        fromEnum CatchPokemonLogEntry'POKEMON_CAPTURED = 1
+        fromEnum CatchPokemonLogEntry'POKEMON_FLED = 2
+        succ CatchPokemonLogEntry'POKEMON_FLED
+          = Prelude.error
+              "Ident \"CatchPokemonLogEntry'Result\".Ident \"succ\": bad argument Ident \"CatchPokemonLogEntry'POKEMON_FLED\". This value would be out of bounds."
+        succ CatchPokemonLogEntry'UNSET
+          = CatchPokemonLogEntry'POKEMON_CAPTURED
+        succ CatchPokemonLogEntry'POKEMON_CAPTURED
+          = CatchPokemonLogEntry'POKEMON_FLED
+        pred CatchPokemonLogEntry'UNSET
+          = Prelude.error
+              "Ident \"CatchPokemonLogEntry'Result\".Ident \"pred\": bad argument Ident \"CatchPokemonLogEntry'UNSET\". This value would be out of bounds."
+        pred CatchPokemonLogEntry'POKEMON_CAPTURED
+          = CatchPokemonLogEntry'UNSET
+        pred CatchPokemonLogEntry'POKEMON_FLED
+          = CatchPokemonLogEntry'POKEMON_CAPTURED
+        enumFrom = Data.ProtoLens.Message.Enum.messageEnumFrom
+        enumFromTo = Data.ProtoLens.Message.Enum.messageEnumFromTo
+        enumFromThen = Data.ProtoLens.Message.Enum.messageEnumFromThen
+        enumFromThenTo = Data.ProtoLens.Message.Enum.messageEnumFromThenTo
+
+instance Prelude.Bounded CatchPokemonLogEntry'Result where
+        minBound = CatchPokemonLogEntry'UNSET
+        maxBound = CatchPokemonLogEntry'POKEMON_FLED
+
+combatPoints ::
+             forall msg msg' .
+               Data.ProtoLens.HasField "combatPoints" msg msg' =>
+               Lens.Family2.Lens msg msg'
+                 (Data.ProtoLens.Field "combatPoints" msg)
+                 (Data.ProtoLens.Field "combatPoints" msg')
+combatPoints
+  = Data.ProtoLens.field
+      (Data.ProtoLens.ProxySym :: Data.ProtoLens.ProxySym "combatPoints")
+
+pokemonDataId ::
+              forall msg msg' .
+                Data.ProtoLens.HasField "pokemonDataId" msg msg' =>
+                Lens.Family2.Lens msg msg'
+                  (Data.ProtoLens.Field "pokemonDataId" msg)
+                  (Data.ProtoLens.Field "pokemonDataId" msg')
+pokemonDataId
+  = Data.ProtoLens.field
+      (Data.ProtoLens.ProxySym ::
+         Data.ProtoLens.ProxySym "pokemonDataId")
+
+pokemonId ::
+          forall msg msg' . Data.ProtoLens.HasField "pokemonId" msg msg' =>
+            Lens.Family2.Lens msg msg' (Data.ProtoLens.Field "pokemonId" msg)
+              (Data.ProtoLens.Field "pokemonId" msg')
+pokemonId
+  = Data.ProtoLens.field
+      (Data.ProtoLens.ProxySym :: Data.ProtoLens.ProxySym "pokemonId")
+
+result ::
+       forall msg msg' . Data.ProtoLens.HasField "result" msg msg' =>
+         Lens.Family2.Lens msg msg' (Data.ProtoLens.Field "result" msg)
+           (Data.ProtoLens.Field "result" msg')
+result
+  = Data.ProtoLens.field
+      (Data.ProtoLens.ProxySym :: Data.ProtoLens.ProxySym "result")
diff --git a/src/Proto/POGOProtos/Data/Logs/FortSearchLogEntry.hs b/src/Proto/POGOProtos/Data/Logs/FortSearchLogEntry.hs
new file mode 100644
--- /dev/null
+++ b/src/Proto/POGOProtos/Data/Logs/FortSearchLogEntry.hs
@@ -0,0 +1,185 @@
+{- This file was auto-generated from POGOProtos/Data/Logs/FortSearchLogEntry.proto by the proto-lens-protoc program. -}
+{-# LANGUAGE ScopedTypeVariables, DataKinds, TypeFamilies,
+  MultiParamTypeClasses, FlexibleContexts, FlexibleInstances #-}
+{-# OPTIONS_GHC -fno-warn-unused-imports#-}
+module Proto.POGOProtos.Data.Logs.FortSearchLogEntry where
+import qualified Prelude
+import qualified Data.ProtoLens
+import qualified Data.ProtoLens.Message.Enum
+import qualified Lens.Family2
+import qualified Lens.Family2.Unchecked
+import qualified Data.Default.Class
+import qualified Data.Text
+import qualified Data.Int
+import qualified Data.Word
+import qualified Data.Map
+import qualified Data.ByteString
+import qualified Proto.POGOProtos.Inventory.Item.ItemData
+
+data FortSearchLogEntry = FortSearchLogEntry{_FortSearchLogEntry'result
+                                             :: FortSearchLogEntry'Result,
+                                             _FortSearchLogEntry'fortId :: Data.Text.Text,
+                                             _FortSearchLogEntry'items ::
+                                             [Proto.POGOProtos.Inventory.Item.ItemData.ItemData],
+                                             _FortSearchLogEntry'eggs :: Data.Int.Int32}
+                        deriving (Prelude.Show, Prelude.Eq)
+
+type instance Data.ProtoLens.Field "result" FortSearchLogEntry =
+     FortSearchLogEntry'Result
+
+instance Data.ProtoLens.HasField "result" FortSearchLogEntry
+         FortSearchLogEntry where
+        field _
+          = Lens.Family2.Unchecked.lens _FortSearchLogEntry'result
+              (\ x__ y__ -> x__{_FortSearchLogEntry'result = y__})
+
+type instance Data.ProtoLens.Field "fortId" FortSearchLogEntry =
+     Data.Text.Text
+
+instance Data.ProtoLens.HasField "fortId" FortSearchLogEntry
+         FortSearchLogEntry where
+        field _
+          = Lens.Family2.Unchecked.lens _FortSearchLogEntry'fortId
+              (\ x__ y__ -> x__{_FortSearchLogEntry'fortId = y__})
+
+type instance Data.ProtoLens.Field "items" FortSearchLogEntry =
+     [Proto.POGOProtos.Inventory.Item.ItemData.ItemData]
+
+instance Data.ProtoLens.HasField "items" FortSearchLogEntry
+         FortSearchLogEntry where
+        field _
+          = Lens.Family2.Unchecked.lens _FortSearchLogEntry'items
+              (\ x__ y__ -> x__{_FortSearchLogEntry'items = y__})
+
+type instance Data.ProtoLens.Field "eggs" FortSearchLogEntry =
+     Data.Int.Int32
+
+instance Data.ProtoLens.HasField "eggs" FortSearchLogEntry
+         FortSearchLogEntry where
+        field _
+          = Lens.Family2.Unchecked.lens _FortSearchLogEntry'eggs
+              (\ x__ y__ -> x__{_FortSearchLogEntry'eggs = y__})
+
+instance Data.Default.Class.Default FortSearchLogEntry where
+        def
+          = FortSearchLogEntry{_FortSearchLogEntry'result =
+                                 Data.Default.Class.def,
+                               _FortSearchLogEntry'fortId = Data.ProtoLens.fieldDefault,
+                               _FortSearchLogEntry'items = [],
+                               _FortSearchLogEntry'eggs = Data.ProtoLens.fieldDefault}
+
+instance Data.ProtoLens.Message FortSearchLogEntry where
+        descriptor
+          = let result__field_descriptor
+                  = Data.ProtoLens.FieldDescriptor "result"
+                      (Data.ProtoLens.EnumField ::
+                         Data.ProtoLens.FieldTypeDescriptor FortSearchLogEntry'Result)
+                      (Data.ProtoLens.PlainField Data.ProtoLens.Optional result)
+                fortId__field_descriptor
+                  = Data.ProtoLens.FieldDescriptor "fort_id"
+                      (Data.ProtoLens.StringField ::
+                         Data.ProtoLens.FieldTypeDescriptor Data.Text.Text)
+                      (Data.ProtoLens.PlainField Data.ProtoLens.Optional fortId)
+                items__field_descriptor
+                  = Data.ProtoLens.FieldDescriptor "items"
+                      (Data.ProtoLens.MessageField ::
+                         Data.ProtoLens.FieldTypeDescriptor
+                           Proto.POGOProtos.Inventory.Item.ItemData.ItemData)
+                      (Data.ProtoLens.RepeatedField Data.ProtoLens.Unpacked items)
+                eggs__field_descriptor
+                  = Data.ProtoLens.FieldDescriptor "eggs"
+                      (Data.ProtoLens.Int32Field ::
+                         Data.ProtoLens.FieldTypeDescriptor Data.Int.Int32)
+                      (Data.ProtoLens.PlainField Data.ProtoLens.Optional eggs)
+              in
+              Data.ProtoLens.MessageDescriptor
+                (Data.Map.fromList
+                   [(Data.ProtoLens.Tag 1, result__field_descriptor),
+                    (Data.ProtoLens.Tag 2, fortId__field_descriptor),
+                    (Data.ProtoLens.Tag 3, items__field_descriptor),
+                    (Data.ProtoLens.Tag 4, eggs__field_descriptor)])
+                (Data.Map.fromList
+                   [("result", result__field_descriptor),
+                    ("fort_id", fortId__field_descriptor),
+                    ("items", items__field_descriptor),
+                    ("eggs", eggs__field_descriptor)])
+
+data FortSearchLogEntry'Result = FortSearchLogEntry'UNSET
+                               | FortSearchLogEntry'SUCCESS
+                               deriving (Prelude.Show, Prelude.Eq)
+
+instance Data.Default.Class.Default FortSearchLogEntry'Result where
+        def = FortSearchLogEntry'UNSET
+
+instance Data.ProtoLens.FieldDefault FortSearchLogEntry'Result
+         where
+        fieldDefault = FortSearchLogEntry'UNSET
+
+instance Data.ProtoLens.MessageEnum FortSearchLogEntry'Result where
+        maybeToEnum 0 = Prelude.Just FortSearchLogEntry'UNSET
+        maybeToEnum 1 = Prelude.Just FortSearchLogEntry'SUCCESS
+        maybeToEnum _ = Prelude.Nothing
+        showEnum FortSearchLogEntry'UNSET = "UNSET"
+        showEnum FortSearchLogEntry'SUCCESS = "SUCCESS"
+        readEnum "UNSET" = Prelude.Just FortSearchLogEntry'UNSET
+        readEnum "SUCCESS" = Prelude.Just FortSearchLogEntry'SUCCESS
+        readEnum _ = Prelude.Nothing
+
+instance Prelude.Enum FortSearchLogEntry'Result where
+        toEnum k__
+          = Prelude.maybe
+              (Prelude.error
+                 ((Prelude.++) "toEnum: unknown value for enum Result: "
+                    (Prelude.show k__)))
+              Prelude.id
+              (Data.ProtoLens.maybeToEnum k__)
+        fromEnum FortSearchLogEntry'UNSET = 0
+        fromEnum FortSearchLogEntry'SUCCESS = 1
+        succ FortSearchLogEntry'SUCCESS
+          = Prelude.error
+              "Ident \"FortSearchLogEntry'Result\".Ident \"succ\": bad argument Ident \"FortSearchLogEntry'SUCCESS\". This value would be out of bounds."
+        succ FortSearchLogEntry'UNSET = FortSearchLogEntry'SUCCESS
+        pred FortSearchLogEntry'UNSET
+          = Prelude.error
+              "Ident \"FortSearchLogEntry'Result\".Ident \"pred\": bad argument Ident \"FortSearchLogEntry'UNSET\". This value would be out of bounds."
+        pred FortSearchLogEntry'SUCCESS = FortSearchLogEntry'UNSET
+        enumFrom = Data.ProtoLens.Message.Enum.messageEnumFrom
+        enumFromTo = Data.ProtoLens.Message.Enum.messageEnumFromTo
+        enumFromThen = Data.ProtoLens.Message.Enum.messageEnumFromThen
+        enumFromThenTo = Data.ProtoLens.Message.Enum.messageEnumFromThenTo
+
+instance Prelude.Bounded FortSearchLogEntry'Result where
+        minBound = FortSearchLogEntry'UNSET
+        maxBound = FortSearchLogEntry'SUCCESS
+
+eggs ::
+     forall msg msg' . Data.ProtoLens.HasField "eggs" msg msg' =>
+       Lens.Family2.Lens msg msg' (Data.ProtoLens.Field "eggs" msg)
+         (Data.ProtoLens.Field "eggs" msg')
+eggs
+  = Data.ProtoLens.field
+      (Data.ProtoLens.ProxySym :: Data.ProtoLens.ProxySym "eggs")
+
+fortId ::
+       forall msg msg' . Data.ProtoLens.HasField "fortId" msg msg' =>
+         Lens.Family2.Lens msg msg' (Data.ProtoLens.Field "fortId" msg)
+           (Data.ProtoLens.Field "fortId" msg')
+fortId
+  = Data.ProtoLens.field
+      (Data.ProtoLens.ProxySym :: Data.ProtoLens.ProxySym "fortId")
+
+items ::
+      forall msg msg' . Data.ProtoLens.HasField "items" msg msg' =>
+        Lens.Family2.Lens msg msg' (Data.ProtoLens.Field "items" msg)
+          (Data.ProtoLens.Field "items" msg')
+items
+  = Data.ProtoLens.field
+      (Data.ProtoLens.ProxySym :: Data.ProtoLens.ProxySym "items")
+
+result ::
+       forall msg msg' . Data.ProtoLens.HasField "result" msg msg' =>
+         Lens.Family2.Lens msg msg' (Data.ProtoLens.Field "result" msg)
+           (Data.ProtoLens.Field "result" msg')
+result
+  = Data.ProtoLens.field
+      (Data.ProtoLens.ProxySym :: Data.ProtoLens.ProxySym "result")
diff --git a/src/Proto/POGOProtos/Data/Player/ContactSettings.hs b/src/Proto/POGOProtos/Data/Player/ContactSettings.hs
new file mode 100644
--- /dev/null
+++ b/src/Proto/POGOProtos/Data/Player/ContactSettings.hs
@@ -0,0 +1,95 @@
+{- This file was auto-generated from POGOProtos/Data/Player/ContactSettings.proto by the proto-lens-protoc program. -}
+{-# LANGUAGE ScopedTypeVariables, DataKinds, TypeFamilies,
+  MultiParamTypeClasses, FlexibleContexts, FlexibleInstances #-}
+{-# OPTIONS_GHC -fno-warn-unused-imports#-}
+module Proto.POGOProtos.Data.Player.ContactSettings where
+import qualified Prelude
+import qualified Data.ProtoLens
+import qualified Data.ProtoLens.Message.Enum
+import qualified Lens.Family2
+import qualified Lens.Family2.Unchecked
+import qualified Data.Default.Class
+import qualified Data.Text
+import qualified Data.Int
+import qualified Data.Word
+import qualified Data.Map
+import qualified Data.ByteString
+
+data ContactSettings = ContactSettings{_ContactSettings'sendMarketingEmails
+                                       :: Prelude.Bool,
+                                       _ContactSettings'sendPushNotifications :: Prelude.Bool}
+                     deriving (Prelude.Show, Prelude.Eq)
+
+type instance
+     Data.ProtoLens.Field "sendMarketingEmails" ContactSettings =
+     Prelude.Bool
+
+instance Data.ProtoLens.HasField "sendMarketingEmails"
+         ContactSettings ContactSettings where
+        field _
+          = Lens.Family2.Unchecked.lens _ContactSettings'sendMarketingEmails
+              (\ x__ y__ -> x__{_ContactSettings'sendMarketingEmails = y__})
+
+type instance
+     Data.ProtoLens.Field "sendPushNotifications" ContactSettings =
+     Prelude.Bool
+
+instance Data.ProtoLens.HasField "sendPushNotifications"
+         ContactSettings ContactSettings where
+        field _
+          = Lens.Family2.Unchecked.lens
+              _ContactSettings'sendPushNotifications
+              (\ x__ y__ -> x__{_ContactSettings'sendPushNotifications = y__})
+
+instance Data.Default.Class.Default ContactSettings where
+        def
+          = ContactSettings{_ContactSettings'sendMarketingEmails =
+                              Data.ProtoLens.fieldDefault,
+                            _ContactSettings'sendPushNotifications =
+                              Data.ProtoLens.fieldDefault}
+
+instance Data.ProtoLens.Message ContactSettings where
+        descriptor
+          = let sendMarketingEmails__field_descriptor
+                  = Data.ProtoLens.FieldDescriptor "send_marketing_emails"
+                      (Data.ProtoLens.BoolField ::
+                         Data.ProtoLens.FieldTypeDescriptor Prelude.Bool)
+                      (Data.ProtoLens.PlainField Data.ProtoLens.Optional
+                         sendMarketingEmails)
+                sendPushNotifications__field_descriptor
+                  = Data.ProtoLens.FieldDescriptor "send_push_notifications"
+                      (Data.ProtoLens.BoolField ::
+                         Data.ProtoLens.FieldTypeDescriptor Prelude.Bool)
+                      (Data.ProtoLens.PlainField Data.ProtoLens.Optional
+                         sendPushNotifications)
+              in
+              Data.ProtoLens.MessageDescriptor
+                (Data.Map.fromList
+                   [(Data.ProtoLens.Tag 1, sendMarketingEmails__field_descriptor),
+                    (Data.ProtoLens.Tag 2, sendPushNotifications__field_descriptor)])
+                (Data.Map.fromList
+                   [("send_marketing_emails", sendMarketingEmails__field_descriptor),
+                    ("send_push_notifications",
+                     sendPushNotifications__field_descriptor)])
+
+sendMarketingEmails ::
+                    forall msg msg' .
+                      Data.ProtoLens.HasField "sendMarketingEmails" msg msg' =>
+                      Lens.Family2.Lens msg msg'
+                        (Data.ProtoLens.Field "sendMarketingEmails" msg)
+                        (Data.ProtoLens.Field "sendMarketingEmails" msg')
+sendMarketingEmails
+  = Data.ProtoLens.field
+      (Data.ProtoLens.ProxySym ::
+         Data.ProtoLens.ProxySym "sendMarketingEmails")
+
+sendPushNotifications ::
+                      forall msg msg' .
+                        Data.ProtoLens.HasField "sendPushNotifications" msg msg' =>
+                        Lens.Family2.Lens msg msg'
+                          (Data.ProtoLens.Field "sendPushNotifications" msg)
+                          (Data.ProtoLens.Field "sendPushNotifications" msg')
+sendPushNotifications
+  = Data.ProtoLens.field
+      (Data.ProtoLens.ProxySym ::
+         Data.ProtoLens.ProxySym "sendPushNotifications")
diff --git a/src/Proto/POGOProtos/Data/Player/Currency.hs b/src/Proto/POGOProtos/Data/Player/Currency.hs
new file mode 100644
--- /dev/null
+++ b/src/Proto/POGOProtos/Data/Player/Currency.hs
@@ -0,0 +1,77 @@
+{- This file was auto-generated from POGOProtos/Data/Player/Currency.proto by the proto-lens-protoc program. -}
+{-# LANGUAGE ScopedTypeVariables, DataKinds, TypeFamilies,
+  MultiParamTypeClasses, FlexibleContexts, FlexibleInstances #-}
+{-# OPTIONS_GHC -fno-warn-unused-imports#-}
+module Proto.POGOProtos.Data.Player.Currency where
+import qualified Prelude
+import qualified Data.ProtoLens
+import qualified Data.ProtoLens.Message.Enum
+import qualified Lens.Family2
+import qualified Lens.Family2.Unchecked
+import qualified Data.Default.Class
+import qualified Data.Text
+import qualified Data.Int
+import qualified Data.Word
+import qualified Data.Map
+import qualified Data.ByteString
+
+data Currency = Currency{_Currency'name :: Data.Text.Text,
+                         _Currency'amount :: Data.Int.Int32}
+              deriving (Prelude.Show, Prelude.Eq)
+
+type instance Data.ProtoLens.Field "name" Currency = Data.Text.Text
+
+instance Data.ProtoLens.HasField "name" Currency Currency where
+        field _
+          = Lens.Family2.Unchecked.lens _Currency'name
+              (\ x__ y__ -> x__{_Currency'name = y__})
+
+type instance Data.ProtoLens.Field "amount" Currency =
+     Data.Int.Int32
+
+instance Data.ProtoLens.HasField "amount" Currency Currency where
+        field _
+          = Lens.Family2.Unchecked.lens _Currency'amount
+              (\ x__ y__ -> x__{_Currency'amount = y__})
+
+instance Data.Default.Class.Default Currency where
+        def
+          = Currency{_Currency'name = Data.ProtoLens.fieldDefault,
+                     _Currency'amount = Data.ProtoLens.fieldDefault}
+
+instance Data.ProtoLens.Message Currency where
+        descriptor
+          = let name__field_descriptor
+                  = Data.ProtoLens.FieldDescriptor "name"
+                      (Data.ProtoLens.StringField ::
+                         Data.ProtoLens.FieldTypeDescriptor Data.Text.Text)
+                      (Data.ProtoLens.PlainField Data.ProtoLens.Optional name)
+                amount__field_descriptor
+                  = Data.ProtoLens.FieldDescriptor "amount"
+                      (Data.ProtoLens.Int32Field ::
+                         Data.ProtoLens.FieldTypeDescriptor Data.Int.Int32)
+                      (Data.ProtoLens.PlainField Data.ProtoLens.Optional amount)
+              in
+              Data.ProtoLens.MessageDescriptor
+                (Data.Map.fromList
+                   [(Data.ProtoLens.Tag 1, name__field_descriptor),
+                    (Data.ProtoLens.Tag 2, amount__field_descriptor)])
+                (Data.Map.fromList
+                   [("name", name__field_descriptor),
+                    ("amount", amount__field_descriptor)])
+
+amount ::
+       forall msg msg' . Data.ProtoLens.HasField "amount" msg msg' =>
+         Lens.Family2.Lens msg msg' (Data.ProtoLens.Field "amount" msg)
+           (Data.ProtoLens.Field "amount" msg')
+amount
+  = Data.ProtoLens.field
+      (Data.ProtoLens.ProxySym :: Data.ProtoLens.ProxySym "amount")
+
+name ::
+     forall msg msg' . Data.ProtoLens.HasField "name" msg msg' =>
+       Lens.Family2.Lens msg msg' (Data.ProtoLens.Field "name" msg)
+         (Data.ProtoLens.Field "name" msg')
+name
+  = Data.ProtoLens.field
+      (Data.ProtoLens.ProxySym :: Data.ProtoLens.ProxySym "name")
diff --git a/src/Proto/POGOProtos/Data/Player/DailyBonus.hs b/src/Proto/POGOProtos/Data/Player/DailyBonus.hs
new file mode 100644
--- /dev/null
+++ b/src/Proto/POGOProtos/Data/Player/DailyBonus.hs
@@ -0,0 +1,104 @@
+{- This file was auto-generated from POGOProtos/Data/Player/DailyBonus.proto by the proto-lens-protoc program. -}
+{-# LANGUAGE ScopedTypeVariables, DataKinds, TypeFamilies,
+  MultiParamTypeClasses, FlexibleContexts, FlexibleInstances #-}
+{-# OPTIONS_GHC -fno-warn-unused-imports#-}
+module Proto.POGOProtos.Data.Player.DailyBonus where
+import qualified Prelude
+import qualified Data.ProtoLens
+import qualified Data.ProtoLens.Message.Enum
+import qualified Lens.Family2
+import qualified Lens.Family2.Unchecked
+import qualified Data.Default.Class
+import qualified Data.Text
+import qualified Data.Int
+import qualified Data.Word
+import qualified Data.Map
+import qualified Data.ByteString
+
+data DailyBonus = DailyBonus{_DailyBonus'nextCollectedTimestampMs
+                             :: Data.Int.Int64,
+                             _DailyBonus'nextDefenderBonusCollectTimestampMs :: Data.Int.Int64}
+                deriving (Prelude.Show, Prelude.Eq)
+
+type instance
+     Data.ProtoLens.Field "nextCollectedTimestampMs" DailyBonus =
+     Data.Int.Int64
+
+instance Data.ProtoLens.HasField "nextCollectedTimestampMs"
+         DailyBonus DailyBonus where
+        field _
+          = Lens.Family2.Unchecked.lens _DailyBonus'nextCollectedTimestampMs
+              (\ x__ y__ -> x__{_DailyBonus'nextCollectedTimestampMs = y__})
+
+type instance
+     Data.ProtoLens.Field "nextDefenderBonusCollectTimestampMs"
+       DailyBonus
+     = Data.Int.Int64
+
+instance Data.ProtoLens.HasField
+         "nextDefenderBonusCollectTimestampMs" DailyBonus DailyBonus where
+        field _
+          = Lens.Family2.Unchecked.lens
+              _DailyBonus'nextDefenderBonusCollectTimestampMs
+              (\ x__ y__ ->
+                 x__{_DailyBonus'nextDefenderBonusCollectTimestampMs = y__})
+
+instance Data.Default.Class.Default DailyBonus where
+        def
+          = DailyBonus{_DailyBonus'nextCollectedTimestampMs =
+                         Data.ProtoLens.fieldDefault,
+                       _DailyBonus'nextDefenderBonusCollectTimestampMs =
+                         Data.ProtoLens.fieldDefault}
+
+instance Data.ProtoLens.Message DailyBonus where
+        descriptor
+          = let nextCollectedTimestampMs__field_descriptor
+                  = Data.ProtoLens.FieldDescriptor "next_collected_timestamp_ms"
+                      (Data.ProtoLens.Int64Field ::
+                         Data.ProtoLens.FieldTypeDescriptor Data.Int.Int64)
+                      (Data.ProtoLens.PlainField Data.ProtoLens.Optional
+                         nextCollectedTimestampMs)
+                nextDefenderBonusCollectTimestampMs__field_descriptor
+                  = Data.ProtoLens.FieldDescriptor
+                      "next_defender_bonus_collect_timestamp_ms"
+                      (Data.ProtoLens.Int64Field ::
+                         Data.ProtoLens.FieldTypeDescriptor Data.Int.Int64)
+                      (Data.ProtoLens.PlainField Data.ProtoLens.Optional
+                         nextDefenderBonusCollectTimestampMs)
+              in
+              Data.ProtoLens.MessageDescriptor
+                (Data.Map.fromList
+                   [(Data.ProtoLens.Tag 1,
+                     nextCollectedTimestampMs__field_descriptor),
+                    (Data.ProtoLens.Tag 2,
+                     nextDefenderBonusCollectTimestampMs__field_descriptor)])
+                (Data.Map.fromList
+                   [("next_collected_timestamp_ms",
+                     nextCollectedTimestampMs__field_descriptor),
+                    ("next_defender_bonus_collect_timestamp_ms",
+                     nextDefenderBonusCollectTimestampMs__field_descriptor)])
+
+nextCollectedTimestampMs ::
+                         forall msg msg' .
+                           Data.ProtoLens.HasField "nextCollectedTimestampMs" msg msg' =>
+                           Lens.Family2.Lens msg msg'
+                             (Data.ProtoLens.Field "nextCollectedTimestampMs" msg)
+                             (Data.ProtoLens.Field "nextCollectedTimestampMs" msg')
+nextCollectedTimestampMs
+  = Data.ProtoLens.field
+      (Data.ProtoLens.ProxySym ::
+         Data.ProtoLens.ProxySym "nextCollectedTimestampMs")
+
+nextDefenderBonusCollectTimestampMs ::
+                                    forall msg msg' .
+                                      Data.ProtoLens.HasField "nextDefenderBonusCollectTimestampMs"
+                                        msg msg' =>
+                                      Lens.Family2.Lens msg msg'
+                                        (Data.ProtoLens.Field "nextDefenderBonusCollectTimestampMs"
+                                           msg)
+                                        (Data.ProtoLens.Field "nextDefenderBonusCollectTimestampMs"
+                                           msg')
+nextDefenderBonusCollectTimestampMs
+  = Data.ProtoLens.field
+      (Data.ProtoLens.ProxySym ::
+         Data.ProtoLens.ProxySym "nextDefenderBonusCollectTimestampMs")
diff --git a/src/Proto/POGOProtos/Data/Player/EquippedBadge.hs b/src/Proto/POGOProtos/Data/Player/EquippedBadge.hs
new file mode 100644
--- /dev/null
+++ b/src/Proto/POGOProtos/Data/Player/EquippedBadge.hs
@@ -0,0 +1,125 @@
+{- This file was auto-generated from POGOProtos/Data/Player/EquippedBadge.proto by the proto-lens-protoc program. -}
+{-# LANGUAGE ScopedTypeVariables, DataKinds, TypeFamilies,
+  MultiParamTypeClasses, FlexibleContexts, FlexibleInstances #-}
+{-# OPTIONS_GHC -fno-warn-unused-imports#-}
+module Proto.POGOProtos.Data.Player.EquippedBadge where
+import qualified Prelude
+import qualified Data.ProtoLens
+import qualified Data.ProtoLens.Message.Enum
+import qualified Lens.Family2
+import qualified Lens.Family2.Unchecked
+import qualified Data.Default.Class
+import qualified Data.Text
+import qualified Data.Int
+import qualified Data.Word
+import qualified Data.Map
+import qualified Data.ByteString
+import qualified Proto.POGOProtos.Enums.BadgeType
+
+data EquippedBadge = EquippedBadge{_EquippedBadge'badgeType ::
+                                   Proto.POGOProtos.Enums.BadgeType.BadgeType,
+                                   _EquippedBadge'level :: Data.Int.Int32,
+                                   _EquippedBadge'nextEquipChangeAllowedTimestampMs ::
+                                   Data.Int.Int64}
+                   deriving (Prelude.Show, Prelude.Eq)
+
+type instance Data.ProtoLens.Field "badgeType" EquippedBadge =
+     Proto.POGOProtos.Enums.BadgeType.BadgeType
+
+instance Data.ProtoLens.HasField "badgeType" EquippedBadge
+         EquippedBadge where
+        field _
+          = Lens.Family2.Unchecked.lens _EquippedBadge'badgeType
+              (\ x__ y__ -> x__{_EquippedBadge'badgeType = y__})
+
+type instance Data.ProtoLens.Field "level" EquippedBadge =
+     Data.Int.Int32
+
+instance Data.ProtoLens.HasField "level" EquippedBadge
+         EquippedBadge where
+        field _
+          = Lens.Family2.Unchecked.lens _EquippedBadge'level
+              (\ x__ y__ -> x__{_EquippedBadge'level = y__})
+
+type instance
+     Data.ProtoLens.Field "nextEquipChangeAllowedTimestampMs"
+       EquippedBadge
+     = Data.Int.Int64
+
+instance Data.ProtoLens.HasField
+         "nextEquipChangeAllowedTimestampMs" EquippedBadge EquippedBadge
+         where
+        field _
+          = Lens.Family2.Unchecked.lens
+              _EquippedBadge'nextEquipChangeAllowedTimestampMs
+              (\ x__ y__ ->
+                 x__{_EquippedBadge'nextEquipChangeAllowedTimestampMs = y__})
+
+instance Data.Default.Class.Default EquippedBadge where
+        def
+          = EquippedBadge{_EquippedBadge'badgeType = Data.Default.Class.def,
+                          _EquippedBadge'level = Data.ProtoLens.fieldDefault,
+                          _EquippedBadge'nextEquipChangeAllowedTimestampMs =
+                            Data.ProtoLens.fieldDefault}
+
+instance Data.ProtoLens.Message EquippedBadge where
+        descriptor
+          = let badgeType__field_descriptor
+                  = Data.ProtoLens.FieldDescriptor "badge_type"
+                      (Data.ProtoLens.EnumField ::
+                         Data.ProtoLens.FieldTypeDescriptor
+                           Proto.POGOProtos.Enums.BadgeType.BadgeType)
+                      (Data.ProtoLens.PlainField Data.ProtoLens.Optional badgeType)
+                level__field_descriptor
+                  = Data.ProtoLens.FieldDescriptor "level"
+                      (Data.ProtoLens.Int32Field ::
+                         Data.ProtoLens.FieldTypeDescriptor Data.Int.Int32)
+                      (Data.ProtoLens.PlainField Data.ProtoLens.Optional level)
+                nextEquipChangeAllowedTimestampMs__field_descriptor
+                  = Data.ProtoLens.FieldDescriptor
+                      "next_equip_change_allowed_timestamp_ms"
+                      (Data.ProtoLens.Int64Field ::
+                         Data.ProtoLens.FieldTypeDescriptor Data.Int.Int64)
+                      (Data.ProtoLens.PlainField Data.ProtoLens.Optional
+                         nextEquipChangeAllowedTimestampMs)
+              in
+              Data.ProtoLens.MessageDescriptor
+                (Data.Map.fromList
+                   [(Data.ProtoLens.Tag 1, badgeType__field_descriptor),
+                    (Data.ProtoLens.Tag 2, level__field_descriptor),
+                    (Data.ProtoLens.Tag 3,
+                     nextEquipChangeAllowedTimestampMs__field_descriptor)])
+                (Data.Map.fromList
+                   [("badge_type", badgeType__field_descriptor),
+                    ("level", level__field_descriptor),
+                    ("next_equip_change_allowed_timestamp_ms",
+                     nextEquipChangeAllowedTimestampMs__field_descriptor)])
+
+badgeType ::
+          forall msg msg' . Data.ProtoLens.HasField "badgeType" msg msg' =>
+            Lens.Family2.Lens msg msg' (Data.ProtoLens.Field "badgeType" msg)
+              (Data.ProtoLens.Field "badgeType" msg')
+badgeType
+  = Data.ProtoLens.field
+      (Data.ProtoLens.ProxySym :: Data.ProtoLens.ProxySym "badgeType")
+
+level ::
+      forall msg msg' . Data.ProtoLens.HasField "level" msg msg' =>
+        Lens.Family2.Lens msg msg' (Data.ProtoLens.Field "level" msg)
+          (Data.ProtoLens.Field "level" msg')
+level
+  = Data.ProtoLens.field
+      (Data.ProtoLens.ProxySym :: Data.ProtoLens.ProxySym "level")
+
+nextEquipChangeAllowedTimestampMs ::
+                                  forall msg msg' .
+                                    Data.ProtoLens.HasField "nextEquipChangeAllowedTimestampMs" msg
+                                      msg' =>
+                                    Lens.Family2.Lens msg msg'
+                                      (Data.ProtoLens.Field "nextEquipChangeAllowedTimestampMs" msg)
+                                      (Data.ProtoLens.Field "nextEquipChangeAllowedTimestampMs"
+                                         msg')
+nextEquipChangeAllowedTimestampMs
+  = Data.ProtoLens.field
+      (Data.ProtoLens.ProxySym ::
+         Data.ProtoLens.ProxySym "nextEquipChangeAllowedTimestampMs")
diff --git a/src/Proto/POGOProtos/Data/Player/PlayerAvatar.hs b/src/Proto/POGOProtos/Data/Player/PlayerAvatar.hs
new file mode 100644
--- /dev/null
+++ b/src/Proto/POGOProtos/Data/Player/PlayerAvatar.hs
@@ -0,0 +1,264 @@
+{- This file was auto-generated from POGOProtos/Data/Player/PlayerAvatar.proto by the proto-lens-protoc program. -}
+{-# LANGUAGE ScopedTypeVariables, DataKinds, TypeFamilies,
+  MultiParamTypeClasses, FlexibleContexts, FlexibleInstances #-}
+{-# OPTIONS_GHC -fno-warn-unused-imports#-}
+module Proto.POGOProtos.Data.Player.PlayerAvatar where
+import qualified Prelude
+import qualified Data.ProtoLens
+import qualified Data.ProtoLens.Message.Enum
+import qualified Lens.Family2
+import qualified Lens.Family2.Unchecked
+import qualified Data.Default.Class
+import qualified Data.Text
+import qualified Data.Int
+import qualified Data.Word
+import qualified Data.Map
+import qualified Data.ByteString
+import qualified Proto.POGOProtos.Enums.Gender
+
+data PlayerAvatar = PlayerAvatar{_PlayerAvatar'skin ::
+                                 Data.Int.Int32,
+                                 _PlayerAvatar'hair :: Data.Int.Int32,
+                                 _PlayerAvatar'shirt :: Data.Int.Int32,
+                                 _PlayerAvatar'pants :: Data.Int.Int32,
+                                 _PlayerAvatar'hat :: Data.Int.Int32,
+                                 _PlayerAvatar'shoes :: Data.Int.Int32,
+                                 _PlayerAvatar'gender :: Proto.POGOProtos.Enums.Gender.Gender,
+                                 _PlayerAvatar'eyes :: Data.Int.Int32,
+                                 _PlayerAvatar'backpack :: Data.Int.Int32}
+                  deriving (Prelude.Show, Prelude.Eq)
+
+type instance Data.ProtoLens.Field "skin" PlayerAvatar =
+     Data.Int.Int32
+
+instance Data.ProtoLens.HasField "skin" PlayerAvatar PlayerAvatar
+         where
+        field _
+          = Lens.Family2.Unchecked.lens _PlayerAvatar'skin
+              (\ x__ y__ -> x__{_PlayerAvatar'skin = y__})
+
+type instance Data.ProtoLens.Field "hair" PlayerAvatar =
+     Data.Int.Int32
+
+instance Data.ProtoLens.HasField "hair" PlayerAvatar PlayerAvatar
+         where
+        field _
+          = Lens.Family2.Unchecked.lens _PlayerAvatar'hair
+              (\ x__ y__ -> x__{_PlayerAvatar'hair = y__})
+
+type instance Data.ProtoLens.Field "shirt" PlayerAvatar =
+     Data.Int.Int32
+
+instance Data.ProtoLens.HasField "shirt" PlayerAvatar PlayerAvatar
+         where
+        field _
+          = Lens.Family2.Unchecked.lens _PlayerAvatar'shirt
+              (\ x__ y__ -> x__{_PlayerAvatar'shirt = y__})
+
+type instance Data.ProtoLens.Field "pants" PlayerAvatar =
+     Data.Int.Int32
+
+instance Data.ProtoLens.HasField "pants" PlayerAvatar PlayerAvatar
+         where
+        field _
+          = Lens.Family2.Unchecked.lens _PlayerAvatar'pants
+              (\ x__ y__ -> x__{_PlayerAvatar'pants = y__})
+
+type instance Data.ProtoLens.Field "hat" PlayerAvatar =
+     Data.Int.Int32
+
+instance Data.ProtoLens.HasField "hat" PlayerAvatar PlayerAvatar
+         where
+        field _
+          = Lens.Family2.Unchecked.lens _PlayerAvatar'hat
+              (\ x__ y__ -> x__{_PlayerAvatar'hat = y__})
+
+type instance Data.ProtoLens.Field "shoes" PlayerAvatar =
+     Data.Int.Int32
+
+instance Data.ProtoLens.HasField "shoes" PlayerAvatar PlayerAvatar
+         where
+        field _
+          = Lens.Family2.Unchecked.lens _PlayerAvatar'shoes
+              (\ x__ y__ -> x__{_PlayerAvatar'shoes = y__})
+
+type instance Data.ProtoLens.Field "gender" PlayerAvatar =
+     Proto.POGOProtos.Enums.Gender.Gender
+
+instance Data.ProtoLens.HasField "gender" PlayerAvatar PlayerAvatar
+         where
+        field _
+          = Lens.Family2.Unchecked.lens _PlayerAvatar'gender
+              (\ x__ y__ -> x__{_PlayerAvatar'gender = y__})
+
+type instance Data.ProtoLens.Field "eyes" PlayerAvatar =
+     Data.Int.Int32
+
+instance Data.ProtoLens.HasField "eyes" PlayerAvatar PlayerAvatar
+         where
+        field _
+          = Lens.Family2.Unchecked.lens _PlayerAvatar'eyes
+              (\ x__ y__ -> x__{_PlayerAvatar'eyes = y__})
+
+type instance Data.ProtoLens.Field "backpack" PlayerAvatar =
+     Data.Int.Int32
+
+instance Data.ProtoLens.HasField "backpack" PlayerAvatar
+         PlayerAvatar where
+        field _
+          = Lens.Family2.Unchecked.lens _PlayerAvatar'backpack
+              (\ x__ y__ -> x__{_PlayerAvatar'backpack = y__})
+
+instance Data.Default.Class.Default PlayerAvatar where
+        def
+          = PlayerAvatar{_PlayerAvatar'skin = Data.ProtoLens.fieldDefault,
+                         _PlayerAvatar'hair = Data.ProtoLens.fieldDefault,
+                         _PlayerAvatar'shirt = Data.ProtoLens.fieldDefault,
+                         _PlayerAvatar'pants = Data.ProtoLens.fieldDefault,
+                         _PlayerAvatar'hat = Data.ProtoLens.fieldDefault,
+                         _PlayerAvatar'shoes = Data.ProtoLens.fieldDefault,
+                         _PlayerAvatar'gender = Data.Default.Class.def,
+                         _PlayerAvatar'eyes = Data.ProtoLens.fieldDefault,
+                         _PlayerAvatar'backpack = Data.ProtoLens.fieldDefault}
+
+instance Data.ProtoLens.Message PlayerAvatar where
+        descriptor
+          = let skin__field_descriptor
+                  = Data.ProtoLens.FieldDescriptor "skin"
+                      (Data.ProtoLens.Int32Field ::
+                         Data.ProtoLens.FieldTypeDescriptor Data.Int.Int32)
+                      (Data.ProtoLens.PlainField Data.ProtoLens.Optional skin)
+                hair__field_descriptor
+                  = Data.ProtoLens.FieldDescriptor "hair"
+                      (Data.ProtoLens.Int32Field ::
+                         Data.ProtoLens.FieldTypeDescriptor Data.Int.Int32)
+                      (Data.ProtoLens.PlainField Data.ProtoLens.Optional hair)
+                shirt__field_descriptor
+                  = Data.ProtoLens.FieldDescriptor "shirt"
+                      (Data.ProtoLens.Int32Field ::
+                         Data.ProtoLens.FieldTypeDescriptor Data.Int.Int32)
+                      (Data.ProtoLens.PlainField Data.ProtoLens.Optional shirt)
+                pants__field_descriptor
+                  = Data.ProtoLens.FieldDescriptor "pants"
+                      (Data.ProtoLens.Int32Field ::
+                         Data.ProtoLens.FieldTypeDescriptor Data.Int.Int32)
+                      (Data.ProtoLens.PlainField Data.ProtoLens.Optional pants)
+                hat__field_descriptor
+                  = Data.ProtoLens.FieldDescriptor "hat"
+                      (Data.ProtoLens.Int32Field ::
+                         Data.ProtoLens.FieldTypeDescriptor Data.Int.Int32)
+                      (Data.ProtoLens.PlainField Data.ProtoLens.Optional hat)
+                shoes__field_descriptor
+                  = Data.ProtoLens.FieldDescriptor "shoes"
+                      (Data.ProtoLens.Int32Field ::
+                         Data.ProtoLens.FieldTypeDescriptor Data.Int.Int32)
+                      (Data.ProtoLens.PlainField Data.ProtoLens.Optional shoes)
+                gender__field_descriptor
+                  = Data.ProtoLens.FieldDescriptor "gender"
+                      (Data.ProtoLens.EnumField ::
+                         Data.ProtoLens.FieldTypeDescriptor
+                           Proto.POGOProtos.Enums.Gender.Gender)
+                      (Data.ProtoLens.PlainField Data.ProtoLens.Optional gender)
+                eyes__field_descriptor
+                  = Data.ProtoLens.FieldDescriptor "eyes"
+                      (Data.ProtoLens.Int32Field ::
+                         Data.ProtoLens.FieldTypeDescriptor Data.Int.Int32)
+                      (Data.ProtoLens.PlainField Data.ProtoLens.Optional eyes)
+                backpack__field_descriptor
+                  = Data.ProtoLens.FieldDescriptor "backpack"
+                      (Data.ProtoLens.Int32Field ::
+                         Data.ProtoLens.FieldTypeDescriptor Data.Int.Int32)
+                      (Data.ProtoLens.PlainField Data.ProtoLens.Optional backpack)
+              in
+              Data.ProtoLens.MessageDescriptor
+                (Data.Map.fromList
+                   [(Data.ProtoLens.Tag 2, skin__field_descriptor),
+                    (Data.ProtoLens.Tag 3, hair__field_descriptor),
+                    (Data.ProtoLens.Tag 4, shirt__field_descriptor),
+                    (Data.ProtoLens.Tag 5, pants__field_descriptor),
+                    (Data.ProtoLens.Tag 6, hat__field_descriptor),
+                    (Data.ProtoLens.Tag 7, shoes__field_descriptor),
+                    (Data.ProtoLens.Tag 8, gender__field_descriptor),
+                    (Data.ProtoLens.Tag 9, eyes__field_descriptor),
+                    (Data.ProtoLens.Tag 10, backpack__field_descriptor)])
+                (Data.Map.fromList
+                   [("skin", skin__field_descriptor),
+                    ("hair", hair__field_descriptor),
+                    ("shirt", shirt__field_descriptor),
+                    ("pants", pants__field_descriptor), ("hat", hat__field_descriptor),
+                    ("shoes", shoes__field_descriptor),
+                    ("gender", gender__field_descriptor),
+                    ("eyes", eyes__field_descriptor),
+                    ("backpack", backpack__field_descriptor)])
+
+backpack ::
+         forall msg msg' . Data.ProtoLens.HasField "backpack" msg msg' =>
+           Lens.Family2.Lens msg msg' (Data.ProtoLens.Field "backpack" msg)
+             (Data.ProtoLens.Field "backpack" msg')
+backpack
+  = Data.ProtoLens.field
+      (Data.ProtoLens.ProxySym :: Data.ProtoLens.ProxySym "backpack")
+
+eyes ::
+     forall msg msg' . Data.ProtoLens.HasField "eyes" msg msg' =>
+       Lens.Family2.Lens msg msg' (Data.ProtoLens.Field "eyes" msg)
+         (Data.ProtoLens.Field "eyes" msg')
+eyes
+  = Data.ProtoLens.field
+      (Data.ProtoLens.ProxySym :: Data.ProtoLens.ProxySym "eyes")
+
+gender ::
+       forall msg msg' . Data.ProtoLens.HasField "gender" msg msg' =>
+         Lens.Family2.Lens msg msg' (Data.ProtoLens.Field "gender" msg)
+           (Data.ProtoLens.Field "gender" msg')
+gender
+  = Data.ProtoLens.field
+      (Data.ProtoLens.ProxySym :: Data.ProtoLens.ProxySym "gender")
+
+hair ::
+     forall msg msg' . Data.ProtoLens.HasField "hair" msg msg' =>
+       Lens.Family2.Lens msg msg' (Data.ProtoLens.Field "hair" msg)
+         (Data.ProtoLens.Field "hair" msg')
+hair
+  = Data.ProtoLens.field
+      (Data.ProtoLens.ProxySym :: Data.ProtoLens.ProxySym "hair")
+
+hat ::
+    forall msg msg' . Data.ProtoLens.HasField "hat" msg msg' =>
+      Lens.Family2.Lens msg msg' (Data.ProtoLens.Field "hat" msg)
+        (Data.ProtoLens.Field "hat" msg')
+hat
+  = Data.ProtoLens.field
+      (Data.ProtoLens.ProxySym :: Data.ProtoLens.ProxySym "hat")
+
+pants ::
+      forall msg msg' . Data.ProtoLens.HasField "pants" msg msg' =>
+        Lens.Family2.Lens msg msg' (Data.ProtoLens.Field "pants" msg)
+          (Data.ProtoLens.Field "pants" msg')
+pants
+  = Data.ProtoLens.field
+      (Data.ProtoLens.ProxySym :: Data.ProtoLens.ProxySym "pants")
+
+shirt ::
+      forall msg msg' . Data.ProtoLens.HasField "shirt" msg msg' =>
+        Lens.Family2.Lens msg msg' (Data.ProtoLens.Field "shirt" msg)
+          (Data.ProtoLens.Field "shirt" msg')
+shirt
+  = Data.ProtoLens.field
+      (Data.ProtoLens.ProxySym :: Data.ProtoLens.ProxySym "shirt")
+
+shoes ::
+      forall msg msg' . Data.ProtoLens.HasField "shoes" msg msg' =>
+        Lens.Family2.Lens msg msg' (Data.ProtoLens.Field "shoes" msg)
+          (Data.ProtoLens.Field "shoes" msg')
+shoes
+  = Data.ProtoLens.field
+      (Data.ProtoLens.ProxySym :: Data.ProtoLens.ProxySym "shoes")
+
+skin ::
+     forall msg msg' . Data.ProtoLens.HasField "skin" msg msg' =>
+       Lens.Family2.Lens msg msg' (Data.ProtoLens.Field "skin" msg)
+         (Data.ProtoLens.Field "skin" msg')
+skin
+  = Data.ProtoLens.field
+      (Data.ProtoLens.ProxySym :: Data.ProtoLens.ProxySym "skin")
diff --git a/src/Proto/POGOProtos/Data/Player/PlayerCamera.hs b/src/Proto/POGOProtos/Data/Player/PlayerCamera.hs
new file mode 100644
--- /dev/null
+++ b/src/Proto/POGOProtos/Data/Player/PlayerCamera.hs
@@ -0,0 +1,59 @@
+{- This file was auto-generated from POGOProtos/Data/Player/PlayerCamera.proto by the proto-lens-protoc program. -}
+{-# LANGUAGE ScopedTypeVariables, DataKinds, TypeFamilies,
+  MultiParamTypeClasses, FlexibleContexts, FlexibleInstances #-}
+{-# OPTIONS_GHC -fno-warn-unused-imports#-}
+module Proto.POGOProtos.Data.Player.PlayerCamera where
+import qualified Prelude
+import qualified Data.ProtoLens
+import qualified Data.ProtoLens.Message.Enum
+import qualified Lens.Family2
+import qualified Lens.Family2.Unchecked
+import qualified Data.Default.Class
+import qualified Data.Text
+import qualified Data.Int
+import qualified Data.Word
+import qualified Data.Map
+import qualified Data.ByteString
+
+data PlayerCamera = PlayerCamera{_PlayerCamera'isDefaultCamera ::
+                                 Prelude.Bool}
+                  deriving (Prelude.Show, Prelude.Eq)
+
+type instance Data.ProtoLens.Field "isDefaultCamera" PlayerCamera =
+     Prelude.Bool
+
+instance Data.ProtoLens.HasField "isDefaultCamera" PlayerCamera
+         PlayerCamera where
+        field _
+          = Lens.Family2.Unchecked.lens _PlayerCamera'isDefaultCamera
+              (\ x__ y__ -> x__{_PlayerCamera'isDefaultCamera = y__})
+
+instance Data.Default.Class.Default PlayerCamera where
+        def
+          = PlayerCamera{_PlayerCamera'isDefaultCamera =
+                           Data.ProtoLens.fieldDefault}
+
+instance Data.ProtoLens.Message PlayerCamera where
+        descriptor
+          = let isDefaultCamera__field_descriptor
+                  = Data.ProtoLens.FieldDescriptor "is_default_camera"
+                      (Data.ProtoLens.BoolField ::
+                         Data.ProtoLens.FieldTypeDescriptor Prelude.Bool)
+                      (Data.ProtoLens.PlainField Data.ProtoLens.Optional isDefaultCamera)
+              in
+              Data.ProtoLens.MessageDescriptor
+                (Data.Map.fromList
+                   [(Data.ProtoLens.Tag 1, isDefaultCamera__field_descriptor)])
+                (Data.Map.fromList
+                   [("is_default_camera", isDefaultCamera__field_descriptor)])
+
+isDefaultCamera ::
+                forall msg msg' .
+                  Data.ProtoLens.HasField "isDefaultCamera" msg msg' =>
+                  Lens.Family2.Lens msg msg'
+                    (Data.ProtoLens.Field "isDefaultCamera" msg)
+                    (Data.ProtoLens.Field "isDefaultCamera" msg')
+isDefaultCamera
+  = Data.ProtoLens.field
+      (Data.ProtoLens.ProxySym ::
+         Data.ProtoLens.ProxySym "isDefaultCamera")
diff --git a/src/Proto/POGOProtos/Data/Player/PlayerCurrency.hs b/src/Proto/POGOProtos/Data/Player/PlayerCurrency.hs
new file mode 100644
--- /dev/null
+++ b/src/Proto/POGOProtos/Data/Player/PlayerCurrency.hs
@@ -0,0 +1,55 @@
+{- This file was auto-generated from POGOProtos/Data/Player/PlayerCurrency.proto by the proto-lens-protoc program. -}
+{-# LANGUAGE ScopedTypeVariables, DataKinds, TypeFamilies,
+  MultiParamTypeClasses, FlexibleContexts, FlexibleInstances #-}
+{-# OPTIONS_GHC -fno-warn-unused-imports#-}
+module Proto.POGOProtos.Data.Player.PlayerCurrency where
+import qualified Prelude
+import qualified Data.ProtoLens
+import qualified Data.ProtoLens.Message.Enum
+import qualified Lens.Family2
+import qualified Lens.Family2.Unchecked
+import qualified Data.Default.Class
+import qualified Data.Text
+import qualified Data.Int
+import qualified Data.Word
+import qualified Data.Map
+import qualified Data.ByteString
+
+data PlayerCurrency = PlayerCurrency{_PlayerCurrency'gems ::
+                                     Data.Int.Int32}
+                    deriving (Prelude.Show, Prelude.Eq)
+
+type instance Data.ProtoLens.Field "gems" PlayerCurrency =
+     Data.Int.Int32
+
+instance Data.ProtoLens.HasField "gems" PlayerCurrency
+         PlayerCurrency where
+        field _
+          = Lens.Family2.Unchecked.lens _PlayerCurrency'gems
+              (\ x__ y__ -> x__{_PlayerCurrency'gems = y__})
+
+instance Data.Default.Class.Default PlayerCurrency where
+        def
+          = PlayerCurrency{_PlayerCurrency'gems =
+                             Data.ProtoLens.fieldDefault}
+
+instance Data.ProtoLens.Message PlayerCurrency where
+        descriptor
+          = let gems__field_descriptor
+                  = Data.ProtoLens.FieldDescriptor "gems"
+                      (Data.ProtoLens.Int32Field ::
+                         Data.ProtoLens.FieldTypeDescriptor Data.Int.Int32)
+                      (Data.ProtoLens.PlainField Data.ProtoLens.Optional gems)
+              in
+              Data.ProtoLens.MessageDescriptor
+                (Data.Map.fromList
+                   [(Data.ProtoLens.Tag 1, gems__field_descriptor)])
+                (Data.Map.fromList [("gems", gems__field_descriptor)])
+
+gems ::
+     forall msg msg' . Data.ProtoLens.HasField "gems" msg msg' =>
+       Lens.Family2.Lens msg msg' (Data.ProtoLens.Field "gems" msg)
+         (Data.ProtoLens.Field "gems" msg')
+gems
+  = Data.ProtoLens.field
+      (Data.ProtoLens.ProxySym :: Data.ProtoLens.ProxySym "gems")
diff --git a/src/Proto/POGOProtos/Data/Player/PlayerPublicProfile.hs b/src/Proto/POGOProtos/Data/Player/PlayerPublicProfile.hs
new file mode 100644
--- /dev/null
+++ b/src/Proto/POGOProtos/Data/Player/PlayerPublicProfile.hs
@@ -0,0 +1,133 @@
+{- This file was auto-generated from POGOProtos/Data/Player/PlayerPublicProfile.proto by the proto-lens-protoc program. -}
+{-# LANGUAGE ScopedTypeVariables, DataKinds, TypeFamilies,
+  MultiParamTypeClasses, FlexibleContexts, FlexibleInstances #-}
+{-# OPTIONS_GHC -fno-warn-unused-imports#-}
+module Proto.POGOProtos.Data.Player.PlayerPublicProfile where
+import qualified Prelude
+import qualified Data.ProtoLens
+import qualified Data.ProtoLens.Message.Enum
+import qualified Lens.Family2
+import qualified Lens.Family2.Unchecked
+import qualified Data.Default.Class
+import qualified Data.Text
+import qualified Data.Int
+import qualified Data.Word
+import qualified Data.Map
+import qualified Data.ByteString
+import qualified Proto.POGOProtos.Data.Player.PlayerAvatar
+
+data PlayerPublicProfile = PlayerPublicProfile{_PlayerPublicProfile'name
+                                               :: Data.Text.Text,
+                                               _PlayerPublicProfile'level :: Data.Int.Int32,
+                                               _PlayerPublicProfile'avatar ::
+                                               Prelude.Maybe
+                                                 Proto.POGOProtos.Data.Player.PlayerAvatar.PlayerAvatar}
+                         deriving (Prelude.Show, Prelude.Eq)
+
+type instance Data.ProtoLens.Field "name" PlayerPublicProfile =
+     Data.Text.Text
+
+instance Data.ProtoLens.HasField "name" PlayerPublicProfile
+         PlayerPublicProfile where
+        field _
+          = Lens.Family2.Unchecked.lens _PlayerPublicProfile'name
+              (\ x__ y__ -> x__{_PlayerPublicProfile'name = y__})
+
+type instance Data.ProtoLens.Field "level" PlayerPublicProfile =
+     Data.Int.Int32
+
+instance Data.ProtoLens.HasField "level" PlayerPublicProfile
+         PlayerPublicProfile where
+        field _
+          = Lens.Family2.Unchecked.lens _PlayerPublicProfile'level
+              (\ x__ y__ -> x__{_PlayerPublicProfile'level = y__})
+
+type instance Data.ProtoLens.Field "avatar" PlayerPublicProfile =
+     Proto.POGOProtos.Data.Player.PlayerAvatar.PlayerAvatar
+
+instance Data.ProtoLens.HasField "avatar" PlayerPublicProfile
+         PlayerPublicProfile where
+        field _
+          = (Prelude..) maybe'avatar
+              (Data.ProtoLens.maybeLens Data.Default.Class.def)
+
+type instance
+     Data.ProtoLens.Field "maybe'avatar" PlayerPublicProfile =
+     Prelude.Maybe
+       Proto.POGOProtos.Data.Player.PlayerAvatar.PlayerAvatar
+
+instance Data.ProtoLens.HasField "maybe'avatar" PlayerPublicProfile
+         PlayerPublicProfile where
+        field _
+          = Lens.Family2.Unchecked.lens _PlayerPublicProfile'avatar
+              (\ x__ y__ -> x__{_PlayerPublicProfile'avatar = y__})
+
+instance Data.Default.Class.Default PlayerPublicProfile where
+        def
+          = PlayerPublicProfile{_PlayerPublicProfile'name =
+                                  Data.ProtoLens.fieldDefault,
+                                _PlayerPublicProfile'level = Data.ProtoLens.fieldDefault,
+                                _PlayerPublicProfile'avatar = Prelude.Nothing}
+
+instance Data.ProtoLens.Message PlayerPublicProfile where
+        descriptor
+          = let name__field_descriptor
+                  = Data.ProtoLens.FieldDescriptor "name"
+                      (Data.ProtoLens.StringField ::
+                         Data.ProtoLens.FieldTypeDescriptor Data.Text.Text)
+                      (Data.ProtoLens.PlainField Data.ProtoLens.Optional name)
+                level__field_descriptor
+                  = Data.ProtoLens.FieldDescriptor "level"
+                      (Data.ProtoLens.Int32Field ::
+                         Data.ProtoLens.FieldTypeDescriptor Data.Int.Int32)
+                      (Data.ProtoLens.PlainField Data.ProtoLens.Optional level)
+                avatar__field_descriptor
+                  = Data.ProtoLens.FieldDescriptor "avatar"
+                      (Data.ProtoLens.MessageField ::
+                         Data.ProtoLens.FieldTypeDescriptor
+                           Proto.POGOProtos.Data.Player.PlayerAvatar.PlayerAvatar)
+                      (Data.ProtoLens.OptionalField maybe'avatar)
+              in
+              Data.ProtoLens.MessageDescriptor
+                (Data.Map.fromList
+                   [(Data.ProtoLens.Tag 1, name__field_descriptor),
+                    (Data.ProtoLens.Tag 2, level__field_descriptor),
+                    (Data.ProtoLens.Tag 3, avatar__field_descriptor)])
+                (Data.Map.fromList
+                   [("name", name__field_descriptor),
+                    ("level", level__field_descriptor),
+                    ("avatar", avatar__field_descriptor)])
+
+avatar ::
+       forall msg msg' . Data.ProtoLens.HasField "avatar" msg msg' =>
+         Lens.Family2.Lens msg msg' (Data.ProtoLens.Field "avatar" msg)
+           (Data.ProtoLens.Field "avatar" msg')
+avatar
+  = Data.ProtoLens.field
+      (Data.ProtoLens.ProxySym :: Data.ProtoLens.ProxySym "avatar")
+
+level ::
+      forall msg msg' . Data.ProtoLens.HasField "level" msg msg' =>
+        Lens.Family2.Lens msg msg' (Data.ProtoLens.Field "level" msg)
+          (Data.ProtoLens.Field "level" msg')
+level
+  = Data.ProtoLens.field
+      (Data.ProtoLens.ProxySym :: Data.ProtoLens.ProxySym "level")
+
+maybe'avatar ::
+             forall msg msg' .
+               Data.ProtoLens.HasField "maybe'avatar" msg msg' =>
+               Lens.Family2.Lens msg msg'
+                 (Data.ProtoLens.Field "maybe'avatar" msg)
+                 (Data.ProtoLens.Field "maybe'avatar" msg')
+maybe'avatar
+  = Data.ProtoLens.field
+      (Data.ProtoLens.ProxySym :: Data.ProtoLens.ProxySym "maybe'avatar")
+
+name ::
+     forall msg msg' . Data.ProtoLens.HasField "name" msg msg' =>
+       Lens.Family2.Lens msg msg' (Data.ProtoLens.Field "name" msg)
+         (Data.ProtoLens.Field "name" msg')
+name
+  = Data.ProtoLens.field
+      (Data.ProtoLens.ProxySym :: Data.ProtoLens.ProxySym "name")
diff --git a/src/Proto/POGOProtos/Data/Player/PlayerStats.hs b/src/Proto/POGOProtos/Data/Player/PlayerStats.hs
new file mode 100644
--- /dev/null
+++ b/src/Proto/POGOProtos/Data/Player/PlayerStats.hs
@@ -0,0 +1,693 @@
+{- This file was auto-generated from POGOProtos/Data/Player/PlayerStats.proto by the proto-lens-protoc program. -}
+{-# LANGUAGE ScopedTypeVariables, DataKinds, TypeFamilies,
+  MultiParamTypeClasses, FlexibleContexts, FlexibleInstances #-}
+{-# OPTIONS_GHC -fno-warn-unused-imports#-}
+module Proto.POGOProtos.Data.Player.PlayerStats where
+import qualified Prelude
+import qualified Data.ProtoLens
+import qualified Data.ProtoLens.Message.Enum
+import qualified Lens.Family2
+import qualified Lens.Family2.Unchecked
+import qualified Data.Default.Class
+import qualified Data.Text
+import qualified Data.Int
+import qualified Data.Word
+import qualified Data.Map
+import qualified Data.ByteString
+
+data PlayerStats = PlayerStats{_PlayerStats'level ::
+                               Data.Int.Int32,
+                               _PlayerStats'experience :: Data.Int.Int64,
+                               _PlayerStats'prevLevelXp :: Data.Int.Int64,
+                               _PlayerStats'nextLevelXp :: Data.Int.Int64,
+                               _PlayerStats'kmWalked :: Prelude.Float,
+                               _PlayerStats'pokemonsEncountered :: Data.Int.Int32,
+                               _PlayerStats'uniquePokedexEntries :: Data.Int.Int32,
+                               _PlayerStats'pokemonsCaptured :: Data.Int.Int32,
+                               _PlayerStats'evolutions :: Data.Int.Int32,
+                               _PlayerStats'pokeStopVisits :: Data.Int.Int32,
+                               _PlayerStats'pokeballsThrown :: Data.Int.Int32,
+                               _PlayerStats'eggsHatched :: Data.Int.Int32,
+                               _PlayerStats'bigMagikarpCaught :: Data.Int.Int32,
+                               _PlayerStats'battleAttackWon :: Data.Int.Int32,
+                               _PlayerStats'battleAttackTotal :: Data.Int.Int32,
+                               _PlayerStats'battleDefendedWon :: Data.Int.Int32,
+                               _PlayerStats'battleTrainingWon :: Data.Int.Int32,
+                               _PlayerStats'battleTrainingTotal :: Data.Int.Int32,
+                               _PlayerStats'prestigeRaisedTotal :: Data.Int.Int32,
+                               _PlayerStats'prestigeDroppedTotal :: Data.Int.Int32,
+                               _PlayerStats'pokemonDeployed :: Data.Int.Int32,
+                               _PlayerStats'pokemonCaughtByType :: Data.ByteString.ByteString,
+                               _PlayerStats'smallRattataCaught :: Data.Int.Int32}
+                 deriving (Prelude.Show, Prelude.Eq)
+
+type instance Data.ProtoLens.Field "level" PlayerStats =
+     Data.Int.Int32
+
+instance Data.ProtoLens.HasField "level" PlayerStats PlayerStats
+         where
+        field _
+          = Lens.Family2.Unchecked.lens _PlayerStats'level
+              (\ x__ y__ -> x__{_PlayerStats'level = y__})
+
+type instance Data.ProtoLens.Field "experience" PlayerStats =
+     Data.Int.Int64
+
+instance Data.ProtoLens.HasField "experience" PlayerStats
+         PlayerStats where
+        field _
+          = Lens.Family2.Unchecked.lens _PlayerStats'experience
+              (\ x__ y__ -> x__{_PlayerStats'experience = y__})
+
+type instance Data.ProtoLens.Field "prevLevelXp" PlayerStats =
+     Data.Int.Int64
+
+instance Data.ProtoLens.HasField "prevLevelXp" PlayerStats
+         PlayerStats where
+        field _
+          = Lens.Family2.Unchecked.lens _PlayerStats'prevLevelXp
+              (\ x__ y__ -> x__{_PlayerStats'prevLevelXp = y__})
+
+type instance Data.ProtoLens.Field "nextLevelXp" PlayerStats =
+     Data.Int.Int64
+
+instance Data.ProtoLens.HasField "nextLevelXp" PlayerStats
+         PlayerStats where
+        field _
+          = Lens.Family2.Unchecked.lens _PlayerStats'nextLevelXp
+              (\ x__ y__ -> x__{_PlayerStats'nextLevelXp = y__})
+
+type instance Data.ProtoLens.Field "kmWalked" PlayerStats =
+     Prelude.Float
+
+instance Data.ProtoLens.HasField "kmWalked" PlayerStats PlayerStats
+         where
+        field _
+          = Lens.Family2.Unchecked.lens _PlayerStats'kmWalked
+              (\ x__ y__ -> x__{_PlayerStats'kmWalked = y__})
+
+type instance
+     Data.ProtoLens.Field "pokemonsEncountered" PlayerStats =
+     Data.Int.Int32
+
+instance Data.ProtoLens.HasField "pokemonsEncountered" PlayerStats
+         PlayerStats where
+        field _
+          = Lens.Family2.Unchecked.lens _PlayerStats'pokemonsEncountered
+              (\ x__ y__ -> x__{_PlayerStats'pokemonsEncountered = y__})
+
+type instance
+     Data.ProtoLens.Field "uniquePokedexEntries" PlayerStats =
+     Data.Int.Int32
+
+instance Data.ProtoLens.HasField "uniquePokedexEntries" PlayerStats
+         PlayerStats where
+        field _
+          = Lens.Family2.Unchecked.lens _PlayerStats'uniquePokedexEntries
+              (\ x__ y__ -> x__{_PlayerStats'uniquePokedexEntries = y__})
+
+type instance Data.ProtoLens.Field "pokemonsCaptured" PlayerStats =
+     Data.Int.Int32
+
+instance Data.ProtoLens.HasField "pokemonsCaptured" PlayerStats
+         PlayerStats where
+        field _
+          = Lens.Family2.Unchecked.lens _PlayerStats'pokemonsCaptured
+              (\ x__ y__ -> x__{_PlayerStats'pokemonsCaptured = y__})
+
+type instance Data.ProtoLens.Field "evolutions" PlayerStats =
+     Data.Int.Int32
+
+instance Data.ProtoLens.HasField "evolutions" PlayerStats
+         PlayerStats where
+        field _
+          = Lens.Family2.Unchecked.lens _PlayerStats'evolutions
+              (\ x__ y__ -> x__{_PlayerStats'evolutions = y__})
+
+type instance Data.ProtoLens.Field "pokeStopVisits" PlayerStats =
+     Data.Int.Int32
+
+instance Data.ProtoLens.HasField "pokeStopVisits" PlayerStats
+         PlayerStats where
+        field _
+          = Lens.Family2.Unchecked.lens _PlayerStats'pokeStopVisits
+              (\ x__ y__ -> x__{_PlayerStats'pokeStopVisits = y__})
+
+type instance Data.ProtoLens.Field "pokeballsThrown" PlayerStats =
+     Data.Int.Int32
+
+instance Data.ProtoLens.HasField "pokeballsThrown" PlayerStats
+         PlayerStats where
+        field _
+          = Lens.Family2.Unchecked.lens _PlayerStats'pokeballsThrown
+              (\ x__ y__ -> x__{_PlayerStats'pokeballsThrown = y__})
+
+type instance Data.ProtoLens.Field "eggsHatched" PlayerStats =
+     Data.Int.Int32
+
+instance Data.ProtoLens.HasField "eggsHatched" PlayerStats
+         PlayerStats where
+        field _
+          = Lens.Family2.Unchecked.lens _PlayerStats'eggsHatched
+              (\ x__ y__ -> x__{_PlayerStats'eggsHatched = y__})
+
+type instance Data.ProtoLens.Field "bigMagikarpCaught" PlayerStats
+     = Data.Int.Int32
+
+instance Data.ProtoLens.HasField "bigMagikarpCaught" PlayerStats
+         PlayerStats where
+        field _
+          = Lens.Family2.Unchecked.lens _PlayerStats'bigMagikarpCaught
+              (\ x__ y__ -> x__{_PlayerStats'bigMagikarpCaught = y__})
+
+type instance Data.ProtoLens.Field "battleAttackWon" PlayerStats =
+     Data.Int.Int32
+
+instance Data.ProtoLens.HasField "battleAttackWon" PlayerStats
+         PlayerStats where
+        field _
+          = Lens.Family2.Unchecked.lens _PlayerStats'battleAttackWon
+              (\ x__ y__ -> x__{_PlayerStats'battleAttackWon = y__})
+
+type instance Data.ProtoLens.Field "battleAttackTotal" PlayerStats
+     = Data.Int.Int32
+
+instance Data.ProtoLens.HasField "battleAttackTotal" PlayerStats
+         PlayerStats where
+        field _
+          = Lens.Family2.Unchecked.lens _PlayerStats'battleAttackTotal
+              (\ x__ y__ -> x__{_PlayerStats'battleAttackTotal = y__})
+
+type instance Data.ProtoLens.Field "battleDefendedWon" PlayerStats
+     = Data.Int.Int32
+
+instance Data.ProtoLens.HasField "battleDefendedWon" PlayerStats
+         PlayerStats where
+        field _
+          = Lens.Family2.Unchecked.lens _PlayerStats'battleDefendedWon
+              (\ x__ y__ -> x__{_PlayerStats'battleDefendedWon = y__})
+
+type instance Data.ProtoLens.Field "battleTrainingWon" PlayerStats
+     = Data.Int.Int32
+
+instance Data.ProtoLens.HasField "battleTrainingWon" PlayerStats
+         PlayerStats where
+        field _
+          = Lens.Family2.Unchecked.lens _PlayerStats'battleTrainingWon
+              (\ x__ y__ -> x__{_PlayerStats'battleTrainingWon = y__})
+
+type instance
+     Data.ProtoLens.Field "battleTrainingTotal" PlayerStats =
+     Data.Int.Int32
+
+instance Data.ProtoLens.HasField "battleTrainingTotal" PlayerStats
+         PlayerStats where
+        field _
+          = Lens.Family2.Unchecked.lens _PlayerStats'battleTrainingTotal
+              (\ x__ y__ -> x__{_PlayerStats'battleTrainingTotal = y__})
+
+type instance
+     Data.ProtoLens.Field "prestigeRaisedTotal" PlayerStats =
+     Data.Int.Int32
+
+instance Data.ProtoLens.HasField "prestigeRaisedTotal" PlayerStats
+         PlayerStats where
+        field _
+          = Lens.Family2.Unchecked.lens _PlayerStats'prestigeRaisedTotal
+              (\ x__ y__ -> x__{_PlayerStats'prestigeRaisedTotal = y__})
+
+type instance
+     Data.ProtoLens.Field "prestigeDroppedTotal" PlayerStats =
+     Data.Int.Int32
+
+instance Data.ProtoLens.HasField "prestigeDroppedTotal" PlayerStats
+         PlayerStats where
+        field _
+          = Lens.Family2.Unchecked.lens _PlayerStats'prestigeDroppedTotal
+              (\ x__ y__ -> x__{_PlayerStats'prestigeDroppedTotal = y__})
+
+type instance Data.ProtoLens.Field "pokemonDeployed" PlayerStats =
+     Data.Int.Int32
+
+instance Data.ProtoLens.HasField "pokemonDeployed" PlayerStats
+         PlayerStats where
+        field _
+          = Lens.Family2.Unchecked.lens _PlayerStats'pokemonDeployed
+              (\ x__ y__ -> x__{_PlayerStats'pokemonDeployed = y__})
+
+type instance
+     Data.ProtoLens.Field "pokemonCaughtByType" PlayerStats =
+     Data.ByteString.ByteString
+
+instance Data.ProtoLens.HasField "pokemonCaughtByType" PlayerStats
+         PlayerStats where
+        field _
+          = Lens.Family2.Unchecked.lens _PlayerStats'pokemonCaughtByType
+              (\ x__ y__ -> x__{_PlayerStats'pokemonCaughtByType = y__})
+
+type instance Data.ProtoLens.Field "smallRattataCaught" PlayerStats
+     = Data.Int.Int32
+
+instance Data.ProtoLens.HasField "smallRattataCaught" PlayerStats
+         PlayerStats where
+        field _
+          = Lens.Family2.Unchecked.lens _PlayerStats'smallRattataCaught
+              (\ x__ y__ -> x__{_PlayerStats'smallRattataCaught = y__})
+
+instance Data.Default.Class.Default PlayerStats where
+        def
+          = PlayerStats{_PlayerStats'level = Data.ProtoLens.fieldDefault,
+                        _PlayerStats'experience = Data.ProtoLens.fieldDefault,
+                        _PlayerStats'prevLevelXp = Data.ProtoLens.fieldDefault,
+                        _PlayerStats'nextLevelXp = Data.ProtoLens.fieldDefault,
+                        _PlayerStats'kmWalked = Data.ProtoLens.fieldDefault,
+                        _PlayerStats'pokemonsEncountered = Data.ProtoLens.fieldDefault,
+                        _PlayerStats'uniquePokedexEntries = Data.ProtoLens.fieldDefault,
+                        _PlayerStats'pokemonsCaptured = Data.ProtoLens.fieldDefault,
+                        _PlayerStats'evolutions = Data.ProtoLens.fieldDefault,
+                        _PlayerStats'pokeStopVisits = Data.ProtoLens.fieldDefault,
+                        _PlayerStats'pokeballsThrown = Data.ProtoLens.fieldDefault,
+                        _PlayerStats'eggsHatched = Data.ProtoLens.fieldDefault,
+                        _PlayerStats'bigMagikarpCaught = Data.ProtoLens.fieldDefault,
+                        _PlayerStats'battleAttackWon = Data.ProtoLens.fieldDefault,
+                        _PlayerStats'battleAttackTotal = Data.ProtoLens.fieldDefault,
+                        _PlayerStats'battleDefendedWon = Data.ProtoLens.fieldDefault,
+                        _PlayerStats'battleTrainingWon = Data.ProtoLens.fieldDefault,
+                        _PlayerStats'battleTrainingTotal = Data.ProtoLens.fieldDefault,
+                        _PlayerStats'prestigeRaisedTotal = Data.ProtoLens.fieldDefault,
+                        _PlayerStats'prestigeDroppedTotal = Data.ProtoLens.fieldDefault,
+                        _PlayerStats'pokemonDeployed = Data.ProtoLens.fieldDefault,
+                        _PlayerStats'pokemonCaughtByType = Data.ProtoLens.fieldDefault,
+                        _PlayerStats'smallRattataCaught = Data.ProtoLens.fieldDefault}
+
+instance Data.ProtoLens.Message PlayerStats where
+        descriptor
+          = let level__field_descriptor
+                  = Data.ProtoLens.FieldDescriptor "level"
+                      (Data.ProtoLens.Int32Field ::
+                         Data.ProtoLens.FieldTypeDescriptor Data.Int.Int32)
+                      (Data.ProtoLens.PlainField Data.ProtoLens.Optional level)
+                experience__field_descriptor
+                  = Data.ProtoLens.FieldDescriptor "experience"
+                      (Data.ProtoLens.Int64Field ::
+                         Data.ProtoLens.FieldTypeDescriptor Data.Int.Int64)
+                      (Data.ProtoLens.PlainField Data.ProtoLens.Optional experience)
+                prevLevelXp__field_descriptor
+                  = Data.ProtoLens.FieldDescriptor "prev_level_xp"
+                      (Data.ProtoLens.Int64Field ::
+                         Data.ProtoLens.FieldTypeDescriptor Data.Int.Int64)
+                      (Data.ProtoLens.PlainField Data.ProtoLens.Optional prevLevelXp)
+                nextLevelXp__field_descriptor
+                  = Data.ProtoLens.FieldDescriptor "next_level_xp"
+                      (Data.ProtoLens.Int64Field ::
+                         Data.ProtoLens.FieldTypeDescriptor Data.Int.Int64)
+                      (Data.ProtoLens.PlainField Data.ProtoLens.Optional nextLevelXp)
+                kmWalked__field_descriptor
+                  = Data.ProtoLens.FieldDescriptor "km_walked"
+                      (Data.ProtoLens.FloatField ::
+                         Data.ProtoLens.FieldTypeDescriptor Prelude.Float)
+                      (Data.ProtoLens.PlainField Data.ProtoLens.Optional kmWalked)
+                pokemonsEncountered__field_descriptor
+                  = Data.ProtoLens.FieldDescriptor "pokemons_encountered"
+                      (Data.ProtoLens.Int32Field ::
+                         Data.ProtoLens.FieldTypeDescriptor Data.Int.Int32)
+                      (Data.ProtoLens.PlainField Data.ProtoLens.Optional
+                         pokemonsEncountered)
+                uniquePokedexEntries__field_descriptor
+                  = Data.ProtoLens.FieldDescriptor "unique_pokedex_entries"
+                      (Data.ProtoLens.Int32Field ::
+                         Data.ProtoLens.FieldTypeDescriptor Data.Int.Int32)
+                      (Data.ProtoLens.PlainField Data.ProtoLens.Optional
+                         uniquePokedexEntries)
+                pokemonsCaptured__field_descriptor
+                  = Data.ProtoLens.FieldDescriptor "pokemons_captured"
+                      (Data.ProtoLens.Int32Field ::
+                         Data.ProtoLens.FieldTypeDescriptor Data.Int.Int32)
+                      (Data.ProtoLens.PlainField Data.ProtoLens.Optional
+                         pokemonsCaptured)
+                evolutions__field_descriptor
+                  = Data.ProtoLens.FieldDescriptor "evolutions"
+                      (Data.ProtoLens.Int32Field ::
+                         Data.ProtoLens.FieldTypeDescriptor Data.Int.Int32)
+                      (Data.ProtoLens.PlainField Data.ProtoLens.Optional evolutions)
+                pokeStopVisits__field_descriptor
+                  = Data.ProtoLens.FieldDescriptor "poke_stop_visits"
+                      (Data.ProtoLens.Int32Field ::
+                         Data.ProtoLens.FieldTypeDescriptor Data.Int.Int32)
+                      (Data.ProtoLens.PlainField Data.ProtoLens.Optional pokeStopVisits)
+                pokeballsThrown__field_descriptor
+                  = Data.ProtoLens.FieldDescriptor "pokeballs_thrown"
+                      (Data.ProtoLens.Int32Field ::
+                         Data.ProtoLens.FieldTypeDescriptor Data.Int.Int32)
+                      (Data.ProtoLens.PlainField Data.ProtoLens.Optional pokeballsThrown)
+                eggsHatched__field_descriptor
+                  = Data.ProtoLens.FieldDescriptor "eggs_hatched"
+                      (Data.ProtoLens.Int32Field ::
+                         Data.ProtoLens.FieldTypeDescriptor Data.Int.Int32)
+                      (Data.ProtoLens.PlainField Data.ProtoLens.Optional eggsHatched)
+                bigMagikarpCaught__field_descriptor
+                  = Data.ProtoLens.FieldDescriptor "big_magikarp_caught"
+                      (Data.ProtoLens.Int32Field ::
+                         Data.ProtoLens.FieldTypeDescriptor Data.Int.Int32)
+                      (Data.ProtoLens.PlainField Data.ProtoLens.Optional
+                         bigMagikarpCaught)
+                battleAttackWon__field_descriptor
+                  = Data.ProtoLens.FieldDescriptor "battle_attack_won"
+                      (Data.ProtoLens.Int32Field ::
+                         Data.ProtoLens.FieldTypeDescriptor Data.Int.Int32)
+                      (Data.ProtoLens.PlainField Data.ProtoLens.Optional battleAttackWon)
+                battleAttackTotal__field_descriptor
+                  = Data.ProtoLens.FieldDescriptor "battle_attack_total"
+                      (Data.ProtoLens.Int32Field ::
+                         Data.ProtoLens.FieldTypeDescriptor Data.Int.Int32)
+                      (Data.ProtoLens.PlainField Data.ProtoLens.Optional
+                         battleAttackTotal)
+                battleDefendedWon__field_descriptor
+                  = Data.ProtoLens.FieldDescriptor "battle_defended_won"
+                      (Data.ProtoLens.Int32Field ::
+                         Data.ProtoLens.FieldTypeDescriptor Data.Int.Int32)
+                      (Data.ProtoLens.PlainField Data.ProtoLens.Optional
+                         battleDefendedWon)
+                battleTrainingWon__field_descriptor
+                  = Data.ProtoLens.FieldDescriptor "battle_training_won"
+                      (Data.ProtoLens.Int32Field ::
+                         Data.ProtoLens.FieldTypeDescriptor Data.Int.Int32)
+                      (Data.ProtoLens.PlainField Data.ProtoLens.Optional
+                         battleTrainingWon)
+                battleTrainingTotal__field_descriptor
+                  = Data.ProtoLens.FieldDescriptor "battle_training_total"
+                      (Data.ProtoLens.Int32Field ::
+                         Data.ProtoLens.FieldTypeDescriptor Data.Int.Int32)
+                      (Data.ProtoLens.PlainField Data.ProtoLens.Optional
+                         battleTrainingTotal)
+                prestigeRaisedTotal__field_descriptor
+                  = Data.ProtoLens.FieldDescriptor "prestige_raised_total"
+                      (Data.ProtoLens.Int32Field ::
+                         Data.ProtoLens.FieldTypeDescriptor Data.Int.Int32)
+                      (Data.ProtoLens.PlainField Data.ProtoLens.Optional
+                         prestigeRaisedTotal)
+                prestigeDroppedTotal__field_descriptor
+                  = Data.ProtoLens.FieldDescriptor "prestige_dropped_total"
+                      (Data.ProtoLens.Int32Field ::
+                         Data.ProtoLens.FieldTypeDescriptor Data.Int.Int32)
+                      (Data.ProtoLens.PlainField Data.ProtoLens.Optional
+                         prestigeDroppedTotal)
+                pokemonDeployed__field_descriptor
+                  = Data.ProtoLens.FieldDescriptor "pokemon_deployed"
+                      (Data.ProtoLens.Int32Field ::
+                         Data.ProtoLens.FieldTypeDescriptor Data.Int.Int32)
+                      (Data.ProtoLens.PlainField Data.ProtoLens.Optional pokemonDeployed)
+                pokemonCaughtByType__field_descriptor
+                  = Data.ProtoLens.FieldDescriptor "pokemon_caught_by_type"
+                      (Data.ProtoLens.BytesField ::
+                         Data.ProtoLens.FieldTypeDescriptor Data.ByteString.ByteString)
+                      (Data.ProtoLens.PlainField Data.ProtoLens.Optional
+                         pokemonCaughtByType)
+                smallRattataCaught__field_descriptor
+                  = Data.ProtoLens.FieldDescriptor "small_rattata_caught"
+                      (Data.ProtoLens.Int32Field ::
+                         Data.ProtoLens.FieldTypeDescriptor Data.Int.Int32)
+                      (Data.ProtoLens.PlainField Data.ProtoLens.Optional
+                         smallRattataCaught)
+              in
+              Data.ProtoLens.MessageDescriptor
+                (Data.Map.fromList
+                   [(Data.ProtoLens.Tag 1, level__field_descriptor),
+                    (Data.ProtoLens.Tag 2, experience__field_descriptor),
+                    (Data.ProtoLens.Tag 3, prevLevelXp__field_descriptor),
+                    (Data.ProtoLens.Tag 4, nextLevelXp__field_descriptor),
+                    (Data.ProtoLens.Tag 5, kmWalked__field_descriptor),
+                    (Data.ProtoLens.Tag 6, pokemonsEncountered__field_descriptor),
+                    (Data.ProtoLens.Tag 7, uniquePokedexEntries__field_descriptor),
+                    (Data.ProtoLens.Tag 8, pokemonsCaptured__field_descriptor),
+                    (Data.ProtoLens.Tag 9, evolutions__field_descriptor),
+                    (Data.ProtoLens.Tag 10, pokeStopVisits__field_descriptor),
+                    (Data.ProtoLens.Tag 11, pokeballsThrown__field_descriptor),
+                    (Data.ProtoLens.Tag 12, eggsHatched__field_descriptor),
+                    (Data.ProtoLens.Tag 13, bigMagikarpCaught__field_descriptor),
+                    (Data.ProtoLens.Tag 14, battleAttackWon__field_descriptor),
+                    (Data.ProtoLens.Tag 15, battleAttackTotal__field_descriptor),
+                    (Data.ProtoLens.Tag 16, battleDefendedWon__field_descriptor),
+                    (Data.ProtoLens.Tag 17, battleTrainingWon__field_descriptor),
+                    (Data.ProtoLens.Tag 18, battleTrainingTotal__field_descriptor),
+                    (Data.ProtoLens.Tag 19, prestigeRaisedTotal__field_descriptor),
+                    (Data.ProtoLens.Tag 20, prestigeDroppedTotal__field_descriptor),
+                    (Data.ProtoLens.Tag 21, pokemonDeployed__field_descriptor),
+                    (Data.ProtoLens.Tag 22, pokemonCaughtByType__field_descriptor),
+                    (Data.ProtoLens.Tag 23, smallRattataCaught__field_descriptor)])
+                (Data.Map.fromList
+                   [("level", level__field_descriptor),
+                    ("experience", experience__field_descriptor),
+                    ("prev_level_xp", prevLevelXp__field_descriptor),
+                    ("next_level_xp", nextLevelXp__field_descriptor),
+                    ("km_walked", kmWalked__field_descriptor),
+                    ("pokemons_encountered", pokemonsEncountered__field_descriptor),
+                    ("unique_pokedex_entries", uniquePokedexEntries__field_descriptor),
+                    ("pokemons_captured", pokemonsCaptured__field_descriptor),
+                    ("evolutions", evolutions__field_descriptor),
+                    ("poke_stop_visits", pokeStopVisits__field_descriptor),
+                    ("pokeballs_thrown", pokeballsThrown__field_descriptor),
+                    ("eggs_hatched", eggsHatched__field_descriptor),
+                    ("big_magikarp_caught", bigMagikarpCaught__field_descriptor),
+                    ("battle_attack_won", battleAttackWon__field_descriptor),
+                    ("battle_attack_total", battleAttackTotal__field_descriptor),
+                    ("battle_defended_won", battleDefendedWon__field_descriptor),
+                    ("battle_training_won", battleTrainingWon__field_descriptor),
+                    ("battle_training_total", battleTrainingTotal__field_descriptor),
+                    ("prestige_raised_total", prestigeRaisedTotal__field_descriptor),
+                    ("prestige_dropped_total", prestigeDroppedTotal__field_descriptor),
+                    ("pokemon_deployed", pokemonDeployed__field_descriptor),
+                    ("pokemon_caught_by_type", pokemonCaughtByType__field_descriptor),
+                    ("small_rattata_caught", smallRattataCaught__field_descriptor)])
+
+battleAttackTotal ::
+                  forall msg msg' .
+                    Data.ProtoLens.HasField "battleAttackTotal" msg msg' =>
+                    Lens.Family2.Lens msg msg'
+                      (Data.ProtoLens.Field "battleAttackTotal" msg)
+                      (Data.ProtoLens.Field "battleAttackTotal" msg')
+battleAttackTotal
+  = Data.ProtoLens.field
+      (Data.ProtoLens.ProxySym ::
+         Data.ProtoLens.ProxySym "battleAttackTotal")
+
+battleAttackWon ::
+                forall msg msg' .
+                  Data.ProtoLens.HasField "battleAttackWon" msg msg' =>
+                  Lens.Family2.Lens msg msg'
+                    (Data.ProtoLens.Field "battleAttackWon" msg)
+                    (Data.ProtoLens.Field "battleAttackWon" msg')
+battleAttackWon
+  = Data.ProtoLens.field
+      (Data.ProtoLens.ProxySym ::
+         Data.ProtoLens.ProxySym "battleAttackWon")
+
+battleDefendedWon ::
+                  forall msg msg' .
+                    Data.ProtoLens.HasField "battleDefendedWon" msg msg' =>
+                    Lens.Family2.Lens msg msg'
+                      (Data.ProtoLens.Field "battleDefendedWon" msg)
+                      (Data.ProtoLens.Field "battleDefendedWon" msg')
+battleDefendedWon
+  = Data.ProtoLens.field
+      (Data.ProtoLens.ProxySym ::
+         Data.ProtoLens.ProxySym "battleDefendedWon")
+
+battleTrainingTotal ::
+                    forall msg msg' .
+                      Data.ProtoLens.HasField "battleTrainingTotal" msg msg' =>
+                      Lens.Family2.Lens msg msg'
+                        (Data.ProtoLens.Field "battleTrainingTotal" msg)
+                        (Data.ProtoLens.Field "battleTrainingTotal" msg')
+battleTrainingTotal
+  = Data.ProtoLens.field
+      (Data.ProtoLens.ProxySym ::
+         Data.ProtoLens.ProxySym "battleTrainingTotal")
+
+battleTrainingWon ::
+                  forall msg msg' .
+                    Data.ProtoLens.HasField "battleTrainingWon" msg msg' =>
+                    Lens.Family2.Lens msg msg'
+                      (Data.ProtoLens.Field "battleTrainingWon" msg)
+                      (Data.ProtoLens.Field "battleTrainingWon" msg')
+battleTrainingWon
+  = Data.ProtoLens.field
+      (Data.ProtoLens.ProxySym ::
+         Data.ProtoLens.ProxySym "battleTrainingWon")
+
+bigMagikarpCaught ::
+                  forall msg msg' .
+                    Data.ProtoLens.HasField "bigMagikarpCaught" msg msg' =>
+                    Lens.Family2.Lens msg msg'
+                      (Data.ProtoLens.Field "bigMagikarpCaught" msg)
+                      (Data.ProtoLens.Field "bigMagikarpCaught" msg')
+bigMagikarpCaught
+  = Data.ProtoLens.field
+      (Data.ProtoLens.ProxySym ::
+         Data.ProtoLens.ProxySym "bigMagikarpCaught")
+
+eggsHatched ::
+            forall msg msg' . Data.ProtoLens.HasField "eggsHatched" msg msg' =>
+              Lens.Family2.Lens msg msg' (Data.ProtoLens.Field "eggsHatched" msg)
+                (Data.ProtoLens.Field "eggsHatched" msg')
+eggsHatched
+  = Data.ProtoLens.field
+      (Data.ProtoLens.ProxySym :: Data.ProtoLens.ProxySym "eggsHatched")
+
+evolutions ::
+           forall msg msg' . Data.ProtoLens.HasField "evolutions" msg msg' =>
+             Lens.Family2.Lens msg msg' (Data.ProtoLens.Field "evolutions" msg)
+               (Data.ProtoLens.Field "evolutions" msg')
+evolutions
+  = Data.ProtoLens.field
+      (Data.ProtoLens.ProxySym :: Data.ProtoLens.ProxySym "evolutions")
+
+experience ::
+           forall msg msg' . Data.ProtoLens.HasField "experience" msg msg' =>
+             Lens.Family2.Lens msg msg' (Data.ProtoLens.Field "experience" msg)
+               (Data.ProtoLens.Field "experience" msg')
+experience
+  = Data.ProtoLens.field
+      (Data.ProtoLens.ProxySym :: Data.ProtoLens.ProxySym "experience")
+
+kmWalked ::
+         forall msg msg' . Data.ProtoLens.HasField "kmWalked" msg msg' =>
+           Lens.Family2.Lens msg msg' (Data.ProtoLens.Field "kmWalked" msg)
+             (Data.ProtoLens.Field "kmWalked" msg')
+kmWalked
+  = Data.ProtoLens.field
+      (Data.ProtoLens.ProxySym :: Data.ProtoLens.ProxySym "kmWalked")
+
+level ::
+      forall msg msg' . Data.ProtoLens.HasField "level" msg msg' =>
+        Lens.Family2.Lens msg msg' (Data.ProtoLens.Field "level" msg)
+          (Data.ProtoLens.Field "level" msg')
+level
+  = Data.ProtoLens.field
+      (Data.ProtoLens.ProxySym :: Data.ProtoLens.ProxySym "level")
+
+nextLevelXp ::
+            forall msg msg' . Data.ProtoLens.HasField "nextLevelXp" msg msg' =>
+              Lens.Family2.Lens msg msg' (Data.ProtoLens.Field "nextLevelXp" msg)
+                (Data.ProtoLens.Field "nextLevelXp" msg')
+nextLevelXp
+  = Data.ProtoLens.field
+      (Data.ProtoLens.ProxySym :: Data.ProtoLens.ProxySym "nextLevelXp")
+
+pokeStopVisits ::
+               forall msg msg' .
+                 Data.ProtoLens.HasField "pokeStopVisits" msg msg' =>
+                 Lens.Family2.Lens msg msg'
+                   (Data.ProtoLens.Field "pokeStopVisits" msg)
+                   (Data.ProtoLens.Field "pokeStopVisits" msg')
+pokeStopVisits
+  = Data.ProtoLens.field
+      (Data.ProtoLens.ProxySym ::
+         Data.ProtoLens.ProxySym "pokeStopVisits")
+
+pokeballsThrown ::
+                forall msg msg' .
+                  Data.ProtoLens.HasField "pokeballsThrown" msg msg' =>
+                  Lens.Family2.Lens msg msg'
+                    (Data.ProtoLens.Field "pokeballsThrown" msg)
+                    (Data.ProtoLens.Field "pokeballsThrown" msg')
+pokeballsThrown
+  = Data.ProtoLens.field
+      (Data.ProtoLens.ProxySym ::
+         Data.ProtoLens.ProxySym "pokeballsThrown")
+
+pokemonCaughtByType ::
+                    forall msg msg' .
+                      Data.ProtoLens.HasField "pokemonCaughtByType" msg msg' =>
+                      Lens.Family2.Lens msg msg'
+                        (Data.ProtoLens.Field "pokemonCaughtByType" msg)
+                        (Data.ProtoLens.Field "pokemonCaughtByType" msg')
+pokemonCaughtByType
+  = Data.ProtoLens.field
+      (Data.ProtoLens.ProxySym ::
+         Data.ProtoLens.ProxySym "pokemonCaughtByType")
+
+pokemonDeployed ::
+                forall msg msg' .
+                  Data.ProtoLens.HasField "pokemonDeployed" msg msg' =>
+                  Lens.Family2.Lens msg msg'
+                    (Data.ProtoLens.Field "pokemonDeployed" msg)
+                    (Data.ProtoLens.Field "pokemonDeployed" msg')
+pokemonDeployed
+  = Data.ProtoLens.field
+      (Data.ProtoLens.ProxySym ::
+         Data.ProtoLens.ProxySym "pokemonDeployed")
+
+pokemonsCaptured ::
+                 forall msg msg' .
+                   Data.ProtoLens.HasField "pokemonsCaptured" msg msg' =>
+                   Lens.Family2.Lens msg msg'
+                     (Data.ProtoLens.Field "pokemonsCaptured" msg)
+                     (Data.ProtoLens.Field "pokemonsCaptured" msg')
+pokemonsCaptured
+  = Data.ProtoLens.field
+      (Data.ProtoLens.ProxySym ::
+         Data.ProtoLens.ProxySym "pokemonsCaptured")
+
+pokemonsEncountered ::
+                    forall msg msg' .
+                      Data.ProtoLens.HasField "pokemonsEncountered" msg msg' =>
+                      Lens.Family2.Lens msg msg'
+                        (Data.ProtoLens.Field "pokemonsEncountered" msg)
+                        (Data.ProtoLens.Field "pokemonsEncountered" msg')
+pokemonsEncountered
+  = Data.ProtoLens.field
+      (Data.ProtoLens.ProxySym ::
+         Data.ProtoLens.ProxySym "pokemonsEncountered")
+
+prestigeDroppedTotal ::
+                     forall msg msg' .
+                       Data.ProtoLens.HasField "prestigeDroppedTotal" msg msg' =>
+                       Lens.Family2.Lens msg msg'
+                         (Data.ProtoLens.Field "prestigeDroppedTotal" msg)
+                         (Data.ProtoLens.Field "prestigeDroppedTotal" msg')
+prestigeDroppedTotal
+  = Data.ProtoLens.field
+      (Data.ProtoLens.ProxySym ::
+         Data.ProtoLens.ProxySym "prestigeDroppedTotal")
+
+prestigeRaisedTotal ::
+                    forall msg msg' .
+                      Data.ProtoLens.HasField "prestigeRaisedTotal" msg msg' =>
+                      Lens.Family2.Lens msg msg'
+                        (Data.ProtoLens.Field "prestigeRaisedTotal" msg)
+                        (Data.ProtoLens.Field "prestigeRaisedTotal" msg')
+prestigeRaisedTotal
+  = Data.ProtoLens.field
+      (Data.ProtoLens.ProxySym ::
+         Data.ProtoLens.ProxySym "prestigeRaisedTotal")
+
+prevLevelXp ::
+            forall msg msg' . Data.ProtoLens.HasField "prevLevelXp" msg msg' =>
+              Lens.Family2.Lens msg msg' (Data.ProtoLens.Field "prevLevelXp" msg)
+                (Data.ProtoLens.Field "prevLevelXp" msg')
+prevLevelXp
+  = Data.ProtoLens.field
+      (Data.ProtoLens.ProxySym :: Data.ProtoLens.ProxySym "prevLevelXp")
+
+smallRattataCaught ::
+                   forall msg msg' .
+                     Data.ProtoLens.HasField "smallRattataCaught" msg msg' =>
+                     Lens.Family2.Lens msg msg'
+                       (Data.ProtoLens.Field "smallRattataCaught" msg)
+                       (Data.ProtoLens.Field "smallRattataCaught" msg')
+smallRattataCaught
+  = Data.ProtoLens.field
+      (Data.ProtoLens.ProxySym ::
+         Data.ProtoLens.ProxySym "smallRattataCaught")
+
+uniquePokedexEntries ::
+                     forall msg msg' .
+                       Data.ProtoLens.HasField "uniquePokedexEntries" msg msg' =>
+                       Lens.Family2.Lens msg msg'
+                         (Data.ProtoLens.Field "uniquePokedexEntries" msg)
+                         (Data.ProtoLens.Field "uniquePokedexEntries" msg')
+uniquePokedexEntries
+  = Data.ProtoLens.field
+      (Data.ProtoLens.ProxySym ::
+         Data.ProtoLens.ProxySym "uniquePokedexEntries")
diff --git a/src/Proto/POGOProtos/Data/PlayerBadge.hs b/src/Proto/POGOProtos/Data/PlayerBadge.hs
new file mode 100644
--- /dev/null
+++ b/src/Proto/POGOProtos/Data/PlayerBadge.hs
@@ -0,0 +1,163 @@
+{- This file was auto-generated from POGOProtos/Data/PlayerBadge.proto by the proto-lens-protoc program. -}
+{-# LANGUAGE ScopedTypeVariables, DataKinds, TypeFamilies,
+  MultiParamTypeClasses, FlexibleContexts, FlexibleInstances #-}
+{-# OPTIONS_GHC -fno-warn-unused-imports#-}
+module Proto.POGOProtos.Data.PlayerBadge where
+import qualified Prelude
+import qualified Data.ProtoLens
+import qualified Data.ProtoLens.Message.Enum
+import qualified Lens.Family2
+import qualified Lens.Family2.Unchecked
+import qualified Data.Default.Class
+import qualified Data.Text
+import qualified Data.Int
+import qualified Data.Word
+import qualified Data.Map
+import qualified Data.ByteString
+import qualified Proto.POGOProtos.Enums.BadgeType
+
+data PlayerBadge = PlayerBadge{_PlayerBadge'badgeType ::
+                               Proto.POGOProtos.Enums.BadgeType.BadgeType,
+                               _PlayerBadge'rank :: Data.Int.Int32,
+                               _PlayerBadge'startValue :: Data.Int.Int32,
+                               _PlayerBadge'endValue :: Data.Int.Int32,
+                               _PlayerBadge'currentValue :: Prelude.Double}
+                 deriving (Prelude.Show, Prelude.Eq)
+
+type instance Data.ProtoLens.Field "badgeType" PlayerBadge =
+     Proto.POGOProtos.Enums.BadgeType.BadgeType
+
+instance Data.ProtoLens.HasField "badgeType" PlayerBadge
+         PlayerBadge where
+        field _
+          = Lens.Family2.Unchecked.lens _PlayerBadge'badgeType
+              (\ x__ y__ -> x__{_PlayerBadge'badgeType = y__})
+
+type instance Data.ProtoLens.Field "rank" PlayerBadge =
+     Data.Int.Int32
+
+instance Data.ProtoLens.HasField "rank" PlayerBadge PlayerBadge
+         where
+        field _
+          = Lens.Family2.Unchecked.lens _PlayerBadge'rank
+              (\ x__ y__ -> x__{_PlayerBadge'rank = y__})
+
+type instance Data.ProtoLens.Field "startValue" PlayerBadge =
+     Data.Int.Int32
+
+instance Data.ProtoLens.HasField "startValue" PlayerBadge
+         PlayerBadge where
+        field _
+          = Lens.Family2.Unchecked.lens _PlayerBadge'startValue
+              (\ x__ y__ -> x__{_PlayerBadge'startValue = y__})
+
+type instance Data.ProtoLens.Field "endValue" PlayerBadge =
+     Data.Int.Int32
+
+instance Data.ProtoLens.HasField "endValue" PlayerBadge PlayerBadge
+         where
+        field _
+          = Lens.Family2.Unchecked.lens _PlayerBadge'endValue
+              (\ x__ y__ -> x__{_PlayerBadge'endValue = y__})
+
+type instance Data.ProtoLens.Field "currentValue" PlayerBadge =
+     Prelude.Double
+
+instance Data.ProtoLens.HasField "currentValue" PlayerBadge
+         PlayerBadge where
+        field _
+          = Lens.Family2.Unchecked.lens _PlayerBadge'currentValue
+              (\ x__ y__ -> x__{_PlayerBadge'currentValue = y__})
+
+instance Data.Default.Class.Default PlayerBadge where
+        def
+          = PlayerBadge{_PlayerBadge'badgeType = Data.Default.Class.def,
+                        _PlayerBadge'rank = Data.ProtoLens.fieldDefault,
+                        _PlayerBadge'startValue = Data.ProtoLens.fieldDefault,
+                        _PlayerBadge'endValue = Data.ProtoLens.fieldDefault,
+                        _PlayerBadge'currentValue = Data.ProtoLens.fieldDefault}
+
+instance Data.ProtoLens.Message PlayerBadge where
+        descriptor
+          = let badgeType__field_descriptor
+                  = Data.ProtoLens.FieldDescriptor "badge_type"
+                      (Data.ProtoLens.EnumField ::
+                         Data.ProtoLens.FieldTypeDescriptor
+                           Proto.POGOProtos.Enums.BadgeType.BadgeType)
+                      (Data.ProtoLens.PlainField Data.ProtoLens.Optional badgeType)
+                rank__field_descriptor
+                  = Data.ProtoLens.FieldDescriptor "rank"
+                      (Data.ProtoLens.Int32Field ::
+                         Data.ProtoLens.FieldTypeDescriptor Data.Int.Int32)
+                      (Data.ProtoLens.PlainField Data.ProtoLens.Optional rank)
+                startValue__field_descriptor
+                  = Data.ProtoLens.FieldDescriptor "start_value"
+                      (Data.ProtoLens.Int32Field ::
+                         Data.ProtoLens.FieldTypeDescriptor Data.Int.Int32)
+                      (Data.ProtoLens.PlainField Data.ProtoLens.Optional startValue)
+                endValue__field_descriptor
+                  = Data.ProtoLens.FieldDescriptor "end_value"
+                      (Data.ProtoLens.Int32Field ::
+                         Data.ProtoLens.FieldTypeDescriptor Data.Int.Int32)
+                      (Data.ProtoLens.PlainField Data.ProtoLens.Optional endValue)
+                currentValue__field_descriptor
+                  = Data.ProtoLens.FieldDescriptor "current_value"
+                      (Data.ProtoLens.DoubleField ::
+                         Data.ProtoLens.FieldTypeDescriptor Prelude.Double)
+                      (Data.ProtoLens.PlainField Data.ProtoLens.Optional currentValue)
+              in
+              Data.ProtoLens.MessageDescriptor
+                (Data.Map.fromList
+                   [(Data.ProtoLens.Tag 1, badgeType__field_descriptor),
+                    (Data.ProtoLens.Tag 2, rank__field_descriptor),
+                    (Data.ProtoLens.Tag 3, startValue__field_descriptor),
+                    (Data.ProtoLens.Tag 4, endValue__field_descriptor),
+                    (Data.ProtoLens.Tag 5, currentValue__field_descriptor)])
+                (Data.Map.fromList
+                   [("badge_type", badgeType__field_descriptor),
+                    ("rank", rank__field_descriptor),
+                    ("start_value", startValue__field_descriptor),
+                    ("end_value", endValue__field_descriptor),
+                    ("current_value", currentValue__field_descriptor)])
+
+badgeType ::
+          forall msg msg' . Data.ProtoLens.HasField "badgeType" msg msg' =>
+            Lens.Family2.Lens msg msg' (Data.ProtoLens.Field "badgeType" msg)
+              (Data.ProtoLens.Field "badgeType" msg')
+badgeType
+  = Data.ProtoLens.field
+      (Data.ProtoLens.ProxySym :: Data.ProtoLens.ProxySym "badgeType")
+
+currentValue ::
+             forall msg msg' .
+               Data.ProtoLens.HasField "currentValue" msg msg' =>
+               Lens.Family2.Lens msg msg'
+                 (Data.ProtoLens.Field "currentValue" msg)
+                 (Data.ProtoLens.Field "currentValue" msg')
+currentValue
+  = Data.ProtoLens.field
+      (Data.ProtoLens.ProxySym :: Data.ProtoLens.ProxySym "currentValue")
+
+endValue ::
+         forall msg msg' . Data.ProtoLens.HasField "endValue" msg msg' =>
+           Lens.Family2.Lens msg msg' (Data.ProtoLens.Field "endValue" msg)
+             (Data.ProtoLens.Field "endValue" msg')
+endValue
+  = Data.ProtoLens.field
+      (Data.ProtoLens.ProxySym :: Data.ProtoLens.ProxySym "endValue")
+
+rank ::
+     forall msg msg' . Data.ProtoLens.HasField "rank" msg msg' =>
+       Lens.Family2.Lens msg msg' (Data.ProtoLens.Field "rank" msg)
+         (Data.ProtoLens.Field "rank" msg')
+rank
+  = Data.ProtoLens.field
+      (Data.ProtoLens.ProxySym :: Data.ProtoLens.ProxySym "rank")
+
+startValue ::
+           forall msg msg' . Data.ProtoLens.HasField "startValue" msg msg' =>
+             Lens.Family2.Lens msg msg' (Data.ProtoLens.Field "startValue" msg)
+               (Data.ProtoLens.Field "startValue" msg')
+startValue
+  = Data.ProtoLens.field
+      (Data.ProtoLens.ProxySym :: Data.ProtoLens.ProxySym "startValue")
diff --git a/src/Proto/POGOProtos/Data/PlayerData.hs b/src/Proto/POGOProtos/Data/PlayerData.hs
new file mode 100644
--- /dev/null
+++ b/src/Proto/POGOProtos/Data/PlayerData.hs
@@ -0,0 +1,442 @@
+{- This file was auto-generated from POGOProtos/Data/PlayerData.proto by the proto-lens-protoc program. -}
+{-# LANGUAGE ScopedTypeVariables, DataKinds, TypeFamilies,
+  MultiParamTypeClasses, FlexibleContexts, FlexibleInstances #-}
+{-# OPTIONS_GHC -fno-warn-unused-imports#-}
+module Proto.POGOProtos.Data.PlayerData where
+import qualified Prelude
+import qualified Data.ProtoLens
+import qualified Data.ProtoLens.Message.Enum
+import qualified Lens.Family2
+import qualified Lens.Family2.Unchecked
+import qualified Data.Default.Class
+import qualified Data.Text
+import qualified Data.Int
+import qualified Data.Word
+import qualified Data.Map
+import qualified Data.ByteString
+import qualified Proto.POGOProtos.Data.Player.ContactSettings
+import qualified Proto.POGOProtos.Data.Player.Currency
+import qualified Proto.POGOProtos.Data.Player.DailyBonus
+import qualified Proto.POGOProtos.Data.Player.EquippedBadge
+import qualified Proto.POGOProtos.Data.Player.PlayerAvatar
+import qualified Proto.POGOProtos.Enums.TeamColor
+import qualified Proto.POGOProtos.Enums.TutorialState
+
+data PlayerData = PlayerData{_PlayerData'creationTimestampMs ::
+                             Data.Int.Int64,
+                             _PlayerData'username :: Data.Text.Text,
+                             _PlayerData'team :: Proto.POGOProtos.Enums.TeamColor.TeamColor,
+                             _PlayerData'tutorialState ::
+                             [Proto.POGOProtos.Enums.TutorialState.TutorialState],
+                             _PlayerData'avatar ::
+                             Prelude.Maybe
+                               Proto.POGOProtos.Data.Player.PlayerAvatar.PlayerAvatar,
+                             _PlayerData'maxPokemonStorage :: Data.Int.Int32,
+                             _PlayerData'maxItemStorage :: Data.Int.Int32,
+                             _PlayerData'dailyBonus ::
+                             Prelude.Maybe Proto.POGOProtos.Data.Player.DailyBonus.DailyBonus,
+                             _PlayerData'equippedBadge ::
+                             Prelude.Maybe
+                               Proto.POGOProtos.Data.Player.EquippedBadge.EquippedBadge,
+                             _PlayerData'contactSettings ::
+                             Prelude.Maybe
+                               Proto.POGOProtos.Data.Player.ContactSettings.ContactSettings,
+                             _PlayerData'currencies ::
+                             [Proto.POGOProtos.Data.Player.Currency.Currency]}
+                deriving (Prelude.Show, Prelude.Eq)
+
+type instance Data.ProtoLens.Field "creationTimestampMs" PlayerData
+     = Data.Int.Int64
+
+instance Data.ProtoLens.HasField "creationTimestampMs" PlayerData
+         PlayerData where
+        field _
+          = Lens.Family2.Unchecked.lens _PlayerData'creationTimestampMs
+              (\ x__ y__ -> x__{_PlayerData'creationTimestampMs = y__})
+
+type instance Data.ProtoLens.Field "username" PlayerData =
+     Data.Text.Text
+
+instance Data.ProtoLens.HasField "username" PlayerData PlayerData
+         where
+        field _
+          = Lens.Family2.Unchecked.lens _PlayerData'username
+              (\ x__ y__ -> x__{_PlayerData'username = y__})
+
+type instance Data.ProtoLens.Field "team" PlayerData =
+     Proto.POGOProtos.Enums.TeamColor.TeamColor
+
+instance Data.ProtoLens.HasField "team" PlayerData PlayerData where
+        field _
+          = Lens.Family2.Unchecked.lens _PlayerData'team
+              (\ x__ y__ -> x__{_PlayerData'team = y__})
+
+type instance Data.ProtoLens.Field "tutorialState" PlayerData =
+     [Proto.POGOProtos.Enums.TutorialState.TutorialState]
+
+instance Data.ProtoLens.HasField "tutorialState" PlayerData
+         PlayerData where
+        field _
+          = Lens.Family2.Unchecked.lens _PlayerData'tutorialState
+              (\ x__ y__ -> x__{_PlayerData'tutorialState = y__})
+
+type instance Data.ProtoLens.Field "avatar" PlayerData =
+     Proto.POGOProtos.Data.Player.PlayerAvatar.PlayerAvatar
+
+instance Data.ProtoLens.HasField "avatar" PlayerData PlayerData
+         where
+        field _
+          = (Prelude..) maybe'avatar
+              (Data.ProtoLens.maybeLens Data.Default.Class.def)
+
+type instance Data.ProtoLens.Field "maybe'avatar" PlayerData =
+     Prelude.Maybe
+       Proto.POGOProtos.Data.Player.PlayerAvatar.PlayerAvatar
+
+instance Data.ProtoLens.HasField "maybe'avatar" PlayerData
+         PlayerData where
+        field _
+          = Lens.Family2.Unchecked.lens _PlayerData'avatar
+              (\ x__ y__ -> x__{_PlayerData'avatar = y__})
+
+type instance Data.ProtoLens.Field "maxPokemonStorage" PlayerData =
+     Data.Int.Int32
+
+instance Data.ProtoLens.HasField "maxPokemonStorage" PlayerData
+         PlayerData where
+        field _
+          = Lens.Family2.Unchecked.lens _PlayerData'maxPokemonStorage
+              (\ x__ y__ -> x__{_PlayerData'maxPokemonStorage = y__})
+
+type instance Data.ProtoLens.Field "maxItemStorage" PlayerData =
+     Data.Int.Int32
+
+instance Data.ProtoLens.HasField "maxItemStorage" PlayerData
+         PlayerData where
+        field _
+          = Lens.Family2.Unchecked.lens _PlayerData'maxItemStorage
+              (\ x__ y__ -> x__{_PlayerData'maxItemStorage = y__})
+
+type instance Data.ProtoLens.Field "dailyBonus" PlayerData =
+     Proto.POGOProtos.Data.Player.DailyBonus.DailyBonus
+
+instance Data.ProtoLens.HasField "dailyBonus" PlayerData PlayerData
+         where
+        field _
+          = (Prelude..) maybe'dailyBonus
+              (Data.ProtoLens.maybeLens Data.Default.Class.def)
+
+type instance Data.ProtoLens.Field "maybe'dailyBonus" PlayerData =
+     Prelude.Maybe Proto.POGOProtos.Data.Player.DailyBonus.DailyBonus
+
+instance Data.ProtoLens.HasField "maybe'dailyBonus" PlayerData
+         PlayerData where
+        field _
+          = Lens.Family2.Unchecked.lens _PlayerData'dailyBonus
+              (\ x__ y__ -> x__{_PlayerData'dailyBonus = y__})
+
+type instance Data.ProtoLens.Field "equippedBadge" PlayerData =
+     Proto.POGOProtos.Data.Player.EquippedBadge.EquippedBadge
+
+instance Data.ProtoLens.HasField "equippedBadge" PlayerData
+         PlayerData where
+        field _
+          = (Prelude..) maybe'equippedBadge
+              (Data.ProtoLens.maybeLens Data.Default.Class.def)
+
+type instance Data.ProtoLens.Field "maybe'equippedBadge" PlayerData
+     =
+     Prelude.Maybe
+       Proto.POGOProtos.Data.Player.EquippedBadge.EquippedBadge
+
+instance Data.ProtoLens.HasField "maybe'equippedBadge" PlayerData
+         PlayerData where
+        field _
+          = Lens.Family2.Unchecked.lens _PlayerData'equippedBadge
+              (\ x__ y__ -> x__{_PlayerData'equippedBadge = y__})
+
+type instance Data.ProtoLens.Field "contactSettings" PlayerData =
+     Proto.POGOProtos.Data.Player.ContactSettings.ContactSettings
+
+instance Data.ProtoLens.HasField "contactSettings" PlayerData
+         PlayerData where
+        field _
+          = (Prelude..) maybe'contactSettings
+              (Data.ProtoLens.maybeLens Data.Default.Class.def)
+
+type instance
+     Data.ProtoLens.Field "maybe'contactSettings" PlayerData =
+     Prelude.Maybe
+       Proto.POGOProtos.Data.Player.ContactSettings.ContactSettings
+
+instance Data.ProtoLens.HasField "maybe'contactSettings" PlayerData
+         PlayerData where
+        field _
+          = Lens.Family2.Unchecked.lens _PlayerData'contactSettings
+              (\ x__ y__ -> x__{_PlayerData'contactSettings = y__})
+
+type instance Data.ProtoLens.Field "currencies" PlayerData =
+     [Proto.POGOProtos.Data.Player.Currency.Currency]
+
+instance Data.ProtoLens.HasField "currencies" PlayerData PlayerData
+         where
+        field _
+          = Lens.Family2.Unchecked.lens _PlayerData'currencies
+              (\ x__ y__ -> x__{_PlayerData'currencies = y__})
+
+instance Data.Default.Class.Default PlayerData where
+        def
+          = PlayerData{_PlayerData'creationTimestampMs =
+                         Data.ProtoLens.fieldDefault,
+                       _PlayerData'username = Data.ProtoLens.fieldDefault,
+                       _PlayerData'team = Data.Default.Class.def,
+                       _PlayerData'tutorialState = [],
+                       _PlayerData'avatar = Prelude.Nothing,
+                       _PlayerData'maxPokemonStorage = Data.ProtoLens.fieldDefault,
+                       _PlayerData'maxItemStorage = Data.ProtoLens.fieldDefault,
+                       _PlayerData'dailyBonus = Prelude.Nothing,
+                       _PlayerData'equippedBadge = Prelude.Nothing,
+                       _PlayerData'contactSettings = Prelude.Nothing,
+                       _PlayerData'currencies = []}
+
+instance Data.ProtoLens.Message PlayerData where
+        descriptor
+          = let creationTimestampMs__field_descriptor
+                  = Data.ProtoLens.FieldDescriptor "creation_timestamp_ms"
+                      (Data.ProtoLens.Int64Field ::
+                         Data.ProtoLens.FieldTypeDescriptor Data.Int.Int64)
+                      (Data.ProtoLens.PlainField Data.ProtoLens.Optional
+                         creationTimestampMs)
+                username__field_descriptor
+                  = Data.ProtoLens.FieldDescriptor "username"
+                      (Data.ProtoLens.StringField ::
+                         Data.ProtoLens.FieldTypeDescriptor Data.Text.Text)
+                      (Data.ProtoLens.PlainField Data.ProtoLens.Optional username)
+                team__field_descriptor
+                  = Data.ProtoLens.FieldDescriptor "team"
+                      (Data.ProtoLens.EnumField ::
+                         Data.ProtoLens.FieldTypeDescriptor
+                           Proto.POGOProtos.Enums.TeamColor.TeamColor)
+                      (Data.ProtoLens.PlainField Data.ProtoLens.Optional team)
+                tutorialState__field_descriptor
+                  = Data.ProtoLens.FieldDescriptor "tutorial_state"
+                      (Data.ProtoLens.EnumField ::
+                         Data.ProtoLens.FieldTypeDescriptor
+                           Proto.POGOProtos.Enums.TutorialState.TutorialState)
+                      (Data.ProtoLens.RepeatedField Data.ProtoLens.Packed tutorialState)
+                avatar__field_descriptor
+                  = Data.ProtoLens.FieldDescriptor "avatar"
+                      (Data.ProtoLens.MessageField ::
+                         Data.ProtoLens.FieldTypeDescriptor
+                           Proto.POGOProtos.Data.Player.PlayerAvatar.PlayerAvatar)
+                      (Data.ProtoLens.OptionalField maybe'avatar)
+                maxPokemonStorage__field_descriptor
+                  = Data.ProtoLens.FieldDescriptor "max_pokemon_storage"
+                      (Data.ProtoLens.Int32Field ::
+                         Data.ProtoLens.FieldTypeDescriptor Data.Int.Int32)
+                      (Data.ProtoLens.PlainField Data.ProtoLens.Optional
+                         maxPokemonStorage)
+                maxItemStorage__field_descriptor
+                  = Data.ProtoLens.FieldDescriptor "max_item_storage"
+                      (Data.ProtoLens.Int32Field ::
+                         Data.ProtoLens.FieldTypeDescriptor Data.Int.Int32)
+                      (Data.ProtoLens.PlainField Data.ProtoLens.Optional maxItemStorage)
+                dailyBonus__field_descriptor
+                  = Data.ProtoLens.FieldDescriptor "daily_bonus"
+                      (Data.ProtoLens.MessageField ::
+                         Data.ProtoLens.FieldTypeDescriptor
+                           Proto.POGOProtos.Data.Player.DailyBonus.DailyBonus)
+                      (Data.ProtoLens.OptionalField maybe'dailyBonus)
+                equippedBadge__field_descriptor
+                  = Data.ProtoLens.FieldDescriptor "equipped_badge"
+                      (Data.ProtoLens.MessageField ::
+                         Data.ProtoLens.FieldTypeDescriptor
+                           Proto.POGOProtos.Data.Player.EquippedBadge.EquippedBadge)
+                      (Data.ProtoLens.OptionalField maybe'equippedBadge)
+                contactSettings__field_descriptor
+                  = Data.ProtoLens.FieldDescriptor "contact_settings"
+                      (Data.ProtoLens.MessageField ::
+                         Data.ProtoLens.FieldTypeDescriptor
+                           Proto.POGOProtos.Data.Player.ContactSettings.ContactSettings)
+                      (Data.ProtoLens.OptionalField maybe'contactSettings)
+                currencies__field_descriptor
+                  = Data.ProtoLens.FieldDescriptor "currencies"
+                      (Data.ProtoLens.MessageField ::
+                         Data.ProtoLens.FieldTypeDescriptor
+                           Proto.POGOProtos.Data.Player.Currency.Currency)
+                      (Data.ProtoLens.RepeatedField Data.ProtoLens.Unpacked currencies)
+              in
+              Data.ProtoLens.MessageDescriptor
+                (Data.Map.fromList
+                   [(Data.ProtoLens.Tag 1, creationTimestampMs__field_descriptor),
+                    (Data.ProtoLens.Tag 2, username__field_descriptor),
+                    (Data.ProtoLens.Tag 5, team__field_descriptor),
+                    (Data.ProtoLens.Tag 7, tutorialState__field_descriptor),
+                    (Data.ProtoLens.Tag 8, avatar__field_descriptor),
+                    (Data.ProtoLens.Tag 9, maxPokemonStorage__field_descriptor),
+                    (Data.ProtoLens.Tag 10, maxItemStorage__field_descriptor),
+                    (Data.ProtoLens.Tag 11, dailyBonus__field_descriptor),
+                    (Data.ProtoLens.Tag 12, equippedBadge__field_descriptor),
+                    (Data.ProtoLens.Tag 13, contactSettings__field_descriptor),
+                    (Data.ProtoLens.Tag 14, currencies__field_descriptor)])
+                (Data.Map.fromList
+                   [("creation_timestamp_ms", creationTimestampMs__field_descriptor),
+                    ("username", username__field_descriptor),
+                    ("team", team__field_descriptor),
+                    ("tutorial_state", tutorialState__field_descriptor),
+                    ("avatar", avatar__field_descriptor),
+                    ("max_pokemon_storage", maxPokemonStorage__field_descriptor),
+                    ("max_item_storage", maxItemStorage__field_descriptor),
+                    ("daily_bonus", dailyBonus__field_descriptor),
+                    ("equipped_badge", equippedBadge__field_descriptor),
+                    ("contact_settings", contactSettings__field_descriptor),
+                    ("currencies", currencies__field_descriptor)])
+
+avatar ::
+       forall msg msg' . Data.ProtoLens.HasField "avatar" msg msg' =>
+         Lens.Family2.Lens msg msg' (Data.ProtoLens.Field "avatar" msg)
+           (Data.ProtoLens.Field "avatar" msg')
+avatar
+  = Data.ProtoLens.field
+      (Data.ProtoLens.ProxySym :: Data.ProtoLens.ProxySym "avatar")
+
+contactSettings ::
+                forall msg msg' .
+                  Data.ProtoLens.HasField "contactSettings" msg msg' =>
+                  Lens.Family2.Lens msg msg'
+                    (Data.ProtoLens.Field "contactSettings" msg)
+                    (Data.ProtoLens.Field "contactSettings" msg')
+contactSettings
+  = Data.ProtoLens.field
+      (Data.ProtoLens.ProxySym ::
+         Data.ProtoLens.ProxySym "contactSettings")
+
+creationTimestampMs ::
+                    forall msg msg' .
+                      Data.ProtoLens.HasField "creationTimestampMs" msg msg' =>
+                      Lens.Family2.Lens msg msg'
+                        (Data.ProtoLens.Field "creationTimestampMs" msg)
+                        (Data.ProtoLens.Field "creationTimestampMs" msg')
+creationTimestampMs
+  = Data.ProtoLens.field
+      (Data.ProtoLens.ProxySym ::
+         Data.ProtoLens.ProxySym "creationTimestampMs")
+
+currencies ::
+           forall msg msg' . Data.ProtoLens.HasField "currencies" msg msg' =>
+             Lens.Family2.Lens msg msg' (Data.ProtoLens.Field "currencies" msg)
+               (Data.ProtoLens.Field "currencies" msg')
+currencies
+  = Data.ProtoLens.field
+      (Data.ProtoLens.ProxySym :: Data.ProtoLens.ProxySym "currencies")
+
+dailyBonus ::
+           forall msg msg' . Data.ProtoLens.HasField "dailyBonus" msg msg' =>
+             Lens.Family2.Lens msg msg' (Data.ProtoLens.Field "dailyBonus" msg)
+               (Data.ProtoLens.Field "dailyBonus" msg')
+dailyBonus
+  = Data.ProtoLens.field
+      (Data.ProtoLens.ProxySym :: Data.ProtoLens.ProxySym "dailyBonus")
+
+equippedBadge ::
+              forall msg msg' .
+                Data.ProtoLens.HasField "equippedBadge" msg msg' =>
+                Lens.Family2.Lens msg msg'
+                  (Data.ProtoLens.Field "equippedBadge" msg)
+                  (Data.ProtoLens.Field "equippedBadge" msg')
+equippedBadge
+  = Data.ProtoLens.field
+      (Data.ProtoLens.ProxySym ::
+         Data.ProtoLens.ProxySym "equippedBadge")
+
+maxItemStorage ::
+               forall msg msg' .
+                 Data.ProtoLens.HasField "maxItemStorage" msg msg' =>
+                 Lens.Family2.Lens msg msg'
+                   (Data.ProtoLens.Field "maxItemStorage" msg)
+                   (Data.ProtoLens.Field "maxItemStorage" msg')
+maxItemStorage
+  = Data.ProtoLens.field
+      (Data.ProtoLens.ProxySym ::
+         Data.ProtoLens.ProxySym "maxItemStorage")
+
+maxPokemonStorage ::
+                  forall msg msg' .
+                    Data.ProtoLens.HasField "maxPokemonStorage" msg msg' =>
+                    Lens.Family2.Lens msg msg'
+                      (Data.ProtoLens.Field "maxPokemonStorage" msg)
+                      (Data.ProtoLens.Field "maxPokemonStorage" msg')
+maxPokemonStorage
+  = Data.ProtoLens.field
+      (Data.ProtoLens.ProxySym ::
+         Data.ProtoLens.ProxySym "maxPokemonStorage")
+
+maybe'avatar ::
+             forall msg msg' .
+               Data.ProtoLens.HasField "maybe'avatar" msg msg' =>
+               Lens.Family2.Lens msg msg'
+                 (Data.ProtoLens.Field "maybe'avatar" msg)
+                 (Data.ProtoLens.Field "maybe'avatar" msg')
+maybe'avatar
+  = Data.ProtoLens.field
+      (Data.ProtoLens.ProxySym :: Data.ProtoLens.ProxySym "maybe'avatar")
+
+maybe'contactSettings ::
+                      forall msg msg' .
+                        Data.ProtoLens.HasField "maybe'contactSettings" msg msg' =>
+                        Lens.Family2.Lens msg msg'
+                          (Data.ProtoLens.Field "maybe'contactSettings" msg)
+                          (Data.ProtoLens.Field "maybe'contactSettings" msg')
+maybe'contactSettings
+  = Data.ProtoLens.field
+      (Data.ProtoLens.ProxySym ::
+         Data.ProtoLens.ProxySym "maybe'contactSettings")
+
+maybe'dailyBonus ::
+                 forall msg msg' .
+                   Data.ProtoLens.HasField "maybe'dailyBonus" msg msg' =>
+                   Lens.Family2.Lens msg msg'
+                     (Data.ProtoLens.Field "maybe'dailyBonus" msg)
+                     (Data.ProtoLens.Field "maybe'dailyBonus" msg')
+maybe'dailyBonus
+  = Data.ProtoLens.field
+      (Data.ProtoLens.ProxySym ::
+         Data.ProtoLens.ProxySym "maybe'dailyBonus")
+
+maybe'equippedBadge ::
+                    forall msg msg' .
+                      Data.ProtoLens.HasField "maybe'equippedBadge" msg msg' =>
+                      Lens.Family2.Lens msg msg'
+                        (Data.ProtoLens.Field "maybe'equippedBadge" msg)
+                        (Data.ProtoLens.Field "maybe'equippedBadge" msg')
+maybe'equippedBadge
+  = Data.ProtoLens.field
+      (Data.ProtoLens.ProxySym ::
+         Data.ProtoLens.ProxySym "maybe'equippedBadge")
+
+team ::
+     forall msg msg' . Data.ProtoLens.HasField "team" msg msg' =>
+       Lens.Family2.Lens msg msg' (Data.ProtoLens.Field "team" msg)
+         (Data.ProtoLens.Field "team" msg')
+team
+  = Data.ProtoLens.field
+      (Data.ProtoLens.ProxySym :: Data.ProtoLens.ProxySym "team")
+
+tutorialState ::
+              forall msg msg' .
+                Data.ProtoLens.HasField "tutorialState" msg msg' =>
+                Lens.Family2.Lens msg msg'
+                  (Data.ProtoLens.Field "tutorialState" msg)
+                  (Data.ProtoLens.Field "tutorialState" msg')
+tutorialState
+  = Data.ProtoLens.field
+      (Data.ProtoLens.ProxySym ::
+         Data.ProtoLens.ProxySym "tutorialState")
+
+username ::
+         forall msg msg' . Data.ProtoLens.HasField "username" msg msg' =>
+           Lens.Family2.Lens msg msg' (Data.ProtoLens.Field "username" msg)
+             (Data.ProtoLens.Field "username" msg')
+username
+  = Data.ProtoLens.field
+      (Data.ProtoLens.ProxySym :: Data.ProtoLens.ProxySym "username")
diff --git a/src/Proto/POGOProtos/Data/PokedexEntry.hs b/src/Proto/POGOProtos/Data/PokedexEntry.hs
new file mode 100644
--- /dev/null
+++ b/src/Proto/POGOProtos/Data/PokedexEntry.hs
@@ -0,0 +1,176 @@
+{- This file was auto-generated from POGOProtos/Data/PokedexEntry.proto by the proto-lens-protoc program. -}
+{-# LANGUAGE ScopedTypeVariables, DataKinds, TypeFamilies,
+  MultiParamTypeClasses, FlexibleContexts, FlexibleInstances #-}
+{-# OPTIONS_GHC -fno-warn-unused-imports#-}
+module Proto.POGOProtos.Data.PokedexEntry where
+import qualified Prelude
+import qualified Data.ProtoLens
+import qualified Data.ProtoLens.Message.Enum
+import qualified Lens.Family2
+import qualified Lens.Family2.Unchecked
+import qualified Data.Default.Class
+import qualified Data.Text
+import qualified Data.Int
+import qualified Data.Word
+import qualified Data.Map
+import qualified Data.ByteString
+import qualified Proto.POGOProtos.Enums.PokemonId
+
+data PokedexEntry = PokedexEntry{_PokedexEntry'pokemonId ::
+                                 Proto.POGOProtos.Enums.PokemonId.PokemonId,
+                                 _PokedexEntry'timesEncountered :: Data.Int.Int32,
+                                 _PokedexEntry'timesCaptured :: Data.Int.Int32,
+                                 _PokedexEntry'evolutionStonePieces :: Data.Int.Int32,
+                                 _PokedexEntry'evolutionStones :: Data.Int.Int32}
+                  deriving (Prelude.Show, Prelude.Eq)
+
+type instance Data.ProtoLens.Field "pokemonId" PokedexEntry =
+     Proto.POGOProtos.Enums.PokemonId.PokemonId
+
+instance Data.ProtoLens.HasField "pokemonId" PokedexEntry
+         PokedexEntry where
+        field _
+          = Lens.Family2.Unchecked.lens _PokedexEntry'pokemonId
+              (\ x__ y__ -> x__{_PokedexEntry'pokemonId = y__})
+
+type instance Data.ProtoLens.Field "timesEncountered" PokedexEntry
+     = Data.Int.Int32
+
+instance Data.ProtoLens.HasField "timesEncountered" PokedexEntry
+         PokedexEntry where
+        field _
+          = Lens.Family2.Unchecked.lens _PokedexEntry'timesEncountered
+              (\ x__ y__ -> x__{_PokedexEntry'timesEncountered = y__})
+
+type instance Data.ProtoLens.Field "timesCaptured" PokedexEntry =
+     Data.Int.Int32
+
+instance Data.ProtoLens.HasField "timesCaptured" PokedexEntry
+         PokedexEntry where
+        field _
+          = Lens.Family2.Unchecked.lens _PokedexEntry'timesCaptured
+              (\ x__ y__ -> x__{_PokedexEntry'timesCaptured = y__})
+
+type instance
+     Data.ProtoLens.Field "evolutionStonePieces" PokedexEntry =
+     Data.Int.Int32
+
+instance Data.ProtoLens.HasField "evolutionStonePieces"
+         PokedexEntry PokedexEntry where
+        field _
+          = Lens.Family2.Unchecked.lens _PokedexEntry'evolutionStonePieces
+              (\ x__ y__ -> x__{_PokedexEntry'evolutionStonePieces = y__})
+
+type instance Data.ProtoLens.Field "evolutionStones" PokedexEntry =
+     Data.Int.Int32
+
+instance Data.ProtoLens.HasField "evolutionStones" PokedexEntry
+         PokedexEntry where
+        field _
+          = Lens.Family2.Unchecked.lens _PokedexEntry'evolutionStones
+              (\ x__ y__ -> x__{_PokedexEntry'evolutionStones = y__})
+
+instance Data.Default.Class.Default PokedexEntry where
+        def
+          = PokedexEntry{_PokedexEntry'pokemonId = Data.Default.Class.def,
+                         _PokedexEntry'timesEncountered = Data.ProtoLens.fieldDefault,
+                         _PokedexEntry'timesCaptured = Data.ProtoLens.fieldDefault,
+                         _PokedexEntry'evolutionStonePieces = Data.ProtoLens.fieldDefault,
+                         _PokedexEntry'evolutionStones = Data.ProtoLens.fieldDefault}
+
+instance Data.ProtoLens.Message PokedexEntry where
+        descriptor
+          = let pokemonId__field_descriptor
+                  = Data.ProtoLens.FieldDescriptor "pokemon_id"
+                      (Data.ProtoLens.EnumField ::
+                         Data.ProtoLens.FieldTypeDescriptor
+                           Proto.POGOProtos.Enums.PokemonId.PokemonId)
+                      (Data.ProtoLens.PlainField Data.ProtoLens.Optional pokemonId)
+                timesEncountered__field_descriptor
+                  = Data.ProtoLens.FieldDescriptor "times_encountered"
+                      (Data.ProtoLens.Int32Field ::
+                         Data.ProtoLens.FieldTypeDescriptor Data.Int.Int32)
+                      (Data.ProtoLens.PlainField Data.ProtoLens.Optional
+                         timesEncountered)
+                timesCaptured__field_descriptor
+                  = Data.ProtoLens.FieldDescriptor "times_captured"
+                      (Data.ProtoLens.Int32Field ::
+                         Data.ProtoLens.FieldTypeDescriptor Data.Int.Int32)
+                      (Data.ProtoLens.PlainField Data.ProtoLens.Optional timesCaptured)
+                evolutionStonePieces__field_descriptor
+                  = Data.ProtoLens.FieldDescriptor "evolution_stone_pieces"
+                      (Data.ProtoLens.Int32Field ::
+                         Data.ProtoLens.FieldTypeDescriptor Data.Int.Int32)
+                      (Data.ProtoLens.PlainField Data.ProtoLens.Optional
+                         evolutionStonePieces)
+                evolutionStones__field_descriptor
+                  = Data.ProtoLens.FieldDescriptor "evolution_stones"
+                      (Data.ProtoLens.Int32Field ::
+                         Data.ProtoLens.FieldTypeDescriptor Data.Int.Int32)
+                      (Data.ProtoLens.PlainField Data.ProtoLens.Optional evolutionStones)
+              in
+              Data.ProtoLens.MessageDescriptor
+                (Data.Map.fromList
+                   [(Data.ProtoLens.Tag 1, pokemonId__field_descriptor),
+                    (Data.ProtoLens.Tag 2, timesEncountered__field_descriptor),
+                    (Data.ProtoLens.Tag 3, timesCaptured__field_descriptor),
+                    (Data.ProtoLens.Tag 4, evolutionStonePieces__field_descriptor),
+                    (Data.ProtoLens.Tag 5, evolutionStones__field_descriptor)])
+                (Data.Map.fromList
+                   [("pokemon_id", pokemonId__field_descriptor),
+                    ("times_encountered", timesEncountered__field_descriptor),
+                    ("times_captured", timesCaptured__field_descriptor),
+                    ("evolution_stone_pieces", evolutionStonePieces__field_descriptor),
+                    ("evolution_stones", evolutionStones__field_descriptor)])
+
+evolutionStonePieces ::
+                     forall msg msg' .
+                       Data.ProtoLens.HasField "evolutionStonePieces" msg msg' =>
+                       Lens.Family2.Lens msg msg'
+                         (Data.ProtoLens.Field "evolutionStonePieces" msg)
+                         (Data.ProtoLens.Field "evolutionStonePieces" msg')
+evolutionStonePieces
+  = Data.ProtoLens.field
+      (Data.ProtoLens.ProxySym ::
+         Data.ProtoLens.ProxySym "evolutionStonePieces")
+
+evolutionStones ::
+                forall msg msg' .
+                  Data.ProtoLens.HasField "evolutionStones" msg msg' =>
+                  Lens.Family2.Lens msg msg'
+                    (Data.ProtoLens.Field "evolutionStones" msg)
+                    (Data.ProtoLens.Field "evolutionStones" msg')
+evolutionStones
+  = Data.ProtoLens.field
+      (Data.ProtoLens.ProxySym ::
+         Data.ProtoLens.ProxySym "evolutionStones")
+
+pokemonId ::
+          forall msg msg' . Data.ProtoLens.HasField "pokemonId" msg msg' =>
+            Lens.Family2.Lens msg msg' (Data.ProtoLens.Field "pokemonId" msg)
+              (Data.ProtoLens.Field "pokemonId" msg')
+pokemonId
+  = Data.ProtoLens.field
+      (Data.ProtoLens.ProxySym :: Data.ProtoLens.ProxySym "pokemonId")
+
+timesCaptured ::
+              forall msg msg' .
+                Data.ProtoLens.HasField "timesCaptured" msg msg' =>
+                Lens.Family2.Lens msg msg'
+                  (Data.ProtoLens.Field "timesCaptured" msg)
+                  (Data.ProtoLens.Field "timesCaptured" msg')
+timesCaptured
+  = Data.ProtoLens.field
+      (Data.ProtoLens.ProxySym ::
+         Data.ProtoLens.ProxySym "timesCaptured")
+
+timesEncountered ::
+                 forall msg msg' .
+                   Data.ProtoLens.HasField "timesEncountered" msg msg' =>
+                   Lens.Family2.Lens msg msg'
+                     (Data.ProtoLens.Field "timesEncountered" msg)
+                     (Data.ProtoLens.Field "timesEncountered" msg')
+timesEncountered
+  = Data.ProtoLens.field
+      (Data.ProtoLens.ProxySym ::
+         Data.ProtoLens.ProxySym "timesEncountered")
diff --git a/src/Proto/POGOProtos/Data/PokemonData.hs b/src/Proto/POGOProtos/Data/PokemonData.hs
new file mode 100644
--- /dev/null
+++ b/src/Proto/POGOProtos/Data/PokemonData.hs
@@ -0,0 +1,863 @@
+{- This file was auto-generated from POGOProtos/Data/PokemonData.proto by the proto-lens-protoc program. -}
+{-# LANGUAGE ScopedTypeVariables, DataKinds, TypeFamilies,
+  MultiParamTypeClasses, FlexibleContexts, FlexibleInstances #-}
+{-# OPTIONS_GHC -fno-warn-unused-imports#-}
+module Proto.POGOProtos.Data.PokemonData where
+import qualified Prelude
+import qualified Data.ProtoLens
+import qualified Data.ProtoLens.Message.Enum
+import qualified Lens.Family2
+import qualified Lens.Family2.Unchecked
+import qualified Data.Default.Class
+import qualified Data.Text
+import qualified Data.Int
+import qualified Data.Word
+import qualified Data.Map
+import qualified Data.ByteString
+import qualified Proto.POGOProtos.Enums.PokemonId
+import qualified Proto.POGOProtos.Enums.PokemonMove
+import qualified Proto.POGOProtos.Inventory.Item.ItemId
+
+data PokemonData = PokemonData{_PokemonData'id :: Data.Word.Word64,
+                               _PokemonData'pokemonId ::
+                               Proto.POGOProtos.Enums.PokemonId.PokemonId,
+                               _PokemonData'cp :: Data.Int.Int32,
+                               _PokemonData'stamina :: Data.Int.Int32,
+                               _PokemonData'staminaMax :: Data.Int.Int32,
+                               _PokemonData'move1 ::
+                               Proto.POGOProtos.Enums.PokemonMove.PokemonMove,
+                               _PokemonData'move2 ::
+                               Proto.POGOProtos.Enums.PokemonMove.PokemonMove,
+                               _PokemonData'deployedFortId :: Data.Text.Text,
+                               _PokemonData'ownerName :: Data.Text.Text,
+                               _PokemonData'isEgg :: Prelude.Bool,
+                               _PokemonData'eggKmWalkedTarget :: Prelude.Double,
+                               _PokemonData'eggKmWalkedStart :: Prelude.Double,
+                               _PokemonData'origin :: Data.Int.Int32,
+                               _PokemonData'heightM :: Prelude.Float,
+                               _PokemonData'weightKg :: Prelude.Float,
+                               _PokemonData'individualAttack :: Data.Int.Int32,
+                               _PokemonData'individualDefense :: Data.Int.Int32,
+                               _PokemonData'individualStamina :: Data.Int.Int32,
+                               _PokemonData'cpMultiplier :: Prelude.Float,
+                               _PokemonData'pokeball ::
+                               Proto.POGOProtos.Inventory.Item.ItemId.ItemId,
+                               _PokemonData'capturedCellId :: Data.Word.Word64,
+                               _PokemonData'battlesAttacked :: Data.Int.Int32,
+                               _PokemonData'battlesDefended :: Data.Int.Int32,
+                               _PokemonData'eggIncubatorId :: Data.Text.Text,
+                               _PokemonData'creationTimeMs :: Data.Word.Word64,
+                               _PokemonData'numUpgrades :: Data.Int.Int32,
+                               _PokemonData'additionalCpMultiplier :: Prelude.Float,
+                               _PokemonData'favorite :: Data.Int.Int32,
+                               _PokemonData'nickname :: Data.Text.Text,
+                               _PokemonData'fromFort :: Data.Int.Int32}
+                 deriving (Prelude.Show, Prelude.Eq)
+
+type instance Data.ProtoLens.Field "id" PokemonData =
+     Data.Word.Word64
+
+instance Data.ProtoLens.HasField "id" PokemonData PokemonData where
+        field _
+          = Lens.Family2.Unchecked.lens _PokemonData'id
+              (\ x__ y__ -> x__{_PokemonData'id = y__})
+
+type instance Data.ProtoLens.Field "pokemonId" PokemonData =
+     Proto.POGOProtos.Enums.PokemonId.PokemonId
+
+instance Data.ProtoLens.HasField "pokemonId" PokemonData
+         PokemonData where
+        field _
+          = Lens.Family2.Unchecked.lens _PokemonData'pokemonId
+              (\ x__ y__ -> x__{_PokemonData'pokemonId = y__})
+
+type instance Data.ProtoLens.Field "cp" PokemonData =
+     Data.Int.Int32
+
+instance Data.ProtoLens.HasField "cp" PokemonData PokemonData where
+        field _
+          = Lens.Family2.Unchecked.lens _PokemonData'cp
+              (\ x__ y__ -> x__{_PokemonData'cp = y__})
+
+type instance Data.ProtoLens.Field "stamina" PokemonData =
+     Data.Int.Int32
+
+instance Data.ProtoLens.HasField "stamina" PokemonData PokemonData
+         where
+        field _
+          = Lens.Family2.Unchecked.lens _PokemonData'stamina
+              (\ x__ y__ -> x__{_PokemonData'stamina = y__})
+
+type instance Data.ProtoLens.Field "staminaMax" PokemonData =
+     Data.Int.Int32
+
+instance Data.ProtoLens.HasField "staminaMax" PokemonData
+         PokemonData where
+        field _
+          = Lens.Family2.Unchecked.lens _PokemonData'staminaMax
+              (\ x__ y__ -> x__{_PokemonData'staminaMax = y__})
+
+type instance Data.ProtoLens.Field "move1" PokemonData =
+     Proto.POGOProtos.Enums.PokemonMove.PokemonMove
+
+instance Data.ProtoLens.HasField "move1" PokemonData PokemonData
+         where
+        field _
+          = Lens.Family2.Unchecked.lens _PokemonData'move1
+              (\ x__ y__ -> x__{_PokemonData'move1 = y__})
+
+type instance Data.ProtoLens.Field "move2" PokemonData =
+     Proto.POGOProtos.Enums.PokemonMove.PokemonMove
+
+instance Data.ProtoLens.HasField "move2" PokemonData PokemonData
+         where
+        field _
+          = Lens.Family2.Unchecked.lens _PokemonData'move2
+              (\ x__ y__ -> x__{_PokemonData'move2 = y__})
+
+type instance Data.ProtoLens.Field "deployedFortId" PokemonData =
+     Data.Text.Text
+
+instance Data.ProtoLens.HasField "deployedFortId" PokemonData
+         PokemonData where
+        field _
+          = Lens.Family2.Unchecked.lens _PokemonData'deployedFortId
+              (\ x__ y__ -> x__{_PokemonData'deployedFortId = y__})
+
+type instance Data.ProtoLens.Field "ownerName" PokemonData =
+     Data.Text.Text
+
+instance Data.ProtoLens.HasField "ownerName" PokemonData
+         PokemonData where
+        field _
+          = Lens.Family2.Unchecked.lens _PokemonData'ownerName
+              (\ x__ y__ -> x__{_PokemonData'ownerName = y__})
+
+type instance Data.ProtoLens.Field "isEgg" PokemonData =
+     Prelude.Bool
+
+instance Data.ProtoLens.HasField "isEgg" PokemonData PokemonData
+         where
+        field _
+          = Lens.Family2.Unchecked.lens _PokemonData'isEgg
+              (\ x__ y__ -> x__{_PokemonData'isEgg = y__})
+
+type instance Data.ProtoLens.Field "eggKmWalkedTarget" PokemonData
+     = Prelude.Double
+
+instance Data.ProtoLens.HasField "eggKmWalkedTarget" PokemonData
+         PokemonData where
+        field _
+          = Lens.Family2.Unchecked.lens _PokemonData'eggKmWalkedTarget
+              (\ x__ y__ -> x__{_PokemonData'eggKmWalkedTarget = y__})
+
+type instance Data.ProtoLens.Field "eggKmWalkedStart" PokemonData =
+     Prelude.Double
+
+instance Data.ProtoLens.HasField "eggKmWalkedStart" PokemonData
+         PokemonData where
+        field _
+          = Lens.Family2.Unchecked.lens _PokemonData'eggKmWalkedStart
+              (\ x__ y__ -> x__{_PokemonData'eggKmWalkedStart = y__})
+
+type instance Data.ProtoLens.Field "origin" PokemonData =
+     Data.Int.Int32
+
+instance Data.ProtoLens.HasField "origin" PokemonData PokemonData
+         where
+        field _
+          = Lens.Family2.Unchecked.lens _PokemonData'origin
+              (\ x__ y__ -> x__{_PokemonData'origin = y__})
+
+type instance Data.ProtoLens.Field "heightM" PokemonData =
+     Prelude.Float
+
+instance Data.ProtoLens.HasField "heightM" PokemonData PokemonData
+         where
+        field _
+          = Lens.Family2.Unchecked.lens _PokemonData'heightM
+              (\ x__ y__ -> x__{_PokemonData'heightM = y__})
+
+type instance Data.ProtoLens.Field "weightKg" PokemonData =
+     Prelude.Float
+
+instance Data.ProtoLens.HasField "weightKg" PokemonData PokemonData
+         where
+        field _
+          = Lens.Family2.Unchecked.lens _PokemonData'weightKg
+              (\ x__ y__ -> x__{_PokemonData'weightKg = y__})
+
+type instance Data.ProtoLens.Field "individualAttack" PokemonData =
+     Data.Int.Int32
+
+instance Data.ProtoLens.HasField "individualAttack" PokemonData
+         PokemonData where
+        field _
+          = Lens.Family2.Unchecked.lens _PokemonData'individualAttack
+              (\ x__ y__ -> x__{_PokemonData'individualAttack = y__})
+
+type instance Data.ProtoLens.Field "individualDefense" PokemonData
+     = Data.Int.Int32
+
+instance Data.ProtoLens.HasField "individualDefense" PokemonData
+         PokemonData where
+        field _
+          = Lens.Family2.Unchecked.lens _PokemonData'individualDefense
+              (\ x__ y__ -> x__{_PokemonData'individualDefense = y__})
+
+type instance Data.ProtoLens.Field "individualStamina" PokemonData
+     = Data.Int.Int32
+
+instance Data.ProtoLens.HasField "individualStamina" PokemonData
+         PokemonData where
+        field _
+          = Lens.Family2.Unchecked.lens _PokemonData'individualStamina
+              (\ x__ y__ -> x__{_PokemonData'individualStamina = y__})
+
+type instance Data.ProtoLens.Field "cpMultiplier" PokemonData =
+     Prelude.Float
+
+instance Data.ProtoLens.HasField "cpMultiplier" PokemonData
+         PokemonData where
+        field _
+          = Lens.Family2.Unchecked.lens _PokemonData'cpMultiplier
+              (\ x__ y__ -> x__{_PokemonData'cpMultiplier = y__})
+
+type instance Data.ProtoLens.Field "pokeball" PokemonData =
+     Proto.POGOProtos.Inventory.Item.ItemId.ItemId
+
+instance Data.ProtoLens.HasField "pokeball" PokemonData PokemonData
+         where
+        field _
+          = Lens.Family2.Unchecked.lens _PokemonData'pokeball
+              (\ x__ y__ -> x__{_PokemonData'pokeball = y__})
+
+type instance Data.ProtoLens.Field "capturedCellId" PokemonData =
+     Data.Word.Word64
+
+instance Data.ProtoLens.HasField "capturedCellId" PokemonData
+         PokemonData where
+        field _
+          = Lens.Family2.Unchecked.lens _PokemonData'capturedCellId
+              (\ x__ y__ -> x__{_PokemonData'capturedCellId = y__})
+
+type instance Data.ProtoLens.Field "battlesAttacked" PokemonData =
+     Data.Int.Int32
+
+instance Data.ProtoLens.HasField "battlesAttacked" PokemonData
+         PokemonData where
+        field _
+          = Lens.Family2.Unchecked.lens _PokemonData'battlesAttacked
+              (\ x__ y__ -> x__{_PokemonData'battlesAttacked = y__})
+
+type instance Data.ProtoLens.Field "battlesDefended" PokemonData =
+     Data.Int.Int32
+
+instance Data.ProtoLens.HasField "battlesDefended" PokemonData
+         PokemonData where
+        field _
+          = Lens.Family2.Unchecked.lens _PokemonData'battlesDefended
+              (\ x__ y__ -> x__{_PokemonData'battlesDefended = y__})
+
+type instance Data.ProtoLens.Field "eggIncubatorId" PokemonData =
+     Data.Text.Text
+
+instance Data.ProtoLens.HasField "eggIncubatorId" PokemonData
+         PokemonData where
+        field _
+          = Lens.Family2.Unchecked.lens _PokemonData'eggIncubatorId
+              (\ x__ y__ -> x__{_PokemonData'eggIncubatorId = y__})
+
+type instance Data.ProtoLens.Field "creationTimeMs" PokemonData =
+     Data.Word.Word64
+
+instance Data.ProtoLens.HasField "creationTimeMs" PokemonData
+         PokemonData where
+        field _
+          = Lens.Family2.Unchecked.lens _PokemonData'creationTimeMs
+              (\ x__ y__ -> x__{_PokemonData'creationTimeMs = y__})
+
+type instance Data.ProtoLens.Field "numUpgrades" PokemonData =
+     Data.Int.Int32
+
+instance Data.ProtoLens.HasField "numUpgrades" PokemonData
+         PokemonData where
+        field _
+          = Lens.Family2.Unchecked.lens _PokemonData'numUpgrades
+              (\ x__ y__ -> x__{_PokemonData'numUpgrades = y__})
+
+type instance
+     Data.ProtoLens.Field "additionalCpMultiplier" PokemonData =
+     Prelude.Float
+
+instance Data.ProtoLens.HasField "additionalCpMultiplier"
+         PokemonData PokemonData where
+        field _
+          = Lens.Family2.Unchecked.lens _PokemonData'additionalCpMultiplier
+              (\ x__ y__ -> x__{_PokemonData'additionalCpMultiplier = y__})
+
+type instance Data.ProtoLens.Field "favorite" PokemonData =
+     Data.Int.Int32
+
+instance Data.ProtoLens.HasField "favorite" PokemonData PokemonData
+         where
+        field _
+          = Lens.Family2.Unchecked.lens _PokemonData'favorite
+              (\ x__ y__ -> x__{_PokemonData'favorite = y__})
+
+type instance Data.ProtoLens.Field "nickname" PokemonData =
+     Data.Text.Text
+
+instance Data.ProtoLens.HasField "nickname" PokemonData PokemonData
+         where
+        field _
+          = Lens.Family2.Unchecked.lens _PokemonData'nickname
+              (\ x__ y__ -> x__{_PokemonData'nickname = y__})
+
+type instance Data.ProtoLens.Field "fromFort" PokemonData =
+     Data.Int.Int32
+
+instance Data.ProtoLens.HasField "fromFort" PokemonData PokemonData
+         where
+        field _
+          = Lens.Family2.Unchecked.lens _PokemonData'fromFort
+              (\ x__ y__ -> x__{_PokemonData'fromFort = y__})
+
+instance Data.Default.Class.Default PokemonData where
+        def
+          = PokemonData{_PokemonData'id = Data.ProtoLens.fieldDefault,
+                        _PokemonData'pokemonId = Data.Default.Class.def,
+                        _PokemonData'cp = Data.ProtoLens.fieldDefault,
+                        _PokemonData'stamina = Data.ProtoLens.fieldDefault,
+                        _PokemonData'staminaMax = Data.ProtoLens.fieldDefault,
+                        _PokemonData'move1 = Data.Default.Class.def,
+                        _PokemonData'move2 = Data.Default.Class.def,
+                        _PokemonData'deployedFortId = Data.ProtoLens.fieldDefault,
+                        _PokemonData'ownerName = Data.ProtoLens.fieldDefault,
+                        _PokemonData'isEgg = Data.ProtoLens.fieldDefault,
+                        _PokemonData'eggKmWalkedTarget = Data.ProtoLens.fieldDefault,
+                        _PokemonData'eggKmWalkedStart = Data.ProtoLens.fieldDefault,
+                        _PokemonData'origin = Data.ProtoLens.fieldDefault,
+                        _PokemonData'heightM = Data.ProtoLens.fieldDefault,
+                        _PokemonData'weightKg = Data.ProtoLens.fieldDefault,
+                        _PokemonData'individualAttack = Data.ProtoLens.fieldDefault,
+                        _PokemonData'individualDefense = Data.ProtoLens.fieldDefault,
+                        _PokemonData'individualStamina = Data.ProtoLens.fieldDefault,
+                        _PokemonData'cpMultiplier = Data.ProtoLens.fieldDefault,
+                        _PokemonData'pokeball = Data.Default.Class.def,
+                        _PokemonData'capturedCellId = Data.ProtoLens.fieldDefault,
+                        _PokemonData'battlesAttacked = Data.ProtoLens.fieldDefault,
+                        _PokemonData'battlesDefended = Data.ProtoLens.fieldDefault,
+                        _PokemonData'eggIncubatorId = Data.ProtoLens.fieldDefault,
+                        _PokemonData'creationTimeMs = Data.ProtoLens.fieldDefault,
+                        _PokemonData'numUpgrades = Data.ProtoLens.fieldDefault,
+                        _PokemonData'additionalCpMultiplier = Data.ProtoLens.fieldDefault,
+                        _PokemonData'favorite = Data.ProtoLens.fieldDefault,
+                        _PokemonData'nickname = Data.ProtoLens.fieldDefault,
+                        _PokemonData'fromFort = Data.ProtoLens.fieldDefault}
+
+instance Data.ProtoLens.Message PokemonData where
+        descriptor
+          = let id__field_descriptor
+                  = Data.ProtoLens.FieldDescriptor "id"
+                      (Data.ProtoLens.Fixed64Field ::
+                         Data.ProtoLens.FieldTypeDescriptor Data.Word.Word64)
+                      (Data.ProtoLens.PlainField Data.ProtoLens.Optional id)
+                pokemonId__field_descriptor
+                  = Data.ProtoLens.FieldDescriptor "pokemon_id"
+                      (Data.ProtoLens.EnumField ::
+                         Data.ProtoLens.FieldTypeDescriptor
+                           Proto.POGOProtos.Enums.PokemonId.PokemonId)
+                      (Data.ProtoLens.PlainField Data.ProtoLens.Optional pokemonId)
+                cp__field_descriptor
+                  = Data.ProtoLens.FieldDescriptor "cp"
+                      (Data.ProtoLens.Int32Field ::
+                         Data.ProtoLens.FieldTypeDescriptor Data.Int.Int32)
+                      (Data.ProtoLens.PlainField Data.ProtoLens.Optional cp)
+                stamina__field_descriptor
+                  = Data.ProtoLens.FieldDescriptor "stamina"
+                      (Data.ProtoLens.Int32Field ::
+                         Data.ProtoLens.FieldTypeDescriptor Data.Int.Int32)
+                      (Data.ProtoLens.PlainField Data.ProtoLens.Optional stamina)
+                staminaMax__field_descriptor
+                  = Data.ProtoLens.FieldDescriptor "stamina_max"
+                      (Data.ProtoLens.Int32Field ::
+                         Data.ProtoLens.FieldTypeDescriptor Data.Int.Int32)
+                      (Data.ProtoLens.PlainField Data.ProtoLens.Optional staminaMax)
+                move1__field_descriptor
+                  = Data.ProtoLens.FieldDescriptor "move_1"
+                      (Data.ProtoLens.EnumField ::
+                         Data.ProtoLens.FieldTypeDescriptor
+                           Proto.POGOProtos.Enums.PokemonMove.PokemonMove)
+                      (Data.ProtoLens.PlainField Data.ProtoLens.Optional move1)
+                move2__field_descriptor
+                  = Data.ProtoLens.FieldDescriptor "move_2"
+                      (Data.ProtoLens.EnumField ::
+                         Data.ProtoLens.FieldTypeDescriptor
+                           Proto.POGOProtos.Enums.PokemonMove.PokemonMove)
+                      (Data.ProtoLens.PlainField Data.ProtoLens.Optional move2)
+                deployedFortId__field_descriptor
+                  = Data.ProtoLens.FieldDescriptor "deployed_fort_id"
+                      (Data.ProtoLens.StringField ::
+                         Data.ProtoLens.FieldTypeDescriptor Data.Text.Text)
+                      (Data.ProtoLens.PlainField Data.ProtoLens.Optional deployedFortId)
+                ownerName__field_descriptor
+                  = Data.ProtoLens.FieldDescriptor "owner_name"
+                      (Data.ProtoLens.StringField ::
+                         Data.ProtoLens.FieldTypeDescriptor Data.Text.Text)
+                      (Data.ProtoLens.PlainField Data.ProtoLens.Optional ownerName)
+                isEgg__field_descriptor
+                  = Data.ProtoLens.FieldDescriptor "is_egg"
+                      (Data.ProtoLens.BoolField ::
+                         Data.ProtoLens.FieldTypeDescriptor Prelude.Bool)
+                      (Data.ProtoLens.PlainField Data.ProtoLens.Optional isEgg)
+                eggKmWalkedTarget__field_descriptor
+                  = Data.ProtoLens.FieldDescriptor "egg_km_walked_target"
+                      (Data.ProtoLens.DoubleField ::
+                         Data.ProtoLens.FieldTypeDescriptor Prelude.Double)
+                      (Data.ProtoLens.PlainField Data.ProtoLens.Optional
+                         eggKmWalkedTarget)
+                eggKmWalkedStart__field_descriptor
+                  = Data.ProtoLens.FieldDescriptor "egg_km_walked_start"
+                      (Data.ProtoLens.DoubleField ::
+                         Data.ProtoLens.FieldTypeDescriptor Prelude.Double)
+                      (Data.ProtoLens.PlainField Data.ProtoLens.Optional
+                         eggKmWalkedStart)
+                origin__field_descriptor
+                  = Data.ProtoLens.FieldDescriptor "origin"
+                      (Data.ProtoLens.Int32Field ::
+                         Data.ProtoLens.FieldTypeDescriptor Data.Int.Int32)
+                      (Data.ProtoLens.PlainField Data.ProtoLens.Optional origin)
+                heightM__field_descriptor
+                  = Data.ProtoLens.FieldDescriptor "height_m"
+                      (Data.ProtoLens.FloatField ::
+                         Data.ProtoLens.FieldTypeDescriptor Prelude.Float)
+                      (Data.ProtoLens.PlainField Data.ProtoLens.Optional heightM)
+                weightKg__field_descriptor
+                  = Data.ProtoLens.FieldDescriptor "weight_kg"
+                      (Data.ProtoLens.FloatField ::
+                         Data.ProtoLens.FieldTypeDescriptor Prelude.Float)
+                      (Data.ProtoLens.PlainField Data.ProtoLens.Optional weightKg)
+                individualAttack__field_descriptor
+                  = Data.ProtoLens.FieldDescriptor "individual_attack"
+                      (Data.ProtoLens.Int32Field ::
+                         Data.ProtoLens.FieldTypeDescriptor Data.Int.Int32)
+                      (Data.ProtoLens.PlainField Data.ProtoLens.Optional
+                         individualAttack)
+                individualDefense__field_descriptor
+                  = Data.ProtoLens.FieldDescriptor "individual_defense"
+                      (Data.ProtoLens.Int32Field ::
+                         Data.ProtoLens.FieldTypeDescriptor Data.Int.Int32)
+                      (Data.ProtoLens.PlainField Data.ProtoLens.Optional
+                         individualDefense)
+                individualStamina__field_descriptor
+                  = Data.ProtoLens.FieldDescriptor "individual_stamina"
+                      (Data.ProtoLens.Int32Field ::
+                         Data.ProtoLens.FieldTypeDescriptor Data.Int.Int32)
+                      (Data.ProtoLens.PlainField Data.ProtoLens.Optional
+                         individualStamina)
+                cpMultiplier__field_descriptor
+                  = Data.ProtoLens.FieldDescriptor "cp_multiplier"
+                      (Data.ProtoLens.FloatField ::
+                         Data.ProtoLens.FieldTypeDescriptor Prelude.Float)
+                      (Data.ProtoLens.PlainField Data.ProtoLens.Optional cpMultiplier)
+                pokeball__field_descriptor
+                  = Data.ProtoLens.FieldDescriptor "pokeball"
+                      (Data.ProtoLens.EnumField ::
+                         Data.ProtoLens.FieldTypeDescriptor
+                           Proto.POGOProtos.Inventory.Item.ItemId.ItemId)
+                      (Data.ProtoLens.PlainField Data.ProtoLens.Optional pokeball)
+                capturedCellId__field_descriptor
+                  = Data.ProtoLens.FieldDescriptor "captured_cell_id"
+                      (Data.ProtoLens.UInt64Field ::
+                         Data.ProtoLens.FieldTypeDescriptor Data.Word.Word64)
+                      (Data.ProtoLens.PlainField Data.ProtoLens.Optional capturedCellId)
+                battlesAttacked__field_descriptor
+                  = Data.ProtoLens.FieldDescriptor "battles_attacked"
+                      (Data.ProtoLens.Int32Field ::
+                         Data.ProtoLens.FieldTypeDescriptor Data.Int.Int32)
+                      (Data.ProtoLens.PlainField Data.ProtoLens.Optional battlesAttacked)
+                battlesDefended__field_descriptor
+                  = Data.ProtoLens.FieldDescriptor "battles_defended"
+                      (Data.ProtoLens.Int32Field ::
+                         Data.ProtoLens.FieldTypeDescriptor Data.Int.Int32)
+                      (Data.ProtoLens.PlainField Data.ProtoLens.Optional battlesDefended)
+                eggIncubatorId__field_descriptor
+                  = Data.ProtoLens.FieldDescriptor "egg_incubator_id"
+                      (Data.ProtoLens.StringField ::
+                         Data.ProtoLens.FieldTypeDescriptor Data.Text.Text)
+                      (Data.ProtoLens.PlainField Data.ProtoLens.Optional eggIncubatorId)
+                creationTimeMs__field_descriptor
+                  = Data.ProtoLens.FieldDescriptor "creation_time_ms"
+                      (Data.ProtoLens.UInt64Field ::
+                         Data.ProtoLens.FieldTypeDescriptor Data.Word.Word64)
+                      (Data.ProtoLens.PlainField Data.ProtoLens.Optional creationTimeMs)
+                numUpgrades__field_descriptor
+                  = Data.ProtoLens.FieldDescriptor "num_upgrades"
+                      (Data.ProtoLens.Int32Field ::
+                         Data.ProtoLens.FieldTypeDescriptor Data.Int.Int32)
+                      (Data.ProtoLens.PlainField Data.ProtoLens.Optional numUpgrades)
+                additionalCpMultiplier__field_descriptor
+                  = Data.ProtoLens.FieldDescriptor "additional_cp_multiplier"
+                      (Data.ProtoLens.FloatField ::
+                         Data.ProtoLens.FieldTypeDescriptor Prelude.Float)
+                      (Data.ProtoLens.PlainField Data.ProtoLens.Optional
+                         additionalCpMultiplier)
+                favorite__field_descriptor
+                  = Data.ProtoLens.FieldDescriptor "favorite"
+                      (Data.ProtoLens.Int32Field ::
+                         Data.ProtoLens.FieldTypeDescriptor Data.Int.Int32)
+                      (Data.ProtoLens.PlainField Data.ProtoLens.Optional favorite)
+                nickname__field_descriptor
+                  = Data.ProtoLens.FieldDescriptor "nickname"
+                      (Data.ProtoLens.StringField ::
+                         Data.ProtoLens.FieldTypeDescriptor Data.Text.Text)
+                      (Data.ProtoLens.PlainField Data.ProtoLens.Optional nickname)
+                fromFort__field_descriptor
+                  = Data.ProtoLens.FieldDescriptor "from_fort"
+                      (Data.ProtoLens.Int32Field ::
+                         Data.ProtoLens.FieldTypeDescriptor Data.Int.Int32)
+                      (Data.ProtoLens.PlainField Data.ProtoLens.Optional fromFort)
+              in
+              Data.ProtoLens.MessageDescriptor
+                (Data.Map.fromList
+                   [(Data.ProtoLens.Tag 1, id__field_descriptor),
+                    (Data.ProtoLens.Tag 2, pokemonId__field_descriptor),
+                    (Data.ProtoLens.Tag 3, cp__field_descriptor),
+                    (Data.ProtoLens.Tag 4, stamina__field_descriptor),
+                    (Data.ProtoLens.Tag 5, staminaMax__field_descriptor),
+                    (Data.ProtoLens.Tag 6, move1__field_descriptor),
+                    (Data.ProtoLens.Tag 7, move2__field_descriptor),
+                    (Data.ProtoLens.Tag 8, deployedFortId__field_descriptor),
+                    (Data.ProtoLens.Tag 9, ownerName__field_descriptor),
+                    (Data.ProtoLens.Tag 10, isEgg__field_descriptor),
+                    (Data.ProtoLens.Tag 11, eggKmWalkedTarget__field_descriptor),
+                    (Data.ProtoLens.Tag 12, eggKmWalkedStart__field_descriptor),
+                    (Data.ProtoLens.Tag 14, origin__field_descriptor),
+                    (Data.ProtoLens.Tag 15, heightM__field_descriptor),
+                    (Data.ProtoLens.Tag 16, weightKg__field_descriptor),
+                    (Data.ProtoLens.Tag 17, individualAttack__field_descriptor),
+                    (Data.ProtoLens.Tag 18, individualDefense__field_descriptor),
+                    (Data.ProtoLens.Tag 19, individualStamina__field_descriptor),
+                    (Data.ProtoLens.Tag 20, cpMultiplier__field_descriptor),
+                    (Data.ProtoLens.Tag 21, pokeball__field_descriptor),
+                    (Data.ProtoLens.Tag 22, capturedCellId__field_descriptor),
+                    (Data.ProtoLens.Tag 23, battlesAttacked__field_descriptor),
+                    (Data.ProtoLens.Tag 24, battlesDefended__field_descriptor),
+                    (Data.ProtoLens.Tag 25, eggIncubatorId__field_descriptor),
+                    (Data.ProtoLens.Tag 26, creationTimeMs__field_descriptor),
+                    (Data.ProtoLens.Tag 27, numUpgrades__field_descriptor),
+                    (Data.ProtoLens.Tag 28, additionalCpMultiplier__field_descriptor),
+                    (Data.ProtoLens.Tag 29, favorite__field_descriptor),
+                    (Data.ProtoLens.Tag 30, nickname__field_descriptor),
+                    (Data.ProtoLens.Tag 31, fromFort__field_descriptor)])
+                (Data.Map.fromList
+                   [("id", id__field_descriptor),
+                    ("pokemon_id", pokemonId__field_descriptor),
+                    ("cp", cp__field_descriptor),
+                    ("stamina", stamina__field_descriptor),
+                    ("stamina_max", staminaMax__field_descriptor),
+                    ("move_1", move1__field_descriptor),
+                    ("move_2", move2__field_descriptor),
+                    ("deployed_fort_id", deployedFortId__field_descriptor),
+                    ("owner_name", ownerName__field_descriptor),
+                    ("is_egg", isEgg__field_descriptor),
+                    ("egg_km_walked_target", eggKmWalkedTarget__field_descriptor),
+                    ("egg_km_walked_start", eggKmWalkedStart__field_descriptor),
+                    ("origin", origin__field_descriptor),
+                    ("height_m", heightM__field_descriptor),
+                    ("weight_kg", weightKg__field_descriptor),
+                    ("individual_attack", individualAttack__field_descriptor),
+                    ("individual_defense", individualDefense__field_descriptor),
+                    ("individual_stamina", individualStamina__field_descriptor),
+                    ("cp_multiplier", cpMultiplier__field_descriptor),
+                    ("pokeball", pokeball__field_descriptor),
+                    ("captured_cell_id", capturedCellId__field_descriptor),
+                    ("battles_attacked", battlesAttacked__field_descriptor),
+                    ("battles_defended", battlesDefended__field_descriptor),
+                    ("egg_incubator_id", eggIncubatorId__field_descriptor),
+                    ("creation_time_ms", creationTimeMs__field_descriptor),
+                    ("num_upgrades", numUpgrades__field_descriptor),
+                    ("additional_cp_multiplier",
+                     additionalCpMultiplier__field_descriptor),
+                    ("favorite", favorite__field_descriptor),
+                    ("nickname", nickname__field_descriptor),
+                    ("from_fort", fromFort__field_descriptor)])
+
+additionalCpMultiplier ::
+                       forall msg msg' .
+                         Data.ProtoLens.HasField "additionalCpMultiplier" msg msg' =>
+                         Lens.Family2.Lens msg msg'
+                           (Data.ProtoLens.Field "additionalCpMultiplier" msg)
+                           (Data.ProtoLens.Field "additionalCpMultiplier" msg')
+additionalCpMultiplier
+  = Data.ProtoLens.field
+      (Data.ProtoLens.ProxySym ::
+         Data.ProtoLens.ProxySym "additionalCpMultiplier")
+
+battlesAttacked ::
+                forall msg msg' .
+                  Data.ProtoLens.HasField "battlesAttacked" msg msg' =>
+                  Lens.Family2.Lens msg msg'
+                    (Data.ProtoLens.Field "battlesAttacked" msg)
+                    (Data.ProtoLens.Field "battlesAttacked" msg')
+battlesAttacked
+  = Data.ProtoLens.field
+      (Data.ProtoLens.ProxySym ::
+         Data.ProtoLens.ProxySym "battlesAttacked")
+
+battlesDefended ::
+                forall msg msg' .
+                  Data.ProtoLens.HasField "battlesDefended" msg msg' =>
+                  Lens.Family2.Lens msg msg'
+                    (Data.ProtoLens.Field "battlesDefended" msg)
+                    (Data.ProtoLens.Field "battlesDefended" msg')
+battlesDefended
+  = Data.ProtoLens.field
+      (Data.ProtoLens.ProxySym ::
+         Data.ProtoLens.ProxySym "battlesDefended")
+
+capturedCellId ::
+               forall msg msg' .
+                 Data.ProtoLens.HasField "capturedCellId" msg msg' =>
+                 Lens.Family2.Lens msg msg'
+                   (Data.ProtoLens.Field "capturedCellId" msg)
+                   (Data.ProtoLens.Field "capturedCellId" msg')
+capturedCellId
+  = Data.ProtoLens.field
+      (Data.ProtoLens.ProxySym ::
+         Data.ProtoLens.ProxySym "capturedCellId")
+
+cp ::
+   forall msg msg' . Data.ProtoLens.HasField "cp" msg msg' =>
+     Lens.Family2.Lens msg msg' (Data.ProtoLens.Field "cp" msg)
+       (Data.ProtoLens.Field "cp" msg')
+cp
+  = Data.ProtoLens.field
+      (Data.ProtoLens.ProxySym :: Data.ProtoLens.ProxySym "cp")
+
+cpMultiplier ::
+             forall msg msg' .
+               Data.ProtoLens.HasField "cpMultiplier" msg msg' =>
+               Lens.Family2.Lens msg msg'
+                 (Data.ProtoLens.Field "cpMultiplier" msg)
+                 (Data.ProtoLens.Field "cpMultiplier" msg')
+cpMultiplier
+  = Data.ProtoLens.field
+      (Data.ProtoLens.ProxySym :: Data.ProtoLens.ProxySym "cpMultiplier")
+
+creationTimeMs ::
+               forall msg msg' .
+                 Data.ProtoLens.HasField "creationTimeMs" msg msg' =>
+                 Lens.Family2.Lens msg msg'
+                   (Data.ProtoLens.Field "creationTimeMs" msg)
+                   (Data.ProtoLens.Field "creationTimeMs" msg')
+creationTimeMs
+  = Data.ProtoLens.field
+      (Data.ProtoLens.ProxySym ::
+         Data.ProtoLens.ProxySym "creationTimeMs")
+
+deployedFortId ::
+               forall msg msg' .
+                 Data.ProtoLens.HasField "deployedFortId" msg msg' =>
+                 Lens.Family2.Lens msg msg'
+                   (Data.ProtoLens.Field "deployedFortId" msg)
+                   (Data.ProtoLens.Field "deployedFortId" msg')
+deployedFortId
+  = Data.ProtoLens.field
+      (Data.ProtoLens.ProxySym ::
+         Data.ProtoLens.ProxySym "deployedFortId")
+
+eggIncubatorId ::
+               forall msg msg' .
+                 Data.ProtoLens.HasField "eggIncubatorId" msg msg' =>
+                 Lens.Family2.Lens msg msg'
+                   (Data.ProtoLens.Field "eggIncubatorId" msg)
+                   (Data.ProtoLens.Field "eggIncubatorId" msg')
+eggIncubatorId
+  = Data.ProtoLens.field
+      (Data.ProtoLens.ProxySym ::
+         Data.ProtoLens.ProxySym "eggIncubatorId")
+
+eggKmWalkedStart ::
+                 forall msg msg' .
+                   Data.ProtoLens.HasField "eggKmWalkedStart" msg msg' =>
+                   Lens.Family2.Lens msg msg'
+                     (Data.ProtoLens.Field "eggKmWalkedStart" msg)
+                     (Data.ProtoLens.Field "eggKmWalkedStart" msg')
+eggKmWalkedStart
+  = Data.ProtoLens.field
+      (Data.ProtoLens.ProxySym ::
+         Data.ProtoLens.ProxySym "eggKmWalkedStart")
+
+eggKmWalkedTarget ::
+                  forall msg msg' .
+                    Data.ProtoLens.HasField "eggKmWalkedTarget" msg msg' =>
+                    Lens.Family2.Lens msg msg'
+                      (Data.ProtoLens.Field "eggKmWalkedTarget" msg)
+                      (Data.ProtoLens.Field "eggKmWalkedTarget" msg')
+eggKmWalkedTarget
+  = Data.ProtoLens.field
+      (Data.ProtoLens.ProxySym ::
+         Data.ProtoLens.ProxySym "eggKmWalkedTarget")
+
+favorite ::
+         forall msg msg' . Data.ProtoLens.HasField "favorite" msg msg' =>
+           Lens.Family2.Lens msg msg' (Data.ProtoLens.Field "favorite" msg)
+             (Data.ProtoLens.Field "favorite" msg')
+favorite
+  = Data.ProtoLens.field
+      (Data.ProtoLens.ProxySym :: Data.ProtoLens.ProxySym "favorite")
+
+fromFort ::
+         forall msg msg' . Data.ProtoLens.HasField "fromFort" msg msg' =>
+           Lens.Family2.Lens msg msg' (Data.ProtoLens.Field "fromFort" msg)
+             (Data.ProtoLens.Field "fromFort" msg')
+fromFort
+  = Data.ProtoLens.field
+      (Data.ProtoLens.ProxySym :: Data.ProtoLens.ProxySym "fromFort")
+
+heightM ::
+        forall msg msg' . Data.ProtoLens.HasField "heightM" msg msg' =>
+          Lens.Family2.Lens msg msg' (Data.ProtoLens.Field "heightM" msg)
+            (Data.ProtoLens.Field "heightM" msg')
+heightM
+  = Data.ProtoLens.field
+      (Data.ProtoLens.ProxySym :: Data.ProtoLens.ProxySym "heightM")
+
+id ::
+   forall msg msg' . Data.ProtoLens.HasField "id" msg msg' =>
+     Lens.Family2.Lens msg msg' (Data.ProtoLens.Field "id" msg)
+       (Data.ProtoLens.Field "id" msg')
+id
+  = Data.ProtoLens.field
+      (Data.ProtoLens.ProxySym :: Data.ProtoLens.ProxySym "id")
+
+individualAttack ::
+                 forall msg msg' .
+                   Data.ProtoLens.HasField "individualAttack" msg msg' =>
+                   Lens.Family2.Lens msg msg'
+                     (Data.ProtoLens.Field "individualAttack" msg)
+                     (Data.ProtoLens.Field "individualAttack" msg')
+individualAttack
+  = Data.ProtoLens.field
+      (Data.ProtoLens.ProxySym ::
+         Data.ProtoLens.ProxySym "individualAttack")
+
+individualDefense ::
+                  forall msg msg' .
+                    Data.ProtoLens.HasField "individualDefense" msg msg' =>
+                    Lens.Family2.Lens msg msg'
+                      (Data.ProtoLens.Field "individualDefense" msg)
+                      (Data.ProtoLens.Field "individualDefense" msg')
+individualDefense
+  = Data.ProtoLens.field
+      (Data.ProtoLens.ProxySym ::
+         Data.ProtoLens.ProxySym "individualDefense")
+
+individualStamina ::
+                  forall msg msg' .
+                    Data.ProtoLens.HasField "individualStamina" msg msg' =>
+                    Lens.Family2.Lens msg msg'
+                      (Data.ProtoLens.Field "individualStamina" msg)
+                      (Data.ProtoLens.Field "individualStamina" msg')
+individualStamina
+  = Data.ProtoLens.field
+      (Data.ProtoLens.ProxySym ::
+         Data.ProtoLens.ProxySym "individualStamina")
+
+isEgg ::
+      forall msg msg' . Data.ProtoLens.HasField "isEgg" msg msg' =>
+        Lens.Family2.Lens msg msg' (Data.ProtoLens.Field "isEgg" msg)
+          (Data.ProtoLens.Field "isEgg" msg')
+isEgg
+  = Data.ProtoLens.field
+      (Data.ProtoLens.ProxySym :: Data.ProtoLens.ProxySym "isEgg")
+
+move1 ::
+      forall msg msg' . Data.ProtoLens.HasField "move1" msg msg' =>
+        Lens.Family2.Lens msg msg' (Data.ProtoLens.Field "move1" msg)
+          (Data.ProtoLens.Field "move1" msg')
+move1
+  = Data.ProtoLens.field
+      (Data.ProtoLens.ProxySym :: Data.ProtoLens.ProxySym "move1")
+
+move2 ::
+      forall msg msg' . Data.ProtoLens.HasField "move2" msg msg' =>
+        Lens.Family2.Lens msg msg' (Data.ProtoLens.Field "move2" msg)
+          (Data.ProtoLens.Field "move2" msg')
+move2
+  = Data.ProtoLens.field
+      (Data.ProtoLens.ProxySym :: Data.ProtoLens.ProxySym "move2")
+
+nickname ::
+         forall msg msg' . Data.ProtoLens.HasField "nickname" msg msg' =>
+           Lens.Family2.Lens msg msg' (Data.ProtoLens.Field "nickname" msg)
+             (Data.ProtoLens.Field "nickname" msg')
+nickname
+  = Data.ProtoLens.field
+      (Data.ProtoLens.ProxySym :: Data.ProtoLens.ProxySym "nickname")
+
+numUpgrades ::
+            forall msg msg' . Data.ProtoLens.HasField "numUpgrades" msg msg' =>
+              Lens.Family2.Lens msg msg' (Data.ProtoLens.Field "numUpgrades" msg)
+                (Data.ProtoLens.Field "numUpgrades" msg')
+numUpgrades
+  = Data.ProtoLens.field
+      (Data.ProtoLens.ProxySym :: Data.ProtoLens.ProxySym "numUpgrades")
+
+origin ::
+       forall msg msg' . Data.ProtoLens.HasField "origin" msg msg' =>
+         Lens.Family2.Lens msg msg' (Data.ProtoLens.Field "origin" msg)
+           (Data.ProtoLens.Field "origin" msg')
+origin
+  = Data.ProtoLens.field
+      (Data.ProtoLens.ProxySym :: Data.ProtoLens.ProxySym "origin")
+
+ownerName ::
+          forall msg msg' . Data.ProtoLens.HasField "ownerName" msg msg' =>
+            Lens.Family2.Lens msg msg' (Data.ProtoLens.Field "ownerName" msg)
+              (Data.ProtoLens.Field "ownerName" msg')
+ownerName
+  = Data.ProtoLens.field
+      (Data.ProtoLens.ProxySym :: Data.ProtoLens.ProxySym "ownerName")
+
+pokeball ::
+         forall msg msg' . Data.ProtoLens.HasField "pokeball" msg msg' =>
+           Lens.Family2.Lens msg msg' (Data.ProtoLens.Field "pokeball" msg)
+             (Data.ProtoLens.Field "pokeball" msg')
+pokeball
+  = Data.ProtoLens.field
+      (Data.ProtoLens.ProxySym :: Data.ProtoLens.ProxySym "pokeball")
+
+pokemonId ::
+          forall msg msg' . Data.ProtoLens.HasField "pokemonId" msg msg' =>
+            Lens.Family2.Lens msg msg' (Data.ProtoLens.Field "pokemonId" msg)
+              (Data.ProtoLens.Field "pokemonId" msg')
+pokemonId
+  = Data.ProtoLens.field
+      (Data.ProtoLens.ProxySym :: Data.ProtoLens.ProxySym "pokemonId")
+
+stamina ::
+        forall msg msg' . Data.ProtoLens.HasField "stamina" msg msg' =>
+          Lens.Family2.Lens msg msg' (Data.ProtoLens.Field "stamina" msg)
+            (Data.ProtoLens.Field "stamina" msg')
+stamina
+  = Data.ProtoLens.field
+      (Data.ProtoLens.ProxySym :: Data.ProtoLens.ProxySym "stamina")
+
+staminaMax ::
+           forall msg msg' . Data.ProtoLens.HasField "staminaMax" msg msg' =>
+             Lens.Family2.Lens msg msg' (Data.ProtoLens.Field "staminaMax" msg)
+               (Data.ProtoLens.Field "staminaMax" msg')
+staminaMax
+  = Data.ProtoLens.field
+      (Data.ProtoLens.ProxySym :: Data.ProtoLens.ProxySym "staminaMax")
+
+weightKg ::
+         forall msg msg' . Data.ProtoLens.HasField "weightKg" msg msg' =>
+           Lens.Family2.Lens msg msg' (Data.ProtoLens.Field "weightKg" msg)
+             (Data.ProtoLens.Field "weightKg" msg')
+weightKg
+  = Data.ProtoLens.field
+      (Data.ProtoLens.ProxySym :: Data.ProtoLens.ProxySym "weightKg")
diff --git a/src/Proto/POGOProtos/Enums/ActivityType.hs b/src/Proto/POGOProtos/Enums/ActivityType.hs
new file mode 100644
--- /dev/null
+++ b/src/Proto/POGOProtos/Enums/ActivityType.hs
@@ -0,0 +1,247 @@
+{- This file was auto-generated from POGOProtos/Enums/ActivityType.proto by the proto-lens-protoc program. -}
+{-# LANGUAGE ScopedTypeVariables, DataKinds, TypeFamilies,
+  MultiParamTypeClasses, FlexibleContexts, FlexibleInstances #-}
+{-# OPTIONS_GHC -fno-warn-unused-imports#-}
+module Proto.POGOProtos.Enums.ActivityType where
+import qualified Prelude
+import qualified Data.ProtoLens
+import qualified Data.ProtoLens.Message.Enum
+import qualified Lens.Family2
+import qualified Lens.Family2.Unchecked
+import qualified Data.Default.Class
+import qualified Data.Text
+import qualified Data.Int
+import qualified Data.Word
+import qualified Data.Map
+import qualified Data.ByteString
+
+data ActivityType = ACTIVITY_UNKNOWN
+                  | ACTIVITY_CATCH_POKEMON
+                  | ACTIVITY_CATCH_LEGEND_POKEMON
+                  | ACTIVITY_FLEE_POKEMON
+                  | ACTIVITY_DEFEAT_FORT
+                  | ACTIVITY_EVOLVE_POKEMON
+                  | ACTIVITY_HATCH_EGG
+                  | ACTIVITY_WALK_KM
+                  | ACTIVITY_POKEDEX_ENTRY_NEW
+                  | ACTIVITY_CATCH_FIRST_THROW
+                  | ACTIVITY_CATCH_NICE_THROW
+                  | ACTIVITY_CATCH_GREAT_THROW
+                  | ACTIVITY_CATCH_EXCELLENT_THROW
+                  | ACTIVITY_CATCH_CURVEBALL
+                  | ACTIVITY_CATCH_FIRST_CATCH_OF_DAY
+                  | ACTIVITY_CATCH_MILESTONE
+                  | ACTIVITY_TRAIN_POKEMON
+                  | ACTIVITY_SEARCH_FORT
+                  | ACTIVITY_RELEASE_POKEMON
+                  | ACTIVITY_HATCH_EGG_SMALL_BONUS
+                  | ACTIVITY_HATCH_EGG_MEDIUM_BONUS
+                  | ACTIVITY_HATCH_EGG_LARGE_BONUS
+                  | ACTIVITY_DEFEAT_GYM_DEFENDER
+                  | ACTIVITY_DEFEAT_GYM_LEADER
+                  deriving (Prelude.Show, Prelude.Eq)
+
+instance Data.Default.Class.Default ActivityType where
+        def = ACTIVITY_UNKNOWN
+
+instance Data.ProtoLens.FieldDefault ActivityType where
+        fieldDefault = ACTIVITY_UNKNOWN
+
+instance Data.ProtoLens.MessageEnum ActivityType where
+        maybeToEnum 0 = Prelude.Just ACTIVITY_UNKNOWN
+        maybeToEnum 1 = Prelude.Just ACTIVITY_CATCH_POKEMON
+        maybeToEnum 2 = Prelude.Just ACTIVITY_CATCH_LEGEND_POKEMON
+        maybeToEnum 3 = Prelude.Just ACTIVITY_FLEE_POKEMON
+        maybeToEnum 4 = Prelude.Just ACTIVITY_DEFEAT_FORT
+        maybeToEnum 5 = Prelude.Just ACTIVITY_EVOLVE_POKEMON
+        maybeToEnum 6 = Prelude.Just ACTIVITY_HATCH_EGG
+        maybeToEnum 7 = Prelude.Just ACTIVITY_WALK_KM
+        maybeToEnum 8 = Prelude.Just ACTIVITY_POKEDEX_ENTRY_NEW
+        maybeToEnum 9 = Prelude.Just ACTIVITY_CATCH_FIRST_THROW
+        maybeToEnum 10 = Prelude.Just ACTIVITY_CATCH_NICE_THROW
+        maybeToEnum 11 = Prelude.Just ACTIVITY_CATCH_GREAT_THROW
+        maybeToEnum 12 = Prelude.Just ACTIVITY_CATCH_EXCELLENT_THROW
+        maybeToEnum 13 = Prelude.Just ACTIVITY_CATCH_CURVEBALL
+        maybeToEnum 14 = Prelude.Just ACTIVITY_CATCH_FIRST_CATCH_OF_DAY
+        maybeToEnum 15 = Prelude.Just ACTIVITY_CATCH_MILESTONE
+        maybeToEnum 16 = Prelude.Just ACTIVITY_TRAIN_POKEMON
+        maybeToEnum 17 = Prelude.Just ACTIVITY_SEARCH_FORT
+        maybeToEnum 18 = Prelude.Just ACTIVITY_RELEASE_POKEMON
+        maybeToEnum 19 = Prelude.Just ACTIVITY_HATCH_EGG_SMALL_BONUS
+        maybeToEnum 20 = Prelude.Just ACTIVITY_HATCH_EGG_MEDIUM_BONUS
+        maybeToEnum 21 = Prelude.Just ACTIVITY_HATCH_EGG_LARGE_BONUS
+        maybeToEnum 22 = Prelude.Just ACTIVITY_DEFEAT_GYM_DEFENDER
+        maybeToEnum 23 = Prelude.Just ACTIVITY_DEFEAT_GYM_LEADER
+        maybeToEnum _ = Prelude.Nothing
+        showEnum ACTIVITY_UNKNOWN = "ACTIVITY_UNKNOWN"
+        showEnum ACTIVITY_CATCH_POKEMON = "ACTIVITY_CATCH_POKEMON"
+        showEnum ACTIVITY_CATCH_LEGEND_POKEMON
+          = "ACTIVITY_CATCH_LEGEND_POKEMON"
+        showEnum ACTIVITY_FLEE_POKEMON = "ACTIVITY_FLEE_POKEMON"
+        showEnum ACTIVITY_DEFEAT_FORT = "ACTIVITY_DEFEAT_FORT"
+        showEnum ACTIVITY_EVOLVE_POKEMON = "ACTIVITY_EVOLVE_POKEMON"
+        showEnum ACTIVITY_HATCH_EGG = "ACTIVITY_HATCH_EGG"
+        showEnum ACTIVITY_WALK_KM = "ACTIVITY_WALK_KM"
+        showEnum ACTIVITY_POKEDEX_ENTRY_NEW = "ACTIVITY_POKEDEX_ENTRY_NEW"
+        showEnum ACTIVITY_CATCH_FIRST_THROW = "ACTIVITY_CATCH_FIRST_THROW"
+        showEnum ACTIVITY_CATCH_NICE_THROW = "ACTIVITY_CATCH_NICE_THROW"
+        showEnum ACTIVITY_CATCH_GREAT_THROW = "ACTIVITY_CATCH_GREAT_THROW"
+        showEnum ACTIVITY_CATCH_EXCELLENT_THROW
+          = "ACTIVITY_CATCH_EXCELLENT_THROW"
+        showEnum ACTIVITY_CATCH_CURVEBALL = "ACTIVITY_CATCH_CURVEBALL"
+        showEnum ACTIVITY_CATCH_FIRST_CATCH_OF_DAY
+          = "ACTIVITY_CATCH_FIRST_CATCH_OF_DAY"
+        showEnum ACTIVITY_CATCH_MILESTONE = "ACTIVITY_CATCH_MILESTONE"
+        showEnum ACTIVITY_TRAIN_POKEMON = "ACTIVITY_TRAIN_POKEMON"
+        showEnum ACTIVITY_SEARCH_FORT = "ACTIVITY_SEARCH_FORT"
+        showEnum ACTIVITY_RELEASE_POKEMON = "ACTIVITY_RELEASE_POKEMON"
+        showEnum ACTIVITY_HATCH_EGG_SMALL_BONUS
+          = "ACTIVITY_HATCH_EGG_SMALL_BONUS"
+        showEnum ACTIVITY_HATCH_EGG_MEDIUM_BONUS
+          = "ACTIVITY_HATCH_EGG_MEDIUM_BONUS"
+        showEnum ACTIVITY_HATCH_EGG_LARGE_BONUS
+          = "ACTIVITY_HATCH_EGG_LARGE_BONUS"
+        showEnum ACTIVITY_DEFEAT_GYM_DEFENDER
+          = "ACTIVITY_DEFEAT_GYM_DEFENDER"
+        showEnum ACTIVITY_DEFEAT_GYM_LEADER = "ACTIVITY_DEFEAT_GYM_LEADER"
+        readEnum "ACTIVITY_UNKNOWN" = Prelude.Just ACTIVITY_UNKNOWN
+        readEnum "ACTIVITY_CATCH_POKEMON"
+          = Prelude.Just ACTIVITY_CATCH_POKEMON
+        readEnum "ACTIVITY_CATCH_LEGEND_POKEMON"
+          = Prelude.Just ACTIVITY_CATCH_LEGEND_POKEMON
+        readEnum "ACTIVITY_FLEE_POKEMON"
+          = Prelude.Just ACTIVITY_FLEE_POKEMON
+        readEnum "ACTIVITY_DEFEAT_FORT" = Prelude.Just ACTIVITY_DEFEAT_FORT
+        readEnum "ACTIVITY_EVOLVE_POKEMON"
+          = Prelude.Just ACTIVITY_EVOLVE_POKEMON
+        readEnum "ACTIVITY_HATCH_EGG" = Prelude.Just ACTIVITY_HATCH_EGG
+        readEnum "ACTIVITY_WALK_KM" = Prelude.Just ACTIVITY_WALK_KM
+        readEnum "ACTIVITY_POKEDEX_ENTRY_NEW"
+          = Prelude.Just ACTIVITY_POKEDEX_ENTRY_NEW
+        readEnum "ACTIVITY_CATCH_FIRST_THROW"
+          = Prelude.Just ACTIVITY_CATCH_FIRST_THROW
+        readEnum "ACTIVITY_CATCH_NICE_THROW"
+          = Prelude.Just ACTIVITY_CATCH_NICE_THROW
+        readEnum "ACTIVITY_CATCH_GREAT_THROW"
+          = Prelude.Just ACTIVITY_CATCH_GREAT_THROW
+        readEnum "ACTIVITY_CATCH_EXCELLENT_THROW"
+          = Prelude.Just ACTIVITY_CATCH_EXCELLENT_THROW
+        readEnum "ACTIVITY_CATCH_CURVEBALL"
+          = Prelude.Just ACTIVITY_CATCH_CURVEBALL
+        readEnum "ACTIVITY_CATCH_FIRST_CATCH_OF_DAY"
+          = Prelude.Just ACTIVITY_CATCH_FIRST_CATCH_OF_DAY
+        readEnum "ACTIVITY_CATCH_MILESTONE"
+          = Prelude.Just ACTIVITY_CATCH_MILESTONE
+        readEnum "ACTIVITY_TRAIN_POKEMON"
+          = Prelude.Just ACTIVITY_TRAIN_POKEMON
+        readEnum "ACTIVITY_SEARCH_FORT" = Prelude.Just ACTIVITY_SEARCH_FORT
+        readEnum "ACTIVITY_RELEASE_POKEMON"
+          = Prelude.Just ACTIVITY_RELEASE_POKEMON
+        readEnum "ACTIVITY_HATCH_EGG_SMALL_BONUS"
+          = Prelude.Just ACTIVITY_HATCH_EGG_SMALL_BONUS
+        readEnum "ACTIVITY_HATCH_EGG_MEDIUM_BONUS"
+          = Prelude.Just ACTIVITY_HATCH_EGG_MEDIUM_BONUS
+        readEnum "ACTIVITY_HATCH_EGG_LARGE_BONUS"
+          = Prelude.Just ACTIVITY_HATCH_EGG_LARGE_BONUS
+        readEnum "ACTIVITY_DEFEAT_GYM_DEFENDER"
+          = Prelude.Just ACTIVITY_DEFEAT_GYM_DEFENDER
+        readEnum "ACTIVITY_DEFEAT_GYM_LEADER"
+          = Prelude.Just ACTIVITY_DEFEAT_GYM_LEADER
+        readEnum _ = Prelude.Nothing
+
+instance Prelude.Enum ActivityType where
+        toEnum k__
+          = Prelude.maybe
+              (Prelude.error
+                 ((Prelude.++) "toEnum: unknown value for enum ActivityType: "
+                    (Prelude.show k__)))
+              Prelude.id
+              (Data.ProtoLens.maybeToEnum k__)
+        fromEnum ACTIVITY_UNKNOWN = 0
+        fromEnum ACTIVITY_CATCH_POKEMON = 1
+        fromEnum ACTIVITY_CATCH_LEGEND_POKEMON = 2
+        fromEnum ACTIVITY_FLEE_POKEMON = 3
+        fromEnum ACTIVITY_DEFEAT_FORT = 4
+        fromEnum ACTIVITY_EVOLVE_POKEMON = 5
+        fromEnum ACTIVITY_HATCH_EGG = 6
+        fromEnum ACTIVITY_WALK_KM = 7
+        fromEnum ACTIVITY_POKEDEX_ENTRY_NEW = 8
+        fromEnum ACTIVITY_CATCH_FIRST_THROW = 9
+        fromEnum ACTIVITY_CATCH_NICE_THROW = 10
+        fromEnum ACTIVITY_CATCH_GREAT_THROW = 11
+        fromEnum ACTIVITY_CATCH_EXCELLENT_THROW = 12
+        fromEnum ACTIVITY_CATCH_CURVEBALL = 13
+        fromEnum ACTIVITY_CATCH_FIRST_CATCH_OF_DAY = 14
+        fromEnum ACTIVITY_CATCH_MILESTONE = 15
+        fromEnum ACTIVITY_TRAIN_POKEMON = 16
+        fromEnum ACTIVITY_SEARCH_FORT = 17
+        fromEnum ACTIVITY_RELEASE_POKEMON = 18
+        fromEnum ACTIVITY_HATCH_EGG_SMALL_BONUS = 19
+        fromEnum ACTIVITY_HATCH_EGG_MEDIUM_BONUS = 20
+        fromEnum ACTIVITY_HATCH_EGG_LARGE_BONUS = 21
+        fromEnum ACTIVITY_DEFEAT_GYM_DEFENDER = 22
+        fromEnum ACTIVITY_DEFEAT_GYM_LEADER = 23
+        succ ACTIVITY_DEFEAT_GYM_LEADER
+          = Prelude.error
+              "Ident \"ActivityType\".Ident \"succ\": bad argument Ident \"ACTIVITY_DEFEAT_GYM_LEADER\". This value would be out of bounds."
+        succ ACTIVITY_UNKNOWN = ACTIVITY_CATCH_POKEMON
+        succ ACTIVITY_CATCH_POKEMON = ACTIVITY_CATCH_LEGEND_POKEMON
+        succ ACTIVITY_CATCH_LEGEND_POKEMON = ACTIVITY_FLEE_POKEMON
+        succ ACTIVITY_FLEE_POKEMON = ACTIVITY_DEFEAT_FORT
+        succ ACTIVITY_DEFEAT_FORT = ACTIVITY_EVOLVE_POKEMON
+        succ ACTIVITY_EVOLVE_POKEMON = ACTIVITY_HATCH_EGG
+        succ ACTIVITY_HATCH_EGG = ACTIVITY_WALK_KM
+        succ ACTIVITY_WALK_KM = ACTIVITY_POKEDEX_ENTRY_NEW
+        succ ACTIVITY_POKEDEX_ENTRY_NEW = ACTIVITY_CATCH_FIRST_THROW
+        succ ACTIVITY_CATCH_FIRST_THROW = ACTIVITY_CATCH_NICE_THROW
+        succ ACTIVITY_CATCH_NICE_THROW = ACTIVITY_CATCH_GREAT_THROW
+        succ ACTIVITY_CATCH_GREAT_THROW = ACTIVITY_CATCH_EXCELLENT_THROW
+        succ ACTIVITY_CATCH_EXCELLENT_THROW = ACTIVITY_CATCH_CURVEBALL
+        succ ACTIVITY_CATCH_CURVEBALL = ACTIVITY_CATCH_FIRST_CATCH_OF_DAY
+        succ ACTIVITY_CATCH_FIRST_CATCH_OF_DAY = ACTIVITY_CATCH_MILESTONE
+        succ ACTIVITY_CATCH_MILESTONE = ACTIVITY_TRAIN_POKEMON
+        succ ACTIVITY_TRAIN_POKEMON = ACTIVITY_SEARCH_FORT
+        succ ACTIVITY_SEARCH_FORT = ACTIVITY_RELEASE_POKEMON
+        succ ACTIVITY_RELEASE_POKEMON = ACTIVITY_HATCH_EGG_SMALL_BONUS
+        succ ACTIVITY_HATCH_EGG_SMALL_BONUS
+          = ACTIVITY_HATCH_EGG_MEDIUM_BONUS
+        succ ACTIVITY_HATCH_EGG_MEDIUM_BONUS
+          = ACTIVITY_HATCH_EGG_LARGE_BONUS
+        succ ACTIVITY_HATCH_EGG_LARGE_BONUS = ACTIVITY_DEFEAT_GYM_DEFENDER
+        succ ACTIVITY_DEFEAT_GYM_DEFENDER = ACTIVITY_DEFEAT_GYM_LEADER
+        pred ACTIVITY_UNKNOWN
+          = Prelude.error
+              "Ident \"ActivityType\".Ident \"pred\": bad argument Ident \"ACTIVITY_UNKNOWN\". This value would be out of bounds."
+        pred ACTIVITY_CATCH_POKEMON = ACTIVITY_UNKNOWN
+        pred ACTIVITY_CATCH_LEGEND_POKEMON = ACTIVITY_CATCH_POKEMON
+        pred ACTIVITY_FLEE_POKEMON = ACTIVITY_CATCH_LEGEND_POKEMON
+        pred ACTIVITY_DEFEAT_FORT = ACTIVITY_FLEE_POKEMON
+        pred ACTIVITY_EVOLVE_POKEMON = ACTIVITY_DEFEAT_FORT
+        pred ACTIVITY_HATCH_EGG = ACTIVITY_EVOLVE_POKEMON
+        pred ACTIVITY_WALK_KM = ACTIVITY_HATCH_EGG
+        pred ACTIVITY_POKEDEX_ENTRY_NEW = ACTIVITY_WALK_KM
+        pred ACTIVITY_CATCH_FIRST_THROW = ACTIVITY_POKEDEX_ENTRY_NEW
+        pred ACTIVITY_CATCH_NICE_THROW = ACTIVITY_CATCH_FIRST_THROW
+        pred ACTIVITY_CATCH_GREAT_THROW = ACTIVITY_CATCH_NICE_THROW
+        pred ACTIVITY_CATCH_EXCELLENT_THROW = ACTIVITY_CATCH_GREAT_THROW
+        pred ACTIVITY_CATCH_CURVEBALL = ACTIVITY_CATCH_EXCELLENT_THROW
+        pred ACTIVITY_CATCH_FIRST_CATCH_OF_DAY = ACTIVITY_CATCH_CURVEBALL
+        pred ACTIVITY_CATCH_MILESTONE = ACTIVITY_CATCH_FIRST_CATCH_OF_DAY
+        pred ACTIVITY_TRAIN_POKEMON = ACTIVITY_CATCH_MILESTONE
+        pred ACTIVITY_SEARCH_FORT = ACTIVITY_TRAIN_POKEMON
+        pred ACTIVITY_RELEASE_POKEMON = ACTIVITY_SEARCH_FORT
+        pred ACTIVITY_HATCH_EGG_SMALL_BONUS = ACTIVITY_RELEASE_POKEMON
+        pred ACTIVITY_HATCH_EGG_MEDIUM_BONUS
+          = ACTIVITY_HATCH_EGG_SMALL_BONUS
+        pred ACTIVITY_HATCH_EGG_LARGE_BONUS
+          = ACTIVITY_HATCH_EGG_MEDIUM_BONUS
+        pred ACTIVITY_DEFEAT_GYM_DEFENDER = ACTIVITY_HATCH_EGG_LARGE_BONUS
+        pred ACTIVITY_DEFEAT_GYM_LEADER = ACTIVITY_DEFEAT_GYM_DEFENDER
+        enumFrom = Data.ProtoLens.Message.Enum.messageEnumFrom
+        enumFromTo = Data.ProtoLens.Message.Enum.messageEnumFromTo
+        enumFromThen = Data.ProtoLens.Message.Enum.messageEnumFromThen
+        enumFromThenTo = Data.ProtoLens.Message.Enum.messageEnumFromThenTo
+
+instance Prelude.Bounded ActivityType where
+        minBound = ACTIVITY_UNKNOWN
+        maxBound = ACTIVITY_DEFEAT_GYM_LEADER
diff --git a/src/Proto/POGOProtos/Enums/BadgeType.hs b/src/Proto/POGOProtos/Enums/BadgeType.hs
new file mode 100644
--- /dev/null
+++ b/src/Proto/POGOProtos/Enums/BadgeType.hs
@@ -0,0 +1,325 @@
+{- This file was auto-generated from POGOProtos/Enums/BadgeType.proto by the proto-lens-protoc program. -}
+{-# LANGUAGE ScopedTypeVariables, DataKinds, TypeFamilies,
+  MultiParamTypeClasses, FlexibleContexts, FlexibleInstances #-}
+{-# OPTIONS_GHC -fno-warn-unused-imports#-}
+module Proto.POGOProtos.Enums.BadgeType where
+import qualified Prelude
+import qualified Data.ProtoLens
+import qualified Data.ProtoLens.Message.Enum
+import qualified Lens.Family2
+import qualified Lens.Family2.Unchecked
+import qualified Data.Default.Class
+import qualified Data.Text
+import qualified Data.Int
+import qualified Data.Word
+import qualified Data.Map
+import qualified Data.ByteString
+
+data BadgeType = BADGE_UNSET
+               | BADGE_TRAVEL_KM
+               | BADGE_POKEDEX_ENTRIES
+               | BADGE_CAPTURE_TOTAL
+               | BADGE_DEFEATED_FORT
+               | BADGE_EVOLVED_TOTAL
+               | BADGE_HATCHED_TOTAL
+               | BADGE_ENCOUNTERED_TOTAL
+               | BADGE_POKESTOPS_VISITED
+               | BADGE_UNIQUE_POKESTOPS
+               | BADGE_POKEBALL_THROWN
+               | BADGE_BIG_MAGIKARP
+               | BADGE_DEPLOYED_TOTAL
+               | BADGE_BATTLE_ATTACK_WON
+               | BADGE_BATTLE_TRAINING_WON
+               | BADGE_BATTLE_DEFEND_WON
+               | BADGE_PRESTIGE_RAISED
+               | BADGE_PRESTIGE_DROPPED
+               | BADGE_TYPE_NORMAL
+               | BADGE_TYPE_FIGHTING
+               | BADGE_TYPE_FLYING
+               | BADGE_TYPE_POISON
+               | BADGE_TYPE_GROUND
+               | BADGE_TYPE_ROCK
+               | BADGE_TYPE_BUG
+               | BADGE_TYPE_GHOST
+               | BADGE_TYPE_STEEL
+               | BADGE_TYPE_FIRE
+               | BADGE_TYPE_WATER
+               | BADGE_TYPE_GRASS
+               | BADGE_TYPE_ELECTRIC
+               | BADGE_TYPE_PSYCHIC
+               | BADGE_TYPE_ICE
+               | BADGE_TYPE_DRAGON
+               | BADGE_TYPE_DARK
+               | BADGE_TYPE_FAIRY
+               | BADGE_SMALL_RATTATA
+               | BADGE_PIKACHU
+               deriving (Prelude.Show, Prelude.Eq)
+
+instance Data.Default.Class.Default BadgeType where
+        def = BADGE_UNSET
+
+instance Data.ProtoLens.FieldDefault BadgeType where
+        fieldDefault = BADGE_UNSET
+
+instance Data.ProtoLens.MessageEnum BadgeType where
+        maybeToEnum 0 = Prelude.Just BADGE_UNSET
+        maybeToEnum 1 = Prelude.Just BADGE_TRAVEL_KM
+        maybeToEnum 2 = Prelude.Just BADGE_POKEDEX_ENTRIES
+        maybeToEnum 3 = Prelude.Just BADGE_CAPTURE_TOTAL
+        maybeToEnum 4 = Prelude.Just BADGE_DEFEATED_FORT
+        maybeToEnum 5 = Prelude.Just BADGE_EVOLVED_TOTAL
+        maybeToEnum 6 = Prelude.Just BADGE_HATCHED_TOTAL
+        maybeToEnum 7 = Prelude.Just BADGE_ENCOUNTERED_TOTAL
+        maybeToEnum 8 = Prelude.Just BADGE_POKESTOPS_VISITED
+        maybeToEnum 9 = Prelude.Just BADGE_UNIQUE_POKESTOPS
+        maybeToEnum 10 = Prelude.Just BADGE_POKEBALL_THROWN
+        maybeToEnum 11 = Prelude.Just BADGE_BIG_MAGIKARP
+        maybeToEnum 12 = Prelude.Just BADGE_DEPLOYED_TOTAL
+        maybeToEnum 13 = Prelude.Just BADGE_BATTLE_ATTACK_WON
+        maybeToEnum 14 = Prelude.Just BADGE_BATTLE_TRAINING_WON
+        maybeToEnum 15 = Prelude.Just BADGE_BATTLE_DEFEND_WON
+        maybeToEnum 16 = Prelude.Just BADGE_PRESTIGE_RAISED
+        maybeToEnum 17 = Prelude.Just BADGE_PRESTIGE_DROPPED
+        maybeToEnum 18 = Prelude.Just BADGE_TYPE_NORMAL
+        maybeToEnum 19 = Prelude.Just BADGE_TYPE_FIGHTING
+        maybeToEnum 20 = Prelude.Just BADGE_TYPE_FLYING
+        maybeToEnum 21 = Prelude.Just BADGE_TYPE_POISON
+        maybeToEnum 22 = Prelude.Just BADGE_TYPE_GROUND
+        maybeToEnum 23 = Prelude.Just BADGE_TYPE_ROCK
+        maybeToEnum 24 = Prelude.Just BADGE_TYPE_BUG
+        maybeToEnum 25 = Prelude.Just BADGE_TYPE_GHOST
+        maybeToEnum 26 = Prelude.Just BADGE_TYPE_STEEL
+        maybeToEnum 27 = Prelude.Just BADGE_TYPE_FIRE
+        maybeToEnum 28 = Prelude.Just BADGE_TYPE_WATER
+        maybeToEnum 29 = Prelude.Just BADGE_TYPE_GRASS
+        maybeToEnum 30 = Prelude.Just BADGE_TYPE_ELECTRIC
+        maybeToEnum 31 = Prelude.Just BADGE_TYPE_PSYCHIC
+        maybeToEnum 32 = Prelude.Just BADGE_TYPE_ICE
+        maybeToEnum 33 = Prelude.Just BADGE_TYPE_DRAGON
+        maybeToEnum 34 = Prelude.Just BADGE_TYPE_DARK
+        maybeToEnum 35 = Prelude.Just BADGE_TYPE_FAIRY
+        maybeToEnum 36 = Prelude.Just BADGE_SMALL_RATTATA
+        maybeToEnum 37 = Prelude.Just BADGE_PIKACHU
+        maybeToEnum _ = Prelude.Nothing
+        showEnum BADGE_UNSET = "BADGE_UNSET"
+        showEnum BADGE_TRAVEL_KM = "BADGE_TRAVEL_KM"
+        showEnum BADGE_POKEDEX_ENTRIES = "BADGE_POKEDEX_ENTRIES"
+        showEnum BADGE_CAPTURE_TOTAL = "BADGE_CAPTURE_TOTAL"
+        showEnum BADGE_DEFEATED_FORT = "BADGE_DEFEATED_FORT"
+        showEnum BADGE_EVOLVED_TOTAL = "BADGE_EVOLVED_TOTAL"
+        showEnum BADGE_HATCHED_TOTAL = "BADGE_HATCHED_TOTAL"
+        showEnum BADGE_ENCOUNTERED_TOTAL = "BADGE_ENCOUNTERED_TOTAL"
+        showEnum BADGE_POKESTOPS_VISITED = "BADGE_POKESTOPS_VISITED"
+        showEnum BADGE_UNIQUE_POKESTOPS = "BADGE_UNIQUE_POKESTOPS"
+        showEnum BADGE_POKEBALL_THROWN = "BADGE_POKEBALL_THROWN"
+        showEnum BADGE_BIG_MAGIKARP = "BADGE_BIG_MAGIKARP"
+        showEnum BADGE_DEPLOYED_TOTAL = "BADGE_DEPLOYED_TOTAL"
+        showEnum BADGE_BATTLE_ATTACK_WON = "BADGE_BATTLE_ATTACK_WON"
+        showEnum BADGE_BATTLE_TRAINING_WON = "BADGE_BATTLE_TRAINING_WON"
+        showEnum BADGE_BATTLE_DEFEND_WON = "BADGE_BATTLE_DEFEND_WON"
+        showEnum BADGE_PRESTIGE_RAISED = "BADGE_PRESTIGE_RAISED"
+        showEnum BADGE_PRESTIGE_DROPPED = "BADGE_PRESTIGE_DROPPED"
+        showEnum BADGE_TYPE_NORMAL = "BADGE_TYPE_NORMAL"
+        showEnum BADGE_TYPE_FIGHTING = "BADGE_TYPE_FIGHTING"
+        showEnum BADGE_TYPE_FLYING = "BADGE_TYPE_FLYING"
+        showEnum BADGE_TYPE_POISON = "BADGE_TYPE_POISON"
+        showEnum BADGE_TYPE_GROUND = "BADGE_TYPE_GROUND"
+        showEnum BADGE_TYPE_ROCK = "BADGE_TYPE_ROCK"
+        showEnum BADGE_TYPE_BUG = "BADGE_TYPE_BUG"
+        showEnum BADGE_TYPE_GHOST = "BADGE_TYPE_GHOST"
+        showEnum BADGE_TYPE_STEEL = "BADGE_TYPE_STEEL"
+        showEnum BADGE_TYPE_FIRE = "BADGE_TYPE_FIRE"
+        showEnum BADGE_TYPE_WATER = "BADGE_TYPE_WATER"
+        showEnum BADGE_TYPE_GRASS = "BADGE_TYPE_GRASS"
+        showEnum BADGE_TYPE_ELECTRIC = "BADGE_TYPE_ELECTRIC"
+        showEnum BADGE_TYPE_PSYCHIC = "BADGE_TYPE_PSYCHIC"
+        showEnum BADGE_TYPE_ICE = "BADGE_TYPE_ICE"
+        showEnum BADGE_TYPE_DRAGON = "BADGE_TYPE_DRAGON"
+        showEnum BADGE_TYPE_DARK = "BADGE_TYPE_DARK"
+        showEnum BADGE_TYPE_FAIRY = "BADGE_TYPE_FAIRY"
+        showEnum BADGE_SMALL_RATTATA = "BADGE_SMALL_RATTATA"
+        showEnum BADGE_PIKACHU = "BADGE_PIKACHU"
+        readEnum "BADGE_UNSET" = Prelude.Just BADGE_UNSET
+        readEnum "BADGE_TRAVEL_KM" = Prelude.Just BADGE_TRAVEL_KM
+        readEnum "BADGE_POKEDEX_ENTRIES"
+          = Prelude.Just BADGE_POKEDEX_ENTRIES
+        readEnum "BADGE_CAPTURE_TOTAL" = Prelude.Just BADGE_CAPTURE_TOTAL
+        readEnum "BADGE_DEFEATED_FORT" = Prelude.Just BADGE_DEFEATED_FORT
+        readEnum "BADGE_EVOLVED_TOTAL" = Prelude.Just BADGE_EVOLVED_TOTAL
+        readEnum "BADGE_HATCHED_TOTAL" = Prelude.Just BADGE_HATCHED_TOTAL
+        readEnum "BADGE_ENCOUNTERED_TOTAL"
+          = Prelude.Just BADGE_ENCOUNTERED_TOTAL
+        readEnum "BADGE_POKESTOPS_VISITED"
+          = Prelude.Just BADGE_POKESTOPS_VISITED
+        readEnum "BADGE_UNIQUE_POKESTOPS"
+          = Prelude.Just BADGE_UNIQUE_POKESTOPS
+        readEnum "BADGE_POKEBALL_THROWN"
+          = Prelude.Just BADGE_POKEBALL_THROWN
+        readEnum "BADGE_BIG_MAGIKARP" = Prelude.Just BADGE_BIG_MAGIKARP
+        readEnum "BADGE_DEPLOYED_TOTAL" = Prelude.Just BADGE_DEPLOYED_TOTAL
+        readEnum "BADGE_BATTLE_ATTACK_WON"
+          = Prelude.Just BADGE_BATTLE_ATTACK_WON
+        readEnum "BADGE_BATTLE_TRAINING_WON"
+          = Prelude.Just BADGE_BATTLE_TRAINING_WON
+        readEnum "BADGE_BATTLE_DEFEND_WON"
+          = Prelude.Just BADGE_BATTLE_DEFEND_WON
+        readEnum "BADGE_PRESTIGE_RAISED"
+          = Prelude.Just BADGE_PRESTIGE_RAISED
+        readEnum "BADGE_PRESTIGE_DROPPED"
+          = Prelude.Just BADGE_PRESTIGE_DROPPED
+        readEnum "BADGE_TYPE_NORMAL" = Prelude.Just BADGE_TYPE_NORMAL
+        readEnum "BADGE_TYPE_FIGHTING" = Prelude.Just BADGE_TYPE_FIGHTING
+        readEnum "BADGE_TYPE_FLYING" = Prelude.Just BADGE_TYPE_FLYING
+        readEnum "BADGE_TYPE_POISON" = Prelude.Just BADGE_TYPE_POISON
+        readEnum "BADGE_TYPE_GROUND" = Prelude.Just BADGE_TYPE_GROUND
+        readEnum "BADGE_TYPE_ROCK" = Prelude.Just BADGE_TYPE_ROCK
+        readEnum "BADGE_TYPE_BUG" = Prelude.Just BADGE_TYPE_BUG
+        readEnum "BADGE_TYPE_GHOST" = Prelude.Just BADGE_TYPE_GHOST
+        readEnum "BADGE_TYPE_STEEL" = Prelude.Just BADGE_TYPE_STEEL
+        readEnum "BADGE_TYPE_FIRE" = Prelude.Just BADGE_TYPE_FIRE
+        readEnum "BADGE_TYPE_WATER" = Prelude.Just BADGE_TYPE_WATER
+        readEnum "BADGE_TYPE_GRASS" = Prelude.Just BADGE_TYPE_GRASS
+        readEnum "BADGE_TYPE_ELECTRIC" = Prelude.Just BADGE_TYPE_ELECTRIC
+        readEnum "BADGE_TYPE_PSYCHIC" = Prelude.Just BADGE_TYPE_PSYCHIC
+        readEnum "BADGE_TYPE_ICE" = Prelude.Just BADGE_TYPE_ICE
+        readEnum "BADGE_TYPE_DRAGON" = Prelude.Just BADGE_TYPE_DRAGON
+        readEnum "BADGE_TYPE_DARK" = Prelude.Just BADGE_TYPE_DARK
+        readEnum "BADGE_TYPE_FAIRY" = Prelude.Just BADGE_TYPE_FAIRY
+        readEnum "BADGE_SMALL_RATTATA" = Prelude.Just BADGE_SMALL_RATTATA
+        readEnum "BADGE_PIKACHU" = Prelude.Just BADGE_PIKACHU
+        readEnum _ = Prelude.Nothing
+
+instance Prelude.Enum BadgeType where
+        toEnum k__
+          = Prelude.maybe
+              (Prelude.error
+                 ((Prelude.++) "toEnum: unknown value for enum BadgeType: "
+                    (Prelude.show k__)))
+              Prelude.id
+              (Data.ProtoLens.maybeToEnum k__)
+        fromEnum BADGE_UNSET = 0
+        fromEnum BADGE_TRAVEL_KM = 1
+        fromEnum BADGE_POKEDEX_ENTRIES = 2
+        fromEnum BADGE_CAPTURE_TOTAL = 3
+        fromEnum BADGE_DEFEATED_FORT = 4
+        fromEnum BADGE_EVOLVED_TOTAL = 5
+        fromEnum BADGE_HATCHED_TOTAL = 6
+        fromEnum BADGE_ENCOUNTERED_TOTAL = 7
+        fromEnum BADGE_POKESTOPS_VISITED = 8
+        fromEnum BADGE_UNIQUE_POKESTOPS = 9
+        fromEnum BADGE_POKEBALL_THROWN = 10
+        fromEnum BADGE_BIG_MAGIKARP = 11
+        fromEnum BADGE_DEPLOYED_TOTAL = 12
+        fromEnum BADGE_BATTLE_ATTACK_WON = 13
+        fromEnum BADGE_BATTLE_TRAINING_WON = 14
+        fromEnum BADGE_BATTLE_DEFEND_WON = 15
+        fromEnum BADGE_PRESTIGE_RAISED = 16
+        fromEnum BADGE_PRESTIGE_DROPPED = 17
+        fromEnum BADGE_TYPE_NORMAL = 18
+        fromEnum BADGE_TYPE_FIGHTING = 19
+        fromEnum BADGE_TYPE_FLYING = 20
+        fromEnum BADGE_TYPE_POISON = 21
+        fromEnum BADGE_TYPE_GROUND = 22
+        fromEnum BADGE_TYPE_ROCK = 23
+        fromEnum BADGE_TYPE_BUG = 24
+        fromEnum BADGE_TYPE_GHOST = 25
+        fromEnum BADGE_TYPE_STEEL = 26
+        fromEnum BADGE_TYPE_FIRE = 27
+        fromEnum BADGE_TYPE_WATER = 28
+        fromEnum BADGE_TYPE_GRASS = 29
+        fromEnum BADGE_TYPE_ELECTRIC = 30
+        fromEnum BADGE_TYPE_PSYCHIC = 31
+        fromEnum BADGE_TYPE_ICE = 32
+        fromEnum BADGE_TYPE_DRAGON = 33
+        fromEnum BADGE_TYPE_DARK = 34
+        fromEnum BADGE_TYPE_FAIRY = 35
+        fromEnum BADGE_SMALL_RATTATA = 36
+        fromEnum BADGE_PIKACHU = 37
+        succ BADGE_PIKACHU
+          = Prelude.error
+              "Ident \"BadgeType\".Ident \"succ\": bad argument Ident \"BADGE_PIKACHU\". This value would be out of bounds."
+        succ BADGE_UNSET = BADGE_TRAVEL_KM
+        succ BADGE_TRAVEL_KM = BADGE_POKEDEX_ENTRIES
+        succ BADGE_POKEDEX_ENTRIES = BADGE_CAPTURE_TOTAL
+        succ BADGE_CAPTURE_TOTAL = BADGE_DEFEATED_FORT
+        succ BADGE_DEFEATED_FORT = BADGE_EVOLVED_TOTAL
+        succ BADGE_EVOLVED_TOTAL = BADGE_HATCHED_TOTAL
+        succ BADGE_HATCHED_TOTAL = BADGE_ENCOUNTERED_TOTAL
+        succ BADGE_ENCOUNTERED_TOTAL = BADGE_POKESTOPS_VISITED
+        succ BADGE_POKESTOPS_VISITED = BADGE_UNIQUE_POKESTOPS
+        succ BADGE_UNIQUE_POKESTOPS = BADGE_POKEBALL_THROWN
+        succ BADGE_POKEBALL_THROWN = BADGE_BIG_MAGIKARP
+        succ BADGE_BIG_MAGIKARP = BADGE_DEPLOYED_TOTAL
+        succ BADGE_DEPLOYED_TOTAL = BADGE_BATTLE_ATTACK_WON
+        succ BADGE_BATTLE_ATTACK_WON = BADGE_BATTLE_TRAINING_WON
+        succ BADGE_BATTLE_TRAINING_WON = BADGE_BATTLE_DEFEND_WON
+        succ BADGE_BATTLE_DEFEND_WON = BADGE_PRESTIGE_RAISED
+        succ BADGE_PRESTIGE_RAISED = BADGE_PRESTIGE_DROPPED
+        succ BADGE_PRESTIGE_DROPPED = BADGE_TYPE_NORMAL
+        succ BADGE_TYPE_NORMAL = BADGE_TYPE_FIGHTING
+        succ BADGE_TYPE_FIGHTING = BADGE_TYPE_FLYING
+        succ BADGE_TYPE_FLYING = BADGE_TYPE_POISON
+        succ BADGE_TYPE_POISON = BADGE_TYPE_GROUND
+        succ BADGE_TYPE_GROUND = BADGE_TYPE_ROCK
+        succ BADGE_TYPE_ROCK = BADGE_TYPE_BUG
+        succ BADGE_TYPE_BUG = BADGE_TYPE_GHOST
+        succ BADGE_TYPE_GHOST = BADGE_TYPE_STEEL
+        succ BADGE_TYPE_STEEL = BADGE_TYPE_FIRE
+        succ BADGE_TYPE_FIRE = BADGE_TYPE_WATER
+        succ BADGE_TYPE_WATER = BADGE_TYPE_GRASS
+        succ BADGE_TYPE_GRASS = BADGE_TYPE_ELECTRIC
+        succ BADGE_TYPE_ELECTRIC = BADGE_TYPE_PSYCHIC
+        succ BADGE_TYPE_PSYCHIC = BADGE_TYPE_ICE
+        succ BADGE_TYPE_ICE = BADGE_TYPE_DRAGON
+        succ BADGE_TYPE_DRAGON = BADGE_TYPE_DARK
+        succ BADGE_TYPE_DARK = BADGE_TYPE_FAIRY
+        succ BADGE_TYPE_FAIRY = BADGE_SMALL_RATTATA
+        succ BADGE_SMALL_RATTATA = BADGE_PIKACHU
+        pred BADGE_UNSET
+          = Prelude.error
+              "Ident \"BadgeType\".Ident \"pred\": bad argument Ident \"BADGE_UNSET\". This value would be out of bounds."
+        pred BADGE_TRAVEL_KM = BADGE_UNSET
+        pred BADGE_POKEDEX_ENTRIES = BADGE_TRAVEL_KM
+        pred BADGE_CAPTURE_TOTAL = BADGE_POKEDEX_ENTRIES
+        pred BADGE_DEFEATED_FORT = BADGE_CAPTURE_TOTAL
+        pred BADGE_EVOLVED_TOTAL = BADGE_DEFEATED_FORT
+        pred BADGE_HATCHED_TOTAL = BADGE_EVOLVED_TOTAL
+        pred BADGE_ENCOUNTERED_TOTAL = BADGE_HATCHED_TOTAL
+        pred BADGE_POKESTOPS_VISITED = BADGE_ENCOUNTERED_TOTAL
+        pred BADGE_UNIQUE_POKESTOPS = BADGE_POKESTOPS_VISITED
+        pred BADGE_POKEBALL_THROWN = BADGE_UNIQUE_POKESTOPS
+        pred BADGE_BIG_MAGIKARP = BADGE_POKEBALL_THROWN
+        pred BADGE_DEPLOYED_TOTAL = BADGE_BIG_MAGIKARP
+        pred BADGE_BATTLE_ATTACK_WON = BADGE_DEPLOYED_TOTAL
+        pred BADGE_BATTLE_TRAINING_WON = BADGE_BATTLE_ATTACK_WON
+        pred BADGE_BATTLE_DEFEND_WON = BADGE_BATTLE_TRAINING_WON
+        pred BADGE_PRESTIGE_RAISED = BADGE_BATTLE_DEFEND_WON
+        pred BADGE_PRESTIGE_DROPPED = BADGE_PRESTIGE_RAISED
+        pred BADGE_TYPE_NORMAL = BADGE_PRESTIGE_DROPPED
+        pred BADGE_TYPE_FIGHTING = BADGE_TYPE_NORMAL
+        pred BADGE_TYPE_FLYING = BADGE_TYPE_FIGHTING
+        pred BADGE_TYPE_POISON = BADGE_TYPE_FLYING
+        pred BADGE_TYPE_GROUND = BADGE_TYPE_POISON
+        pred BADGE_TYPE_ROCK = BADGE_TYPE_GROUND
+        pred BADGE_TYPE_BUG = BADGE_TYPE_ROCK
+        pred BADGE_TYPE_GHOST = BADGE_TYPE_BUG
+        pred BADGE_TYPE_STEEL = BADGE_TYPE_GHOST
+        pred BADGE_TYPE_FIRE = BADGE_TYPE_STEEL
+        pred BADGE_TYPE_WATER = BADGE_TYPE_FIRE
+        pred BADGE_TYPE_GRASS = BADGE_TYPE_WATER
+        pred BADGE_TYPE_ELECTRIC = BADGE_TYPE_GRASS
+        pred BADGE_TYPE_PSYCHIC = BADGE_TYPE_ELECTRIC
+        pred BADGE_TYPE_ICE = BADGE_TYPE_PSYCHIC
+        pred BADGE_TYPE_DRAGON = BADGE_TYPE_ICE
+        pred BADGE_TYPE_DARK = BADGE_TYPE_DRAGON
+        pred BADGE_TYPE_FAIRY = BADGE_TYPE_DARK
+        pred BADGE_SMALL_RATTATA = BADGE_TYPE_FAIRY
+        pred BADGE_PIKACHU = BADGE_SMALL_RATTATA
+        enumFrom = Data.ProtoLens.Message.Enum.messageEnumFrom
+        enumFromTo = Data.ProtoLens.Message.Enum.messageEnumFromTo
+        enumFromThen = Data.ProtoLens.Message.Enum.messageEnumFromThen
+        enumFromThenTo = Data.ProtoLens.Message.Enum.messageEnumFromThenTo
+
+instance Prelude.Bounded BadgeType where
+        minBound = BADGE_UNSET
+        maxBound = BADGE_PIKACHU
diff --git a/src/Proto/POGOProtos/Enums/CameraInterpolation.hs b/src/Proto/POGOProtos/Enums/CameraInterpolation.hs
new file mode 100644
--- /dev/null
+++ b/src/Proto/POGOProtos/Enums/CameraInterpolation.hs
@@ -0,0 +1,87 @@
+{- This file was auto-generated from POGOProtos/Enums/CameraInterpolation.proto by the proto-lens-protoc program. -}
+{-# LANGUAGE ScopedTypeVariables, DataKinds, TypeFamilies,
+  MultiParamTypeClasses, FlexibleContexts, FlexibleInstances #-}
+{-# OPTIONS_GHC -fno-warn-unused-imports#-}
+module Proto.POGOProtos.Enums.CameraInterpolation where
+import qualified Prelude
+import qualified Data.ProtoLens
+import qualified Data.ProtoLens.Message.Enum
+import qualified Lens.Family2
+import qualified Lens.Family2.Unchecked
+import qualified Data.Default.Class
+import qualified Data.Text
+import qualified Data.Int
+import qualified Data.Word
+import qualified Data.Map
+import qualified Data.ByteString
+
+data CameraInterpolation = CAM_INTERP_CUT
+                         | CAM_INTERP_LINEAR
+                         | CAM_INTERP_SMOOTH
+                         | CAM_INTERP_SMOOTH_ROT_LINEAR_MOVE
+                         | CAM_INTERP_DEPENDS
+                         deriving (Prelude.Show, Prelude.Eq)
+
+instance Data.Default.Class.Default CameraInterpolation where
+        def = CAM_INTERP_CUT
+
+instance Data.ProtoLens.FieldDefault CameraInterpolation where
+        fieldDefault = CAM_INTERP_CUT
+
+instance Data.ProtoLens.MessageEnum CameraInterpolation where
+        maybeToEnum 0 = Prelude.Just CAM_INTERP_CUT
+        maybeToEnum 1 = Prelude.Just CAM_INTERP_LINEAR
+        maybeToEnum 2 = Prelude.Just CAM_INTERP_SMOOTH
+        maybeToEnum 3 = Prelude.Just CAM_INTERP_SMOOTH_ROT_LINEAR_MOVE
+        maybeToEnum 4 = Prelude.Just CAM_INTERP_DEPENDS
+        maybeToEnum _ = Prelude.Nothing
+        showEnum CAM_INTERP_CUT = "CAM_INTERP_CUT"
+        showEnum CAM_INTERP_LINEAR = "CAM_INTERP_LINEAR"
+        showEnum CAM_INTERP_SMOOTH = "CAM_INTERP_SMOOTH"
+        showEnum CAM_INTERP_SMOOTH_ROT_LINEAR_MOVE
+          = "CAM_INTERP_SMOOTH_ROT_LINEAR_MOVE"
+        showEnum CAM_INTERP_DEPENDS = "CAM_INTERP_DEPENDS"
+        readEnum "CAM_INTERP_CUT" = Prelude.Just CAM_INTERP_CUT
+        readEnum "CAM_INTERP_LINEAR" = Prelude.Just CAM_INTERP_LINEAR
+        readEnum "CAM_INTERP_SMOOTH" = Prelude.Just CAM_INTERP_SMOOTH
+        readEnum "CAM_INTERP_SMOOTH_ROT_LINEAR_MOVE"
+          = Prelude.Just CAM_INTERP_SMOOTH_ROT_LINEAR_MOVE
+        readEnum "CAM_INTERP_DEPENDS" = Prelude.Just CAM_INTERP_DEPENDS
+        readEnum _ = Prelude.Nothing
+
+instance Prelude.Enum CameraInterpolation where
+        toEnum k__
+          = Prelude.maybe
+              (Prelude.error
+                 ((Prelude.++)
+                    "toEnum: unknown value for enum CameraInterpolation: "
+                    (Prelude.show k__)))
+              Prelude.id
+              (Data.ProtoLens.maybeToEnum k__)
+        fromEnum CAM_INTERP_CUT = 0
+        fromEnum CAM_INTERP_LINEAR = 1
+        fromEnum CAM_INTERP_SMOOTH = 2
+        fromEnum CAM_INTERP_SMOOTH_ROT_LINEAR_MOVE = 3
+        fromEnum CAM_INTERP_DEPENDS = 4
+        succ CAM_INTERP_DEPENDS
+          = Prelude.error
+              "Ident \"CameraInterpolation\".Ident \"succ\": bad argument Ident \"CAM_INTERP_DEPENDS\". This value would be out of bounds."
+        succ CAM_INTERP_CUT = CAM_INTERP_LINEAR
+        succ CAM_INTERP_LINEAR = CAM_INTERP_SMOOTH
+        succ CAM_INTERP_SMOOTH = CAM_INTERP_SMOOTH_ROT_LINEAR_MOVE
+        succ CAM_INTERP_SMOOTH_ROT_LINEAR_MOVE = CAM_INTERP_DEPENDS
+        pred CAM_INTERP_CUT
+          = Prelude.error
+              "Ident \"CameraInterpolation\".Ident \"pred\": bad argument Ident \"CAM_INTERP_CUT\". This value would be out of bounds."
+        pred CAM_INTERP_LINEAR = CAM_INTERP_CUT
+        pred CAM_INTERP_SMOOTH = CAM_INTERP_LINEAR
+        pred CAM_INTERP_SMOOTH_ROT_LINEAR_MOVE = CAM_INTERP_SMOOTH
+        pred CAM_INTERP_DEPENDS = CAM_INTERP_SMOOTH_ROT_LINEAR_MOVE
+        enumFrom = Data.ProtoLens.Message.Enum.messageEnumFrom
+        enumFromTo = Data.ProtoLens.Message.Enum.messageEnumFromTo
+        enumFromThen = Data.ProtoLens.Message.Enum.messageEnumFromThen
+        enumFromThenTo = Data.ProtoLens.Message.Enum.messageEnumFromThenTo
+
+instance Prelude.Bounded CameraInterpolation where
+        minBound = CAM_INTERP_CUT
+        maxBound = CAM_INTERP_DEPENDS
diff --git a/src/Proto/POGOProtos/Enums/CameraTarget.hs b/src/Proto/POGOProtos/Enums/CameraTarget.hs
new file mode 100644
--- /dev/null
+++ b/src/Proto/POGOProtos/Enums/CameraTarget.hs
@@ -0,0 +1,182 @@
+{- This file was auto-generated from POGOProtos/Enums/CameraTarget.proto by the proto-lens-protoc program. -}
+{-# LANGUAGE ScopedTypeVariables, DataKinds, TypeFamilies,
+  MultiParamTypeClasses, FlexibleContexts, FlexibleInstances #-}
+{-# OPTIONS_GHC -fno-warn-unused-imports#-}
+module Proto.POGOProtos.Enums.CameraTarget where
+import qualified Prelude
+import qualified Data.ProtoLens
+import qualified Data.ProtoLens.Message.Enum
+import qualified Lens.Family2
+import qualified Lens.Family2.Unchecked
+import qualified Data.Default.Class
+import qualified Data.Text
+import qualified Data.Int
+import qualified Data.Word
+import qualified Data.Map
+import qualified Data.ByteString
+
+data CameraTarget = CAM_TARGET_ATTACKER
+                  | CAM_TARGET_ATTACKER_EDGE
+                  | CAM_TARGET_ATTACKER_GROUND
+                  | CAM_TARGET_DEFENDER
+                  | CAM_TARGET_DEFENDER_EDGE
+                  | CAM_TARGET_DEFENDER_GROUND
+                  | CAM_TARGET_ATTACKER_DEFENDER
+                  | CAM_TARGET_ATTACKER_DEFENDER_EDGE
+                  | CAM_TARGET_DEFENDER_ATTACKER
+                  | CAM_TARGET_DEFENDER_ATTACKER_EDGE
+                  | CAM_TARGET_ATTACKER_DEFENDER_MIRROR
+                  | CAM_TARGET_SHOULDER_ATTACKER_DEFENDER
+                  | CAM_TARGET_SHOULDER_ATTACKER_DEFENDER_MIRROR
+                  | CAM_TARGET_ATTACKER_DEFENDER_WORLD
+                  deriving (Prelude.Show, Prelude.Eq)
+
+instance Data.Default.Class.Default CameraTarget where
+        def = CAM_TARGET_ATTACKER
+
+instance Data.ProtoLens.FieldDefault CameraTarget where
+        fieldDefault = CAM_TARGET_ATTACKER
+
+instance Data.ProtoLens.MessageEnum CameraTarget where
+        maybeToEnum 0 = Prelude.Just CAM_TARGET_ATTACKER
+        maybeToEnum 1 = Prelude.Just CAM_TARGET_ATTACKER_EDGE
+        maybeToEnum 2 = Prelude.Just CAM_TARGET_ATTACKER_GROUND
+        maybeToEnum 3 = Prelude.Just CAM_TARGET_DEFENDER
+        maybeToEnum 4 = Prelude.Just CAM_TARGET_DEFENDER_EDGE
+        maybeToEnum 5 = Prelude.Just CAM_TARGET_DEFENDER_GROUND
+        maybeToEnum 6 = Prelude.Just CAM_TARGET_ATTACKER_DEFENDER
+        maybeToEnum 7 = Prelude.Just CAM_TARGET_ATTACKER_DEFENDER_EDGE
+        maybeToEnum 8 = Prelude.Just CAM_TARGET_DEFENDER_ATTACKER
+        maybeToEnum 9 = Prelude.Just CAM_TARGET_DEFENDER_ATTACKER_EDGE
+        maybeToEnum 11 = Prelude.Just CAM_TARGET_ATTACKER_DEFENDER_MIRROR
+        maybeToEnum 12 = Prelude.Just CAM_TARGET_SHOULDER_ATTACKER_DEFENDER
+        maybeToEnum 13
+          = Prelude.Just CAM_TARGET_SHOULDER_ATTACKER_DEFENDER_MIRROR
+        maybeToEnum 14 = Prelude.Just CAM_TARGET_ATTACKER_DEFENDER_WORLD
+        maybeToEnum _ = Prelude.Nothing
+        showEnum CAM_TARGET_ATTACKER = "CAM_TARGET_ATTACKER"
+        showEnum CAM_TARGET_ATTACKER_EDGE = "CAM_TARGET_ATTACKER_EDGE"
+        showEnum CAM_TARGET_ATTACKER_GROUND = "CAM_TARGET_ATTACKER_GROUND"
+        showEnum CAM_TARGET_DEFENDER = "CAM_TARGET_DEFENDER"
+        showEnum CAM_TARGET_DEFENDER_EDGE = "CAM_TARGET_DEFENDER_EDGE"
+        showEnum CAM_TARGET_DEFENDER_GROUND = "CAM_TARGET_DEFENDER_GROUND"
+        showEnum CAM_TARGET_ATTACKER_DEFENDER
+          = "CAM_TARGET_ATTACKER_DEFENDER"
+        showEnum CAM_TARGET_ATTACKER_DEFENDER_EDGE
+          = "CAM_TARGET_ATTACKER_DEFENDER_EDGE"
+        showEnum CAM_TARGET_DEFENDER_ATTACKER
+          = "CAM_TARGET_DEFENDER_ATTACKER"
+        showEnum CAM_TARGET_DEFENDER_ATTACKER_EDGE
+          = "CAM_TARGET_DEFENDER_ATTACKER_EDGE"
+        showEnum CAM_TARGET_ATTACKER_DEFENDER_MIRROR
+          = "CAM_TARGET_ATTACKER_DEFENDER_MIRROR"
+        showEnum CAM_TARGET_SHOULDER_ATTACKER_DEFENDER
+          = "CAM_TARGET_SHOULDER_ATTACKER_DEFENDER"
+        showEnum CAM_TARGET_SHOULDER_ATTACKER_DEFENDER_MIRROR
+          = "CAM_TARGET_SHOULDER_ATTACKER_DEFENDER_MIRROR"
+        showEnum CAM_TARGET_ATTACKER_DEFENDER_WORLD
+          = "CAM_TARGET_ATTACKER_DEFENDER_WORLD"
+        readEnum "CAM_TARGET_ATTACKER" = Prelude.Just CAM_TARGET_ATTACKER
+        readEnum "CAM_TARGET_ATTACKER_EDGE"
+          = Prelude.Just CAM_TARGET_ATTACKER_EDGE
+        readEnum "CAM_TARGET_ATTACKER_GROUND"
+          = Prelude.Just CAM_TARGET_ATTACKER_GROUND
+        readEnum "CAM_TARGET_DEFENDER" = Prelude.Just CAM_TARGET_DEFENDER
+        readEnum "CAM_TARGET_DEFENDER_EDGE"
+          = Prelude.Just CAM_TARGET_DEFENDER_EDGE
+        readEnum "CAM_TARGET_DEFENDER_GROUND"
+          = Prelude.Just CAM_TARGET_DEFENDER_GROUND
+        readEnum "CAM_TARGET_ATTACKER_DEFENDER"
+          = Prelude.Just CAM_TARGET_ATTACKER_DEFENDER
+        readEnum "CAM_TARGET_ATTACKER_DEFENDER_EDGE"
+          = Prelude.Just CAM_TARGET_ATTACKER_DEFENDER_EDGE
+        readEnum "CAM_TARGET_DEFENDER_ATTACKER"
+          = Prelude.Just CAM_TARGET_DEFENDER_ATTACKER
+        readEnum "CAM_TARGET_DEFENDER_ATTACKER_EDGE"
+          = Prelude.Just CAM_TARGET_DEFENDER_ATTACKER_EDGE
+        readEnum "CAM_TARGET_ATTACKER_DEFENDER_MIRROR"
+          = Prelude.Just CAM_TARGET_ATTACKER_DEFENDER_MIRROR
+        readEnum "CAM_TARGET_SHOULDER_ATTACKER_DEFENDER"
+          = Prelude.Just CAM_TARGET_SHOULDER_ATTACKER_DEFENDER
+        readEnum "CAM_TARGET_SHOULDER_ATTACKER_DEFENDER_MIRROR"
+          = Prelude.Just CAM_TARGET_SHOULDER_ATTACKER_DEFENDER_MIRROR
+        readEnum "CAM_TARGET_ATTACKER_DEFENDER_WORLD"
+          = Prelude.Just CAM_TARGET_ATTACKER_DEFENDER_WORLD
+        readEnum _ = Prelude.Nothing
+
+instance Prelude.Enum CameraTarget where
+        toEnum k__
+          = Prelude.maybe
+              (Prelude.error
+                 ((Prelude.++) "toEnum: unknown value for enum CameraTarget: "
+                    (Prelude.show k__)))
+              Prelude.id
+              (Data.ProtoLens.maybeToEnum k__)
+        fromEnum CAM_TARGET_ATTACKER = 0
+        fromEnum CAM_TARGET_ATTACKER_EDGE = 1
+        fromEnum CAM_TARGET_ATTACKER_GROUND = 2
+        fromEnum CAM_TARGET_DEFENDER = 3
+        fromEnum CAM_TARGET_DEFENDER_EDGE = 4
+        fromEnum CAM_TARGET_DEFENDER_GROUND = 5
+        fromEnum CAM_TARGET_ATTACKER_DEFENDER = 6
+        fromEnum CAM_TARGET_ATTACKER_DEFENDER_EDGE = 7
+        fromEnum CAM_TARGET_DEFENDER_ATTACKER = 8
+        fromEnum CAM_TARGET_DEFENDER_ATTACKER_EDGE = 9
+        fromEnum CAM_TARGET_ATTACKER_DEFENDER_MIRROR = 11
+        fromEnum CAM_TARGET_SHOULDER_ATTACKER_DEFENDER = 12
+        fromEnum CAM_TARGET_SHOULDER_ATTACKER_DEFENDER_MIRROR = 13
+        fromEnum CAM_TARGET_ATTACKER_DEFENDER_WORLD = 14
+        succ CAM_TARGET_ATTACKER_DEFENDER_WORLD
+          = Prelude.error
+              "Ident \"CameraTarget\".Ident \"succ\": bad argument Ident \"CAM_TARGET_ATTACKER_DEFENDER_WORLD\". This value would be out of bounds."
+        succ CAM_TARGET_ATTACKER = CAM_TARGET_ATTACKER_EDGE
+        succ CAM_TARGET_ATTACKER_EDGE = CAM_TARGET_ATTACKER_GROUND
+        succ CAM_TARGET_ATTACKER_GROUND = CAM_TARGET_DEFENDER
+        succ CAM_TARGET_DEFENDER = CAM_TARGET_DEFENDER_EDGE
+        succ CAM_TARGET_DEFENDER_EDGE = CAM_TARGET_DEFENDER_GROUND
+        succ CAM_TARGET_DEFENDER_GROUND = CAM_TARGET_ATTACKER_DEFENDER
+        succ CAM_TARGET_ATTACKER_DEFENDER
+          = CAM_TARGET_ATTACKER_DEFENDER_EDGE
+        succ CAM_TARGET_ATTACKER_DEFENDER_EDGE
+          = CAM_TARGET_DEFENDER_ATTACKER
+        succ CAM_TARGET_DEFENDER_ATTACKER
+          = CAM_TARGET_DEFENDER_ATTACKER_EDGE
+        succ CAM_TARGET_DEFENDER_ATTACKER_EDGE
+          = CAM_TARGET_ATTACKER_DEFENDER_MIRROR
+        succ CAM_TARGET_ATTACKER_DEFENDER_MIRROR
+          = CAM_TARGET_SHOULDER_ATTACKER_DEFENDER
+        succ CAM_TARGET_SHOULDER_ATTACKER_DEFENDER
+          = CAM_TARGET_SHOULDER_ATTACKER_DEFENDER_MIRROR
+        succ CAM_TARGET_SHOULDER_ATTACKER_DEFENDER_MIRROR
+          = CAM_TARGET_ATTACKER_DEFENDER_WORLD
+        pred CAM_TARGET_ATTACKER
+          = Prelude.error
+              "Ident \"CameraTarget\".Ident \"pred\": bad argument Ident \"CAM_TARGET_ATTACKER\". This value would be out of bounds."
+        pred CAM_TARGET_ATTACKER_EDGE = CAM_TARGET_ATTACKER
+        pred CAM_TARGET_ATTACKER_GROUND = CAM_TARGET_ATTACKER_EDGE
+        pred CAM_TARGET_DEFENDER = CAM_TARGET_ATTACKER_GROUND
+        pred CAM_TARGET_DEFENDER_EDGE = CAM_TARGET_DEFENDER
+        pred CAM_TARGET_DEFENDER_GROUND = CAM_TARGET_DEFENDER_EDGE
+        pred CAM_TARGET_ATTACKER_DEFENDER = CAM_TARGET_DEFENDER_GROUND
+        pred CAM_TARGET_ATTACKER_DEFENDER_EDGE
+          = CAM_TARGET_ATTACKER_DEFENDER
+        pred CAM_TARGET_DEFENDER_ATTACKER
+          = CAM_TARGET_ATTACKER_DEFENDER_EDGE
+        pred CAM_TARGET_DEFENDER_ATTACKER_EDGE
+          = CAM_TARGET_DEFENDER_ATTACKER
+        pred CAM_TARGET_ATTACKER_DEFENDER_MIRROR
+          = CAM_TARGET_DEFENDER_ATTACKER_EDGE
+        pred CAM_TARGET_SHOULDER_ATTACKER_DEFENDER
+          = CAM_TARGET_ATTACKER_DEFENDER_MIRROR
+        pred CAM_TARGET_SHOULDER_ATTACKER_DEFENDER_MIRROR
+          = CAM_TARGET_SHOULDER_ATTACKER_DEFENDER
+        pred CAM_TARGET_ATTACKER_DEFENDER_WORLD
+          = CAM_TARGET_SHOULDER_ATTACKER_DEFENDER_MIRROR
+        enumFrom = Data.ProtoLens.Message.Enum.messageEnumFrom
+        enumFromTo = Data.ProtoLens.Message.Enum.messageEnumFromTo
+        enumFromThen = Data.ProtoLens.Message.Enum.messageEnumFromThen
+        enumFromThenTo = Data.ProtoLens.Message.Enum.messageEnumFromThenTo
+
+instance Prelude.Bounded CameraTarget where
+        minBound = CAM_TARGET_ATTACKER
+        maxBound = CAM_TARGET_ATTACKER_DEFENDER_WORLD
diff --git a/src/Proto/POGOProtos/Enums/Gender.hs b/src/Proto/POGOProtos/Enums/Gender.hs
new file mode 100644
--- /dev/null
+++ b/src/Proto/POGOProtos/Enums/Gender.hs
@@ -0,0 +1,63 @@
+{- This file was auto-generated from POGOProtos/Enums/Gender.proto by the proto-lens-protoc program. -}
+{-# LANGUAGE ScopedTypeVariables, DataKinds, TypeFamilies,
+  MultiParamTypeClasses, FlexibleContexts, FlexibleInstances #-}
+{-# OPTIONS_GHC -fno-warn-unused-imports#-}
+module Proto.POGOProtos.Enums.Gender where
+import qualified Prelude
+import qualified Data.ProtoLens
+import qualified Data.ProtoLens.Message.Enum
+import qualified Lens.Family2
+import qualified Lens.Family2.Unchecked
+import qualified Data.Default.Class
+import qualified Data.Text
+import qualified Data.Int
+import qualified Data.Word
+import qualified Data.Map
+import qualified Data.ByteString
+
+data Gender = MALE
+            | FEMALE
+            deriving (Prelude.Show, Prelude.Eq)
+
+instance Data.Default.Class.Default Gender where
+        def = MALE
+
+instance Data.ProtoLens.FieldDefault Gender where
+        fieldDefault = MALE
+
+instance Data.ProtoLens.MessageEnum Gender where
+        maybeToEnum 0 = Prelude.Just MALE
+        maybeToEnum 1 = Prelude.Just FEMALE
+        maybeToEnum _ = Prelude.Nothing
+        showEnum MALE = "MALE"
+        showEnum FEMALE = "FEMALE"
+        readEnum "MALE" = Prelude.Just MALE
+        readEnum "FEMALE" = Prelude.Just FEMALE
+        readEnum _ = Prelude.Nothing
+
+instance Prelude.Enum Gender where
+        toEnum k__
+          = Prelude.maybe
+              (Prelude.error
+                 ((Prelude.++) "toEnum: unknown value for enum Gender: "
+                    (Prelude.show k__)))
+              Prelude.id
+              (Data.ProtoLens.maybeToEnum k__)
+        fromEnum MALE = 0
+        fromEnum FEMALE = 1
+        succ FEMALE
+          = Prelude.error
+              "Ident \"Gender\".Ident \"succ\": bad argument Ident \"FEMALE\". This value would be out of bounds."
+        succ MALE = FEMALE
+        pred MALE
+          = Prelude.error
+              "Ident \"Gender\".Ident \"pred\": bad argument Ident \"MALE\". This value would be out of bounds."
+        pred FEMALE = MALE
+        enumFrom = Data.ProtoLens.Message.Enum.messageEnumFrom
+        enumFromTo = Data.ProtoLens.Message.Enum.messageEnumFromTo
+        enumFromThen = Data.ProtoLens.Message.Enum.messageEnumFromThen
+        enumFromThenTo = Data.ProtoLens.Message.Enum.messageEnumFromThenTo
+
+instance Prelude.Bounded Gender where
+        minBound = MALE
+        maxBound = FEMALE
diff --git a/src/Proto/POGOProtos/Enums/IapItemCategory.hs b/src/Proto/POGOProtos/Enums/IapItemCategory.hs
new file mode 100644
--- /dev/null
+++ b/src/Proto/POGOProtos/Enums/IapItemCategory.hs
@@ -0,0 +1,87 @@
+{- This file was auto-generated from POGOProtos/Enums/IapItemCategory.proto by the proto-lens-protoc program. -}
+{-# LANGUAGE ScopedTypeVariables, DataKinds, TypeFamilies,
+  MultiParamTypeClasses, FlexibleContexts, FlexibleInstances #-}
+{-# OPTIONS_GHC -fno-warn-unused-imports#-}
+module Proto.POGOProtos.Enums.IapItemCategory where
+import qualified Prelude
+import qualified Data.ProtoLens
+import qualified Data.ProtoLens.Message.Enum
+import qualified Lens.Family2
+import qualified Lens.Family2.Unchecked
+import qualified Data.Default.Class
+import qualified Data.Text
+import qualified Data.Int
+import qualified Data.Word
+import qualified Data.Map
+import qualified Data.ByteString
+
+data HoloIapItemCategory = IAP_CATEGORY_NONE
+                         | IAP_CATEGORY_BUNDLE
+                         | IAP_CATEGORY_ITEMS
+                         | IAP_CATEGORY_UPGRADES
+                         | IAP_CATEGORY_POKECOINS
+                         deriving (Prelude.Show, Prelude.Eq)
+
+instance Data.Default.Class.Default HoloIapItemCategory where
+        def = IAP_CATEGORY_NONE
+
+instance Data.ProtoLens.FieldDefault HoloIapItemCategory where
+        fieldDefault = IAP_CATEGORY_NONE
+
+instance Data.ProtoLens.MessageEnum HoloIapItemCategory where
+        maybeToEnum 0 = Prelude.Just IAP_CATEGORY_NONE
+        maybeToEnum 1 = Prelude.Just IAP_CATEGORY_BUNDLE
+        maybeToEnum 2 = Prelude.Just IAP_CATEGORY_ITEMS
+        maybeToEnum 3 = Prelude.Just IAP_CATEGORY_UPGRADES
+        maybeToEnum 4 = Prelude.Just IAP_CATEGORY_POKECOINS
+        maybeToEnum _ = Prelude.Nothing
+        showEnum IAP_CATEGORY_NONE = "IAP_CATEGORY_NONE"
+        showEnum IAP_CATEGORY_BUNDLE = "IAP_CATEGORY_BUNDLE"
+        showEnum IAP_CATEGORY_ITEMS = "IAP_CATEGORY_ITEMS"
+        showEnum IAP_CATEGORY_UPGRADES = "IAP_CATEGORY_UPGRADES"
+        showEnum IAP_CATEGORY_POKECOINS = "IAP_CATEGORY_POKECOINS"
+        readEnum "IAP_CATEGORY_NONE" = Prelude.Just IAP_CATEGORY_NONE
+        readEnum "IAP_CATEGORY_BUNDLE" = Prelude.Just IAP_CATEGORY_BUNDLE
+        readEnum "IAP_CATEGORY_ITEMS" = Prelude.Just IAP_CATEGORY_ITEMS
+        readEnum "IAP_CATEGORY_UPGRADES"
+          = Prelude.Just IAP_CATEGORY_UPGRADES
+        readEnum "IAP_CATEGORY_POKECOINS"
+          = Prelude.Just IAP_CATEGORY_POKECOINS
+        readEnum _ = Prelude.Nothing
+
+instance Prelude.Enum HoloIapItemCategory where
+        toEnum k__
+          = Prelude.maybe
+              (Prelude.error
+                 ((Prelude.++)
+                    "toEnum: unknown value for enum HoloIapItemCategory: "
+                    (Prelude.show k__)))
+              Prelude.id
+              (Data.ProtoLens.maybeToEnum k__)
+        fromEnum IAP_CATEGORY_NONE = 0
+        fromEnum IAP_CATEGORY_BUNDLE = 1
+        fromEnum IAP_CATEGORY_ITEMS = 2
+        fromEnum IAP_CATEGORY_UPGRADES = 3
+        fromEnum IAP_CATEGORY_POKECOINS = 4
+        succ IAP_CATEGORY_POKECOINS
+          = Prelude.error
+              "Ident \"HoloIapItemCategory\".Ident \"succ\": bad argument Ident \"IAP_CATEGORY_POKECOINS\". This value would be out of bounds."
+        succ IAP_CATEGORY_NONE = IAP_CATEGORY_BUNDLE
+        succ IAP_CATEGORY_BUNDLE = IAP_CATEGORY_ITEMS
+        succ IAP_CATEGORY_ITEMS = IAP_CATEGORY_UPGRADES
+        succ IAP_CATEGORY_UPGRADES = IAP_CATEGORY_POKECOINS
+        pred IAP_CATEGORY_NONE
+          = Prelude.error
+              "Ident \"HoloIapItemCategory\".Ident \"pred\": bad argument Ident \"IAP_CATEGORY_NONE\". This value would be out of bounds."
+        pred IAP_CATEGORY_BUNDLE = IAP_CATEGORY_NONE
+        pred IAP_CATEGORY_ITEMS = IAP_CATEGORY_BUNDLE
+        pred IAP_CATEGORY_UPGRADES = IAP_CATEGORY_ITEMS
+        pred IAP_CATEGORY_POKECOINS = IAP_CATEGORY_UPGRADES
+        enumFrom = Data.ProtoLens.Message.Enum.messageEnumFrom
+        enumFromTo = Data.ProtoLens.Message.Enum.messageEnumFromTo
+        enumFromThen = Data.ProtoLens.Message.Enum.messageEnumFromThen
+        enumFromThenTo = Data.ProtoLens.Message.Enum.messageEnumFromThenTo
+
+instance Prelude.Bounded HoloIapItemCategory where
+        minBound = IAP_CATEGORY_NONE
+        maxBound = IAP_CATEGORY_POKECOINS
diff --git a/src/Proto/POGOProtos/Enums/ItemCategory.hs b/src/Proto/POGOProtos/Enums/ItemCategory.hs
new file mode 100644
--- /dev/null
+++ b/src/Proto/POGOProtos/Enums/ItemCategory.hs
@@ -0,0 +1,141 @@
+{- This file was auto-generated from POGOProtos/Enums/ItemCategory.proto by the proto-lens-protoc program. -}
+{-# LANGUAGE ScopedTypeVariables, DataKinds, TypeFamilies,
+  MultiParamTypeClasses, FlexibleContexts, FlexibleInstances #-}
+{-# OPTIONS_GHC -fno-warn-unused-imports#-}
+module Proto.POGOProtos.Enums.ItemCategory where
+import qualified Prelude
+import qualified Data.ProtoLens
+import qualified Data.ProtoLens.Message.Enum
+import qualified Lens.Family2
+import qualified Lens.Family2.Unchecked
+import qualified Data.Default.Class
+import qualified Data.Text
+import qualified Data.Int
+import qualified Data.Word
+import qualified Data.Map
+import qualified Data.ByteString
+
+data ItemCategory = ITEM_CATEGORY_NONE
+                  | ITEM_CATEGORY_POKEBALL
+                  | ITEM_CATEGORY_FOOD
+                  | ITEM_CATEGORY_MEDICINE
+                  | ITEM_CATEGORY_BOOST
+                  | ITEM_CATEGORY_UTILITES
+                  | ITEM_CATEGORY_CAMERA
+                  | ITEM_CATEGORY_DISK
+                  | ITEM_CATEGORY_INCUBATOR
+                  | ITEM_CATEGORY_INCENSE
+                  | ITEM_CATEGORY_XP_BOOST
+                  | ITEM_CATEGORY_INVENTORY_UPGRADE
+                  deriving (Prelude.Show, Prelude.Eq)
+
+instance Data.Default.Class.Default ItemCategory where
+        def = ITEM_CATEGORY_NONE
+
+instance Data.ProtoLens.FieldDefault ItemCategory where
+        fieldDefault = ITEM_CATEGORY_NONE
+
+instance Data.ProtoLens.MessageEnum ItemCategory where
+        maybeToEnum 0 = Prelude.Just ITEM_CATEGORY_NONE
+        maybeToEnum 1 = Prelude.Just ITEM_CATEGORY_POKEBALL
+        maybeToEnum 2 = Prelude.Just ITEM_CATEGORY_FOOD
+        maybeToEnum 3 = Prelude.Just ITEM_CATEGORY_MEDICINE
+        maybeToEnum 4 = Prelude.Just ITEM_CATEGORY_BOOST
+        maybeToEnum 5 = Prelude.Just ITEM_CATEGORY_UTILITES
+        maybeToEnum 6 = Prelude.Just ITEM_CATEGORY_CAMERA
+        maybeToEnum 7 = Prelude.Just ITEM_CATEGORY_DISK
+        maybeToEnum 8 = Prelude.Just ITEM_CATEGORY_INCUBATOR
+        maybeToEnum 9 = Prelude.Just ITEM_CATEGORY_INCENSE
+        maybeToEnum 10 = Prelude.Just ITEM_CATEGORY_XP_BOOST
+        maybeToEnum 11 = Prelude.Just ITEM_CATEGORY_INVENTORY_UPGRADE
+        maybeToEnum _ = Prelude.Nothing
+        showEnum ITEM_CATEGORY_NONE = "ITEM_CATEGORY_NONE"
+        showEnum ITEM_CATEGORY_POKEBALL = "ITEM_CATEGORY_POKEBALL"
+        showEnum ITEM_CATEGORY_FOOD = "ITEM_CATEGORY_FOOD"
+        showEnum ITEM_CATEGORY_MEDICINE = "ITEM_CATEGORY_MEDICINE"
+        showEnum ITEM_CATEGORY_BOOST = "ITEM_CATEGORY_BOOST"
+        showEnum ITEM_CATEGORY_UTILITES = "ITEM_CATEGORY_UTILITES"
+        showEnum ITEM_CATEGORY_CAMERA = "ITEM_CATEGORY_CAMERA"
+        showEnum ITEM_CATEGORY_DISK = "ITEM_CATEGORY_DISK"
+        showEnum ITEM_CATEGORY_INCUBATOR = "ITEM_CATEGORY_INCUBATOR"
+        showEnum ITEM_CATEGORY_INCENSE = "ITEM_CATEGORY_INCENSE"
+        showEnum ITEM_CATEGORY_XP_BOOST = "ITEM_CATEGORY_XP_BOOST"
+        showEnum ITEM_CATEGORY_INVENTORY_UPGRADE
+          = "ITEM_CATEGORY_INVENTORY_UPGRADE"
+        readEnum "ITEM_CATEGORY_NONE" = Prelude.Just ITEM_CATEGORY_NONE
+        readEnum "ITEM_CATEGORY_POKEBALL"
+          = Prelude.Just ITEM_CATEGORY_POKEBALL
+        readEnum "ITEM_CATEGORY_FOOD" = Prelude.Just ITEM_CATEGORY_FOOD
+        readEnum "ITEM_CATEGORY_MEDICINE"
+          = Prelude.Just ITEM_CATEGORY_MEDICINE
+        readEnum "ITEM_CATEGORY_BOOST" = Prelude.Just ITEM_CATEGORY_BOOST
+        readEnum "ITEM_CATEGORY_UTILITES"
+          = Prelude.Just ITEM_CATEGORY_UTILITES
+        readEnum "ITEM_CATEGORY_CAMERA" = Prelude.Just ITEM_CATEGORY_CAMERA
+        readEnum "ITEM_CATEGORY_DISK" = Prelude.Just ITEM_CATEGORY_DISK
+        readEnum "ITEM_CATEGORY_INCUBATOR"
+          = Prelude.Just ITEM_CATEGORY_INCUBATOR
+        readEnum "ITEM_CATEGORY_INCENSE"
+          = Prelude.Just ITEM_CATEGORY_INCENSE
+        readEnum "ITEM_CATEGORY_XP_BOOST"
+          = Prelude.Just ITEM_CATEGORY_XP_BOOST
+        readEnum "ITEM_CATEGORY_INVENTORY_UPGRADE"
+          = Prelude.Just ITEM_CATEGORY_INVENTORY_UPGRADE
+        readEnum _ = Prelude.Nothing
+
+instance Prelude.Enum ItemCategory where
+        toEnum k__
+          = Prelude.maybe
+              (Prelude.error
+                 ((Prelude.++) "toEnum: unknown value for enum ItemCategory: "
+                    (Prelude.show k__)))
+              Prelude.id
+              (Data.ProtoLens.maybeToEnum k__)
+        fromEnum ITEM_CATEGORY_NONE = 0
+        fromEnum ITEM_CATEGORY_POKEBALL = 1
+        fromEnum ITEM_CATEGORY_FOOD = 2
+        fromEnum ITEM_CATEGORY_MEDICINE = 3
+        fromEnum ITEM_CATEGORY_BOOST = 4
+        fromEnum ITEM_CATEGORY_UTILITES = 5
+        fromEnum ITEM_CATEGORY_CAMERA = 6
+        fromEnum ITEM_CATEGORY_DISK = 7
+        fromEnum ITEM_CATEGORY_INCUBATOR = 8
+        fromEnum ITEM_CATEGORY_INCENSE = 9
+        fromEnum ITEM_CATEGORY_XP_BOOST = 10
+        fromEnum ITEM_CATEGORY_INVENTORY_UPGRADE = 11
+        succ ITEM_CATEGORY_INVENTORY_UPGRADE
+          = Prelude.error
+              "Ident \"ItemCategory\".Ident \"succ\": bad argument Ident \"ITEM_CATEGORY_INVENTORY_UPGRADE\". This value would be out of bounds."
+        succ ITEM_CATEGORY_NONE = ITEM_CATEGORY_POKEBALL
+        succ ITEM_CATEGORY_POKEBALL = ITEM_CATEGORY_FOOD
+        succ ITEM_CATEGORY_FOOD = ITEM_CATEGORY_MEDICINE
+        succ ITEM_CATEGORY_MEDICINE = ITEM_CATEGORY_BOOST
+        succ ITEM_CATEGORY_BOOST = ITEM_CATEGORY_UTILITES
+        succ ITEM_CATEGORY_UTILITES = ITEM_CATEGORY_CAMERA
+        succ ITEM_CATEGORY_CAMERA = ITEM_CATEGORY_DISK
+        succ ITEM_CATEGORY_DISK = ITEM_CATEGORY_INCUBATOR
+        succ ITEM_CATEGORY_INCUBATOR = ITEM_CATEGORY_INCENSE
+        succ ITEM_CATEGORY_INCENSE = ITEM_CATEGORY_XP_BOOST
+        succ ITEM_CATEGORY_XP_BOOST = ITEM_CATEGORY_INVENTORY_UPGRADE
+        pred ITEM_CATEGORY_NONE
+          = Prelude.error
+              "Ident \"ItemCategory\".Ident \"pred\": bad argument Ident \"ITEM_CATEGORY_NONE\". This value would be out of bounds."
+        pred ITEM_CATEGORY_POKEBALL = ITEM_CATEGORY_NONE
+        pred ITEM_CATEGORY_FOOD = ITEM_CATEGORY_POKEBALL
+        pred ITEM_CATEGORY_MEDICINE = ITEM_CATEGORY_FOOD
+        pred ITEM_CATEGORY_BOOST = ITEM_CATEGORY_MEDICINE
+        pred ITEM_CATEGORY_UTILITES = ITEM_CATEGORY_BOOST
+        pred ITEM_CATEGORY_CAMERA = ITEM_CATEGORY_UTILITES
+        pred ITEM_CATEGORY_DISK = ITEM_CATEGORY_CAMERA
+        pred ITEM_CATEGORY_INCUBATOR = ITEM_CATEGORY_DISK
+        pred ITEM_CATEGORY_INCENSE = ITEM_CATEGORY_INCUBATOR
+        pred ITEM_CATEGORY_XP_BOOST = ITEM_CATEGORY_INCENSE
+        pred ITEM_CATEGORY_INVENTORY_UPGRADE = ITEM_CATEGORY_XP_BOOST
+        enumFrom = Data.ProtoLens.Message.Enum.messageEnumFrom
+        enumFromTo = Data.ProtoLens.Message.Enum.messageEnumFromTo
+        enumFromThen = Data.ProtoLens.Message.Enum.messageEnumFromThen
+        enumFromThenTo = Data.ProtoLens.Message.Enum.messageEnumFromThenTo
+
+instance Prelude.Bounded ItemCategory where
+        minBound = ITEM_CATEGORY_NONE
+        maxBound = ITEM_CATEGORY_INVENTORY_UPGRADE
diff --git a/src/Proto/POGOProtos/Enums/ItemEffect.hs b/src/Proto/POGOProtos/Enums/ItemEffect.hs
new file mode 100644
--- /dev/null
+++ b/src/Proto/POGOProtos/Enums/ItemEffect.hs
@@ -0,0 +1,189 @@
+{- This file was auto-generated from POGOProtos/Enums/ItemEffect.proto by the proto-lens-protoc program. -}
+{-# LANGUAGE ScopedTypeVariables, DataKinds, TypeFamilies,
+  MultiParamTypeClasses, FlexibleContexts, FlexibleInstances #-}
+{-# OPTIONS_GHC -fno-warn-unused-imports#-}
+module Proto.POGOProtos.Enums.ItemEffect where
+import qualified Prelude
+import qualified Data.ProtoLens
+import qualified Data.ProtoLens.Message.Enum
+import qualified Lens.Family2
+import qualified Lens.Family2.Unchecked
+import qualified Data.Default.Class
+import qualified Data.Text
+import qualified Data.Int
+import qualified Data.Word
+import qualified Data.Map
+import qualified Data.ByteString
+
+data ItemEffect = ITEM_EFFECT_NONE
+                | ITEM_EFFECT_CAP_NO_FLEE
+                | ITEM_EFFECT_CAP_NO_MOVEMENT
+                | ITEM_EFFECT_CAP_NO_THREAT
+                | ITEM_EFFECT_CAP_TARGET_MAX
+                | ITEM_EFFECT_CAP_TARGET_SLOW
+                | ITEM_EFFECT_CAP_CHANCE_NIGHT
+                | ITEM_EFFECT_CAP_CHANCE_TRAINER
+                | ITEM_EFFECT_CAP_CHANCE_FIRST_THROW
+                | ITEM_EFFECT_CAP_CHANCE_LEGEND
+                | ITEM_EFFECT_CAP_CHANCE_HEAVY
+                | ITEM_EFFECT_CAP_CHANCE_REPEAT
+                | ITEM_EFFECT_CAP_CHANCE_MULTI_THROW
+                | ITEM_EFFECT_CAP_CHANCE_ALWAYS
+                | ITEM_EFFECT_CAP_CHANCE_SINGLE_THROW
+                deriving (Prelude.Show, Prelude.Eq)
+
+instance Data.Default.Class.Default ItemEffect where
+        def = ITEM_EFFECT_NONE
+
+instance Data.ProtoLens.FieldDefault ItemEffect where
+        fieldDefault = ITEM_EFFECT_NONE
+
+instance Data.ProtoLens.MessageEnum ItemEffect where
+        maybeToEnum 0 = Prelude.Just ITEM_EFFECT_NONE
+        maybeToEnum 1000 = Prelude.Just ITEM_EFFECT_CAP_NO_FLEE
+        maybeToEnum 1002 = Prelude.Just ITEM_EFFECT_CAP_NO_MOVEMENT
+        maybeToEnum 1003 = Prelude.Just ITEM_EFFECT_CAP_NO_THREAT
+        maybeToEnum 1004 = Prelude.Just ITEM_EFFECT_CAP_TARGET_MAX
+        maybeToEnum 1005 = Prelude.Just ITEM_EFFECT_CAP_TARGET_SLOW
+        maybeToEnum 1006 = Prelude.Just ITEM_EFFECT_CAP_CHANCE_NIGHT
+        maybeToEnum 1007 = Prelude.Just ITEM_EFFECT_CAP_CHANCE_TRAINER
+        maybeToEnum 1008 = Prelude.Just ITEM_EFFECT_CAP_CHANCE_FIRST_THROW
+        maybeToEnum 1009 = Prelude.Just ITEM_EFFECT_CAP_CHANCE_LEGEND
+        maybeToEnum 1010 = Prelude.Just ITEM_EFFECT_CAP_CHANCE_HEAVY
+        maybeToEnum 1011 = Prelude.Just ITEM_EFFECT_CAP_CHANCE_REPEAT
+        maybeToEnum 1012 = Prelude.Just ITEM_EFFECT_CAP_CHANCE_MULTI_THROW
+        maybeToEnum 1013 = Prelude.Just ITEM_EFFECT_CAP_CHANCE_ALWAYS
+        maybeToEnum 1014 = Prelude.Just ITEM_EFFECT_CAP_CHANCE_SINGLE_THROW
+        maybeToEnum _ = Prelude.Nothing
+        showEnum ITEM_EFFECT_NONE = "ITEM_EFFECT_NONE"
+        showEnum ITEM_EFFECT_CAP_NO_FLEE = "ITEM_EFFECT_CAP_NO_FLEE"
+        showEnum ITEM_EFFECT_CAP_NO_MOVEMENT
+          = "ITEM_EFFECT_CAP_NO_MOVEMENT"
+        showEnum ITEM_EFFECT_CAP_NO_THREAT = "ITEM_EFFECT_CAP_NO_THREAT"
+        showEnum ITEM_EFFECT_CAP_TARGET_MAX = "ITEM_EFFECT_CAP_TARGET_MAX"
+        showEnum ITEM_EFFECT_CAP_TARGET_SLOW
+          = "ITEM_EFFECT_CAP_TARGET_SLOW"
+        showEnum ITEM_EFFECT_CAP_CHANCE_NIGHT
+          = "ITEM_EFFECT_CAP_CHANCE_NIGHT"
+        showEnum ITEM_EFFECT_CAP_CHANCE_TRAINER
+          = "ITEM_EFFECT_CAP_CHANCE_TRAINER"
+        showEnum ITEM_EFFECT_CAP_CHANCE_FIRST_THROW
+          = "ITEM_EFFECT_CAP_CHANCE_FIRST_THROW"
+        showEnum ITEM_EFFECT_CAP_CHANCE_LEGEND
+          = "ITEM_EFFECT_CAP_CHANCE_LEGEND"
+        showEnum ITEM_EFFECT_CAP_CHANCE_HEAVY
+          = "ITEM_EFFECT_CAP_CHANCE_HEAVY"
+        showEnum ITEM_EFFECT_CAP_CHANCE_REPEAT
+          = "ITEM_EFFECT_CAP_CHANCE_REPEAT"
+        showEnum ITEM_EFFECT_CAP_CHANCE_MULTI_THROW
+          = "ITEM_EFFECT_CAP_CHANCE_MULTI_THROW"
+        showEnum ITEM_EFFECT_CAP_CHANCE_ALWAYS
+          = "ITEM_EFFECT_CAP_CHANCE_ALWAYS"
+        showEnum ITEM_EFFECT_CAP_CHANCE_SINGLE_THROW
+          = "ITEM_EFFECT_CAP_CHANCE_SINGLE_THROW"
+        readEnum "ITEM_EFFECT_NONE" = Prelude.Just ITEM_EFFECT_NONE
+        readEnum "ITEM_EFFECT_CAP_NO_FLEE"
+          = Prelude.Just ITEM_EFFECT_CAP_NO_FLEE
+        readEnum "ITEM_EFFECT_CAP_NO_MOVEMENT"
+          = Prelude.Just ITEM_EFFECT_CAP_NO_MOVEMENT
+        readEnum "ITEM_EFFECT_CAP_NO_THREAT"
+          = Prelude.Just ITEM_EFFECT_CAP_NO_THREAT
+        readEnum "ITEM_EFFECT_CAP_TARGET_MAX"
+          = Prelude.Just ITEM_EFFECT_CAP_TARGET_MAX
+        readEnum "ITEM_EFFECT_CAP_TARGET_SLOW"
+          = Prelude.Just ITEM_EFFECT_CAP_TARGET_SLOW
+        readEnum "ITEM_EFFECT_CAP_CHANCE_NIGHT"
+          = Prelude.Just ITEM_EFFECT_CAP_CHANCE_NIGHT
+        readEnum "ITEM_EFFECT_CAP_CHANCE_TRAINER"
+          = Prelude.Just ITEM_EFFECT_CAP_CHANCE_TRAINER
+        readEnum "ITEM_EFFECT_CAP_CHANCE_FIRST_THROW"
+          = Prelude.Just ITEM_EFFECT_CAP_CHANCE_FIRST_THROW
+        readEnum "ITEM_EFFECT_CAP_CHANCE_LEGEND"
+          = Prelude.Just ITEM_EFFECT_CAP_CHANCE_LEGEND
+        readEnum "ITEM_EFFECT_CAP_CHANCE_HEAVY"
+          = Prelude.Just ITEM_EFFECT_CAP_CHANCE_HEAVY
+        readEnum "ITEM_EFFECT_CAP_CHANCE_REPEAT"
+          = Prelude.Just ITEM_EFFECT_CAP_CHANCE_REPEAT
+        readEnum "ITEM_EFFECT_CAP_CHANCE_MULTI_THROW"
+          = Prelude.Just ITEM_EFFECT_CAP_CHANCE_MULTI_THROW
+        readEnum "ITEM_EFFECT_CAP_CHANCE_ALWAYS"
+          = Prelude.Just ITEM_EFFECT_CAP_CHANCE_ALWAYS
+        readEnum "ITEM_EFFECT_CAP_CHANCE_SINGLE_THROW"
+          = Prelude.Just ITEM_EFFECT_CAP_CHANCE_SINGLE_THROW
+        readEnum _ = Prelude.Nothing
+
+instance Prelude.Enum ItemEffect where
+        toEnum k__
+          = Prelude.maybe
+              (Prelude.error
+                 ((Prelude.++) "toEnum: unknown value for enum ItemEffect: "
+                    (Prelude.show k__)))
+              Prelude.id
+              (Data.ProtoLens.maybeToEnum k__)
+        fromEnum ITEM_EFFECT_NONE = 0
+        fromEnum ITEM_EFFECT_CAP_NO_FLEE = 1000
+        fromEnum ITEM_EFFECT_CAP_NO_MOVEMENT = 1002
+        fromEnum ITEM_EFFECT_CAP_NO_THREAT = 1003
+        fromEnum ITEM_EFFECT_CAP_TARGET_MAX = 1004
+        fromEnum ITEM_EFFECT_CAP_TARGET_SLOW = 1005
+        fromEnum ITEM_EFFECT_CAP_CHANCE_NIGHT = 1006
+        fromEnum ITEM_EFFECT_CAP_CHANCE_TRAINER = 1007
+        fromEnum ITEM_EFFECT_CAP_CHANCE_FIRST_THROW = 1008
+        fromEnum ITEM_EFFECT_CAP_CHANCE_LEGEND = 1009
+        fromEnum ITEM_EFFECT_CAP_CHANCE_HEAVY = 1010
+        fromEnum ITEM_EFFECT_CAP_CHANCE_REPEAT = 1011
+        fromEnum ITEM_EFFECT_CAP_CHANCE_MULTI_THROW = 1012
+        fromEnum ITEM_EFFECT_CAP_CHANCE_ALWAYS = 1013
+        fromEnum ITEM_EFFECT_CAP_CHANCE_SINGLE_THROW = 1014
+        succ ITEM_EFFECT_CAP_CHANCE_SINGLE_THROW
+          = Prelude.error
+              "Ident \"ItemEffect\".Ident \"succ\": bad argument Ident \"ITEM_EFFECT_CAP_CHANCE_SINGLE_THROW\". This value would be out of bounds."
+        succ ITEM_EFFECT_NONE = ITEM_EFFECT_CAP_NO_FLEE
+        succ ITEM_EFFECT_CAP_NO_FLEE = ITEM_EFFECT_CAP_NO_MOVEMENT
+        succ ITEM_EFFECT_CAP_NO_MOVEMENT = ITEM_EFFECT_CAP_NO_THREAT
+        succ ITEM_EFFECT_CAP_NO_THREAT = ITEM_EFFECT_CAP_TARGET_MAX
+        succ ITEM_EFFECT_CAP_TARGET_MAX = ITEM_EFFECT_CAP_TARGET_SLOW
+        succ ITEM_EFFECT_CAP_TARGET_SLOW = ITEM_EFFECT_CAP_CHANCE_NIGHT
+        succ ITEM_EFFECT_CAP_CHANCE_NIGHT = ITEM_EFFECT_CAP_CHANCE_TRAINER
+        succ ITEM_EFFECT_CAP_CHANCE_TRAINER
+          = ITEM_EFFECT_CAP_CHANCE_FIRST_THROW
+        succ ITEM_EFFECT_CAP_CHANCE_FIRST_THROW
+          = ITEM_EFFECT_CAP_CHANCE_LEGEND
+        succ ITEM_EFFECT_CAP_CHANCE_LEGEND = ITEM_EFFECT_CAP_CHANCE_HEAVY
+        succ ITEM_EFFECT_CAP_CHANCE_HEAVY = ITEM_EFFECT_CAP_CHANCE_REPEAT
+        succ ITEM_EFFECT_CAP_CHANCE_REPEAT
+          = ITEM_EFFECT_CAP_CHANCE_MULTI_THROW
+        succ ITEM_EFFECT_CAP_CHANCE_MULTI_THROW
+          = ITEM_EFFECT_CAP_CHANCE_ALWAYS
+        succ ITEM_EFFECT_CAP_CHANCE_ALWAYS
+          = ITEM_EFFECT_CAP_CHANCE_SINGLE_THROW
+        pred ITEM_EFFECT_NONE
+          = Prelude.error
+              "Ident \"ItemEffect\".Ident \"pred\": bad argument Ident \"ITEM_EFFECT_NONE\". This value would be out of bounds."
+        pred ITEM_EFFECT_CAP_NO_FLEE = ITEM_EFFECT_NONE
+        pred ITEM_EFFECT_CAP_NO_MOVEMENT = ITEM_EFFECT_CAP_NO_FLEE
+        pred ITEM_EFFECT_CAP_NO_THREAT = ITEM_EFFECT_CAP_NO_MOVEMENT
+        pred ITEM_EFFECT_CAP_TARGET_MAX = ITEM_EFFECT_CAP_NO_THREAT
+        pred ITEM_EFFECT_CAP_TARGET_SLOW = ITEM_EFFECT_CAP_TARGET_MAX
+        pred ITEM_EFFECT_CAP_CHANCE_NIGHT = ITEM_EFFECT_CAP_TARGET_SLOW
+        pred ITEM_EFFECT_CAP_CHANCE_TRAINER = ITEM_EFFECT_CAP_CHANCE_NIGHT
+        pred ITEM_EFFECT_CAP_CHANCE_FIRST_THROW
+          = ITEM_EFFECT_CAP_CHANCE_TRAINER
+        pred ITEM_EFFECT_CAP_CHANCE_LEGEND
+          = ITEM_EFFECT_CAP_CHANCE_FIRST_THROW
+        pred ITEM_EFFECT_CAP_CHANCE_HEAVY = ITEM_EFFECT_CAP_CHANCE_LEGEND
+        pred ITEM_EFFECT_CAP_CHANCE_REPEAT = ITEM_EFFECT_CAP_CHANCE_HEAVY
+        pred ITEM_EFFECT_CAP_CHANCE_MULTI_THROW
+          = ITEM_EFFECT_CAP_CHANCE_REPEAT
+        pred ITEM_EFFECT_CAP_CHANCE_ALWAYS
+          = ITEM_EFFECT_CAP_CHANCE_MULTI_THROW
+        pred ITEM_EFFECT_CAP_CHANCE_SINGLE_THROW
+          = ITEM_EFFECT_CAP_CHANCE_ALWAYS
+        enumFrom = Data.ProtoLens.Message.Enum.messageEnumFrom
+        enumFromTo = Data.ProtoLens.Message.Enum.messageEnumFromTo
+        enumFromThen = Data.ProtoLens.Message.Enum.messageEnumFromThen
+        enumFromThenTo = Data.ProtoLens.Message.Enum.messageEnumFromThenTo
+
+instance Prelude.Bounded ItemEffect where
+        minBound = ITEM_EFFECT_NONE
+        maxBound = ITEM_EFFECT_CAP_CHANCE_SINGLE_THROW
diff --git a/src/Proto/POGOProtos/Enums/Platform.hs b/src/Proto/POGOProtos/Enums/Platform.hs
new file mode 100644
--- /dev/null
+++ b/src/Proto/POGOProtos/Enums/Platform.hs
@@ -0,0 +1,84 @@
+{- This file was auto-generated from POGOProtos/Enums/Platform.proto by the proto-lens-protoc program. -}
+{-# LANGUAGE ScopedTypeVariables, DataKinds, TypeFamilies,
+  MultiParamTypeClasses, FlexibleContexts, FlexibleInstances #-}
+{-# OPTIONS_GHC -fno-warn-unused-imports#-}
+module Proto.POGOProtos.Enums.Platform where
+import qualified Prelude
+import qualified Data.ProtoLens
+import qualified Data.ProtoLens.Message.Enum
+import qualified Lens.Family2
+import qualified Lens.Family2.Unchecked
+import qualified Data.Default.Class
+import qualified Data.Text
+import qualified Data.Int
+import qualified Data.Word
+import qualified Data.Map
+import qualified Data.ByteString
+
+data Platform = UNSET
+              | IOS
+              | ANDROID
+              | OSX
+              | WINDOWS
+              deriving (Prelude.Show, Prelude.Eq)
+
+instance Data.Default.Class.Default Platform where
+        def = UNSET
+
+instance Data.ProtoLens.FieldDefault Platform where
+        fieldDefault = UNSET
+
+instance Data.ProtoLens.MessageEnum Platform where
+        maybeToEnum 0 = Prelude.Just UNSET
+        maybeToEnum 1 = Prelude.Just IOS
+        maybeToEnum 2 = Prelude.Just ANDROID
+        maybeToEnum 3 = Prelude.Just OSX
+        maybeToEnum 4 = Prelude.Just WINDOWS
+        maybeToEnum _ = Prelude.Nothing
+        showEnum UNSET = "UNSET"
+        showEnum IOS = "IOS"
+        showEnum ANDROID = "ANDROID"
+        showEnum OSX = "OSX"
+        showEnum WINDOWS = "WINDOWS"
+        readEnum "UNSET" = Prelude.Just UNSET
+        readEnum "IOS" = Prelude.Just IOS
+        readEnum "ANDROID" = Prelude.Just ANDROID
+        readEnum "OSX" = Prelude.Just OSX
+        readEnum "WINDOWS" = Prelude.Just WINDOWS
+        readEnum _ = Prelude.Nothing
+
+instance Prelude.Enum Platform where
+        toEnum k__
+          = Prelude.maybe
+              (Prelude.error
+                 ((Prelude.++) "toEnum: unknown value for enum Platform: "
+                    (Prelude.show k__)))
+              Prelude.id
+              (Data.ProtoLens.maybeToEnum k__)
+        fromEnum UNSET = 0
+        fromEnum IOS = 1
+        fromEnum ANDROID = 2
+        fromEnum OSX = 3
+        fromEnum WINDOWS = 4
+        succ WINDOWS
+          = Prelude.error
+              "Ident \"Platform\".Ident \"succ\": bad argument Ident \"WINDOWS\". This value would be out of bounds."
+        succ UNSET = IOS
+        succ IOS = ANDROID
+        succ ANDROID = OSX
+        succ OSX = WINDOWS
+        pred UNSET
+          = Prelude.error
+              "Ident \"Platform\".Ident \"pred\": bad argument Ident \"UNSET\". This value would be out of bounds."
+        pred IOS = UNSET
+        pred ANDROID = IOS
+        pred OSX = ANDROID
+        pred WINDOWS = OSX
+        enumFrom = Data.ProtoLens.Message.Enum.messageEnumFrom
+        enumFromTo = Data.ProtoLens.Message.Enum.messageEnumFromTo
+        enumFromThen = Data.ProtoLens.Message.Enum.messageEnumFromThen
+        enumFromThenTo = Data.ProtoLens.Message.Enum.messageEnumFromThenTo
+
+instance Prelude.Bounded Platform where
+        minBound = UNSET
+        maxBound = WINDOWS
diff --git a/src/Proto/POGOProtos/Enums/PokemonId.hs b/src/Proto/POGOProtos/Enums/PokemonId.hs
new file mode 100644
--- /dev/null
+++ b/src/Proto/POGOProtos/Enums/PokemonId.hs
@@ -0,0 +1,1113 @@
+{- This file was auto-generated from POGOProtos/Enums/PokemonId.proto by the proto-lens-protoc program. -}
+{-# LANGUAGE ScopedTypeVariables, DataKinds, TypeFamilies,
+  MultiParamTypeClasses, FlexibleContexts, FlexibleInstances #-}
+{-# OPTIONS_GHC -fno-warn-unused-imports#-}
+module Proto.POGOProtos.Enums.PokemonId where
+import qualified Prelude
+import qualified Data.ProtoLens
+import qualified Data.ProtoLens.Message.Enum
+import qualified Lens.Family2
+import qualified Lens.Family2.Unchecked
+import qualified Data.Default.Class
+import qualified Data.Text
+import qualified Data.Int
+import qualified Data.Word
+import qualified Data.Map
+import qualified Data.ByteString
+
+data PokemonId = MISSINGNO
+               | BULBASAUR
+               | IVYSAUR
+               | VENUSAUR
+               | CHARMANDER
+               | CHARMELEON
+               | CHARIZARD
+               | SQUIRTLE
+               | WARTORTLE
+               | BLASTOISE
+               | CATERPIE
+               | METAPOD
+               | BUTTERFREE
+               | WEEDLE
+               | KAKUNA
+               | BEEDRILL
+               | PIDGEY
+               | PIDGEOTTO
+               | PIDGEOT
+               | RATTATA
+               | RATICATE
+               | SPEAROW
+               | FEAROW
+               | EKANS
+               | ARBOK
+               | PIKACHU
+               | RAICHU
+               | SANDSHREW
+               | SANDSLASH
+               | NIDORAN_FEMALE
+               | NIDORINA
+               | NIDOQUEEN
+               | NIDORAN_MALE
+               | NIDORINO
+               | NIDOKING
+               | CLEFAIRY
+               | CLEFABLE
+               | VULPIX
+               | NINETALES
+               | JIGGLYPUFF
+               | WIGGLYTUFF
+               | ZUBAT
+               | GOLBAT
+               | ODDISH
+               | GLOOM
+               | VILEPLUME
+               | PARAS
+               | PARASECT
+               | VENONAT
+               | VENOMOTH
+               | DIGLETT
+               | DUGTRIO
+               | MEOWTH
+               | PERSIAN
+               | PSYDUCK
+               | GOLDUCK
+               | MANKEY
+               | PRIMEAPE
+               | GROWLITHE
+               | ARCANINE
+               | POLIWAG
+               | POLIWHIRL
+               | POLIWRATH
+               | ABRA
+               | KADABRA
+               | ALAKAZAM
+               | MACHOP
+               | MACHOKE
+               | MACHAMP
+               | BELLSPROUT
+               | WEEPINBELL
+               | VICTREEBEL
+               | TENTACOOL
+               | TENTACRUEL
+               | GEODUDE
+               | GRAVELER
+               | GOLEM
+               | PONYTA
+               | RAPIDASH
+               | SLOWPOKE
+               | SLOWBRO
+               | MAGNEMITE
+               | MAGNETON
+               | FARFETCHD
+               | DODUO
+               | DODRIO
+               | SEEL
+               | DEWGONG
+               | GRIMER
+               | MUK
+               | SHELLDER
+               | CLOYSTER
+               | GASTLY
+               | HAUNTER
+               | GENGAR
+               | ONIX
+               | DROWZEE
+               | HYPNO
+               | KRABBY
+               | KINGLER
+               | VOLTORB
+               | ELECTRODE
+               | EXEGGCUTE
+               | EXEGGUTOR
+               | CUBONE
+               | MAROWAK
+               | HITMONLEE
+               | HITMONCHAN
+               | LICKITUNG
+               | KOFFING
+               | WEEZING
+               | RHYHORN
+               | RHYDON
+               | CHANSEY
+               | TANGELA
+               | KANGASKHAN
+               | HORSEA
+               | SEADRA
+               | GOLDEEN
+               | SEAKING
+               | STARYU
+               | STARMIE
+               | MR_MIME
+               | SCYTHER
+               | JYNX
+               | ELECTABUZZ
+               | MAGMAR
+               | PINSIR
+               | TAUROS
+               | MAGIKARP
+               | GYARADOS
+               | LAPRAS
+               | DITTO
+               | EEVEE
+               | VAPOREON
+               | JOLTEON
+               | FLAREON
+               | PORYGON
+               | OMANYTE
+               | OMASTAR
+               | KABUTO
+               | KABUTOPS
+               | AERODACTYL
+               | SNORLAX
+               | ARTICUNO
+               | ZAPDOS
+               | MOLTRES
+               | DRATINI
+               | DRAGONAIR
+               | DRAGONITE
+               | MEWTWO
+               | MEW
+               deriving (Prelude.Show, Prelude.Eq)
+
+instance Data.Default.Class.Default PokemonId where
+        def = MISSINGNO
+
+instance Data.ProtoLens.FieldDefault PokemonId where
+        fieldDefault = MISSINGNO
+
+instance Data.ProtoLens.MessageEnum PokemonId where
+        maybeToEnum 0 = Prelude.Just MISSINGNO
+        maybeToEnum 1 = Prelude.Just BULBASAUR
+        maybeToEnum 2 = Prelude.Just IVYSAUR
+        maybeToEnum 3 = Prelude.Just VENUSAUR
+        maybeToEnum 4 = Prelude.Just CHARMANDER
+        maybeToEnum 5 = Prelude.Just CHARMELEON
+        maybeToEnum 6 = Prelude.Just CHARIZARD
+        maybeToEnum 7 = Prelude.Just SQUIRTLE
+        maybeToEnum 8 = Prelude.Just WARTORTLE
+        maybeToEnum 9 = Prelude.Just BLASTOISE
+        maybeToEnum 10 = Prelude.Just CATERPIE
+        maybeToEnum 11 = Prelude.Just METAPOD
+        maybeToEnum 12 = Prelude.Just BUTTERFREE
+        maybeToEnum 13 = Prelude.Just WEEDLE
+        maybeToEnum 14 = Prelude.Just KAKUNA
+        maybeToEnum 15 = Prelude.Just BEEDRILL
+        maybeToEnum 16 = Prelude.Just PIDGEY
+        maybeToEnum 17 = Prelude.Just PIDGEOTTO
+        maybeToEnum 18 = Prelude.Just PIDGEOT
+        maybeToEnum 19 = Prelude.Just RATTATA
+        maybeToEnum 20 = Prelude.Just RATICATE
+        maybeToEnum 21 = Prelude.Just SPEAROW
+        maybeToEnum 22 = Prelude.Just FEAROW
+        maybeToEnum 23 = Prelude.Just EKANS
+        maybeToEnum 24 = Prelude.Just ARBOK
+        maybeToEnum 25 = Prelude.Just PIKACHU
+        maybeToEnum 26 = Prelude.Just RAICHU
+        maybeToEnum 27 = Prelude.Just SANDSHREW
+        maybeToEnum 28 = Prelude.Just SANDSLASH
+        maybeToEnum 29 = Prelude.Just NIDORAN_FEMALE
+        maybeToEnum 30 = Prelude.Just NIDORINA
+        maybeToEnum 31 = Prelude.Just NIDOQUEEN
+        maybeToEnum 32 = Prelude.Just NIDORAN_MALE
+        maybeToEnum 33 = Prelude.Just NIDORINO
+        maybeToEnum 34 = Prelude.Just NIDOKING
+        maybeToEnum 35 = Prelude.Just CLEFAIRY
+        maybeToEnum 36 = Prelude.Just CLEFABLE
+        maybeToEnum 37 = Prelude.Just VULPIX
+        maybeToEnum 38 = Prelude.Just NINETALES
+        maybeToEnum 39 = Prelude.Just JIGGLYPUFF
+        maybeToEnum 40 = Prelude.Just WIGGLYTUFF
+        maybeToEnum 41 = Prelude.Just ZUBAT
+        maybeToEnum 42 = Prelude.Just GOLBAT
+        maybeToEnum 43 = Prelude.Just ODDISH
+        maybeToEnum 44 = Prelude.Just GLOOM
+        maybeToEnum 45 = Prelude.Just VILEPLUME
+        maybeToEnum 46 = Prelude.Just PARAS
+        maybeToEnum 47 = Prelude.Just PARASECT
+        maybeToEnum 48 = Prelude.Just VENONAT
+        maybeToEnum 49 = Prelude.Just VENOMOTH
+        maybeToEnum 50 = Prelude.Just DIGLETT
+        maybeToEnum 51 = Prelude.Just DUGTRIO
+        maybeToEnum 52 = Prelude.Just MEOWTH
+        maybeToEnum 53 = Prelude.Just PERSIAN
+        maybeToEnum 54 = Prelude.Just PSYDUCK
+        maybeToEnum 55 = Prelude.Just GOLDUCK
+        maybeToEnum 56 = Prelude.Just MANKEY
+        maybeToEnum 57 = Prelude.Just PRIMEAPE
+        maybeToEnum 58 = Prelude.Just GROWLITHE
+        maybeToEnum 59 = Prelude.Just ARCANINE
+        maybeToEnum 60 = Prelude.Just POLIWAG
+        maybeToEnum 61 = Prelude.Just POLIWHIRL
+        maybeToEnum 62 = Prelude.Just POLIWRATH
+        maybeToEnum 63 = Prelude.Just ABRA
+        maybeToEnum 64 = Prelude.Just KADABRA
+        maybeToEnum 65 = Prelude.Just ALAKAZAM
+        maybeToEnum 66 = Prelude.Just MACHOP
+        maybeToEnum 67 = Prelude.Just MACHOKE
+        maybeToEnum 68 = Prelude.Just MACHAMP
+        maybeToEnum 69 = Prelude.Just BELLSPROUT
+        maybeToEnum 70 = Prelude.Just WEEPINBELL
+        maybeToEnum 71 = Prelude.Just VICTREEBEL
+        maybeToEnum 72 = Prelude.Just TENTACOOL
+        maybeToEnum 73 = Prelude.Just TENTACRUEL
+        maybeToEnum 74 = Prelude.Just GEODUDE
+        maybeToEnum 75 = Prelude.Just GRAVELER
+        maybeToEnum 76 = Prelude.Just GOLEM
+        maybeToEnum 77 = Prelude.Just PONYTA
+        maybeToEnum 78 = Prelude.Just RAPIDASH
+        maybeToEnum 79 = Prelude.Just SLOWPOKE
+        maybeToEnum 80 = Prelude.Just SLOWBRO
+        maybeToEnum 81 = Prelude.Just MAGNEMITE
+        maybeToEnum 82 = Prelude.Just MAGNETON
+        maybeToEnum 83 = Prelude.Just FARFETCHD
+        maybeToEnum 84 = Prelude.Just DODUO
+        maybeToEnum 85 = Prelude.Just DODRIO
+        maybeToEnum 86 = Prelude.Just SEEL
+        maybeToEnum 87 = Prelude.Just DEWGONG
+        maybeToEnum 88 = Prelude.Just GRIMER
+        maybeToEnum 89 = Prelude.Just MUK
+        maybeToEnum 90 = Prelude.Just SHELLDER
+        maybeToEnum 91 = Prelude.Just CLOYSTER
+        maybeToEnum 92 = Prelude.Just GASTLY
+        maybeToEnum 93 = Prelude.Just HAUNTER
+        maybeToEnum 94 = Prelude.Just GENGAR
+        maybeToEnum 95 = Prelude.Just ONIX
+        maybeToEnum 96 = Prelude.Just DROWZEE
+        maybeToEnum 97 = Prelude.Just HYPNO
+        maybeToEnum 98 = Prelude.Just KRABBY
+        maybeToEnum 99 = Prelude.Just KINGLER
+        maybeToEnum 100 = Prelude.Just VOLTORB
+        maybeToEnum 101 = Prelude.Just ELECTRODE
+        maybeToEnum 102 = Prelude.Just EXEGGCUTE
+        maybeToEnum 103 = Prelude.Just EXEGGUTOR
+        maybeToEnum 104 = Prelude.Just CUBONE
+        maybeToEnum 105 = Prelude.Just MAROWAK
+        maybeToEnum 106 = Prelude.Just HITMONLEE
+        maybeToEnum 107 = Prelude.Just HITMONCHAN
+        maybeToEnum 108 = Prelude.Just LICKITUNG
+        maybeToEnum 109 = Prelude.Just KOFFING
+        maybeToEnum 110 = Prelude.Just WEEZING
+        maybeToEnum 111 = Prelude.Just RHYHORN
+        maybeToEnum 112 = Prelude.Just RHYDON
+        maybeToEnum 113 = Prelude.Just CHANSEY
+        maybeToEnum 114 = Prelude.Just TANGELA
+        maybeToEnum 115 = Prelude.Just KANGASKHAN
+        maybeToEnum 116 = Prelude.Just HORSEA
+        maybeToEnum 117 = Prelude.Just SEADRA
+        maybeToEnum 118 = Prelude.Just GOLDEEN
+        maybeToEnum 119 = Prelude.Just SEAKING
+        maybeToEnum 120 = Prelude.Just STARYU
+        maybeToEnum 121 = Prelude.Just STARMIE
+        maybeToEnum 122 = Prelude.Just MR_MIME
+        maybeToEnum 123 = Prelude.Just SCYTHER
+        maybeToEnum 124 = Prelude.Just JYNX
+        maybeToEnum 125 = Prelude.Just ELECTABUZZ
+        maybeToEnum 126 = Prelude.Just MAGMAR
+        maybeToEnum 127 = Prelude.Just PINSIR
+        maybeToEnum 128 = Prelude.Just TAUROS
+        maybeToEnum 129 = Prelude.Just MAGIKARP
+        maybeToEnum 130 = Prelude.Just GYARADOS
+        maybeToEnum 131 = Prelude.Just LAPRAS
+        maybeToEnum 132 = Prelude.Just DITTO
+        maybeToEnum 133 = Prelude.Just EEVEE
+        maybeToEnum 134 = Prelude.Just VAPOREON
+        maybeToEnum 135 = Prelude.Just JOLTEON
+        maybeToEnum 136 = Prelude.Just FLAREON
+        maybeToEnum 137 = Prelude.Just PORYGON
+        maybeToEnum 138 = Prelude.Just OMANYTE
+        maybeToEnum 139 = Prelude.Just OMASTAR
+        maybeToEnum 140 = Prelude.Just KABUTO
+        maybeToEnum 141 = Prelude.Just KABUTOPS
+        maybeToEnum 142 = Prelude.Just AERODACTYL
+        maybeToEnum 143 = Prelude.Just SNORLAX
+        maybeToEnum 144 = Prelude.Just ARTICUNO
+        maybeToEnum 145 = Prelude.Just ZAPDOS
+        maybeToEnum 146 = Prelude.Just MOLTRES
+        maybeToEnum 147 = Prelude.Just DRATINI
+        maybeToEnum 148 = Prelude.Just DRAGONAIR
+        maybeToEnum 149 = Prelude.Just DRAGONITE
+        maybeToEnum 150 = Prelude.Just MEWTWO
+        maybeToEnum 151 = Prelude.Just MEW
+        maybeToEnum _ = Prelude.Nothing
+        showEnum MISSINGNO = "MISSINGNO"
+        showEnum BULBASAUR = "BULBASAUR"
+        showEnum IVYSAUR = "IVYSAUR"
+        showEnum VENUSAUR = "VENUSAUR"
+        showEnum CHARMANDER = "CHARMANDER"
+        showEnum CHARMELEON = "CHARMELEON"
+        showEnum CHARIZARD = "CHARIZARD"
+        showEnum SQUIRTLE = "SQUIRTLE"
+        showEnum WARTORTLE = "WARTORTLE"
+        showEnum BLASTOISE = "BLASTOISE"
+        showEnum CATERPIE = "CATERPIE"
+        showEnum METAPOD = "METAPOD"
+        showEnum BUTTERFREE = "BUTTERFREE"
+        showEnum WEEDLE = "WEEDLE"
+        showEnum KAKUNA = "KAKUNA"
+        showEnum BEEDRILL = "BEEDRILL"
+        showEnum PIDGEY = "PIDGEY"
+        showEnum PIDGEOTTO = "PIDGEOTTO"
+        showEnum PIDGEOT = "PIDGEOT"
+        showEnum RATTATA = "RATTATA"
+        showEnum RATICATE = "RATICATE"
+        showEnum SPEAROW = "SPEAROW"
+        showEnum FEAROW = "FEAROW"
+        showEnum EKANS = "EKANS"
+        showEnum ARBOK = "ARBOK"
+        showEnum PIKACHU = "PIKACHU"
+        showEnum RAICHU = "RAICHU"
+        showEnum SANDSHREW = "SANDSHREW"
+        showEnum SANDSLASH = "SANDSLASH"
+        showEnum NIDORAN_FEMALE = "NIDORAN_FEMALE"
+        showEnum NIDORINA = "NIDORINA"
+        showEnum NIDOQUEEN = "NIDOQUEEN"
+        showEnum NIDORAN_MALE = "NIDORAN_MALE"
+        showEnum NIDORINO = "NIDORINO"
+        showEnum NIDOKING = "NIDOKING"
+        showEnum CLEFAIRY = "CLEFAIRY"
+        showEnum CLEFABLE = "CLEFABLE"
+        showEnum VULPIX = "VULPIX"
+        showEnum NINETALES = "NINETALES"
+        showEnum JIGGLYPUFF = "JIGGLYPUFF"
+        showEnum WIGGLYTUFF = "WIGGLYTUFF"
+        showEnum ZUBAT = "ZUBAT"
+        showEnum GOLBAT = "GOLBAT"
+        showEnum ODDISH = "ODDISH"
+        showEnum GLOOM = "GLOOM"
+        showEnum VILEPLUME = "VILEPLUME"
+        showEnum PARAS = "PARAS"
+        showEnum PARASECT = "PARASECT"
+        showEnum VENONAT = "VENONAT"
+        showEnum VENOMOTH = "VENOMOTH"
+        showEnum DIGLETT = "DIGLETT"
+        showEnum DUGTRIO = "DUGTRIO"
+        showEnum MEOWTH = "MEOWTH"
+        showEnum PERSIAN = "PERSIAN"
+        showEnum PSYDUCK = "PSYDUCK"
+        showEnum GOLDUCK = "GOLDUCK"
+        showEnum MANKEY = "MANKEY"
+        showEnum PRIMEAPE = "PRIMEAPE"
+        showEnum GROWLITHE = "GROWLITHE"
+        showEnum ARCANINE = "ARCANINE"
+        showEnum POLIWAG = "POLIWAG"
+        showEnum POLIWHIRL = "POLIWHIRL"
+        showEnum POLIWRATH = "POLIWRATH"
+        showEnum ABRA = "ABRA"
+        showEnum KADABRA = "KADABRA"
+        showEnum ALAKAZAM = "ALAKAZAM"
+        showEnum MACHOP = "MACHOP"
+        showEnum MACHOKE = "MACHOKE"
+        showEnum MACHAMP = "MACHAMP"
+        showEnum BELLSPROUT = "BELLSPROUT"
+        showEnum WEEPINBELL = "WEEPINBELL"
+        showEnum VICTREEBEL = "VICTREEBEL"
+        showEnum TENTACOOL = "TENTACOOL"
+        showEnum TENTACRUEL = "TENTACRUEL"
+        showEnum GEODUDE = "GEODUDE"
+        showEnum GRAVELER = "GRAVELER"
+        showEnum GOLEM = "GOLEM"
+        showEnum PONYTA = "PONYTA"
+        showEnum RAPIDASH = "RAPIDASH"
+        showEnum SLOWPOKE = "SLOWPOKE"
+        showEnum SLOWBRO = "SLOWBRO"
+        showEnum MAGNEMITE = "MAGNEMITE"
+        showEnum MAGNETON = "MAGNETON"
+        showEnum FARFETCHD = "FARFETCHD"
+        showEnum DODUO = "DODUO"
+        showEnum DODRIO = "DODRIO"
+        showEnum SEEL = "SEEL"
+        showEnum DEWGONG = "DEWGONG"
+        showEnum GRIMER = "GRIMER"
+        showEnum MUK = "MUK"
+        showEnum SHELLDER = "SHELLDER"
+        showEnum CLOYSTER = "CLOYSTER"
+        showEnum GASTLY = "GASTLY"
+        showEnum HAUNTER = "HAUNTER"
+        showEnum GENGAR = "GENGAR"
+        showEnum ONIX = "ONIX"
+        showEnum DROWZEE = "DROWZEE"
+        showEnum HYPNO = "HYPNO"
+        showEnum KRABBY = "KRABBY"
+        showEnum KINGLER = "KINGLER"
+        showEnum VOLTORB = "VOLTORB"
+        showEnum ELECTRODE = "ELECTRODE"
+        showEnum EXEGGCUTE = "EXEGGCUTE"
+        showEnum EXEGGUTOR = "EXEGGUTOR"
+        showEnum CUBONE = "CUBONE"
+        showEnum MAROWAK = "MAROWAK"
+        showEnum HITMONLEE = "HITMONLEE"
+        showEnum HITMONCHAN = "HITMONCHAN"
+        showEnum LICKITUNG = "LICKITUNG"
+        showEnum KOFFING = "KOFFING"
+        showEnum WEEZING = "WEEZING"
+        showEnum RHYHORN = "RHYHORN"
+        showEnum RHYDON = "RHYDON"
+        showEnum CHANSEY = "CHANSEY"
+        showEnum TANGELA = "TANGELA"
+        showEnum KANGASKHAN = "KANGASKHAN"
+        showEnum HORSEA = "HORSEA"
+        showEnum SEADRA = "SEADRA"
+        showEnum GOLDEEN = "GOLDEEN"
+        showEnum SEAKING = "SEAKING"
+        showEnum STARYU = "STARYU"
+        showEnum STARMIE = "STARMIE"
+        showEnum MR_MIME = "MR_MIME"
+        showEnum SCYTHER = "SCYTHER"
+        showEnum JYNX = "JYNX"
+        showEnum ELECTABUZZ = "ELECTABUZZ"
+        showEnum MAGMAR = "MAGMAR"
+        showEnum PINSIR = "PINSIR"
+        showEnum TAUROS = "TAUROS"
+        showEnum MAGIKARP = "MAGIKARP"
+        showEnum GYARADOS = "GYARADOS"
+        showEnum LAPRAS = "LAPRAS"
+        showEnum DITTO = "DITTO"
+        showEnum EEVEE = "EEVEE"
+        showEnum VAPOREON = "VAPOREON"
+        showEnum JOLTEON = "JOLTEON"
+        showEnum FLAREON = "FLAREON"
+        showEnum PORYGON = "PORYGON"
+        showEnum OMANYTE = "OMANYTE"
+        showEnum OMASTAR = "OMASTAR"
+        showEnum KABUTO = "KABUTO"
+        showEnum KABUTOPS = "KABUTOPS"
+        showEnum AERODACTYL = "AERODACTYL"
+        showEnum SNORLAX = "SNORLAX"
+        showEnum ARTICUNO = "ARTICUNO"
+        showEnum ZAPDOS = "ZAPDOS"
+        showEnum MOLTRES = "MOLTRES"
+        showEnum DRATINI = "DRATINI"
+        showEnum DRAGONAIR = "DRAGONAIR"
+        showEnum DRAGONITE = "DRAGONITE"
+        showEnum MEWTWO = "MEWTWO"
+        showEnum MEW = "MEW"
+        readEnum "MISSINGNO" = Prelude.Just MISSINGNO
+        readEnum "BULBASAUR" = Prelude.Just BULBASAUR
+        readEnum "IVYSAUR" = Prelude.Just IVYSAUR
+        readEnum "VENUSAUR" = Prelude.Just VENUSAUR
+        readEnum "CHARMANDER" = Prelude.Just CHARMANDER
+        readEnum "CHARMELEON" = Prelude.Just CHARMELEON
+        readEnum "CHARIZARD" = Prelude.Just CHARIZARD
+        readEnum "SQUIRTLE" = Prelude.Just SQUIRTLE
+        readEnum "WARTORTLE" = Prelude.Just WARTORTLE
+        readEnum "BLASTOISE" = Prelude.Just BLASTOISE
+        readEnum "CATERPIE" = Prelude.Just CATERPIE
+        readEnum "METAPOD" = Prelude.Just METAPOD
+        readEnum "BUTTERFREE" = Prelude.Just BUTTERFREE
+        readEnum "WEEDLE" = Prelude.Just WEEDLE
+        readEnum "KAKUNA" = Prelude.Just KAKUNA
+        readEnum "BEEDRILL" = Prelude.Just BEEDRILL
+        readEnum "PIDGEY" = Prelude.Just PIDGEY
+        readEnum "PIDGEOTTO" = Prelude.Just PIDGEOTTO
+        readEnum "PIDGEOT" = Prelude.Just PIDGEOT
+        readEnum "RATTATA" = Prelude.Just RATTATA
+        readEnum "RATICATE" = Prelude.Just RATICATE
+        readEnum "SPEAROW" = Prelude.Just SPEAROW
+        readEnum "FEAROW" = Prelude.Just FEAROW
+        readEnum "EKANS" = Prelude.Just EKANS
+        readEnum "ARBOK" = Prelude.Just ARBOK
+        readEnum "PIKACHU" = Prelude.Just PIKACHU
+        readEnum "RAICHU" = Prelude.Just RAICHU
+        readEnum "SANDSHREW" = Prelude.Just SANDSHREW
+        readEnum "SANDSLASH" = Prelude.Just SANDSLASH
+        readEnum "NIDORAN_FEMALE" = Prelude.Just NIDORAN_FEMALE
+        readEnum "NIDORINA" = Prelude.Just NIDORINA
+        readEnum "NIDOQUEEN" = Prelude.Just NIDOQUEEN
+        readEnum "NIDORAN_MALE" = Prelude.Just NIDORAN_MALE
+        readEnum "NIDORINO" = Prelude.Just NIDORINO
+        readEnum "NIDOKING" = Prelude.Just NIDOKING
+        readEnum "CLEFAIRY" = Prelude.Just CLEFAIRY
+        readEnum "CLEFABLE" = Prelude.Just CLEFABLE
+        readEnum "VULPIX" = Prelude.Just VULPIX
+        readEnum "NINETALES" = Prelude.Just NINETALES
+        readEnum "JIGGLYPUFF" = Prelude.Just JIGGLYPUFF
+        readEnum "WIGGLYTUFF" = Prelude.Just WIGGLYTUFF
+        readEnum "ZUBAT" = Prelude.Just ZUBAT
+        readEnum "GOLBAT" = Prelude.Just GOLBAT
+        readEnum "ODDISH" = Prelude.Just ODDISH
+        readEnum "GLOOM" = Prelude.Just GLOOM
+        readEnum "VILEPLUME" = Prelude.Just VILEPLUME
+        readEnum "PARAS" = Prelude.Just PARAS
+        readEnum "PARASECT" = Prelude.Just PARASECT
+        readEnum "VENONAT" = Prelude.Just VENONAT
+        readEnum "VENOMOTH" = Prelude.Just VENOMOTH
+        readEnum "DIGLETT" = Prelude.Just DIGLETT
+        readEnum "DUGTRIO" = Prelude.Just DUGTRIO
+        readEnum "MEOWTH" = Prelude.Just MEOWTH
+        readEnum "PERSIAN" = Prelude.Just PERSIAN
+        readEnum "PSYDUCK" = Prelude.Just PSYDUCK
+        readEnum "GOLDUCK" = Prelude.Just GOLDUCK
+        readEnum "MANKEY" = Prelude.Just MANKEY
+        readEnum "PRIMEAPE" = Prelude.Just PRIMEAPE
+        readEnum "GROWLITHE" = Prelude.Just GROWLITHE
+        readEnum "ARCANINE" = Prelude.Just ARCANINE
+        readEnum "POLIWAG" = Prelude.Just POLIWAG
+        readEnum "POLIWHIRL" = Prelude.Just POLIWHIRL
+        readEnum "POLIWRATH" = Prelude.Just POLIWRATH
+        readEnum "ABRA" = Prelude.Just ABRA
+        readEnum "KADABRA" = Prelude.Just KADABRA
+        readEnum "ALAKAZAM" = Prelude.Just ALAKAZAM
+        readEnum "MACHOP" = Prelude.Just MACHOP
+        readEnum "MACHOKE" = Prelude.Just MACHOKE
+        readEnum "MACHAMP" = Prelude.Just MACHAMP
+        readEnum "BELLSPROUT" = Prelude.Just BELLSPROUT
+        readEnum "WEEPINBELL" = Prelude.Just WEEPINBELL
+        readEnum "VICTREEBEL" = Prelude.Just VICTREEBEL
+        readEnum "TENTACOOL" = Prelude.Just TENTACOOL
+        readEnum "TENTACRUEL" = Prelude.Just TENTACRUEL
+        readEnum "GEODUDE" = Prelude.Just GEODUDE
+        readEnum "GRAVELER" = Prelude.Just GRAVELER
+        readEnum "GOLEM" = Prelude.Just GOLEM
+        readEnum "PONYTA" = Prelude.Just PONYTA
+        readEnum "RAPIDASH" = Prelude.Just RAPIDASH
+        readEnum "SLOWPOKE" = Prelude.Just SLOWPOKE
+        readEnum "SLOWBRO" = Prelude.Just SLOWBRO
+        readEnum "MAGNEMITE" = Prelude.Just MAGNEMITE
+        readEnum "MAGNETON" = Prelude.Just MAGNETON
+        readEnum "FARFETCHD" = Prelude.Just FARFETCHD
+        readEnum "DODUO" = Prelude.Just DODUO
+        readEnum "DODRIO" = Prelude.Just DODRIO
+        readEnum "SEEL" = Prelude.Just SEEL
+        readEnum "DEWGONG" = Prelude.Just DEWGONG
+        readEnum "GRIMER" = Prelude.Just GRIMER
+        readEnum "MUK" = Prelude.Just MUK
+        readEnum "SHELLDER" = Prelude.Just SHELLDER
+        readEnum "CLOYSTER" = Prelude.Just CLOYSTER
+        readEnum "GASTLY" = Prelude.Just GASTLY
+        readEnum "HAUNTER" = Prelude.Just HAUNTER
+        readEnum "GENGAR" = Prelude.Just GENGAR
+        readEnum "ONIX" = Prelude.Just ONIX
+        readEnum "DROWZEE" = Prelude.Just DROWZEE
+        readEnum "HYPNO" = Prelude.Just HYPNO
+        readEnum "KRABBY" = Prelude.Just KRABBY
+        readEnum "KINGLER" = Prelude.Just KINGLER
+        readEnum "VOLTORB" = Prelude.Just VOLTORB
+        readEnum "ELECTRODE" = Prelude.Just ELECTRODE
+        readEnum "EXEGGCUTE" = Prelude.Just EXEGGCUTE
+        readEnum "EXEGGUTOR" = Prelude.Just EXEGGUTOR
+        readEnum "CUBONE" = Prelude.Just CUBONE
+        readEnum "MAROWAK" = Prelude.Just MAROWAK
+        readEnum "HITMONLEE" = Prelude.Just HITMONLEE
+        readEnum "HITMONCHAN" = Prelude.Just HITMONCHAN
+        readEnum "LICKITUNG" = Prelude.Just LICKITUNG
+        readEnum "KOFFING" = Prelude.Just KOFFING
+        readEnum "WEEZING" = Prelude.Just WEEZING
+        readEnum "RHYHORN" = Prelude.Just RHYHORN
+        readEnum "RHYDON" = Prelude.Just RHYDON
+        readEnum "CHANSEY" = Prelude.Just CHANSEY
+        readEnum "TANGELA" = Prelude.Just TANGELA
+        readEnum "KANGASKHAN" = Prelude.Just KANGASKHAN
+        readEnum "HORSEA" = Prelude.Just HORSEA
+        readEnum "SEADRA" = Prelude.Just SEADRA
+        readEnum "GOLDEEN" = Prelude.Just GOLDEEN
+        readEnum "SEAKING" = Prelude.Just SEAKING
+        readEnum "STARYU" = Prelude.Just STARYU
+        readEnum "STARMIE" = Prelude.Just STARMIE
+        readEnum "MR_MIME" = Prelude.Just MR_MIME
+        readEnum "SCYTHER" = Prelude.Just SCYTHER
+        readEnum "JYNX" = Prelude.Just JYNX
+        readEnum "ELECTABUZZ" = Prelude.Just ELECTABUZZ
+        readEnum "MAGMAR" = Prelude.Just MAGMAR
+        readEnum "PINSIR" = Prelude.Just PINSIR
+        readEnum "TAUROS" = Prelude.Just TAUROS
+        readEnum "MAGIKARP" = Prelude.Just MAGIKARP
+        readEnum "GYARADOS" = Prelude.Just GYARADOS
+        readEnum "LAPRAS" = Prelude.Just LAPRAS
+        readEnum "DITTO" = Prelude.Just DITTO
+        readEnum "EEVEE" = Prelude.Just EEVEE
+        readEnum "VAPOREON" = Prelude.Just VAPOREON
+        readEnum "JOLTEON" = Prelude.Just JOLTEON
+        readEnum "FLAREON" = Prelude.Just FLAREON
+        readEnum "PORYGON" = Prelude.Just PORYGON
+        readEnum "OMANYTE" = Prelude.Just OMANYTE
+        readEnum "OMASTAR" = Prelude.Just OMASTAR
+        readEnum "KABUTO" = Prelude.Just KABUTO
+        readEnum "KABUTOPS" = Prelude.Just KABUTOPS
+        readEnum "AERODACTYL" = Prelude.Just AERODACTYL
+        readEnum "SNORLAX" = Prelude.Just SNORLAX
+        readEnum "ARTICUNO" = Prelude.Just ARTICUNO
+        readEnum "ZAPDOS" = Prelude.Just ZAPDOS
+        readEnum "MOLTRES" = Prelude.Just MOLTRES
+        readEnum "DRATINI" = Prelude.Just DRATINI
+        readEnum "DRAGONAIR" = Prelude.Just DRAGONAIR
+        readEnum "DRAGONITE" = Prelude.Just DRAGONITE
+        readEnum "MEWTWO" = Prelude.Just MEWTWO
+        readEnum "MEW" = Prelude.Just MEW
+        readEnum _ = Prelude.Nothing
+
+instance Prelude.Enum PokemonId where
+        toEnum k__
+          = Prelude.maybe
+              (Prelude.error
+                 ((Prelude.++) "toEnum: unknown value for enum PokemonId: "
+                    (Prelude.show k__)))
+              Prelude.id
+              (Data.ProtoLens.maybeToEnum k__)
+        fromEnum MISSINGNO = 0
+        fromEnum BULBASAUR = 1
+        fromEnum IVYSAUR = 2
+        fromEnum VENUSAUR = 3
+        fromEnum CHARMANDER = 4
+        fromEnum CHARMELEON = 5
+        fromEnum CHARIZARD = 6
+        fromEnum SQUIRTLE = 7
+        fromEnum WARTORTLE = 8
+        fromEnum BLASTOISE = 9
+        fromEnum CATERPIE = 10
+        fromEnum METAPOD = 11
+        fromEnum BUTTERFREE = 12
+        fromEnum WEEDLE = 13
+        fromEnum KAKUNA = 14
+        fromEnum BEEDRILL = 15
+        fromEnum PIDGEY = 16
+        fromEnum PIDGEOTTO = 17
+        fromEnum PIDGEOT = 18
+        fromEnum RATTATA = 19
+        fromEnum RATICATE = 20
+        fromEnum SPEAROW = 21
+        fromEnum FEAROW = 22
+        fromEnum EKANS = 23
+        fromEnum ARBOK = 24
+        fromEnum PIKACHU = 25
+        fromEnum RAICHU = 26
+        fromEnum SANDSHREW = 27
+        fromEnum SANDSLASH = 28
+        fromEnum NIDORAN_FEMALE = 29
+        fromEnum NIDORINA = 30
+        fromEnum NIDOQUEEN = 31
+        fromEnum NIDORAN_MALE = 32
+        fromEnum NIDORINO = 33
+        fromEnum NIDOKING = 34
+        fromEnum CLEFAIRY = 35
+        fromEnum CLEFABLE = 36
+        fromEnum VULPIX = 37
+        fromEnum NINETALES = 38
+        fromEnum JIGGLYPUFF = 39
+        fromEnum WIGGLYTUFF = 40
+        fromEnum ZUBAT = 41
+        fromEnum GOLBAT = 42
+        fromEnum ODDISH = 43
+        fromEnum GLOOM = 44
+        fromEnum VILEPLUME = 45
+        fromEnum PARAS = 46
+        fromEnum PARASECT = 47
+        fromEnum VENONAT = 48
+        fromEnum VENOMOTH = 49
+        fromEnum DIGLETT = 50
+        fromEnum DUGTRIO = 51
+        fromEnum MEOWTH = 52
+        fromEnum PERSIAN = 53
+        fromEnum PSYDUCK = 54
+        fromEnum GOLDUCK = 55
+        fromEnum MANKEY = 56
+        fromEnum PRIMEAPE = 57
+        fromEnum GROWLITHE = 58
+        fromEnum ARCANINE = 59
+        fromEnum POLIWAG = 60
+        fromEnum POLIWHIRL = 61
+        fromEnum POLIWRATH = 62
+        fromEnum ABRA = 63
+        fromEnum KADABRA = 64
+        fromEnum ALAKAZAM = 65
+        fromEnum MACHOP = 66
+        fromEnum MACHOKE = 67
+        fromEnum MACHAMP = 68
+        fromEnum BELLSPROUT = 69
+        fromEnum WEEPINBELL = 70
+        fromEnum VICTREEBEL = 71
+        fromEnum TENTACOOL = 72
+        fromEnum TENTACRUEL = 73
+        fromEnum GEODUDE = 74
+        fromEnum GRAVELER = 75
+        fromEnum GOLEM = 76
+        fromEnum PONYTA = 77
+        fromEnum RAPIDASH = 78
+        fromEnum SLOWPOKE = 79
+        fromEnum SLOWBRO = 80
+        fromEnum MAGNEMITE = 81
+        fromEnum MAGNETON = 82
+        fromEnum FARFETCHD = 83
+        fromEnum DODUO = 84
+        fromEnum DODRIO = 85
+        fromEnum SEEL = 86
+        fromEnum DEWGONG = 87
+        fromEnum GRIMER = 88
+        fromEnum MUK = 89
+        fromEnum SHELLDER = 90
+        fromEnum CLOYSTER = 91
+        fromEnum GASTLY = 92
+        fromEnum HAUNTER = 93
+        fromEnum GENGAR = 94
+        fromEnum ONIX = 95
+        fromEnum DROWZEE = 96
+        fromEnum HYPNO = 97
+        fromEnum KRABBY = 98
+        fromEnum KINGLER = 99
+        fromEnum VOLTORB = 100
+        fromEnum ELECTRODE = 101
+        fromEnum EXEGGCUTE = 102
+        fromEnum EXEGGUTOR = 103
+        fromEnum CUBONE = 104
+        fromEnum MAROWAK = 105
+        fromEnum HITMONLEE = 106
+        fromEnum HITMONCHAN = 107
+        fromEnum LICKITUNG = 108
+        fromEnum KOFFING = 109
+        fromEnum WEEZING = 110
+        fromEnum RHYHORN = 111
+        fromEnum RHYDON = 112
+        fromEnum CHANSEY = 113
+        fromEnum TANGELA = 114
+        fromEnum KANGASKHAN = 115
+        fromEnum HORSEA = 116
+        fromEnum SEADRA = 117
+        fromEnum GOLDEEN = 118
+        fromEnum SEAKING = 119
+        fromEnum STARYU = 120
+        fromEnum STARMIE = 121
+        fromEnum MR_MIME = 122
+        fromEnum SCYTHER = 123
+        fromEnum JYNX = 124
+        fromEnum ELECTABUZZ = 125
+        fromEnum MAGMAR = 126
+        fromEnum PINSIR = 127
+        fromEnum TAUROS = 128
+        fromEnum MAGIKARP = 129
+        fromEnum GYARADOS = 130
+        fromEnum LAPRAS = 131
+        fromEnum DITTO = 132
+        fromEnum EEVEE = 133
+        fromEnum VAPOREON = 134
+        fromEnum JOLTEON = 135
+        fromEnum FLAREON = 136
+        fromEnum PORYGON = 137
+        fromEnum OMANYTE = 138
+        fromEnum OMASTAR = 139
+        fromEnum KABUTO = 140
+        fromEnum KABUTOPS = 141
+        fromEnum AERODACTYL = 142
+        fromEnum SNORLAX = 143
+        fromEnum ARTICUNO = 144
+        fromEnum ZAPDOS = 145
+        fromEnum MOLTRES = 146
+        fromEnum DRATINI = 147
+        fromEnum DRAGONAIR = 148
+        fromEnum DRAGONITE = 149
+        fromEnum MEWTWO = 150
+        fromEnum MEW = 151
+        succ MEW
+          = Prelude.error
+              "Ident \"PokemonId\".Ident \"succ\": bad argument Ident \"MEW\". This value would be out of bounds."
+        succ MISSINGNO = BULBASAUR
+        succ BULBASAUR = IVYSAUR
+        succ IVYSAUR = VENUSAUR
+        succ VENUSAUR = CHARMANDER
+        succ CHARMANDER = CHARMELEON
+        succ CHARMELEON = CHARIZARD
+        succ CHARIZARD = SQUIRTLE
+        succ SQUIRTLE = WARTORTLE
+        succ WARTORTLE = BLASTOISE
+        succ BLASTOISE = CATERPIE
+        succ CATERPIE = METAPOD
+        succ METAPOD = BUTTERFREE
+        succ BUTTERFREE = WEEDLE
+        succ WEEDLE = KAKUNA
+        succ KAKUNA = BEEDRILL
+        succ BEEDRILL = PIDGEY
+        succ PIDGEY = PIDGEOTTO
+        succ PIDGEOTTO = PIDGEOT
+        succ PIDGEOT = RATTATA
+        succ RATTATA = RATICATE
+        succ RATICATE = SPEAROW
+        succ SPEAROW = FEAROW
+        succ FEAROW = EKANS
+        succ EKANS = ARBOK
+        succ ARBOK = PIKACHU
+        succ PIKACHU = RAICHU
+        succ RAICHU = SANDSHREW
+        succ SANDSHREW = SANDSLASH
+        succ SANDSLASH = NIDORAN_FEMALE
+        succ NIDORAN_FEMALE = NIDORINA
+        succ NIDORINA = NIDOQUEEN
+        succ NIDOQUEEN = NIDORAN_MALE
+        succ NIDORAN_MALE = NIDORINO
+        succ NIDORINO = NIDOKING
+        succ NIDOKING = CLEFAIRY
+        succ CLEFAIRY = CLEFABLE
+        succ CLEFABLE = VULPIX
+        succ VULPIX = NINETALES
+        succ NINETALES = JIGGLYPUFF
+        succ JIGGLYPUFF = WIGGLYTUFF
+        succ WIGGLYTUFF = ZUBAT
+        succ ZUBAT = GOLBAT
+        succ GOLBAT = ODDISH
+        succ ODDISH = GLOOM
+        succ GLOOM = VILEPLUME
+        succ VILEPLUME = PARAS
+        succ PARAS = PARASECT
+        succ PARASECT = VENONAT
+        succ VENONAT = VENOMOTH
+        succ VENOMOTH = DIGLETT
+        succ DIGLETT = DUGTRIO
+        succ DUGTRIO = MEOWTH
+        succ MEOWTH = PERSIAN
+        succ PERSIAN = PSYDUCK
+        succ PSYDUCK = GOLDUCK
+        succ GOLDUCK = MANKEY
+        succ MANKEY = PRIMEAPE
+        succ PRIMEAPE = GROWLITHE
+        succ GROWLITHE = ARCANINE
+        succ ARCANINE = POLIWAG
+        succ POLIWAG = POLIWHIRL
+        succ POLIWHIRL = POLIWRATH
+        succ POLIWRATH = ABRA
+        succ ABRA = KADABRA
+        succ KADABRA = ALAKAZAM
+        succ ALAKAZAM = MACHOP
+        succ MACHOP = MACHOKE
+        succ MACHOKE = MACHAMP
+        succ MACHAMP = BELLSPROUT
+        succ BELLSPROUT = WEEPINBELL
+        succ WEEPINBELL = VICTREEBEL
+        succ VICTREEBEL = TENTACOOL
+        succ TENTACOOL = TENTACRUEL
+        succ TENTACRUEL = GEODUDE
+        succ GEODUDE = GRAVELER
+        succ GRAVELER = GOLEM
+        succ GOLEM = PONYTA
+        succ PONYTA = RAPIDASH
+        succ RAPIDASH = SLOWPOKE
+        succ SLOWPOKE = SLOWBRO
+        succ SLOWBRO = MAGNEMITE
+        succ MAGNEMITE = MAGNETON
+        succ MAGNETON = FARFETCHD
+        succ FARFETCHD = DODUO
+        succ DODUO = DODRIO
+        succ DODRIO = SEEL
+        succ SEEL = DEWGONG
+        succ DEWGONG = GRIMER
+        succ GRIMER = MUK
+        succ MUK = SHELLDER
+        succ SHELLDER = CLOYSTER
+        succ CLOYSTER = GASTLY
+        succ GASTLY = HAUNTER
+        succ HAUNTER = GENGAR
+        succ GENGAR = ONIX
+        succ ONIX = DROWZEE
+        succ DROWZEE = HYPNO
+        succ HYPNO = KRABBY
+        succ KRABBY = KINGLER
+        succ KINGLER = VOLTORB
+        succ VOLTORB = ELECTRODE
+        succ ELECTRODE = EXEGGCUTE
+        succ EXEGGCUTE = EXEGGUTOR
+        succ EXEGGUTOR = CUBONE
+        succ CUBONE = MAROWAK
+        succ MAROWAK = HITMONLEE
+        succ HITMONLEE = HITMONCHAN
+        succ HITMONCHAN = LICKITUNG
+        succ LICKITUNG = KOFFING
+        succ KOFFING = WEEZING
+        succ WEEZING = RHYHORN
+        succ RHYHORN = RHYDON
+        succ RHYDON = CHANSEY
+        succ CHANSEY = TANGELA
+        succ TANGELA = KANGASKHAN
+        succ KANGASKHAN = HORSEA
+        succ HORSEA = SEADRA
+        succ SEADRA = GOLDEEN
+        succ GOLDEEN = SEAKING
+        succ SEAKING = STARYU
+        succ STARYU = STARMIE
+        succ STARMIE = MR_MIME
+        succ MR_MIME = SCYTHER
+        succ SCYTHER = JYNX
+        succ JYNX = ELECTABUZZ
+        succ ELECTABUZZ = MAGMAR
+        succ MAGMAR = PINSIR
+        succ PINSIR = TAUROS
+        succ TAUROS = MAGIKARP
+        succ MAGIKARP = GYARADOS
+        succ GYARADOS = LAPRAS
+        succ LAPRAS = DITTO
+        succ DITTO = EEVEE
+        succ EEVEE = VAPOREON
+        succ VAPOREON = JOLTEON
+        succ JOLTEON = FLAREON
+        succ FLAREON = PORYGON
+        succ PORYGON = OMANYTE
+        succ OMANYTE = OMASTAR
+        succ OMASTAR = KABUTO
+        succ KABUTO = KABUTOPS
+        succ KABUTOPS = AERODACTYL
+        succ AERODACTYL = SNORLAX
+        succ SNORLAX = ARTICUNO
+        succ ARTICUNO = ZAPDOS
+        succ ZAPDOS = MOLTRES
+        succ MOLTRES = DRATINI
+        succ DRATINI = DRAGONAIR
+        succ DRAGONAIR = DRAGONITE
+        succ DRAGONITE = MEWTWO
+        succ MEWTWO = MEW
+        pred MISSINGNO
+          = Prelude.error
+              "Ident \"PokemonId\".Ident \"pred\": bad argument Ident \"MISSINGNO\". This value would be out of bounds."
+        pred BULBASAUR = MISSINGNO
+        pred IVYSAUR = BULBASAUR
+        pred VENUSAUR = IVYSAUR
+        pred CHARMANDER = VENUSAUR
+        pred CHARMELEON = CHARMANDER
+        pred CHARIZARD = CHARMELEON
+        pred SQUIRTLE = CHARIZARD
+        pred WARTORTLE = SQUIRTLE
+        pred BLASTOISE = WARTORTLE
+        pred CATERPIE = BLASTOISE
+        pred METAPOD = CATERPIE
+        pred BUTTERFREE = METAPOD
+        pred WEEDLE = BUTTERFREE
+        pred KAKUNA = WEEDLE
+        pred BEEDRILL = KAKUNA
+        pred PIDGEY = BEEDRILL
+        pred PIDGEOTTO = PIDGEY
+        pred PIDGEOT = PIDGEOTTO
+        pred RATTATA = PIDGEOT
+        pred RATICATE = RATTATA
+        pred SPEAROW = RATICATE
+        pred FEAROW = SPEAROW
+        pred EKANS = FEAROW
+        pred ARBOK = EKANS
+        pred PIKACHU = ARBOK
+        pred RAICHU = PIKACHU
+        pred SANDSHREW = RAICHU
+        pred SANDSLASH = SANDSHREW
+        pred NIDORAN_FEMALE = SANDSLASH
+        pred NIDORINA = NIDORAN_FEMALE
+        pred NIDOQUEEN = NIDORINA
+        pred NIDORAN_MALE = NIDOQUEEN
+        pred NIDORINO = NIDORAN_MALE
+        pred NIDOKING = NIDORINO
+        pred CLEFAIRY = NIDOKING
+        pred CLEFABLE = CLEFAIRY
+        pred VULPIX = CLEFABLE
+        pred NINETALES = VULPIX
+        pred JIGGLYPUFF = NINETALES
+        pred WIGGLYTUFF = JIGGLYPUFF
+        pred ZUBAT = WIGGLYTUFF
+        pred GOLBAT = ZUBAT
+        pred ODDISH = GOLBAT
+        pred GLOOM = ODDISH
+        pred VILEPLUME = GLOOM
+        pred PARAS = VILEPLUME
+        pred PARASECT = PARAS
+        pred VENONAT = PARASECT
+        pred VENOMOTH = VENONAT
+        pred DIGLETT = VENOMOTH
+        pred DUGTRIO = DIGLETT
+        pred MEOWTH = DUGTRIO
+        pred PERSIAN = MEOWTH
+        pred PSYDUCK = PERSIAN
+        pred GOLDUCK = PSYDUCK
+        pred MANKEY = GOLDUCK
+        pred PRIMEAPE = MANKEY
+        pred GROWLITHE = PRIMEAPE
+        pred ARCANINE = GROWLITHE
+        pred POLIWAG = ARCANINE
+        pred POLIWHIRL = POLIWAG
+        pred POLIWRATH = POLIWHIRL
+        pred ABRA = POLIWRATH
+        pred KADABRA = ABRA
+        pred ALAKAZAM = KADABRA
+        pred MACHOP = ALAKAZAM
+        pred MACHOKE = MACHOP
+        pred MACHAMP = MACHOKE
+        pred BELLSPROUT = MACHAMP
+        pred WEEPINBELL = BELLSPROUT
+        pred VICTREEBEL = WEEPINBELL
+        pred TENTACOOL = VICTREEBEL
+        pred TENTACRUEL = TENTACOOL
+        pred GEODUDE = TENTACRUEL
+        pred GRAVELER = GEODUDE
+        pred GOLEM = GRAVELER
+        pred PONYTA = GOLEM
+        pred RAPIDASH = PONYTA
+        pred SLOWPOKE = RAPIDASH
+        pred SLOWBRO = SLOWPOKE
+        pred MAGNEMITE = SLOWBRO
+        pred MAGNETON = MAGNEMITE
+        pred FARFETCHD = MAGNETON
+        pred DODUO = FARFETCHD
+        pred DODRIO = DODUO
+        pred SEEL = DODRIO
+        pred DEWGONG = SEEL
+        pred GRIMER = DEWGONG
+        pred MUK = GRIMER
+        pred SHELLDER = MUK
+        pred CLOYSTER = SHELLDER
+        pred GASTLY = CLOYSTER
+        pred HAUNTER = GASTLY
+        pred GENGAR = HAUNTER
+        pred ONIX = GENGAR
+        pred DROWZEE = ONIX
+        pred HYPNO = DROWZEE
+        pred KRABBY = HYPNO
+        pred KINGLER = KRABBY
+        pred VOLTORB = KINGLER
+        pred ELECTRODE = VOLTORB
+        pred EXEGGCUTE = ELECTRODE
+        pred EXEGGUTOR = EXEGGCUTE
+        pred CUBONE = EXEGGUTOR
+        pred MAROWAK = CUBONE
+        pred HITMONLEE = MAROWAK
+        pred HITMONCHAN = HITMONLEE
+        pred LICKITUNG = HITMONCHAN
+        pred KOFFING = LICKITUNG
+        pred WEEZING = KOFFING
+        pred RHYHORN = WEEZING
+        pred RHYDON = RHYHORN
+        pred CHANSEY = RHYDON
+        pred TANGELA = CHANSEY
+        pred KANGASKHAN = TANGELA
+        pred HORSEA = KANGASKHAN
+        pred SEADRA = HORSEA
+        pred GOLDEEN = SEADRA
+        pred SEAKING = GOLDEEN
+        pred STARYU = SEAKING
+        pred STARMIE = STARYU
+        pred MR_MIME = STARMIE
+        pred SCYTHER = MR_MIME
+        pred JYNX = SCYTHER
+        pred ELECTABUZZ = JYNX
+        pred MAGMAR = ELECTABUZZ
+        pred PINSIR = MAGMAR
+        pred TAUROS = PINSIR
+        pred MAGIKARP = TAUROS
+        pred GYARADOS = MAGIKARP
+        pred LAPRAS = GYARADOS
+        pred DITTO = LAPRAS
+        pred EEVEE = DITTO
+        pred VAPOREON = EEVEE
+        pred JOLTEON = VAPOREON
+        pred FLAREON = JOLTEON
+        pred PORYGON = FLAREON
+        pred OMANYTE = PORYGON
+        pred OMASTAR = OMANYTE
+        pred KABUTO = OMASTAR
+        pred KABUTOPS = KABUTO
+        pred AERODACTYL = KABUTOPS
+        pred SNORLAX = AERODACTYL
+        pred ARTICUNO = SNORLAX
+        pred ZAPDOS = ARTICUNO
+        pred MOLTRES = ZAPDOS
+        pred DRATINI = MOLTRES
+        pred DRAGONAIR = DRATINI
+        pred DRAGONITE = DRAGONAIR
+        pred MEWTWO = DRAGONITE
+        pred MEW = MEWTWO
+        enumFrom = Data.ProtoLens.Message.Enum.messageEnumFrom
+        enumFromTo = Data.ProtoLens.Message.Enum.messageEnumFromTo
+        enumFromThen = Data.ProtoLens.Message.Enum.messageEnumFromThen
+        enumFromThenTo = Data.ProtoLens.Message.Enum.messageEnumFromThenTo
+
+instance Prelude.Bounded PokemonId where
+        minBound = MISSINGNO
+        maxBound = MEW
diff --git a/src/Proto/POGOProtos/Enums/PokemonMove.hs b/src/Proto/POGOProtos/Enums/PokemonMove.hs
new file mode 100644
--- /dev/null
+++ b/src/Proto/POGOProtos/Enums/PokemonMove.hs
@@ -0,0 +1,1310 @@
+{- This file was auto-generated from POGOProtos/Enums/PokemonMove.proto by the proto-lens-protoc program. -}
+{-# LANGUAGE ScopedTypeVariables, DataKinds, TypeFamilies,
+  MultiParamTypeClasses, FlexibleContexts, FlexibleInstances #-}
+{-# OPTIONS_GHC -fno-warn-unused-imports#-}
+module Proto.POGOProtos.Enums.PokemonMove where
+import qualified Prelude
+import qualified Data.ProtoLens
+import qualified Data.ProtoLens.Message.Enum
+import qualified Lens.Family2
+import qualified Lens.Family2.Unchecked
+import qualified Data.Default.Class
+import qualified Data.Text
+import qualified Data.Int
+import qualified Data.Word
+import qualified Data.Map
+import qualified Data.ByteString
+
+data PokemonMove = MOVE_UNSET
+                 | THUNDER_SHOCK
+                 | QUICK_ATTACK
+                 | SCRATCH
+                 | EMBER
+                 | VINE_WHIP
+                 | TACKLE
+                 | RAZOR_LEAF
+                 | TAKE_DOWN
+                 | WATER_GUN
+                 | BITE
+                 | POUND
+                 | DOUBLE_SLAP
+                 | WRAP
+                 | HYPER_BEAM
+                 | LICK
+                 | DARK_PULSE
+                 | SMOG
+                 | SLUDGE
+                 | METAL_CLAW
+                 | VICE_GRIP
+                 | FLAME_WHEEL
+                 | MEGAHORN
+                 | WING_ATTACK
+                 | FLAMETHROWER
+                 | SUCKER_PUNCH
+                 | DIG
+                 | LOW_KICK
+                 | CROSS_CHOP
+                 | PSYCHO_CUT
+                 | PSYBEAM
+                 | EARTHQUAKE
+                 | STONE_EDGE
+                 | ICE_PUNCH
+                 | HEART_STAMP
+                 | DISCHARGE
+                 | FLASH_CANNON
+                 | PECK
+                 | DRILL_PECK
+                 | ICE_BEAM
+                 | BLIZZARD
+                 | AIR_SLASH
+                 | HEAT_WAVE
+                 | TWINEEDLE
+                 | POISON_JAB
+                 | AERIAL_ACE
+                 | DRILL_RUN
+                 | PETAL_BLIZZARD
+                 | MEGA_DRAIN
+                 | BUG_BUZZ
+                 | POISON_FANG
+                 | NIGHT_SLASH
+                 | SLASH
+                 | BUBBLE_BEAM
+                 | SUBMISSION
+                 | KARATE_CHOP
+                 | LOW_SWEEP
+                 | AQUA_JET
+                 | AQUA_TAIL
+                 | SEED_BOMB
+                 | PSYSHOCK
+                 | ROCK_THROW
+                 | ANCIENT_POWER
+                 | ROCK_TOMB
+                 | ROCK_SLIDE
+                 | POWER_GEM
+                 | SHADOW_SNEAK
+                 | SHADOW_PUNCH
+                 | SHADOW_CLAW
+                 | OMINOUS_WIND
+                 | SHADOW_BALL
+                 | BULLET_PUNCH
+                 | MAGNET_BOMB
+                 | STEEL_WING
+                 | IRON_HEAD
+                 | PARABOLIC_CHARGE
+                 | SPARK
+                 | THUNDER_PUNCH
+                 | THUNDER
+                 | THUNDERBOLT
+                 | TWISTER
+                 | DRAGON_BREATH
+                 | DRAGON_PULSE
+                 | DRAGON_CLAW
+                 | DISARMING_VOICE
+                 | DRAINING_KISS
+                 | DAZZLING_GLEAM
+                 | MOONBLAST
+                 | PLAY_ROUGH
+                 | CROSS_POISON
+                 | SLUDGE_BOMB
+                 | SLUDGE_WAVE
+                 | GUNK_SHOT
+                 | MUD_SHOT
+                 | BONE_CLUB
+                 | BULLDOZE
+                 | MUD_BOMB
+                 | FURY_CUTTER
+                 | BUG_BITE
+                 | SIGNAL_BEAM
+                 | X_SCISSOR
+                 | FLAME_CHARGE
+                 | FLAME_BURST
+                 | FIRE_BLAST
+                 | BRINE
+                 | WATER_PULSE
+                 | SCALD
+                 | HYDRO_PUMP
+                 | PSYCHIC
+                 | PSYSTRIKE
+                 | ICE_SHARD
+                 | ICY_WIND
+                 | FROST_BREATH
+                 | ABSORB
+                 | GIGA_DRAIN
+                 | FIRE_PUNCH
+                 | SOLAR_BEAM
+                 | LEAF_BLADE
+                 | POWER_WHIP
+                 | SPLASH
+                 | ACID
+                 | AIR_CUTTER
+                 | HURRICANE
+                 | BRICK_BREAK
+                 | CUT
+                 | SWIFT
+                 | HORN_ATTACK
+                 | STOMP
+                 | HEADBUTT
+                 | HYPER_FANG
+                 | SLAM
+                 | BODY_SLAM
+                 | REST
+                 | STRUGGLE
+                 | SCALD_BLASTOISE
+                 | HYDRO_PUMP_BLASTOISE
+                 | WRAP_GREEN
+                 | WRAP_PINK
+                 | FURY_CUTTER_FAST
+                 | BUG_BITE_FAST
+                 | BITE_FAST
+                 | SUCKER_PUNCH_FAST
+                 | DRAGON_BREATH_FAST
+                 | THUNDER_SHOCK_FAST
+                 | SPARK_FAST
+                 | LOW_KICK_FAST
+                 | KARATE_CHOP_FAST
+                 | EMBER_FAST
+                 | WING_ATTACK_FAST
+                 | PECK_FAST
+                 | LICK_FAST
+                 | SHADOW_CLAW_FAST
+                 | VINE_WHIP_FAST
+                 | RAZOR_LEAF_FAST
+                 | MUD_SHOT_FAST
+                 | ICE_SHARD_FAST
+                 | FROST_BREATH_FAST
+                 | QUICK_ATTACK_FAST
+                 | SCRATCH_FAST
+                 | TACKLE_FAST
+                 | POUND_FAST
+                 | CUT_FAST
+                 | POISON_JAB_FAST
+                 | ACID_FAST
+                 | PSYCHO_CUT_FAST
+                 | ROCK_THROW_FAST
+                 | METAL_CLAW_FAST
+                 | BULLET_PUNCH_FAST
+                 | WATER_GUN_FAST
+                 | SPLASH_FAST
+                 | WATER_GUN_FAST_BLASTOISE
+                 | MUD_SLAP_FAST
+                 | ZEN_HEADBUTT_FAST
+                 | CONFUSION_FAST
+                 | POISON_STING_FAST
+                 | BUBBLE_FAST
+                 | FEINT_ATTACK_FAST
+                 | STEEL_WING_FAST
+                 | FIRE_FANG_FAST
+                 | ROCK_SMASH_FAST
+                 deriving (Prelude.Show, Prelude.Eq)
+
+instance Data.Default.Class.Default PokemonMove where
+        def = MOVE_UNSET
+
+instance Data.ProtoLens.FieldDefault PokemonMove where
+        fieldDefault = MOVE_UNSET
+
+instance Data.ProtoLens.MessageEnum PokemonMove where
+        maybeToEnum 0 = Prelude.Just MOVE_UNSET
+        maybeToEnum 1 = Prelude.Just THUNDER_SHOCK
+        maybeToEnum 2 = Prelude.Just QUICK_ATTACK
+        maybeToEnum 3 = Prelude.Just SCRATCH
+        maybeToEnum 4 = Prelude.Just EMBER
+        maybeToEnum 5 = Prelude.Just VINE_WHIP
+        maybeToEnum 6 = Prelude.Just TACKLE
+        maybeToEnum 7 = Prelude.Just RAZOR_LEAF
+        maybeToEnum 8 = Prelude.Just TAKE_DOWN
+        maybeToEnum 9 = Prelude.Just WATER_GUN
+        maybeToEnum 10 = Prelude.Just BITE
+        maybeToEnum 11 = Prelude.Just POUND
+        maybeToEnum 12 = Prelude.Just DOUBLE_SLAP
+        maybeToEnum 13 = Prelude.Just WRAP
+        maybeToEnum 14 = Prelude.Just HYPER_BEAM
+        maybeToEnum 15 = Prelude.Just LICK
+        maybeToEnum 16 = Prelude.Just DARK_PULSE
+        maybeToEnum 17 = Prelude.Just SMOG
+        maybeToEnum 18 = Prelude.Just SLUDGE
+        maybeToEnum 19 = Prelude.Just METAL_CLAW
+        maybeToEnum 20 = Prelude.Just VICE_GRIP
+        maybeToEnum 21 = Prelude.Just FLAME_WHEEL
+        maybeToEnum 22 = Prelude.Just MEGAHORN
+        maybeToEnum 23 = Prelude.Just WING_ATTACK
+        maybeToEnum 24 = Prelude.Just FLAMETHROWER
+        maybeToEnum 25 = Prelude.Just SUCKER_PUNCH
+        maybeToEnum 26 = Prelude.Just DIG
+        maybeToEnum 27 = Prelude.Just LOW_KICK
+        maybeToEnum 28 = Prelude.Just CROSS_CHOP
+        maybeToEnum 29 = Prelude.Just PSYCHO_CUT
+        maybeToEnum 30 = Prelude.Just PSYBEAM
+        maybeToEnum 31 = Prelude.Just EARTHQUAKE
+        maybeToEnum 32 = Prelude.Just STONE_EDGE
+        maybeToEnum 33 = Prelude.Just ICE_PUNCH
+        maybeToEnum 34 = Prelude.Just HEART_STAMP
+        maybeToEnum 35 = Prelude.Just DISCHARGE
+        maybeToEnum 36 = Prelude.Just FLASH_CANNON
+        maybeToEnum 37 = Prelude.Just PECK
+        maybeToEnum 38 = Prelude.Just DRILL_PECK
+        maybeToEnum 39 = Prelude.Just ICE_BEAM
+        maybeToEnum 40 = Prelude.Just BLIZZARD
+        maybeToEnum 41 = Prelude.Just AIR_SLASH
+        maybeToEnum 42 = Prelude.Just HEAT_WAVE
+        maybeToEnum 43 = Prelude.Just TWINEEDLE
+        maybeToEnum 44 = Prelude.Just POISON_JAB
+        maybeToEnum 45 = Prelude.Just AERIAL_ACE
+        maybeToEnum 46 = Prelude.Just DRILL_RUN
+        maybeToEnum 47 = Prelude.Just PETAL_BLIZZARD
+        maybeToEnum 48 = Prelude.Just MEGA_DRAIN
+        maybeToEnum 49 = Prelude.Just BUG_BUZZ
+        maybeToEnum 50 = Prelude.Just POISON_FANG
+        maybeToEnum 51 = Prelude.Just NIGHT_SLASH
+        maybeToEnum 52 = Prelude.Just SLASH
+        maybeToEnum 53 = Prelude.Just BUBBLE_BEAM
+        maybeToEnum 54 = Prelude.Just SUBMISSION
+        maybeToEnum 55 = Prelude.Just KARATE_CHOP
+        maybeToEnum 56 = Prelude.Just LOW_SWEEP
+        maybeToEnum 57 = Prelude.Just AQUA_JET
+        maybeToEnum 58 = Prelude.Just AQUA_TAIL
+        maybeToEnum 59 = Prelude.Just SEED_BOMB
+        maybeToEnum 60 = Prelude.Just PSYSHOCK
+        maybeToEnum 61 = Prelude.Just ROCK_THROW
+        maybeToEnum 62 = Prelude.Just ANCIENT_POWER
+        maybeToEnum 63 = Prelude.Just ROCK_TOMB
+        maybeToEnum 64 = Prelude.Just ROCK_SLIDE
+        maybeToEnum 65 = Prelude.Just POWER_GEM
+        maybeToEnum 66 = Prelude.Just SHADOW_SNEAK
+        maybeToEnum 67 = Prelude.Just SHADOW_PUNCH
+        maybeToEnum 68 = Prelude.Just SHADOW_CLAW
+        maybeToEnum 69 = Prelude.Just OMINOUS_WIND
+        maybeToEnum 70 = Prelude.Just SHADOW_BALL
+        maybeToEnum 71 = Prelude.Just BULLET_PUNCH
+        maybeToEnum 72 = Prelude.Just MAGNET_BOMB
+        maybeToEnum 73 = Prelude.Just STEEL_WING
+        maybeToEnum 74 = Prelude.Just IRON_HEAD
+        maybeToEnum 75 = Prelude.Just PARABOLIC_CHARGE
+        maybeToEnum 76 = Prelude.Just SPARK
+        maybeToEnum 77 = Prelude.Just THUNDER_PUNCH
+        maybeToEnum 78 = Prelude.Just THUNDER
+        maybeToEnum 79 = Prelude.Just THUNDERBOLT
+        maybeToEnum 80 = Prelude.Just TWISTER
+        maybeToEnum 81 = Prelude.Just DRAGON_BREATH
+        maybeToEnum 82 = Prelude.Just DRAGON_PULSE
+        maybeToEnum 83 = Prelude.Just DRAGON_CLAW
+        maybeToEnum 84 = Prelude.Just DISARMING_VOICE
+        maybeToEnum 85 = Prelude.Just DRAINING_KISS
+        maybeToEnum 86 = Prelude.Just DAZZLING_GLEAM
+        maybeToEnum 87 = Prelude.Just MOONBLAST
+        maybeToEnum 88 = Prelude.Just PLAY_ROUGH
+        maybeToEnum 89 = Prelude.Just CROSS_POISON
+        maybeToEnum 90 = Prelude.Just SLUDGE_BOMB
+        maybeToEnum 91 = Prelude.Just SLUDGE_WAVE
+        maybeToEnum 92 = Prelude.Just GUNK_SHOT
+        maybeToEnum 93 = Prelude.Just MUD_SHOT
+        maybeToEnum 94 = Prelude.Just BONE_CLUB
+        maybeToEnum 95 = Prelude.Just BULLDOZE
+        maybeToEnum 96 = Prelude.Just MUD_BOMB
+        maybeToEnum 97 = Prelude.Just FURY_CUTTER
+        maybeToEnum 98 = Prelude.Just BUG_BITE
+        maybeToEnum 99 = Prelude.Just SIGNAL_BEAM
+        maybeToEnum 100 = Prelude.Just X_SCISSOR
+        maybeToEnum 101 = Prelude.Just FLAME_CHARGE
+        maybeToEnum 102 = Prelude.Just FLAME_BURST
+        maybeToEnum 103 = Prelude.Just FIRE_BLAST
+        maybeToEnum 104 = Prelude.Just BRINE
+        maybeToEnum 105 = Prelude.Just WATER_PULSE
+        maybeToEnum 106 = Prelude.Just SCALD
+        maybeToEnum 107 = Prelude.Just HYDRO_PUMP
+        maybeToEnum 108 = Prelude.Just PSYCHIC
+        maybeToEnum 109 = Prelude.Just PSYSTRIKE
+        maybeToEnum 110 = Prelude.Just ICE_SHARD
+        maybeToEnum 111 = Prelude.Just ICY_WIND
+        maybeToEnum 112 = Prelude.Just FROST_BREATH
+        maybeToEnum 113 = Prelude.Just ABSORB
+        maybeToEnum 114 = Prelude.Just GIGA_DRAIN
+        maybeToEnum 115 = Prelude.Just FIRE_PUNCH
+        maybeToEnum 116 = Prelude.Just SOLAR_BEAM
+        maybeToEnum 117 = Prelude.Just LEAF_BLADE
+        maybeToEnum 118 = Prelude.Just POWER_WHIP
+        maybeToEnum 119 = Prelude.Just SPLASH
+        maybeToEnum 120 = Prelude.Just ACID
+        maybeToEnum 121 = Prelude.Just AIR_CUTTER
+        maybeToEnum 122 = Prelude.Just HURRICANE
+        maybeToEnum 123 = Prelude.Just BRICK_BREAK
+        maybeToEnum 124 = Prelude.Just CUT
+        maybeToEnum 125 = Prelude.Just SWIFT
+        maybeToEnum 126 = Prelude.Just HORN_ATTACK
+        maybeToEnum 127 = Prelude.Just STOMP
+        maybeToEnum 128 = Prelude.Just HEADBUTT
+        maybeToEnum 129 = Prelude.Just HYPER_FANG
+        maybeToEnum 130 = Prelude.Just SLAM
+        maybeToEnum 131 = Prelude.Just BODY_SLAM
+        maybeToEnum 132 = Prelude.Just REST
+        maybeToEnum 133 = Prelude.Just STRUGGLE
+        maybeToEnum 134 = Prelude.Just SCALD_BLASTOISE
+        maybeToEnum 135 = Prelude.Just HYDRO_PUMP_BLASTOISE
+        maybeToEnum 136 = Prelude.Just WRAP_GREEN
+        maybeToEnum 137 = Prelude.Just WRAP_PINK
+        maybeToEnum 200 = Prelude.Just FURY_CUTTER_FAST
+        maybeToEnum 201 = Prelude.Just BUG_BITE_FAST
+        maybeToEnum 202 = Prelude.Just BITE_FAST
+        maybeToEnum 203 = Prelude.Just SUCKER_PUNCH_FAST
+        maybeToEnum 204 = Prelude.Just DRAGON_BREATH_FAST
+        maybeToEnum 205 = Prelude.Just THUNDER_SHOCK_FAST
+        maybeToEnum 206 = Prelude.Just SPARK_FAST
+        maybeToEnum 207 = Prelude.Just LOW_KICK_FAST
+        maybeToEnum 208 = Prelude.Just KARATE_CHOP_FAST
+        maybeToEnum 209 = Prelude.Just EMBER_FAST
+        maybeToEnum 210 = Prelude.Just WING_ATTACK_FAST
+        maybeToEnum 211 = Prelude.Just PECK_FAST
+        maybeToEnum 212 = Prelude.Just LICK_FAST
+        maybeToEnum 213 = Prelude.Just SHADOW_CLAW_FAST
+        maybeToEnum 214 = Prelude.Just VINE_WHIP_FAST
+        maybeToEnum 215 = Prelude.Just RAZOR_LEAF_FAST
+        maybeToEnum 216 = Prelude.Just MUD_SHOT_FAST
+        maybeToEnum 217 = Prelude.Just ICE_SHARD_FAST
+        maybeToEnum 218 = Prelude.Just FROST_BREATH_FAST
+        maybeToEnum 219 = Prelude.Just QUICK_ATTACK_FAST
+        maybeToEnum 220 = Prelude.Just SCRATCH_FAST
+        maybeToEnum 221 = Prelude.Just TACKLE_FAST
+        maybeToEnum 222 = Prelude.Just POUND_FAST
+        maybeToEnum 223 = Prelude.Just CUT_FAST
+        maybeToEnum 224 = Prelude.Just POISON_JAB_FAST
+        maybeToEnum 225 = Prelude.Just ACID_FAST
+        maybeToEnum 226 = Prelude.Just PSYCHO_CUT_FAST
+        maybeToEnum 227 = Prelude.Just ROCK_THROW_FAST
+        maybeToEnum 228 = Prelude.Just METAL_CLAW_FAST
+        maybeToEnum 229 = Prelude.Just BULLET_PUNCH_FAST
+        maybeToEnum 230 = Prelude.Just WATER_GUN_FAST
+        maybeToEnum 231 = Prelude.Just SPLASH_FAST
+        maybeToEnum 232 = Prelude.Just WATER_GUN_FAST_BLASTOISE
+        maybeToEnum 233 = Prelude.Just MUD_SLAP_FAST
+        maybeToEnum 234 = Prelude.Just ZEN_HEADBUTT_FAST
+        maybeToEnum 235 = Prelude.Just CONFUSION_FAST
+        maybeToEnum 236 = Prelude.Just POISON_STING_FAST
+        maybeToEnum 237 = Prelude.Just BUBBLE_FAST
+        maybeToEnum 238 = Prelude.Just FEINT_ATTACK_FAST
+        maybeToEnum 239 = Prelude.Just STEEL_WING_FAST
+        maybeToEnum 240 = Prelude.Just FIRE_FANG_FAST
+        maybeToEnum 241 = Prelude.Just ROCK_SMASH_FAST
+        maybeToEnum _ = Prelude.Nothing
+        showEnum MOVE_UNSET = "MOVE_UNSET"
+        showEnum THUNDER_SHOCK = "THUNDER_SHOCK"
+        showEnum QUICK_ATTACK = "QUICK_ATTACK"
+        showEnum SCRATCH = "SCRATCH"
+        showEnum EMBER = "EMBER"
+        showEnum VINE_WHIP = "VINE_WHIP"
+        showEnum TACKLE = "TACKLE"
+        showEnum RAZOR_LEAF = "RAZOR_LEAF"
+        showEnum TAKE_DOWN = "TAKE_DOWN"
+        showEnum WATER_GUN = "WATER_GUN"
+        showEnum BITE = "BITE"
+        showEnum POUND = "POUND"
+        showEnum DOUBLE_SLAP = "DOUBLE_SLAP"
+        showEnum WRAP = "WRAP"
+        showEnum HYPER_BEAM = "HYPER_BEAM"
+        showEnum LICK = "LICK"
+        showEnum DARK_PULSE = "DARK_PULSE"
+        showEnum SMOG = "SMOG"
+        showEnum SLUDGE = "SLUDGE"
+        showEnum METAL_CLAW = "METAL_CLAW"
+        showEnum VICE_GRIP = "VICE_GRIP"
+        showEnum FLAME_WHEEL = "FLAME_WHEEL"
+        showEnum MEGAHORN = "MEGAHORN"
+        showEnum WING_ATTACK = "WING_ATTACK"
+        showEnum FLAMETHROWER = "FLAMETHROWER"
+        showEnum SUCKER_PUNCH = "SUCKER_PUNCH"
+        showEnum DIG = "DIG"
+        showEnum LOW_KICK = "LOW_KICK"
+        showEnum CROSS_CHOP = "CROSS_CHOP"
+        showEnum PSYCHO_CUT = "PSYCHO_CUT"
+        showEnum PSYBEAM = "PSYBEAM"
+        showEnum EARTHQUAKE = "EARTHQUAKE"
+        showEnum STONE_EDGE = "STONE_EDGE"
+        showEnum ICE_PUNCH = "ICE_PUNCH"
+        showEnum HEART_STAMP = "HEART_STAMP"
+        showEnum DISCHARGE = "DISCHARGE"
+        showEnum FLASH_CANNON = "FLASH_CANNON"
+        showEnum PECK = "PECK"
+        showEnum DRILL_PECK = "DRILL_PECK"
+        showEnum ICE_BEAM = "ICE_BEAM"
+        showEnum BLIZZARD = "BLIZZARD"
+        showEnum AIR_SLASH = "AIR_SLASH"
+        showEnum HEAT_WAVE = "HEAT_WAVE"
+        showEnum TWINEEDLE = "TWINEEDLE"
+        showEnum POISON_JAB = "POISON_JAB"
+        showEnum AERIAL_ACE = "AERIAL_ACE"
+        showEnum DRILL_RUN = "DRILL_RUN"
+        showEnum PETAL_BLIZZARD = "PETAL_BLIZZARD"
+        showEnum MEGA_DRAIN = "MEGA_DRAIN"
+        showEnum BUG_BUZZ = "BUG_BUZZ"
+        showEnum POISON_FANG = "POISON_FANG"
+        showEnum NIGHT_SLASH = "NIGHT_SLASH"
+        showEnum SLASH = "SLASH"
+        showEnum BUBBLE_BEAM = "BUBBLE_BEAM"
+        showEnum SUBMISSION = "SUBMISSION"
+        showEnum KARATE_CHOP = "KARATE_CHOP"
+        showEnum LOW_SWEEP = "LOW_SWEEP"
+        showEnum AQUA_JET = "AQUA_JET"
+        showEnum AQUA_TAIL = "AQUA_TAIL"
+        showEnum SEED_BOMB = "SEED_BOMB"
+        showEnum PSYSHOCK = "PSYSHOCK"
+        showEnum ROCK_THROW = "ROCK_THROW"
+        showEnum ANCIENT_POWER = "ANCIENT_POWER"
+        showEnum ROCK_TOMB = "ROCK_TOMB"
+        showEnum ROCK_SLIDE = "ROCK_SLIDE"
+        showEnum POWER_GEM = "POWER_GEM"
+        showEnum SHADOW_SNEAK = "SHADOW_SNEAK"
+        showEnum SHADOW_PUNCH = "SHADOW_PUNCH"
+        showEnum SHADOW_CLAW = "SHADOW_CLAW"
+        showEnum OMINOUS_WIND = "OMINOUS_WIND"
+        showEnum SHADOW_BALL = "SHADOW_BALL"
+        showEnum BULLET_PUNCH = "BULLET_PUNCH"
+        showEnum MAGNET_BOMB = "MAGNET_BOMB"
+        showEnum STEEL_WING = "STEEL_WING"
+        showEnum IRON_HEAD = "IRON_HEAD"
+        showEnum PARABOLIC_CHARGE = "PARABOLIC_CHARGE"
+        showEnum SPARK = "SPARK"
+        showEnum THUNDER_PUNCH = "THUNDER_PUNCH"
+        showEnum THUNDER = "THUNDER"
+        showEnum THUNDERBOLT = "THUNDERBOLT"
+        showEnum TWISTER = "TWISTER"
+        showEnum DRAGON_BREATH = "DRAGON_BREATH"
+        showEnum DRAGON_PULSE = "DRAGON_PULSE"
+        showEnum DRAGON_CLAW = "DRAGON_CLAW"
+        showEnum DISARMING_VOICE = "DISARMING_VOICE"
+        showEnum DRAINING_KISS = "DRAINING_KISS"
+        showEnum DAZZLING_GLEAM = "DAZZLING_GLEAM"
+        showEnum MOONBLAST = "MOONBLAST"
+        showEnum PLAY_ROUGH = "PLAY_ROUGH"
+        showEnum CROSS_POISON = "CROSS_POISON"
+        showEnum SLUDGE_BOMB = "SLUDGE_BOMB"
+        showEnum SLUDGE_WAVE = "SLUDGE_WAVE"
+        showEnum GUNK_SHOT = "GUNK_SHOT"
+        showEnum MUD_SHOT = "MUD_SHOT"
+        showEnum BONE_CLUB = "BONE_CLUB"
+        showEnum BULLDOZE = "BULLDOZE"
+        showEnum MUD_BOMB = "MUD_BOMB"
+        showEnum FURY_CUTTER = "FURY_CUTTER"
+        showEnum BUG_BITE = "BUG_BITE"
+        showEnum SIGNAL_BEAM = "SIGNAL_BEAM"
+        showEnum X_SCISSOR = "X_SCISSOR"
+        showEnum FLAME_CHARGE = "FLAME_CHARGE"
+        showEnum FLAME_BURST = "FLAME_BURST"
+        showEnum FIRE_BLAST = "FIRE_BLAST"
+        showEnum BRINE = "BRINE"
+        showEnum WATER_PULSE = "WATER_PULSE"
+        showEnum SCALD = "SCALD"
+        showEnum HYDRO_PUMP = "HYDRO_PUMP"
+        showEnum PSYCHIC = "PSYCHIC"
+        showEnum PSYSTRIKE = "PSYSTRIKE"
+        showEnum ICE_SHARD = "ICE_SHARD"
+        showEnum ICY_WIND = "ICY_WIND"
+        showEnum FROST_BREATH = "FROST_BREATH"
+        showEnum ABSORB = "ABSORB"
+        showEnum GIGA_DRAIN = "GIGA_DRAIN"
+        showEnum FIRE_PUNCH = "FIRE_PUNCH"
+        showEnum SOLAR_BEAM = "SOLAR_BEAM"
+        showEnum LEAF_BLADE = "LEAF_BLADE"
+        showEnum POWER_WHIP = "POWER_WHIP"
+        showEnum SPLASH = "SPLASH"
+        showEnum ACID = "ACID"
+        showEnum AIR_CUTTER = "AIR_CUTTER"
+        showEnum HURRICANE = "HURRICANE"
+        showEnum BRICK_BREAK = "BRICK_BREAK"
+        showEnum CUT = "CUT"
+        showEnum SWIFT = "SWIFT"
+        showEnum HORN_ATTACK = "HORN_ATTACK"
+        showEnum STOMP = "STOMP"
+        showEnum HEADBUTT = "HEADBUTT"
+        showEnum HYPER_FANG = "HYPER_FANG"
+        showEnum SLAM = "SLAM"
+        showEnum BODY_SLAM = "BODY_SLAM"
+        showEnum REST = "REST"
+        showEnum STRUGGLE = "STRUGGLE"
+        showEnum SCALD_BLASTOISE = "SCALD_BLASTOISE"
+        showEnum HYDRO_PUMP_BLASTOISE = "HYDRO_PUMP_BLASTOISE"
+        showEnum WRAP_GREEN = "WRAP_GREEN"
+        showEnum WRAP_PINK = "WRAP_PINK"
+        showEnum FURY_CUTTER_FAST = "FURY_CUTTER_FAST"
+        showEnum BUG_BITE_FAST = "BUG_BITE_FAST"
+        showEnum BITE_FAST = "BITE_FAST"
+        showEnum SUCKER_PUNCH_FAST = "SUCKER_PUNCH_FAST"
+        showEnum DRAGON_BREATH_FAST = "DRAGON_BREATH_FAST"
+        showEnum THUNDER_SHOCK_FAST = "THUNDER_SHOCK_FAST"
+        showEnum SPARK_FAST = "SPARK_FAST"
+        showEnum LOW_KICK_FAST = "LOW_KICK_FAST"
+        showEnum KARATE_CHOP_FAST = "KARATE_CHOP_FAST"
+        showEnum EMBER_FAST = "EMBER_FAST"
+        showEnum WING_ATTACK_FAST = "WING_ATTACK_FAST"
+        showEnum PECK_FAST = "PECK_FAST"
+        showEnum LICK_FAST = "LICK_FAST"
+        showEnum SHADOW_CLAW_FAST = "SHADOW_CLAW_FAST"
+        showEnum VINE_WHIP_FAST = "VINE_WHIP_FAST"
+        showEnum RAZOR_LEAF_FAST = "RAZOR_LEAF_FAST"
+        showEnum MUD_SHOT_FAST = "MUD_SHOT_FAST"
+        showEnum ICE_SHARD_FAST = "ICE_SHARD_FAST"
+        showEnum FROST_BREATH_FAST = "FROST_BREATH_FAST"
+        showEnum QUICK_ATTACK_FAST = "QUICK_ATTACK_FAST"
+        showEnum SCRATCH_FAST = "SCRATCH_FAST"
+        showEnum TACKLE_FAST = "TACKLE_FAST"
+        showEnum POUND_FAST = "POUND_FAST"
+        showEnum CUT_FAST = "CUT_FAST"
+        showEnum POISON_JAB_FAST = "POISON_JAB_FAST"
+        showEnum ACID_FAST = "ACID_FAST"
+        showEnum PSYCHO_CUT_FAST = "PSYCHO_CUT_FAST"
+        showEnum ROCK_THROW_FAST = "ROCK_THROW_FAST"
+        showEnum METAL_CLAW_FAST = "METAL_CLAW_FAST"
+        showEnum BULLET_PUNCH_FAST = "BULLET_PUNCH_FAST"
+        showEnum WATER_GUN_FAST = "WATER_GUN_FAST"
+        showEnum SPLASH_FAST = "SPLASH_FAST"
+        showEnum WATER_GUN_FAST_BLASTOISE = "WATER_GUN_FAST_BLASTOISE"
+        showEnum MUD_SLAP_FAST = "MUD_SLAP_FAST"
+        showEnum ZEN_HEADBUTT_FAST = "ZEN_HEADBUTT_FAST"
+        showEnum CONFUSION_FAST = "CONFUSION_FAST"
+        showEnum POISON_STING_FAST = "POISON_STING_FAST"
+        showEnum BUBBLE_FAST = "BUBBLE_FAST"
+        showEnum FEINT_ATTACK_FAST = "FEINT_ATTACK_FAST"
+        showEnum STEEL_WING_FAST = "STEEL_WING_FAST"
+        showEnum FIRE_FANG_FAST = "FIRE_FANG_FAST"
+        showEnum ROCK_SMASH_FAST = "ROCK_SMASH_FAST"
+        readEnum "MOVE_UNSET" = Prelude.Just MOVE_UNSET
+        readEnum "THUNDER_SHOCK" = Prelude.Just THUNDER_SHOCK
+        readEnum "QUICK_ATTACK" = Prelude.Just QUICK_ATTACK
+        readEnum "SCRATCH" = Prelude.Just SCRATCH
+        readEnum "EMBER" = Prelude.Just EMBER
+        readEnum "VINE_WHIP" = Prelude.Just VINE_WHIP
+        readEnum "TACKLE" = Prelude.Just TACKLE
+        readEnum "RAZOR_LEAF" = Prelude.Just RAZOR_LEAF
+        readEnum "TAKE_DOWN" = Prelude.Just TAKE_DOWN
+        readEnum "WATER_GUN" = Prelude.Just WATER_GUN
+        readEnum "BITE" = Prelude.Just BITE
+        readEnum "POUND" = Prelude.Just POUND
+        readEnum "DOUBLE_SLAP" = Prelude.Just DOUBLE_SLAP
+        readEnum "WRAP" = Prelude.Just WRAP
+        readEnum "HYPER_BEAM" = Prelude.Just HYPER_BEAM
+        readEnum "LICK" = Prelude.Just LICK
+        readEnum "DARK_PULSE" = Prelude.Just DARK_PULSE
+        readEnum "SMOG" = Prelude.Just SMOG
+        readEnum "SLUDGE" = Prelude.Just SLUDGE
+        readEnum "METAL_CLAW" = Prelude.Just METAL_CLAW
+        readEnum "VICE_GRIP" = Prelude.Just VICE_GRIP
+        readEnum "FLAME_WHEEL" = Prelude.Just FLAME_WHEEL
+        readEnum "MEGAHORN" = Prelude.Just MEGAHORN
+        readEnum "WING_ATTACK" = Prelude.Just WING_ATTACK
+        readEnum "FLAMETHROWER" = Prelude.Just FLAMETHROWER
+        readEnum "SUCKER_PUNCH" = Prelude.Just SUCKER_PUNCH
+        readEnum "DIG" = Prelude.Just DIG
+        readEnum "LOW_KICK" = Prelude.Just LOW_KICK
+        readEnum "CROSS_CHOP" = Prelude.Just CROSS_CHOP
+        readEnum "PSYCHO_CUT" = Prelude.Just PSYCHO_CUT
+        readEnum "PSYBEAM" = Prelude.Just PSYBEAM
+        readEnum "EARTHQUAKE" = Prelude.Just EARTHQUAKE
+        readEnum "STONE_EDGE" = Prelude.Just STONE_EDGE
+        readEnum "ICE_PUNCH" = Prelude.Just ICE_PUNCH
+        readEnum "HEART_STAMP" = Prelude.Just HEART_STAMP
+        readEnum "DISCHARGE" = Prelude.Just DISCHARGE
+        readEnum "FLASH_CANNON" = Prelude.Just FLASH_CANNON
+        readEnum "PECK" = Prelude.Just PECK
+        readEnum "DRILL_PECK" = Prelude.Just DRILL_PECK
+        readEnum "ICE_BEAM" = Prelude.Just ICE_BEAM
+        readEnum "BLIZZARD" = Prelude.Just BLIZZARD
+        readEnum "AIR_SLASH" = Prelude.Just AIR_SLASH
+        readEnum "HEAT_WAVE" = Prelude.Just HEAT_WAVE
+        readEnum "TWINEEDLE" = Prelude.Just TWINEEDLE
+        readEnum "POISON_JAB" = Prelude.Just POISON_JAB
+        readEnum "AERIAL_ACE" = Prelude.Just AERIAL_ACE
+        readEnum "DRILL_RUN" = Prelude.Just DRILL_RUN
+        readEnum "PETAL_BLIZZARD" = Prelude.Just PETAL_BLIZZARD
+        readEnum "MEGA_DRAIN" = Prelude.Just MEGA_DRAIN
+        readEnum "BUG_BUZZ" = Prelude.Just BUG_BUZZ
+        readEnum "POISON_FANG" = Prelude.Just POISON_FANG
+        readEnum "NIGHT_SLASH" = Prelude.Just NIGHT_SLASH
+        readEnum "SLASH" = Prelude.Just SLASH
+        readEnum "BUBBLE_BEAM" = Prelude.Just BUBBLE_BEAM
+        readEnum "SUBMISSION" = Prelude.Just SUBMISSION
+        readEnum "KARATE_CHOP" = Prelude.Just KARATE_CHOP
+        readEnum "LOW_SWEEP" = Prelude.Just LOW_SWEEP
+        readEnum "AQUA_JET" = Prelude.Just AQUA_JET
+        readEnum "AQUA_TAIL" = Prelude.Just AQUA_TAIL
+        readEnum "SEED_BOMB" = Prelude.Just SEED_BOMB
+        readEnum "PSYSHOCK" = Prelude.Just PSYSHOCK
+        readEnum "ROCK_THROW" = Prelude.Just ROCK_THROW
+        readEnum "ANCIENT_POWER" = Prelude.Just ANCIENT_POWER
+        readEnum "ROCK_TOMB" = Prelude.Just ROCK_TOMB
+        readEnum "ROCK_SLIDE" = Prelude.Just ROCK_SLIDE
+        readEnum "POWER_GEM" = Prelude.Just POWER_GEM
+        readEnum "SHADOW_SNEAK" = Prelude.Just SHADOW_SNEAK
+        readEnum "SHADOW_PUNCH" = Prelude.Just SHADOW_PUNCH
+        readEnum "SHADOW_CLAW" = Prelude.Just SHADOW_CLAW
+        readEnum "OMINOUS_WIND" = Prelude.Just OMINOUS_WIND
+        readEnum "SHADOW_BALL" = Prelude.Just SHADOW_BALL
+        readEnum "BULLET_PUNCH" = Prelude.Just BULLET_PUNCH
+        readEnum "MAGNET_BOMB" = Prelude.Just MAGNET_BOMB
+        readEnum "STEEL_WING" = Prelude.Just STEEL_WING
+        readEnum "IRON_HEAD" = Prelude.Just IRON_HEAD
+        readEnum "PARABOLIC_CHARGE" = Prelude.Just PARABOLIC_CHARGE
+        readEnum "SPARK" = Prelude.Just SPARK
+        readEnum "THUNDER_PUNCH" = Prelude.Just THUNDER_PUNCH
+        readEnum "THUNDER" = Prelude.Just THUNDER
+        readEnum "THUNDERBOLT" = Prelude.Just THUNDERBOLT
+        readEnum "TWISTER" = Prelude.Just TWISTER
+        readEnum "DRAGON_BREATH" = Prelude.Just DRAGON_BREATH
+        readEnum "DRAGON_PULSE" = Prelude.Just DRAGON_PULSE
+        readEnum "DRAGON_CLAW" = Prelude.Just DRAGON_CLAW
+        readEnum "DISARMING_VOICE" = Prelude.Just DISARMING_VOICE
+        readEnum "DRAINING_KISS" = Prelude.Just DRAINING_KISS
+        readEnum "DAZZLING_GLEAM" = Prelude.Just DAZZLING_GLEAM
+        readEnum "MOONBLAST" = Prelude.Just MOONBLAST
+        readEnum "PLAY_ROUGH" = Prelude.Just PLAY_ROUGH
+        readEnum "CROSS_POISON" = Prelude.Just CROSS_POISON
+        readEnum "SLUDGE_BOMB" = Prelude.Just SLUDGE_BOMB
+        readEnum "SLUDGE_WAVE" = Prelude.Just SLUDGE_WAVE
+        readEnum "GUNK_SHOT" = Prelude.Just GUNK_SHOT
+        readEnum "MUD_SHOT" = Prelude.Just MUD_SHOT
+        readEnum "BONE_CLUB" = Prelude.Just BONE_CLUB
+        readEnum "BULLDOZE" = Prelude.Just BULLDOZE
+        readEnum "MUD_BOMB" = Prelude.Just MUD_BOMB
+        readEnum "FURY_CUTTER" = Prelude.Just FURY_CUTTER
+        readEnum "BUG_BITE" = Prelude.Just BUG_BITE
+        readEnum "SIGNAL_BEAM" = Prelude.Just SIGNAL_BEAM
+        readEnum "X_SCISSOR" = Prelude.Just X_SCISSOR
+        readEnum "FLAME_CHARGE" = Prelude.Just FLAME_CHARGE
+        readEnum "FLAME_BURST" = Prelude.Just FLAME_BURST
+        readEnum "FIRE_BLAST" = Prelude.Just FIRE_BLAST
+        readEnum "BRINE" = Prelude.Just BRINE
+        readEnum "WATER_PULSE" = Prelude.Just WATER_PULSE
+        readEnum "SCALD" = Prelude.Just SCALD
+        readEnum "HYDRO_PUMP" = Prelude.Just HYDRO_PUMP
+        readEnum "PSYCHIC" = Prelude.Just PSYCHIC
+        readEnum "PSYSTRIKE" = Prelude.Just PSYSTRIKE
+        readEnum "ICE_SHARD" = Prelude.Just ICE_SHARD
+        readEnum "ICY_WIND" = Prelude.Just ICY_WIND
+        readEnum "FROST_BREATH" = Prelude.Just FROST_BREATH
+        readEnum "ABSORB" = Prelude.Just ABSORB
+        readEnum "GIGA_DRAIN" = Prelude.Just GIGA_DRAIN
+        readEnum "FIRE_PUNCH" = Prelude.Just FIRE_PUNCH
+        readEnum "SOLAR_BEAM" = Prelude.Just SOLAR_BEAM
+        readEnum "LEAF_BLADE" = Prelude.Just LEAF_BLADE
+        readEnum "POWER_WHIP" = Prelude.Just POWER_WHIP
+        readEnum "SPLASH" = Prelude.Just SPLASH
+        readEnum "ACID" = Prelude.Just ACID
+        readEnum "AIR_CUTTER" = Prelude.Just AIR_CUTTER
+        readEnum "HURRICANE" = Prelude.Just HURRICANE
+        readEnum "BRICK_BREAK" = Prelude.Just BRICK_BREAK
+        readEnum "CUT" = Prelude.Just CUT
+        readEnum "SWIFT" = Prelude.Just SWIFT
+        readEnum "HORN_ATTACK" = Prelude.Just HORN_ATTACK
+        readEnum "STOMP" = Prelude.Just STOMP
+        readEnum "HEADBUTT" = Prelude.Just HEADBUTT
+        readEnum "HYPER_FANG" = Prelude.Just HYPER_FANG
+        readEnum "SLAM" = Prelude.Just SLAM
+        readEnum "BODY_SLAM" = Prelude.Just BODY_SLAM
+        readEnum "REST" = Prelude.Just REST
+        readEnum "STRUGGLE" = Prelude.Just STRUGGLE
+        readEnum "SCALD_BLASTOISE" = Prelude.Just SCALD_BLASTOISE
+        readEnum "HYDRO_PUMP_BLASTOISE" = Prelude.Just HYDRO_PUMP_BLASTOISE
+        readEnum "WRAP_GREEN" = Prelude.Just WRAP_GREEN
+        readEnum "WRAP_PINK" = Prelude.Just WRAP_PINK
+        readEnum "FURY_CUTTER_FAST" = Prelude.Just FURY_CUTTER_FAST
+        readEnum "BUG_BITE_FAST" = Prelude.Just BUG_BITE_FAST
+        readEnum "BITE_FAST" = Prelude.Just BITE_FAST
+        readEnum "SUCKER_PUNCH_FAST" = Prelude.Just SUCKER_PUNCH_FAST
+        readEnum "DRAGON_BREATH_FAST" = Prelude.Just DRAGON_BREATH_FAST
+        readEnum "THUNDER_SHOCK_FAST" = Prelude.Just THUNDER_SHOCK_FAST
+        readEnum "SPARK_FAST" = Prelude.Just SPARK_FAST
+        readEnum "LOW_KICK_FAST" = Prelude.Just LOW_KICK_FAST
+        readEnum "KARATE_CHOP_FAST" = Prelude.Just KARATE_CHOP_FAST
+        readEnum "EMBER_FAST" = Prelude.Just EMBER_FAST
+        readEnum "WING_ATTACK_FAST" = Prelude.Just WING_ATTACK_FAST
+        readEnum "PECK_FAST" = Prelude.Just PECK_FAST
+        readEnum "LICK_FAST" = Prelude.Just LICK_FAST
+        readEnum "SHADOW_CLAW_FAST" = Prelude.Just SHADOW_CLAW_FAST
+        readEnum "VINE_WHIP_FAST" = Prelude.Just VINE_WHIP_FAST
+        readEnum "RAZOR_LEAF_FAST" = Prelude.Just RAZOR_LEAF_FAST
+        readEnum "MUD_SHOT_FAST" = Prelude.Just MUD_SHOT_FAST
+        readEnum "ICE_SHARD_FAST" = Prelude.Just ICE_SHARD_FAST
+        readEnum "FROST_BREATH_FAST" = Prelude.Just FROST_BREATH_FAST
+        readEnum "QUICK_ATTACK_FAST" = Prelude.Just QUICK_ATTACK_FAST
+        readEnum "SCRATCH_FAST" = Prelude.Just SCRATCH_FAST
+        readEnum "TACKLE_FAST" = Prelude.Just TACKLE_FAST
+        readEnum "POUND_FAST" = Prelude.Just POUND_FAST
+        readEnum "CUT_FAST" = Prelude.Just CUT_FAST
+        readEnum "POISON_JAB_FAST" = Prelude.Just POISON_JAB_FAST
+        readEnum "ACID_FAST" = Prelude.Just ACID_FAST
+        readEnum "PSYCHO_CUT_FAST" = Prelude.Just PSYCHO_CUT_FAST
+        readEnum "ROCK_THROW_FAST" = Prelude.Just ROCK_THROW_FAST
+        readEnum "METAL_CLAW_FAST" = Prelude.Just METAL_CLAW_FAST
+        readEnum "BULLET_PUNCH_FAST" = Prelude.Just BULLET_PUNCH_FAST
+        readEnum "WATER_GUN_FAST" = Prelude.Just WATER_GUN_FAST
+        readEnum "SPLASH_FAST" = Prelude.Just SPLASH_FAST
+        readEnum "WATER_GUN_FAST_BLASTOISE"
+          = Prelude.Just WATER_GUN_FAST_BLASTOISE
+        readEnum "MUD_SLAP_FAST" = Prelude.Just MUD_SLAP_FAST
+        readEnum "ZEN_HEADBUTT_FAST" = Prelude.Just ZEN_HEADBUTT_FAST
+        readEnum "CONFUSION_FAST" = Prelude.Just CONFUSION_FAST
+        readEnum "POISON_STING_FAST" = Prelude.Just POISON_STING_FAST
+        readEnum "BUBBLE_FAST" = Prelude.Just BUBBLE_FAST
+        readEnum "FEINT_ATTACK_FAST" = Prelude.Just FEINT_ATTACK_FAST
+        readEnum "STEEL_WING_FAST" = Prelude.Just STEEL_WING_FAST
+        readEnum "FIRE_FANG_FAST" = Prelude.Just FIRE_FANG_FAST
+        readEnum "ROCK_SMASH_FAST" = Prelude.Just ROCK_SMASH_FAST
+        readEnum _ = Prelude.Nothing
+
+instance Prelude.Enum PokemonMove where
+        toEnum k__
+          = Prelude.maybe
+              (Prelude.error
+                 ((Prelude.++) "toEnum: unknown value for enum PokemonMove: "
+                    (Prelude.show k__)))
+              Prelude.id
+              (Data.ProtoLens.maybeToEnum k__)
+        fromEnum MOVE_UNSET = 0
+        fromEnum THUNDER_SHOCK = 1
+        fromEnum QUICK_ATTACK = 2
+        fromEnum SCRATCH = 3
+        fromEnum EMBER = 4
+        fromEnum VINE_WHIP = 5
+        fromEnum TACKLE = 6
+        fromEnum RAZOR_LEAF = 7
+        fromEnum TAKE_DOWN = 8
+        fromEnum WATER_GUN = 9
+        fromEnum BITE = 10
+        fromEnum POUND = 11
+        fromEnum DOUBLE_SLAP = 12
+        fromEnum WRAP = 13
+        fromEnum HYPER_BEAM = 14
+        fromEnum LICK = 15
+        fromEnum DARK_PULSE = 16
+        fromEnum SMOG = 17
+        fromEnum SLUDGE = 18
+        fromEnum METAL_CLAW = 19
+        fromEnum VICE_GRIP = 20
+        fromEnum FLAME_WHEEL = 21
+        fromEnum MEGAHORN = 22
+        fromEnum WING_ATTACK = 23
+        fromEnum FLAMETHROWER = 24
+        fromEnum SUCKER_PUNCH = 25
+        fromEnum DIG = 26
+        fromEnum LOW_KICK = 27
+        fromEnum CROSS_CHOP = 28
+        fromEnum PSYCHO_CUT = 29
+        fromEnum PSYBEAM = 30
+        fromEnum EARTHQUAKE = 31
+        fromEnum STONE_EDGE = 32
+        fromEnum ICE_PUNCH = 33
+        fromEnum HEART_STAMP = 34
+        fromEnum DISCHARGE = 35
+        fromEnum FLASH_CANNON = 36
+        fromEnum PECK = 37
+        fromEnum DRILL_PECK = 38
+        fromEnum ICE_BEAM = 39
+        fromEnum BLIZZARD = 40
+        fromEnum AIR_SLASH = 41
+        fromEnum HEAT_WAVE = 42
+        fromEnum TWINEEDLE = 43
+        fromEnum POISON_JAB = 44
+        fromEnum AERIAL_ACE = 45
+        fromEnum DRILL_RUN = 46
+        fromEnum PETAL_BLIZZARD = 47
+        fromEnum MEGA_DRAIN = 48
+        fromEnum BUG_BUZZ = 49
+        fromEnum POISON_FANG = 50
+        fromEnum NIGHT_SLASH = 51
+        fromEnum SLASH = 52
+        fromEnum BUBBLE_BEAM = 53
+        fromEnum SUBMISSION = 54
+        fromEnum KARATE_CHOP = 55
+        fromEnum LOW_SWEEP = 56
+        fromEnum AQUA_JET = 57
+        fromEnum AQUA_TAIL = 58
+        fromEnum SEED_BOMB = 59
+        fromEnum PSYSHOCK = 60
+        fromEnum ROCK_THROW = 61
+        fromEnum ANCIENT_POWER = 62
+        fromEnum ROCK_TOMB = 63
+        fromEnum ROCK_SLIDE = 64
+        fromEnum POWER_GEM = 65
+        fromEnum SHADOW_SNEAK = 66
+        fromEnum SHADOW_PUNCH = 67
+        fromEnum SHADOW_CLAW = 68
+        fromEnum OMINOUS_WIND = 69
+        fromEnum SHADOW_BALL = 70
+        fromEnum BULLET_PUNCH = 71
+        fromEnum MAGNET_BOMB = 72
+        fromEnum STEEL_WING = 73
+        fromEnum IRON_HEAD = 74
+        fromEnum PARABOLIC_CHARGE = 75
+        fromEnum SPARK = 76
+        fromEnum THUNDER_PUNCH = 77
+        fromEnum THUNDER = 78
+        fromEnum THUNDERBOLT = 79
+        fromEnum TWISTER = 80
+        fromEnum DRAGON_BREATH = 81
+        fromEnum DRAGON_PULSE = 82
+        fromEnum DRAGON_CLAW = 83
+        fromEnum DISARMING_VOICE = 84
+        fromEnum DRAINING_KISS = 85
+        fromEnum DAZZLING_GLEAM = 86
+        fromEnum MOONBLAST = 87
+        fromEnum PLAY_ROUGH = 88
+        fromEnum CROSS_POISON = 89
+        fromEnum SLUDGE_BOMB = 90
+        fromEnum SLUDGE_WAVE = 91
+        fromEnum GUNK_SHOT = 92
+        fromEnum MUD_SHOT = 93
+        fromEnum BONE_CLUB = 94
+        fromEnum BULLDOZE = 95
+        fromEnum MUD_BOMB = 96
+        fromEnum FURY_CUTTER = 97
+        fromEnum BUG_BITE = 98
+        fromEnum SIGNAL_BEAM = 99
+        fromEnum X_SCISSOR = 100
+        fromEnum FLAME_CHARGE = 101
+        fromEnum FLAME_BURST = 102
+        fromEnum FIRE_BLAST = 103
+        fromEnum BRINE = 104
+        fromEnum WATER_PULSE = 105
+        fromEnum SCALD = 106
+        fromEnum HYDRO_PUMP = 107
+        fromEnum PSYCHIC = 108
+        fromEnum PSYSTRIKE = 109
+        fromEnum ICE_SHARD = 110
+        fromEnum ICY_WIND = 111
+        fromEnum FROST_BREATH = 112
+        fromEnum ABSORB = 113
+        fromEnum GIGA_DRAIN = 114
+        fromEnum FIRE_PUNCH = 115
+        fromEnum SOLAR_BEAM = 116
+        fromEnum LEAF_BLADE = 117
+        fromEnum POWER_WHIP = 118
+        fromEnum SPLASH = 119
+        fromEnum ACID = 120
+        fromEnum AIR_CUTTER = 121
+        fromEnum HURRICANE = 122
+        fromEnum BRICK_BREAK = 123
+        fromEnum CUT = 124
+        fromEnum SWIFT = 125
+        fromEnum HORN_ATTACK = 126
+        fromEnum STOMP = 127
+        fromEnum HEADBUTT = 128
+        fromEnum HYPER_FANG = 129
+        fromEnum SLAM = 130
+        fromEnum BODY_SLAM = 131
+        fromEnum REST = 132
+        fromEnum STRUGGLE = 133
+        fromEnum SCALD_BLASTOISE = 134
+        fromEnum HYDRO_PUMP_BLASTOISE = 135
+        fromEnum WRAP_GREEN = 136
+        fromEnum WRAP_PINK = 137
+        fromEnum FURY_CUTTER_FAST = 200
+        fromEnum BUG_BITE_FAST = 201
+        fromEnum BITE_FAST = 202
+        fromEnum SUCKER_PUNCH_FAST = 203
+        fromEnum DRAGON_BREATH_FAST = 204
+        fromEnum THUNDER_SHOCK_FAST = 205
+        fromEnum SPARK_FAST = 206
+        fromEnum LOW_KICK_FAST = 207
+        fromEnum KARATE_CHOP_FAST = 208
+        fromEnum EMBER_FAST = 209
+        fromEnum WING_ATTACK_FAST = 210
+        fromEnum PECK_FAST = 211
+        fromEnum LICK_FAST = 212
+        fromEnum SHADOW_CLAW_FAST = 213
+        fromEnum VINE_WHIP_FAST = 214
+        fromEnum RAZOR_LEAF_FAST = 215
+        fromEnum MUD_SHOT_FAST = 216
+        fromEnum ICE_SHARD_FAST = 217
+        fromEnum FROST_BREATH_FAST = 218
+        fromEnum QUICK_ATTACK_FAST = 219
+        fromEnum SCRATCH_FAST = 220
+        fromEnum TACKLE_FAST = 221
+        fromEnum POUND_FAST = 222
+        fromEnum CUT_FAST = 223
+        fromEnum POISON_JAB_FAST = 224
+        fromEnum ACID_FAST = 225
+        fromEnum PSYCHO_CUT_FAST = 226
+        fromEnum ROCK_THROW_FAST = 227
+        fromEnum METAL_CLAW_FAST = 228
+        fromEnum BULLET_PUNCH_FAST = 229
+        fromEnum WATER_GUN_FAST = 230
+        fromEnum SPLASH_FAST = 231
+        fromEnum WATER_GUN_FAST_BLASTOISE = 232
+        fromEnum MUD_SLAP_FAST = 233
+        fromEnum ZEN_HEADBUTT_FAST = 234
+        fromEnum CONFUSION_FAST = 235
+        fromEnum POISON_STING_FAST = 236
+        fromEnum BUBBLE_FAST = 237
+        fromEnum FEINT_ATTACK_FAST = 238
+        fromEnum STEEL_WING_FAST = 239
+        fromEnum FIRE_FANG_FAST = 240
+        fromEnum ROCK_SMASH_FAST = 241
+        succ ROCK_SMASH_FAST
+          = Prelude.error
+              "Ident \"PokemonMove\".Ident \"succ\": bad argument Ident \"ROCK_SMASH_FAST\". This value would be out of bounds."
+        succ MOVE_UNSET = THUNDER_SHOCK
+        succ THUNDER_SHOCK = QUICK_ATTACK
+        succ QUICK_ATTACK = SCRATCH
+        succ SCRATCH = EMBER
+        succ EMBER = VINE_WHIP
+        succ VINE_WHIP = TACKLE
+        succ TACKLE = RAZOR_LEAF
+        succ RAZOR_LEAF = TAKE_DOWN
+        succ TAKE_DOWN = WATER_GUN
+        succ WATER_GUN = BITE
+        succ BITE = POUND
+        succ POUND = DOUBLE_SLAP
+        succ DOUBLE_SLAP = WRAP
+        succ WRAP = HYPER_BEAM
+        succ HYPER_BEAM = LICK
+        succ LICK = DARK_PULSE
+        succ DARK_PULSE = SMOG
+        succ SMOG = SLUDGE
+        succ SLUDGE = METAL_CLAW
+        succ METAL_CLAW = VICE_GRIP
+        succ VICE_GRIP = FLAME_WHEEL
+        succ FLAME_WHEEL = MEGAHORN
+        succ MEGAHORN = WING_ATTACK
+        succ WING_ATTACK = FLAMETHROWER
+        succ FLAMETHROWER = SUCKER_PUNCH
+        succ SUCKER_PUNCH = DIG
+        succ DIG = LOW_KICK
+        succ LOW_KICK = CROSS_CHOP
+        succ CROSS_CHOP = PSYCHO_CUT
+        succ PSYCHO_CUT = PSYBEAM
+        succ PSYBEAM = EARTHQUAKE
+        succ EARTHQUAKE = STONE_EDGE
+        succ STONE_EDGE = ICE_PUNCH
+        succ ICE_PUNCH = HEART_STAMP
+        succ HEART_STAMP = DISCHARGE
+        succ DISCHARGE = FLASH_CANNON
+        succ FLASH_CANNON = PECK
+        succ PECK = DRILL_PECK
+        succ DRILL_PECK = ICE_BEAM
+        succ ICE_BEAM = BLIZZARD
+        succ BLIZZARD = AIR_SLASH
+        succ AIR_SLASH = HEAT_WAVE
+        succ HEAT_WAVE = TWINEEDLE
+        succ TWINEEDLE = POISON_JAB
+        succ POISON_JAB = AERIAL_ACE
+        succ AERIAL_ACE = DRILL_RUN
+        succ DRILL_RUN = PETAL_BLIZZARD
+        succ PETAL_BLIZZARD = MEGA_DRAIN
+        succ MEGA_DRAIN = BUG_BUZZ
+        succ BUG_BUZZ = POISON_FANG
+        succ POISON_FANG = NIGHT_SLASH
+        succ NIGHT_SLASH = SLASH
+        succ SLASH = BUBBLE_BEAM
+        succ BUBBLE_BEAM = SUBMISSION
+        succ SUBMISSION = KARATE_CHOP
+        succ KARATE_CHOP = LOW_SWEEP
+        succ LOW_SWEEP = AQUA_JET
+        succ AQUA_JET = AQUA_TAIL
+        succ AQUA_TAIL = SEED_BOMB
+        succ SEED_BOMB = PSYSHOCK
+        succ PSYSHOCK = ROCK_THROW
+        succ ROCK_THROW = ANCIENT_POWER
+        succ ANCIENT_POWER = ROCK_TOMB
+        succ ROCK_TOMB = ROCK_SLIDE
+        succ ROCK_SLIDE = POWER_GEM
+        succ POWER_GEM = SHADOW_SNEAK
+        succ SHADOW_SNEAK = SHADOW_PUNCH
+        succ SHADOW_PUNCH = SHADOW_CLAW
+        succ SHADOW_CLAW = OMINOUS_WIND
+        succ OMINOUS_WIND = SHADOW_BALL
+        succ SHADOW_BALL = BULLET_PUNCH
+        succ BULLET_PUNCH = MAGNET_BOMB
+        succ MAGNET_BOMB = STEEL_WING
+        succ STEEL_WING = IRON_HEAD
+        succ IRON_HEAD = PARABOLIC_CHARGE
+        succ PARABOLIC_CHARGE = SPARK
+        succ SPARK = THUNDER_PUNCH
+        succ THUNDER_PUNCH = THUNDER
+        succ THUNDER = THUNDERBOLT
+        succ THUNDERBOLT = TWISTER
+        succ TWISTER = DRAGON_BREATH
+        succ DRAGON_BREATH = DRAGON_PULSE
+        succ DRAGON_PULSE = DRAGON_CLAW
+        succ DRAGON_CLAW = DISARMING_VOICE
+        succ DISARMING_VOICE = DRAINING_KISS
+        succ DRAINING_KISS = DAZZLING_GLEAM
+        succ DAZZLING_GLEAM = MOONBLAST
+        succ MOONBLAST = PLAY_ROUGH
+        succ PLAY_ROUGH = CROSS_POISON
+        succ CROSS_POISON = SLUDGE_BOMB
+        succ SLUDGE_BOMB = SLUDGE_WAVE
+        succ SLUDGE_WAVE = GUNK_SHOT
+        succ GUNK_SHOT = MUD_SHOT
+        succ MUD_SHOT = BONE_CLUB
+        succ BONE_CLUB = BULLDOZE
+        succ BULLDOZE = MUD_BOMB
+        succ MUD_BOMB = FURY_CUTTER
+        succ FURY_CUTTER = BUG_BITE
+        succ BUG_BITE = SIGNAL_BEAM
+        succ SIGNAL_BEAM = X_SCISSOR
+        succ X_SCISSOR = FLAME_CHARGE
+        succ FLAME_CHARGE = FLAME_BURST
+        succ FLAME_BURST = FIRE_BLAST
+        succ FIRE_BLAST = BRINE
+        succ BRINE = WATER_PULSE
+        succ WATER_PULSE = SCALD
+        succ SCALD = HYDRO_PUMP
+        succ HYDRO_PUMP = PSYCHIC
+        succ PSYCHIC = PSYSTRIKE
+        succ PSYSTRIKE = ICE_SHARD
+        succ ICE_SHARD = ICY_WIND
+        succ ICY_WIND = FROST_BREATH
+        succ FROST_BREATH = ABSORB
+        succ ABSORB = GIGA_DRAIN
+        succ GIGA_DRAIN = FIRE_PUNCH
+        succ FIRE_PUNCH = SOLAR_BEAM
+        succ SOLAR_BEAM = LEAF_BLADE
+        succ LEAF_BLADE = POWER_WHIP
+        succ POWER_WHIP = SPLASH
+        succ SPLASH = ACID
+        succ ACID = AIR_CUTTER
+        succ AIR_CUTTER = HURRICANE
+        succ HURRICANE = BRICK_BREAK
+        succ BRICK_BREAK = CUT
+        succ CUT = SWIFT
+        succ SWIFT = HORN_ATTACK
+        succ HORN_ATTACK = STOMP
+        succ STOMP = HEADBUTT
+        succ HEADBUTT = HYPER_FANG
+        succ HYPER_FANG = SLAM
+        succ SLAM = BODY_SLAM
+        succ BODY_SLAM = REST
+        succ REST = STRUGGLE
+        succ STRUGGLE = SCALD_BLASTOISE
+        succ SCALD_BLASTOISE = HYDRO_PUMP_BLASTOISE
+        succ HYDRO_PUMP_BLASTOISE = WRAP_GREEN
+        succ WRAP_GREEN = WRAP_PINK
+        succ WRAP_PINK = FURY_CUTTER_FAST
+        succ FURY_CUTTER_FAST = BUG_BITE_FAST
+        succ BUG_BITE_FAST = BITE_FAST
+        succ BITE_FAST = SUCKER_PUNCH_FAST
+        succ SUCKER_PUNCH_FAST = DRAGON_BREATH_FAST
+        succ DRAGON_BREATH_FAST = THUNDER_SHOCK_FAST
+        succ THUNDER_SHOCK_FAST = SPARK_FAST
+        succ SPARK_FAST = LOW_KICK_FAST
+        succ LOW_KICK_FAST = KARATE_CHOP_FAST
+        succ KARATE_CHOP_FAST = EMBER_FAST
+        succ EMBER_FAST = WING_ATTACK_FAST
+        succ WING_ATTACK_FAST = PECK_FAST
+        succ PECK_FAST = LICK_FAST
+        succ LICK_FAST = SHADOW_CLAW_FAST
+        succ SHADOW_CLAW_FAST = VINE_WHIP_FAST
+        succ VINE_WHIP_FAST = RAZOR_LEAF_FAST
+        succ RAZOR_LEAF_FAST = MUD_SHOT_FAST
+        succ MUD_SHOT_FAST = ICE_SHARD_FAST
+        succ ICE_SHARD_FAST = FROST_BREATH_FAST
+        succ FROST_BREATH_FAST = QUICK_ATTACK_FAST
+        succ QUICK_ATTACK_FAST = SCRATCH_FAST
+        succ SCRATCH_FAST = TACKLE_FAST
+        succ TACKLE_FAST = POUND_FAST
+        succ POUND_FAST = CUT_FAST
+        succ CUT_FAST = POISON_JAB_FAST
+        succ POISON_JAB_FAST = ACID_FAST
+        succ ACID_FAST = PSYCHO_CUT_FAST
+        succ PSYCHO_CUT_FAST = ROCK_THROW_FAST
+        succ ROCK_THROW_FAST = METAL_CLAW_FAST
+        succ METAL_CLAW_FAST = BULLET_PUNCH_FAST
+        succ BULLET_PUNCH_FAST = WATER_GUN_FAST
+        succ WATER_GUN_FAST = SPLASH_FAST
+        succ SPLASH_FAST = WATER_GUN_FAST_BLASTOISE
+        succ WATER_GUN_FAST_BLASTOISE = MUD_SLAP_FAST
+        succ MUD_SLAP_FAST = ZEN_HEADBUTT_FAST
+        succ ZEN_HEADBUTT_FAST = CONFUSION_FAST
+        succ CONFUSION_FAST = POISON_STING_FAST
+        succ POISON_STING_FAST = BUBBLE_FAST
+        succ BUBBLE_FAST = FEINT_ATTACK_FAST
+        succ FEINT_ATTACK_FAST = STEEL_WING_FAST
+        succ STEEL_WING_FAST = FIRE_FANG_FAST
+        succ FIRE_FANG_FAST = ROCK_SMASH_FAST
+        pred MOVE_UNSET
+          = Prelude.error
+              "Ident \"PokemonMove\".Ident \"pred\": bad argument Ident \"MOVE_UNSET\". This value would be out of bounds."
+        pred THUNDER_SHOCK = MOVE_UNSET
+        pred QUICK_ATTACK = THUNDER_SHOCK
+        pred SCRATCH = QUICK_ATTACK
+        pred EMBER = SCRATCH
+        pred VINE_WHIP = EMBER
+        pred TACKLE = VINE_WHIP
+        pred RAZOR_LEAF = TACKLE
+        pred TAKE_DOWN = RAZOR_LEAF
+        pred WATER_GUN = TAKE_DOWN
+        pred BITE = WATER_GUN
+        pred POUND = BITE
+        pred DOUBLE_SLAP = POUND
+        pred WRAP = DOUBLE_SLAP
+        pred HYPER_BEAM = WRAP
+        pred LICK = HYPER_BEAM
+        pred DARK_PULSE = LICK
+        pred SMOG = DARK_PULSE
+        pred SLUDGE = SMOG
+        pred METAL_CLAW = SLUDGE
+        pred VICE_GRIP = METAL_CLAW
+        pred FLAME_WHEEL = VICE_GRIP
+        pred MEGAHORN = FLAME_WHEEL
+        pred WING_ATTACK = MEGAHORN
+        pred FLAMETHROWER = WING_ATTACK
+        pred SUCKER_PUNCH = FLAMETHROWER
+        pred DIG = SUCKER_PUNCH
+        pred LOW_KICK = DIG
+        pred CROSS_CHOP = LOW_KICK
+        pred PSYCHO_CUT = CROSS_CHOP
+        pred PSYBEAM = PSYCHO_CUT
+        pred EARTHQUAKE = PSYBEAM
+        pred STONE_EDGE = EARTHQUAKE
+        pred ICE_PUNCH = STONE_EDGE
+        pred HEART_STAMP = ICE_PUNCH
+        pred DISCHARGE = HEART_STAMP
+        pred FLASH_CANNON = DISCHARGE
+        pred PECK = FLASH_CANNON
+        pred DRILL_PECK = PECK
+        pred ICE_BEAM = DRILL_PECK
+        pred BLIZZARD = ICE_BEAM
+        pred AIR_SLASH = BLIZZARD
+        pred HEAT_WAVE = AIR_SLASH
+        pred TWINEEDLE = HEAT_WAVE
+        pred POISON_JAB = TWINEEDLE
+        pred AERIAL_ACE = POISON_JAB
+        pred DRILL_RUN = AERIAL_ACE
+        pred PETAL_BLIZZARD = DRILL_RUN
+        pred MEGA_DRAIN = PETAL_BLIZZARD
+        pred BUG_BUZZ = MEGA_DRAIN
+        pred POISON_FANG = BUG_BUZZ
+        pred NIGHT_SLASH = POISON_FANG
+        pred SLASH = NIGHT_SLASH
+        pred BUBBLE_BEAM = SLASH
+        pred SUBMISSION = BUBBLE_BEAM
+        pred KARATE_CHOP = SUBMISSION
+        pred LOW_SWEEP = KARATE_CHOP
+        pred AQUA_JET = LOW_SWEEP
+        pred AQUA_TAIL = AQUA_JET
+        pred SEED_BOMB = AQUA_TAIL
+        pred PSYSHOCK = SEED_BOMB
+        pred ROCK_THROW = PSYSHOCK
+        pred ANCIENT_POWER = ROCK_THROW
+        pred ROCK_TOMB = ANCIENT_POWER
+        pred ROCK_SLIDE = ROCK_TOMB
+        pred POWER_GEM = ROCK_SLIDE
+        pred SHADOW_SNEAK = POWER_GEM
+        pred SHADOW_PUNCH = SHADOW_SNEAK
+        pred SHADOW_CLAW = SHADOW_PUNCH
+        pred OMINOUS_WIND = SHADOW_CLAW
+        pred SHADOW_BALL = OMINOUS_WIND
+        pred BULLET_PUNCH = SHADOW_BALL
+        pred MAGNET_BOMB = BULLET_PUNCH
+        pred STEEL_WING = MAGNET_BOMB
+        pred IRON_HEAD = STEEL_WING
+        pred PARABOLIC_CHARGE = IRON_HEAD
+        pred SPARK = PARABOLIC_CHARGE
+        pred THUNDER_PUNCH = SPARK
+        pred THUNDER = THUNDER_PUNCH
+        pred THUNDERBOLT = THUNDER
+        pred TWISTER = THUNDERBOLT
+        pred DRAGON_BREATH = TWISTER
+        pred DRAGON_PULSE = DRAGON_BREATH
+        pred DRAGON_CLAW = DRAGON_PULSE
+        pred DISARMING_VOICE = DRAGON_CLAW
+        pred DRAINING_KISS = DISARMING_VOICE
+        pred DAZZLING_GLEAM = DRAINING_KISS
+        pred MOONBLAST = DAZZLING_GLEAM
+        pred PLAY_ROUGH = MOONBLAST
+        pred CROSS_POISON = PLAY_ROUGH
+        pred SLUDGE_BOMB = CROSS_POISON
+        pred SLUDGE_WAVE = SLUDGE_BOMB
+        pred GUNK_SHOT = SLUDGE_WAVE
+        pred MUD_SHOT = GUNK_SHOT
+        pred BONE_CLUB = MUD_SHOT
+        pred BULLDOZE = BONE_CLUB
+        pred MUD_BOMB = BULLDOZE
+        pred FURY_CUTTER = MUD_BOMB
+        pred BUG_BITE = FURY_CUTTER
+        pred SIGNAL_BEAM = BUG_BITE
+        pred X_SCISSOR = SIGNAL_BEAM
+        pred FLAME_CHARGE = X_SCISSOR
+        pred FLAME_BURST = FLAME_CHARGE
+        pred FIRE_BLAST = FLAME_BURST
+        pred BRINE = FIRE_BLAST
+        pred WATER_PULSE = BRINE
+        pred SCALD = WATER_PULSE
+        pred HYDRO_PUMP = SCALD
+        pred PSYCHIC = HYDRO_PUMP
+        pred PSYSTRIKE = PSYCHIC
+        pred ICE_SHARD = PSYSTRIKE
+        pred ICY_WIND = ICE_SHARD
+        pred FROST_BREATH = ICY_WIND
+        pred ABSORB = FROST_BREATH
+        pred GIGA_DRAIN = ABSORB
+        pred FIRE_PUNCH = GIGA_DRAIN
+        pred SOLAR_BEAM = FIRE_PUNCH
+        pred LEAF_BLADE = SOLAR_BEAM
+        pred POWER_WHIP = LEAF_BLADE
+        pred SPLASH = POWER_WHIP
+        pred ACID = SPLASH
+        pred AIR_CUTTER = ACID
+        pred HURRICANE = AIR_CUTTER
+        pred BRICK_BREAK = HURRICANE
+        pred CUT = BRICK_BREAK
+        pred SWIFT = CUT
+        pred HORN_ATTACK = SWIFT
+        pred STOMP = HORN_ATTACK
+        pred HEADBUTT = STOMP
+        pred HYPER_FANG = HEADBUTT
+        pred SLAM = HYPER_FANG
+        pred BODY_SLAM = SLAM
+        pred REST = BODY_SLAM
+        pred STRUGGLE = REST
+        pred SCALD_BLASTOISE = STRUGGLE
+        pred HYDRO_PUMP_BLASTOISE = SCALD_BLASTOISE
+        pred WRAP_GREEN = HYDRO_PUMP_BLASTOISE
+        pred WRAP_PINK = WRAP_GREEN
+        pred FURY_CUTTER_FAST = WRAP_PINK
+        pred BUG_BITE_FAST = FURY_CUTTER_FAST
+        pred BITE_FAST = BUG_BITE_FAST
+        pred SUCKER_PUNCH_FAST = BITE_FAST
+        pred DRAGON_BREATH_FAST = SUCKER_PUNCH_FAST
+        pred THUNDER_SHOCK_FAST = DRAGON_BREATH_FAST
+        pred SPARK_FAST = THUNDER_SHOCK_FAST
+        pred LOW_KICK_FAST = SPARK_FAST
+        pred KARATE_CHOP_FAST = LOW_KICK_FAST
+        pred EMBER_FAST = KARATE_CHOP_FAST
+        pred WING_ATTACK_FAST = EMBER_FAST
+        pred PECK_FAST = WING_ATTACK_FAST
+        pred LICK_FAST = PECK_FAST
+        pred SHADOW_CLAW_FAST = LICK_FAST
+        pred VINE_WHIP_FAST = SHADOW_CLAW_FAST
+        pred RAZOR_LEAF_FAST = VINE_WHIP_FAST
+        pred MUD_SHOT_FAST = RAZOR_LEAF_FAST
+        pred ICE_SHARD_FAST = MUD_SHOT_FAST
+        pred FROST_BREATH_FAST = ICE_SHARD_FAST
+        pred QUICK_ATTACK_FAST = FROST_BREATH_FAST
+        pred SCRATCH_FAST = QUICK_ATTACK_FAST
+        pred TACKLE_FAST = SCRATCH_FAST
+        pred POUND_FAST = TACKLE_FAST
+        pred CUT_FAST = POUND_FAST
+        pred POISON_JAB_FAST = CUT_FAST
+        pred ACID_FAST = POISON_JAB_FAST
+        pred PSYCHO_CUT_FAST = ACID_FAST
+        pred ROCK_THROW_FAST = PSYCHO_CUT_FAST
+        pred METAL_CLAW_FAST = ROCK_THROW_FAST
+        pred BULLET_PUNCH_FAST = METAL_CLAW_FAST
+        pred WATER_GUN_FAST = BULLET_PUNCH_FAST
+        pred SPLASH_FAST = WATER_GUN_FAST
+        pred WATER_GUN_FAST_BLASTOISE = SPLASH_FAST
+        pred MUD_SLAP_FAST = WATER_GUN_FAST_BLASTOISE
+        pred ZEN_HEADBUTT_FAST = MUD_SLAP_FAST
+        pred CONFUSION_FAST = ZEN_HEADBUTT_FAST
+        pred POISON_STING_FAST = CONFUSION_FAST
+        pred BUBBLE_FAST = POISON_STING_FAST
+        pred FEINT_ATTACK_FAST = BUBBLE_FAST
+        pred STEEL_WING_FAST = FEINT_ATTACK_FAST
+        pred FIRE_FANG_FAST = STEEL_WING_FAST
+        pred ROCK_SMASH_FAST = FIRE_FANG_FAST
+        enumFrom = Data.ProtoLens.Message.Enum.messageEnumFrom
+        enumFromTo = Data.ProtoLens.Message.Enum.messageEnumFromTo
+        enumFromThen = Data.ProtoLens.Message.Enum.messageEnumFromThen
+        enumFromThenTo = Data.ProtoLens.Message.Enum.messageEnumFromThenTo
+
+instance Prelude.Bounded PokemonMove where
+        minBound = MOVE_UNSET
+        maxBound = ROCK_SMASH_FAST
diff --git a/src/Proto/POGOProtos/Enums/PokemonMovementType.hs b/src/Proto/POGOProtos/Enums/PokemonMovementType.hs
new file mode 100644
--- /dev/null
+++ b/src/Proto/POGOProtos/Enums/PokemonMovementType.hs
@@ -0,0 +1,99 @@
+{- This file was auto-generated from POGOProtos/Enums/PokemonMovementType.proto by the proto-lens-protoc program. -}
+{-# LANGUAGE ScopedTypeVariables, DataKinds, TypeFamilies,
+  MultiParamTypeClasses, FlexibleContexts, FlexibleInstances #-}
+{-# OPTIONS_GHC -fno-warn-unused-imports#-}
+module Proto.POGOProtos.Enums.PokemonMovementType where
+import qualified Prelude
+import qualified Data.ProtoLens
+import qualified Data.ProtoLens.Message.Enum
+import qualified Lens.Family2
+import qualified Lens.Family2.Unchecked
+import qualified Data.Default.Class
+import qualified Data.Text
+import qualified Data.Int
+import qualified Data.Word
+import qualified Data.Map
+import qualified Data.ByteString
+
+data PokemonMovementType = MOVEMENT_STATIC
+                         | MOVEMENT_JUMP
+                         | MOVEMENT_VERTICAL
+                         | MOVEMENT_PSYCHIC
+                         | MOVEMENT_ELECTRIC
+                         | MOVEMENT_FLYING
+                         | MOVEMENT_HOVERING
+                         deriving (Prelude.Show, Prelude.Eq)
+
+instance Data.Default.Class.Default PokemonMovementType where
+        def = MOVEMENT_STATIC
+
+instance Data.ProtoLens.FieldDefault PokemonMovementType where
+        fieldDefault = MOVEMENT_STATIC
+
+instance Data.ProtoLens.MessageEnum PokemonMovementType where
+        maybeToEnum 0 = Prelude.Just MOVEMENT_STATIC
+        maybeToEnum 1 = Prelude.Just MOVEMENT_JUMP
+        maybeToEnum 2 = Prelude.Just MOVEMENT_VERTICAL
+        maybeToEnum 3 = Prelude.Just MOVEMENT_PSYCHIC
+        maybeToEnum 4 = Prelude.Just MOVEMENT_ELECTRIC
+        maybeToEnum 5 = Prelude.Just MOVEMENT_FLYING
+        maybeToEnum 6 = Prelude.Just MOVEMENT_HOVERING
+        maybeToEnum _ = Prelude.Nothing
+        showEnum MOVEMENT_STATIC = "MOVEMENT_STATIC"
+        showEnum MOVEMENT_JUMP = "MOVEMENT_JUMP"
+        showEnum MOVEMENT_VERTICAL = "MOVEMENT_VERTICAL"
+        showEnum MOVEMENT_PSYCHIC = "MOVEMENT_PSYCHIC"
+        showEnum MOVEMENT_ELECTRIC = "MOVEMENT_ELECTRIC"
+        showEnum MOVEMENT_FLYING = "MOVEMENT_FLYING"
+        showEnum MOVEMENT_HOVERING = "MOVEMENT_HOVERING"
+        readEnum "MOVEMENT_STATIC" = Prelude.Just MOVEMENT_STATIC
+        readEnum "MOVEMENT_JUMP" = Prelude.Just MOVEMENT_JUMP
+        readEnum "MOVEMENT_VERTICAL" = Prelude.Just MOVEMENT_VERTICAL
+        readEnum "MOVEMENT_PSYCHIC" = Prelude.Just MOVEMENT_PSYCHIC
+        readEnum "MOVEMENT_ELECTRIC" = Prelude.Just MOVEMENT_ELECTRIC
+        readEnum "MOVEMENT_FLYING" = Prelude.Just MOVEMENT_FLYING
+        readEnum "MOVEMENT_HOVERING" = Prelude.Just MOVEMENT_HOVERING
+        readEnum _ = Prelude.Nothing
+
+instance Prelude.Enum PokemonMovementType where
+        toEnum k__
+          = Prelude.maybe
+              (Prelude.error
+                 ((Prelude.++)
+                    "toEnum: unknown value for enum PokemonMovementType: "
+                    (Prelude.show k__)))
+              Prelude.id
+              (Data.ProtoLens.maybeToEnum k__)
+        fromEnum MOVEMENT_STATIC = 0
+        fromEnum MOVEMENT_JUMP = 1
+        fromEnum MOVEMENT_VERTICAL = 2
+        fromEnum MOVEMENT_PSYCHIC = 3
+        fromEnum MOVEMENT_ELECTRIC = 4
+        fromEnum MOVEMENT_FLYING = 5
+        fromEnum MOVEMENT_HOVERING = 6
+        succ MOVEMENT_HOVERING
+          = Prelude.error
+              "Ident \"PokemonMovementType\".Ident \"succ\": bad argument Ident \"MOVEMENT_HOVERING\". This value would be out of bounds."
+        succ MOVEMENT_STATIC = MOVEMENT_JUMP
+        succ MOVEMENT_JUMP = MOVEMENT_VERTICAL
+        succ MOVEMENT_VERTICAL = MOVEMENT_PSYCHIC
+        succ MOVEMENT_PSYCHIC = MOVEMENT_ELECTRIC
+        succ MOVEMENT_ELECTRIC = MOVEMENT_FLYING
+        succ MOVEMENT_FLYING = MOVEMENT_HOVERING
+        pred MOVEMENT_STATIC
+          = Prelude.error
+              "Ident \"PokemonMovementType\".Ident \"pred\": bad argument Ident \"MOVEMENT_STATIC\". This value would be out of bounds."
+        pred MOVEMENT_JUMP = MOVEMENT_STATIC
+        pred MOVEMENT_VERTICAL = MOVEMENT_JUMP
+        pred MOVEMENT_PSYCHIC = MOVEMENT_VERTICAL
+        pred MOVEMENT_ELECTRIC = MOVEMENT_PSYCHIC
+        pred MOVEMENT_FLYING = MOVEMENT_ELECTRIC
+        pred MOVEMENT_HOVERING = MOVEMENT_FLYING
+        enumFrom = Data.ProtoLens.Message.Enum.messageEnumFrom
+        enumFromTo = Data.ProtoLens.Message.Enum.messageEnumFromTo
+        enumFromThen = Data.ProtoLens.Message.Enum.messageEnumFromThen
+        enumFromThenTo = Data.ProtoLens.Message.Enum.messageEnumFromThenTo
+
+instance Prelude.Bounded PokemonMovementType where
+        minBound = MOVEMENT_STATIC
+        maxBound = MOVEMENT_HOVERING
diff --git a/src/Proto/POGOProtos/Enums/PokemonRarity.hs b/src/Proto/POGOProtos/Enums/PokemonRarity.hs
new file mode 100644
--- /dev/null
+++ b/src/Proto/POGOProtos/Enums/PokemonRarity.hs
@@ -0,0 +1,70 @@
+{- This file was auto-generated from POGOProtos/Enums/PokemonRarity.proto by the proto-lens-protoc program. -}
+{-# LANGUAGE ScopedTypeVariables, DataKinds, TypeFamilies,
+  MultiParamTypeClasses, FlexibleContexts, FlexibleInstances #-}
+{-# OPTIONS_GHC -fno-warn-unused-imports#-}
+module Proto.POGOProtos.Enums.PokemonRarity where
+import qualified Prelude
+import qualified Data.ProtoLens
+import qualified Data.ProtoLens.Message.Enum
+import qualified Lens.Family2
+import qualified Lens.Family2.Unchecked
+import qualified Data.Default.Class
+import qualified Data.Text
+import qualified Data.Int
+import qualified Data.Word
+import qualified Data.Map
+import qualified Data.ByteString
+
+data PokemonRarity = NORMAL
+                   | LEGENDARY
+                   | MYTHIC
+                   deriving (Prelude.Show, Prelude.Eq)
+
+instance Data.Default.Class.Default PokemonRarity where
+        def = NORMAL
+
+instance Data.ProtoLens.FieldDefault PokemonRarity where
+        fieldDefault = NORMAL
+
+instance Data.ProtoLens.MessageEnum PokemonRarity where
+        maybeToEnum 0 = Prelude.Just NORMAL
+        maybeToEnum 1 = Prelude.Just LEGENDARY
+        maybeToEnum 2 = Prelude.Just MYTHIC
+        maybeToEnum _ = Prelude.Nothing
+        showEnum NORMAL = "NORMAL"
+        showEnum LEGENDARY = "LEGENDARY"
+        showEnum MYTHIC = "MYTHIC"
+        readEnum "NORMAL" = Prelude.Just NORMAL
+        readEnum "LEGENDARY" = Prelude.Just LEGENDARY
+        readEnum "MYTHIC" = Prelude.Just MYTHIC
+        readEnum _ = Prelude.Nothing
+
+instance Prelude.Enum PokemonRarity where
+        toEnum k__
+          = Prelude.maybe
+              (Prelude.error
+                 ((Prelude.++) "toEnum: unknown value for enum PokemonRarity: "
+                    (Prelude.show k__)))
+              Prelude.id
+              (Data.ProtoLens.maybeToEnum k__)
+        fromEnum NORMAL = 0
+        fromEnum LEGENDARY = 1
+        fromEnum MYTHIC = 2
+        succ MYTHIC
+          = Prelude.error
+              "Ident \"PokemonRarity\".Ident \"succ\": bad argument Ident \"MYTHIC\". This value would be out of bounds."
+        succ NORMAL = LEGENDARY
+        succ LEGENDARY = MYTHIC
+        pred NORMAL
+          = Prelude.error
+              "Ident \"PokemonRarity\".Ident \"pred\": bad argument Ident \"NORMAL\". This value would be out of bounds."
+        pred LEGENDARY = NORMAL
+        pred MYTHIC = LEGENDARY
+        enumFrom = Data.ProtoLens.Message.Enum.messageEnumFrom
+        enumFromTo = Data.ProtoLens.Message.Enum.messageEnumFromTo
+        enumFromThen = Data.ProtoLens.Message.Enum.messageEnumFromThen
+        enumFromThenTo = Data.ProtoLens.Message.Enum.messageEnumFromThenTo
+
+instance Prelude.Bounded PokemonRarity where
+        minBound = NORMAL
+        maxBound = MYTHIC
diff --git a/src/Proto/POGOProtos/Enums/PokemonType.hs b/src/Proto/POGOProtos/Enums/PokemonType.hs
new file mode 100644
--- /dev/null
+++ b/src/Proto/POGOProtos/Enums/PokemonType.hs
@@ -0,0 +1,184 @@
+{- This file was auto-generated from POGOProtos/Enums/PokemonType.proto by the proto-lens-protoc program. -}
+{-# LANGUAGE ScopedTypeVariables, DataKinds, TypeFamilies,
+  MultiParamTypeClasses, FlexibleContexts, FlexibleInstances #-}
+{-# OPTIONS_GHC -fno-warn-unused-imports#-}
+module Proto.POGOProtos.Enums.PokemonType where
+import qualified Prelude
+import qualified Data.ProtoLens
+import qualified Data.ProtoLens.Message.Enum
+import qualified Lens.Family2
+import qualified Lens.Family2.Unchecked
+import qualified Data.Default.Class
+import qualified Data.Text
+import qualified Data.Int
+import qualified Data.Word
+import qualified Data.Map
+import qualified Data.ByteString
+
+data PokemonType = POKEMON_TYPE_NONE
+                 | POKEMON_TYPE_NORMAL
+                 | POKEMON_TYPE_FIGHTING
+                 | POKEMON_TYPE_FLYING
+                 | POKEMON_TYPE_POISON
+                 | POKEMON_TYPE_GROUND
+                 | POKEMON_TYPE_ROCK
+                 | POKEMON_TYPE_BUG
+                 | POKEMON_TYPE_GHOST
+                 | POKEMON_TYPE_STEEL
+                 | POKEMON_TYPE_FIRE
+                 | POKEMON_TYPE_WATER
+                 | POKEMON_TYPE_GRASS
+                 | POKEMON_TYPE_ELECTRIC
+                 | POKEMON_TYPE_PSYCHIC
+                 | POKEMON_TYPE_ICE
+                 | POKEMON_TYPE_DRAGON
+                 | POKEMON_TYPE_DARK
+                 | POKEMON_TYPE_FAIRY
+                 deriving (Prelude.Show, Prelude.Eq)
+
+instance Data.Default.Class.Default PokemonType where
+        def = POKEMON_TYPE_NONE
+
+instance Data.ProtoLens.FieldDefault PokemonType where
+        fieldDefault = POKEMON_TYPE_NONE
+
+instance Data.ProtoLens.MessageEnum PokemonType where
+        maybeToEnum 0 = Prelude.Just POKEMON_TYPE_NONE
+        maybeToEnum 1 = Prelude.Just POKEMON_TYPE_NORMAL
+        maybeToEnum 2 = Prelude.Just POKEMON_TYPE_FIGHTING
+        maybeToEnum 3 = Prelude.Just POKEMON_TYPE_FLYING
+        maybeToEnum 4 = Prelude.Just POKEMON_TYPE_POISON
+        maybeToEnum 5 = Prelude.Just POKEMON_TYPE_GROUND
+        maybeToEnum 6 = Prelude.Just POKEMON_TYPE_ROCK
+        maybeToEnum 7 = Prelude.Just POKEMON_TYPE_BUG
+        maybeToEnum 8 = Prelude.Just POKEMON_TYPE_GHOST
+        maybeToEnum 9 = Prelude.Just POKEMON_TYPE_STEEL
+        maybeToEnum 10 = Prelude.Just POKEMON_TYPE_FIRE
+        maybeToEnum 11 = Prelude.Just POKEMON_TYPE_WATER
+        maybeToEnum 12 = Prelude.Just POKEMON_TYPE_GRASS
+        maybeToEnum 13 = Prelude.Just POKEMON_TYPE_ELECTRIC
+        maybeToEnum 14 = Prelude.Just POKEMON_TYPE_PSYCHIC
+        maybeToEnum 15 = Prelude.Just POKEMON_TYPE_ICE
+        maybeToEnum 16 = Prelude.Just POKEMON_TYPE_DRAGON
+        maybeToEnum 17 = Prelude.Just POKEMON_TYPE_DARK
+        maybeToEnum 18 = Prelude.Just POKEMON_TYPE_FAIRY
+        maybeToEnum _ = Prelude.Nothing
+        showEnum POKEMON_TYPE_NONE = "POKEMON_TYPE_NONE"
+        showEnum POKEMON_TYPE_NORMAL = "POKEMON_TYPE_NORMAL"
+        showEnum POKEMON_TYPE_FIGHTING = "POKEMON_TYPE_FIGHTING"
+        showEnum POKEMON_TYPE_FLYING = "POKEMON_TYPE_FLYING"
+        showEnum POKEMON_TYPE_POISON = "POKEMON_TYPE_POISON"
+        showEnum POKEMON_TYPE_GROUND = "POKEMON_TYPE_GROUND"
+        showEnum POKEMON_TYPE_ROCK = "POKEMON_TYPE_ROCK"
+        showEnum POKEMON_TYPE_BUG = "POKEMON_TYPE_BUG"
+        showEnum POKEMON_TYPE_GHOST = "POKEMON_TYPE_GHOST"
+        showEnum POKEMON_TYPE_STEEL = "POKEMON_TYPE_STEEL"
+        showEnum POKEMON_TYPE_FIRE = "POKEMON_TYPE_FIRE"
+        showEnum POKEMON_TYPE_WATER = "POKEMON_TYPE_WATER"
+        showEnum POKEMON_TYPE_GRASS = "POKEMON_TYPE_GRASS"
+        showEnum POKEMON_TYPE_ELECTRIC = "POKEMON_TYPE_ELECTRIC"
+        showEnum POKEMON_TYPE_PSYCHIC = "POKEMON_TYPE_PSYCHIC"
+        showEnum POKEMON_TYPE_ICE = "POKEMON_TYPE_ICE"
+        showEnum POKEMON_TYPE_DRAGON = "POKEMON_TYPE_DRAGON"
+        showEnum POKEMON_TYPE_DARK = "POKEMON_TYPE_DARK"
+        showEnum POKEMON_TYPE_FAIRY = "POKEMON_TYPE_FAIRY"
+        readEnum "POKEMON_TYPE_NONE" = Prelude.Just POKEMON_TYPE_NONE
+        readEnum "POKEMON_TYPE_NORMAL" = Prelude.Just POKEMON_TYPE_NORMAL
+        readEnum "POKEMON_TYPE_FIGHTING"
+          = Prelude.Just POKEMON_TYPE_FIGHTING
+        readEnum "POKEMON_TYPE_FLYING" = Prelude.Just POKEMON_TYPE_FLYING
+        readEnum "POKEMON_TYPE_POISON" = Prelude.Just POKEMON_TYPE_POISON
+        readEnum "POKEMON_TYPE_GROUND" = Prelude.Just POKEMON_TYPE_GROUND
+        readEnum "POKEMON_TYPE_ROCK" = Prelude.Just POKEMON_TYPE_ROCK
+        readEnum "POKEMON_TYPE_BUG" = Prelude.Just POKEMON_TYPE_BUG
+        readEnum "POKEMON_TYPE_GHOST" = Prelude.Just POKEMON_TYPE_GHOST
+        readEnum "POKEMON_TYPE_STEEL" = Prelude.Just POKEMON_TYPE_STEEL
+        readEnum "POKEMON_TYPE_FIRE" = Prelude.Just POKEMON_TYPE_FIRE
+        readEnum "POKEMON_TYPE_WATER" = Prelude.Just POKEMON_TYPE_WATER
+        readEnum "POKEMON_TYPE_GRASS" = Prelude.Just POKEMON_TYPE_GRASS
+        readEnum "POKEMON_TYPE_ELECTRIC"
+          = Prelude.Just POKEMON_TYPE_ELECTRIC
+        readEnum "POKEMON_TYPE_PSYCHIC" = Prelude.Just POKEMON_TYPE_PSYCHIC
+        readEnum "POKEMON_TYPE_ICE" = Prelude.Just POKEMON_TYPE_ICE
+        readEnum "POKEMON_TYPE_DRAGON" = Prelude.Just POKEMON_TYPE_DRAGON
+        readEnum "POKEMON_TYPE_DARK" = Prelude.Just POKEMON_TYPE_DARK
+        readEnum "POKEMON_TYPE_FAIRY" = Prelude.Just POKEMON_TYPE_FAIRY
+        readEnum _ = Prelude.Nothing
+
+instance Prelude.Enum PokemonType where
+        toEnum k__
+          = Prelude.maybe
+              (Prelude.error
+                 ((Prelude.++) "toEnum: unknown value for enum PokemonType: "
+                    (Prelude.show k__)))
+              Prelude.id
+              (Data.ProtoLens.maybeToEnum k__)
+        fromEnum POKEMON_TYPE_NONE = 0
+        fromEnum POKEMON_TYPE_NORMAL = 1
+        fromEnum POKEMON_TYPE_FIGHTING = 2
+        fromEnum POKEMON_TYPE_FLYING = 3
+        fromEnum POKEMON_TYPE_POISON = 4
+        fromEnum POKEMON_TYPE_GROUND = 5
+        fromEnum POKEMON_TYPE_ROCK = 6
+        fromEnum POKEMON_TYPE_BUG = 7
+        fromEnum POKEMON_TYPE_GHOST = 8
+        fromEnum POKEMON_TYPE_STEEL = 9
+        fromEnum POKEMON_TYPE_FIRE = 10
+        fromEnum POKEMON_TYPE_WATER = 11
+        fromEnum POKEMON_TYPE_GRASS = 12
+        fromEnum POKEMON_TYPE_ELECTRIC = 13
+        fromEnum POKEMON_TYPE_PSYCHIC = 14
+        fromEnum POKEMON_TYPE_ICE = 15
+        fromEnum POKEMON_TYPE_DRAGON = 16
+        fromEnum POKEMON_TYPE_DARK = 17
+        fromEnum POKEMON_TYPE_FAIRY = 18
+        succ POKEMON_TYPE_FAIRY
+          = Prelude.error
+              "Ident \"PokemonType\".Ident \"succ\": bad argument Ident \"POKEMON_TYPE_FAIRY\". This value would be out of bounds."
+        succ POKEMON_TYPE_NONE = POKEMON_TYPE_NORMAL
+        succ POKEMON_TYPE_NORMAL = POKEMON_TYPE_FIGHTING
+        succ POKEMON_TYPE_FIGHTING = POKEMON_TYPE_FLYING
+        succ POKEMON_TYPE_FLYING = POKEMON_TYPE_POISON
+        succ POKEMON_TYPE_POISON = POKEMON_TYPE_GROUND
+        succ POKEMON_TYPE_GROUND = POKEMON_TYPE_ROCK
+        succ POKEMON_TYPE_ROCK = POKEMON_TYPE_BUG
+        succ POKEMON_TYPE_BUG = POKEMON_TYPE_GHOST
+        succ POKEMON_TYPE_GHOST = POKEMON_TYPE_STEEL
+        succ POKEMON_TYPE_STEEL = POKEMON_TYPE_FIRE
+        succ POKEMON_TYPE_FIRE = POKEMON_TYPE_WATER
+        succ POKEMON_TYPE_WATER = POKEMON_TYPE_GRASS
+        succ POKEMON_TYPE_GRASS = POKEMON_TYPE_ELECTRIC
+        succ POKEMON_TYPE_ELECTRIC = POKEMON_TYPE_PSYCHIC
+        succ POKEMON_TYPE_PSYCHIC = POKEMON_TYPE_ICE
+        succ POKEMON_TYPE_ICE = POKEMON_TYPE_DRAGON
+        succ POKEMON_TYPE_DRAGON = POKEMON_TYPE_DARK
+        succ POKEMON_TYPE_DARK = POKEMON_TYPE_FAIRY
+        pred POKEMON_TYPE_NONE
+          = Prelude.error
+              "Ident \"PokemonType\".Ident \"pred\": bad argument Ident \"POKEMON_TYPE_NONE\". This value would be out of bounds."
+        pred POKEMON_TYPE_NORMAL = POKEMON_TYPE_NONE
+        pred POKEMON_TYPE_FIGHTING = POKEMON_TYPE_NORMAL
+        pred POKEMON_TYPE_FLYING = POKEMON_TYPE_FIGHTING
+        pred POKEMON_TYPE_POISON = POKEMON_TYPE_FLYING
+        pred POKEMON_TYPE_GROUND = POKEMON_TYPE_POISON
+        pred POKEMON_TYPE_ROCK = POKEMON_TYPE_GROUND
+        pred POKEMON_TYPE_BUG = POKEMON_TYPE_ROCK
+        pred POKEMON_TYPE_GHOST = POKEMON_TYPE_BUG
+        pred POKEMON_TYPE_STEEL = POKEMON_TYPE_GHOST
+        pred POKEMON_TYPE_FIRE = POKEMON_TYPE_STEEL
+        pred POKEMON_TYPE_WATER = POKEMON_TYPE_FIRE
+        pred POKEMON_TYPE_GRASS = POKEMON_TYPE_WATER
+        pred POKEMON_TYPE_ELECTRIC = POKEMON_TYPE_GRASS
+        pred POKEMON_TYPE_PSYCHIC = POKEMON_TYPE_ELECTRIC
+        pred POKEMON_TYPE_ICE = POKEMON_TYPE_PSYCHIC
+        pred POKEMON_TYPE_DRAGON = POKEMON_TYPE_ICE
+        pred POKEMON_TYPE_DARK = POKEMON_TYPE_DRAGON
+        pred POKEMON_TYPE_FAIRY = POKEMON_TYPE_DARK
+        enumFrom = Data.ProtoLens.Message.Enum.messageEnumFrom
+        enumFromTo = Data.ProtoLens.Message.Enum.messageEnumFromTo
+        enumFromThen = Data.ProtoLens.Message.Enum.messageEnumFromThen
+        enumFromThenTo = Data.ProtoLens.Message.Enum.messageEnumFromThenTo
+
+instance Prelude.Bounded PokemonType where
+        minBound = POKEMON_TYPE_NONE
+        maxBound = POKEMON_TYPE_FAIRY
diff --git a/src/Proto/POGOProtos/Enums/TeamColor.hs b/src/Proto/POGOProtos/Enums/TeamColor.hs
new file mode 100644
--- /dev/null
+++ b/src/Proto/POGOProtos/Enums/TeamColor.hs
@@ -0,0 +1,77 @@
+{- This file was auto-generated from POGOProtos/Enums/TeamColor.proto by the proto-lens-protoc program. -}
+{-# LANGUAGE ScopedTypeVariables, DataKinds, TypeFamilies,
+  MultiParamTypeClasses, FlexibleContexts, FlexibleInstances #-}
+{-# OPTIONS_GHC -fno-warn-unused-imports#-}
+module Proto.POGOProtos.Enums.TeamColor where
+import qualified Prelude
+import qualified Data.ProtoLens
+import qualified Data.ProtoLens.Message.Enum
+import qualified Lens.Family2
+import qualified Lens.Family2.Unchecked
+import qualified Data.Default.Class
+import qualified Data.Text
+import qualified Data.Int
+import qualified Data.Word
+import qualified Data.Map
+import qualified Data.ByteString
+
+data TeamColor = NEUTRAL
+               | BLUE
+               | RED
+               | YELLOW
+               deriving (Prelude.Show, Prelude.Eq)
+
+instance Data.Default.Class.Default TeamColor where
+        def = NEUTRAL
+
+instance Data.ProtoLens.FieldDefault TeamColor where
+        fieldDefault = NEUTRAL
+
+instance Data.ProtoLens.MessageEnum TeamColor where
+        maybeToEnum 0 = Prelude.Just NEUTRAL
+        maybeToEnum 1 = Prelude.Just BLUE
+        maybeToEnum 2 = Prelude.Just RED
+        maybeToEnum 3 = Prelude.Just YELLOW
+        maybeToEnum _ = Prelude.Nothing
+        showEnum NEUTRAL = "NEUTRAL"
+        showEnum BLUE = "BLUE"
+        showEnum RED = "RED"
+        showEnum YELLOW = "YELLOW"
+        readEnum "NEUTRAL" = Prelude.Just NEUTRAL
+        readEnum "BLUE" = Prelude.Just BLUE
+        readEnum "RED" = Prelude.Just RED
+        readEnum "YELLOW" = Prelude.Just YELLOW
+        readEnum _ = Prelude.Nothing
+
+instance Prelude.Enum TeamColor where
+        toEnum k__
+          = Prelude.maybe
+              (Prelude.error
+                 ((Prelude.++) "toEnum: unknown value for enum TeamColor: "
+                    (Prelude.show k__)))
+              Prelude.id
+              (Data.ProtoLens.maybeToEnum k__)
+        fromEnum NEUTRAL = 0
+        fromEnum BLUE = 1
+        fromEnum RED = 2
+        fromEnum YELLOW = 3
+        succ YELLOW
+          = Prelude.error
+              "Ident \"TeamColor\".Ident \"succ\": bad argument Ident \"YELLOW\". This value would be out of bounds."
+        succ NEUTRAL = BLUE
+        succ BLUE = RED
+        succ RED = YELLOW
+        pred NEUTRAL
+          = Prelude.error
+              "Ident \"TeamColor\".Ident \"pred\": bad argument Ident \"NEUTRAL\". This value would be out of bounds."
+        pred BLUE = NEUTRAL
+        pred RED = BLUE
+        pred YELLOW = RED
+        enumFrom = Data.ProtoLens.Message.Enum.messageEnumFrom
+        enumFromTo = Data.ProtoLens.Message.Enum.messageEnumFromTo
+        enumFromThen = Data.ProtoLens.Message.Enum.messageEnumFromThen
+        enumFromThenTo = Data.ProtoLens.Message.Enum.messageEnumFromThenTo
+
+instance Prelude.Bounded TeamColor where
+        minBound = NEUTRAL
+        maxBound = YELLOW
diff --git a/src/Proto/POGOProtos/Enums/TutorialState.hs b/src/Proto/POGOProtos/Enums/TutorialState.hs
new file mode 100644
--- /dev/null
+++ b/src/Proto/POGOProtos/Enums/TutorialState.hs
@@ -0,0 +1,121 @@
+{- This file was auto-generated from POGOProtos/Enums/TutorialState.proto by the proto-lens-protoc program. -}
+{-# LANGUAGE ScopedTypeVariables, DataKinds, TypeFamilies,
+  MultiParamTypeClasses, FlexibleContexts, FlexibleInstances #-}
+{-# OPTIONS_GHC -fno-warn-unused-imports#-}
+module Proto.POGOProtos.Enums.TutorialState where
+import qualified Prelude
+import qualified Data.ProtoLens
+import qualified Data.ProtoLens.Message.Enum
+import qualified Lens.Family2
+import qualified Lens.Family2.Unchecked
+import qualified Data.Default.Class
+import qualified Data.Text
+import qualified Data.Int
+import qualified Data.Word
+import qualified Data.Map
+import qualified Data.ByteString
+
+data TutorialState = LEGAL_SCREEN
+                   | AVATAR_SELECTION
+                   | ACCOUNT_CREATION
+                   | POKEMON_CAPTURE
+                   | NAME_SELECTION
+                   | POKEMON_BERRY
+                   | USE_ITEM
+                   | FIRST_TIME_EXPERIENCE_COMPLETE
+                   | POKESTOP_TUTORIAL
+                   | GYM_TUTORIAL
+                   deriving (Prelude.Show, Prelude.Eq)
+
+instance Data.Default.Class.Default TutorialState where
+        def = LEGAL_SCREEN
+
+instance Data.ProtoLens.FieldDefault TutorialState where
+        fieldDefault = LEGAL_SCREEN
+
+instance Data.ProtoLens.MessageEnum TutorialState where
+        maybeToEnum 0 = Prelude.Just LEGAL_SCREEN
+        maybeToEnum 1 = Prelude.Just AVATAR_SELECTION
+        maybeToEnum 2 = Prelude.Just ACCOUNT_CREATION
+        maybeToEnum 3 = Prelude.Just POKEMON_CAPTURE
+        maybeToEnum 4 = Prelude.Just NAME_SELECTION
+        maybeToEnum 5 = Prelude.Just POKEMON_BERRY
+        maybeToEnum 6 = Prelude.Just USE_ITEM
+        maybeToEnum 7 = Prelude.Just FIRST_TIME_EXPERIENCE_COMPLETE
+        maybeToEnum 8 = Prelude.Just POKESTOP_TUTORIAL
+        maybeToEnum 9 = Prelude.Just GYM_TUTORIAL
+        maybeToEnum _ = Prelude.Nothing
+        showEnum LEGAL_SCREEN = "LEGAL_SCREEN"
+        showEnum AVATAR_SELECTION = "AVATAR_SELECTION"
+        showEnum ACCOUNT_CREATION = "ACCOUNT_CREATION"
+        showEnum POKEMON_CAPTURE = "POKEMON_CAPTURE"
+        showEnum NAME_SELECTION = "NAME_SELECTION"
+        showEnum POKEMON_BERRY = "POKEMON_BERRY"
+        showEnum USE_ITEM = "USE_ITEM"
+        showEnum FIRST_TIME_EXPERIENCE_COMPLETE
+          = "FIRST_TIME_EXPERIENCE_COMPLETE"
+        showEnum POKESTOP_TUTORIAL = "POKESTOP_TUTORIAL"
+        showEnum GYM_TUTORIAL = "GYM_TUTORIAL"
+        readEnum "LEGAL_SCREEN" = Prelude.Just LEGAL_SCREEN
+        readEnum "AVATAR_SELECTION" = Prelude.Just AVATAR_SELECTION
+        readEnum "ACCOUNT_CREATION" = Prelude.Just ACCOUNT_CREATION
+        readEnum "POKEMON_CAPTURE" = Prelude.Just POKEMON_CAPTURE
+        readEnum "NAME_SELECTION" = Prelude.Just NAME_SELECTION
+        readEnum "POKEMON_BERRY" = Prelude.Just POKEMON_BERRY
+        readEnum "USE_ITEM" = Prelude.Just USE_ITEM
+        readEnum "FIRST_TIME_EXPERIENCE_COMPLETE"
+          = Prelude.Just FIRST_TIME_EXPERIENCE_COMPLETE
+        readEnum "POKESTOP_TUTORIAL" = Prelude.Just POKESTOP_TUTORIAL
+        readEnum "GYM_TUTORIAL" = Prelude.Just GYM_TUTORIAL
+        readEnum _ = Prelude.Nothing
+
+instance Prelude.Enum TutorialState where
+        toEnum k__
+          = Prelude.maybe
+              (Prelude.error
+                 ((Prelude.++) "toEnum: unknown value for enum TutorialState: "
+                    (Prelude.show k__)))
+              Prelude.id
+              (Data.ProtoLens.maybeToEnum k__)
+        fromEnum LEGAL_SCREEN = 0
+        fromEnum AVATAR_SELECTION = 1
+        fromEnum ACCOUNT_CREATION = 2
+        fromEnum POKEMON_CAPTURE = 3
+        fromEnum NAME_SELECTION = 4
+        fromEnum POKEMON_BERRY = 5
+        fromEnum USE_ITEM = 6
+        fromEnum FIRST_TIME_EXPERIENCE_COMPLETE = 7
+        fromEnum POKESTOP_TUTORIAL = 8
+        fromEnum GYM_TUTORIAL = 9
+        succ GYM_TUTORIAL
+          = Prelude.error
+              "Ident \"TutorialState\".Ident \"succ\": bad argument Ident \"GYM_TUTORIAL\". This value would be out of bounds."
+        succ LEGAL_SCREEN = AVATAR_SELECTION
+        succ AVATAR_SELECTION = ACCOUNT_CREATION
+        succ ACCOUNT_CREATION = POKEMON_CAPTURE
+        succ POKEMON_CAPTURE = NAME_SELECTION
+        succ NAME_SELECTION = POKEMON_BERRY
+        succ POKEMON_BERRY = USE_ITEM
+        succ USE_ITEM = FIRST_TIME_EXPERIENCE_COMPLETE
+        succ FIRST_TIME_EXPERIENCE_COMPLETE = POKESTOP_TUTORIAL
+        succ POKESTOP_TUTORIAL = GYM_TUTORIAL
+        pred LEGAL_SCREEN
+          = Prelude.error
+              "Ident \"TutorialState\".Ident \"pred\": bad argument Ident \"LEGAL_SCREEN\". This value would be out of bounds."
+        pred AVATAR_SELECTION = LEGAL_SCREEN
+        pred ACCOUNT_CREATION = AVATAR_SELECTION
+        pred POKEMON_CAPTURE = ACCOUNT_CREATION
+        pred NAME_SELECTION = POKEMON_CAPTURE
+        pred POKEMON_BERRY = NAME_SELECTION
+        pred USE_ITEM = POKEMON_BERRY
+        pred FIRST_TIME_EXPERIENCE_COMPLETE = USE_ITEM
+        pred POKESTOP_TUTORIAL = FIRST_TIME_EXPERIENCE_COMPLETE
+        pred GYM_TUTORIAL = POKESTOP_TUTORIAL
+        enumFrom = Data.ProtoLens.Message.Enum.messageEnumFrom
+        enumFromTo = Data.ProtoLens.Message.Enum.messageEnumFromTo
+        enumFromThen = Data.ProtoLens.Message.Enum.messageEnumFromThen
+        enumFromThenTo = Data.ProtoLens.Message.Enum.messageEnumFromThenTo
+
+instance Prelude.Bounded TutorialState where
+        minBound = LEGAL_SCREEN
+        maxBound = GYM_TUTORIAL
diff --git a/src/Proto/POGOProtos/Inventory/AppliedItem.hs b/src/Proto/POGOProtos/Inventory/AppliedItem.hs
new file mode 100644
--- /dev/null
+++ b/src/Proto/POGOProtos/Inventory/AppliedItem.hs
@@ -0,0 +1,138 @@
+{- This file was auto-generated from POGOProtos/Inventory/AppliedItem.proto by the proto-lens-protoc program. -}
+{-# LANGUAGE ScopedTypeVariables, DataKinds, TypeFamilies,
+  MultiParamTypeClasses, FlexibleContexts, FlexibleInstances #-}
+{-# OPTIONS_GHC -fno-warn-unused-imports#-}
+module Proto.POGOProtos.Inventory.AppliedItem where
+import qualified Prelude
+import qualified Data.ProtoLens
+import qualified Data.ProtoLens.Message.Enum
+import qualified Lens.Family2
+import qualified Lens.Family2.Unchecked
+import qualified Data.Default.Class
+import qualified Data.Text
+import qualified Data.Int
+import qualified Data.Word
+import qualified Data.Map
+import qualified Data.ByteString
+import qualified Proto.POGOProtos.Inventory.Item.ItemId
+import qualified Proto.POGOProtos.Inventory.Item.ItemType
+
+data AppliedItem = AppliedItem{_AppliedItem'itemId ::
+                               Proto.POGOProtos.Inventory.Item.ItemId.ItemId,
+                               _AppliedItem'itemType ::
+                               Proto.POGOProtos.Inventory.Item.ItemType.ItemType,
+                               _AppliedItem'expireMs :: Data.Int.Int64,
+                               _AppliedItem'appliedMs :: Data.Int.Int64}
+                 deriving (Prelude.Show, Prelude.Eq)
+
+type instance Data.ProtoLens.Field "itemId" AppliedItem =
+     Proto.POGOProtos.Inventory.Item.ItemId.ItemId
+
+instance Data.ProtoLens.HasField "itemId" AppliedItem AppliedItem
+         where
+        field _
+          = Lens.Family2.Unchecked.lens _AppliedItem'itemId
+              (\ x__ y__ -> x__{_AppliedItem'itemId = y__})
+
+type instance Data.ProtoLens.Field "itemType" AppliedItem =
+     Proto.POGOProtos.Inventory.Item.ItemType.ItemType
+
+instance Data.ProtoLens.HasField "itemType" AppliedItem AppliedItem
+         where
+        field _
+          = Lens.Family2.Unchecked.lens _AppliedItem'itemType
+              (\ x__ y__ -> x__{_AppliedItem'itemType = y__})
+
+type instance Data.ProtoLens.Field "expireMs" AppliedItem =
+     Data.Int.Int64
+
+instance Data.ProtoLens.HasField "expireMs" AppliedItem AppliedItem
+         where
+        field _
+          = Lens.Family2.Unchecked.lens _AppliedItem'expireMs
+              (\ x__ y__ -> x__{_AppliedItem'expireMs = y__})
+
+type instance Data.ProtoLens.Field "appliedMs" AppliedItem =
+     Data.Int.Int64
+
+instance Data.ProtoLens.HasField "appliedMs" AppliedItem
+         AppliedItem where
+        field _
+          = Lens.Family2.Unchecked.lens _AppliedItem'appliedMs
+              (\ x__ y__ -> x__{_AppliedItem'appliedMs = y__})
+
+instance Data.Default.Class.Default AppliedItem where
+        def
+          = AppliedItem{_AppliedItem'itemId = Data.Default.Class.def,
+                        _AppliedItem'itemType = Data.Default.Class.def,
+                        _AppliedItem'expireMs = Data.ProtoLens.fieldDefault,
+                        _AppliedItem'appliedMs = Data.ProtoLens.fieldDefault}
+
+instance Data.ProtoLens.Message AppliedItem where
+        descriptor
+          = let itemId__field_descriptor
+                  = Data.ProtoLens.FieldDescriptor "item_id"
+                      (Data.ProtoLens.EnumField ::
+                         Data.ProtoLens.FieldTypeDescriptor
+                           Proto.POGOProtos.Inventory.Item.ItemId.ItemId)
+                      (Data.ProtoLens.PlainField Data.ProtoLens.Optional itemId)
+                itemType__field_descriptor
+                  = Data.ProtoLens.FieldDescriptor "item_type"
+                      (Data.ProtoLens.EnumField ::
+                         Data.ProtoLens.FieldTypeDescriptor
+                           Proto.POGOProtos.Inventory.Item.ItemType.ItemType)
+                      (Data.ProtoLens.PlainField Data.ProtoLens.Optional itemType)
+                expireMs__field_descriptor
+                  = Data.ProtoLens.FieldDescriptor "expire_ms"
+                      (Data.ProtoLens.Int64Field ::
+                         Data.ProtoLens.FieldTypeDescriptor Data.Int.Int64)
+                      (Data.ProtoLens.PlainField Data.ProtoLens.Optional expireMs)
+                appliedMs__field_descriptor
+                  = Data.ProtoLens.FieldDescriptor "applied_ms"
+                      (Data.ProtoLens.Int64Field ::
+                         Data.ProtoLens.FieldTypeDescriptor Data.Int.Int64)
+                      (Data.ProtoLens.PlainField Data.ProtoLens.Optional appliedMs)
+              in
+              Data.ProtoLens.MessageDescriptor
+                (Data.Map.fromList
+                   [(Data.ProtoLens.Tag 1, itemId__field_descriptor),
+                    (Data.ProtoLens.Tag 2, itemType__field_descriptor),
+                    (Data.ProtoLens.Tag 3, expireMs__field_descriptor),
+                    (Data.ProtoLens.Tag 4, appliedMs__field_descriptor)])
+                (Data.Map.fromList
+                   [("item_id", itemId__field_descriptor),
+                    ("item_type", itemType__field_descriptor),
+                    ("expire_ms", expireMs__field_descriptor),
+                    ("applied_ms", appliedMs__field_descriptor)])
+
+appliedMs ::
+          forall msg msg' . Data.ProtoLens.HasField "appliedMs" msg msg' =>
+            Lens.Family2.Lens msg msg' (Data.ProtoLens.Field "appliedMs" msg)
+              (Data.ProtoLens.Field "appliedMs" msg')
+appliedMs
+  = Data.ProtoLens.field
+      (Data.ProtoLens.ProxySym :: Data.ProtoLens.ProxySym "appliedMs")
+
+expireMs ::
+         forall msg msg' . Data.ProtoLens.HasField "expireMs" msg msg' =>
+           Lens.Family2.Lens msg msg' (Data.ProtoLens.Field "expireMs" msg)
+             (Data.ProtoLens.Field "expireMs" msg')
+expireMs
+  = Data.ProtoLens.field
+      (Data.ProtoLens.ProxySym :: Data.ProtoLens.ProxySym "expireMs")
+
+itemId ::
+       forall msg msg' . Data.ProtoLens.HasField "itemId" msg msg' =>
+         Lens.Family2.Lens msg msg' (Data.ProtoLens.Field "itemId" msg)
+           (Data.ProtoLens.Field "itemId" msg')
+itemId
+  = Data.ProtoLens.field
+      (Data.ProtoLens.ProxySym :: Data.ProtoLens.ProxySym "itemId")
+
+itemType ::
+         forall msg msg' . Data.ProtoLens.HasField "itemType" msg msg' =>
+           Lens.Family2.Lens msg msg' (Data.ProtoLens.Field "itemType" msg)
+             (Data.ProtoLens.Field "itemType" msg')
+itemType
+  = Data.ProtoLens.field
+      (Data.ProtoLens.ProxySym :: Data.ProtoLens.ProxySym "itemType")
diff --git a/src/Proto/POGOProtos/Inventory/AppliedItems.hs b/src/Proto/POGOProtos/Inventory/AppliedItems.hs
new file mode 100644
--- /dev/null
+++ b/src/Proto/POGOProtos/Inventory/AppliedItems.hs
@@ -0,0 +1,55 @@
+{- This file was auto-generated from POGOProtos/Inventory/AppliedItems.proto by the proto-lens-protoc program. -}
+{-# LANGUAGE ScopedTypeVariables, DataKinds, TypeFamilies,
+  MultiParamTypeClasses, FlexibleContexts, FlexibleInstances #-}
+{-# OPTIONS_GHC -fno-warn-unused-imports#-}
+module Proto.POGOProtos.Inventory.AppliedItems where
+import qualified Prelude
+import qualified Data.ProtoLens
+import qualified Data.ProtoLens.Message.Enum
+import qualified Lens.Family2
+import qualified Lens.Family2.Unchecked
+import qualified Data.Default.Class
+import qualified Data.Text
+import qualified Data.Int
+import qualified Data.Word
+import qualified Data.Map
+import qualified Data.ByteString
+import qualified Proto.POGOProtos.Inventory.AppliedItem
+
+data AppliedItems = AppliedItems{_AppliedItems'item ::
+                                 [Proto.POGOProtos.Inventory.AppliedItem.AppliedItem]}
+                  deriving (Prelude.Show, Prelude.Eq)
+
+type instance Data.ProtoLens.Field "item" AppliedItems =
+     [Proto.POGOProtos.Inventory.AppliedItem.AppliedItem]
+
+instance Data.ProtoLens.HasField "item" AppliedItems AppliedItems
+         where
+        field _
+          = Lens.Family2.Unchecked.lens _AppliedItems'item
+              (\ x__ y__ -> x__{_AppliedItems'item = y__})
+
+instance Data.Default.Class.Default AppliedItems where
+        def = AppliedItems{_AppliedItems'item = []}
+
+instance Data.ProtoLens.Message AppliedItems where
+        descriptor
+          = let item__field_descriptor
+                  = Data.ProtoLens.FieldDescriptor "item"
+                      (Data.ProtoLens.MessageField ::
+                         Data.ProtoLens.FieldTypeDescriptor
+                           Proto.POGOProtos.Inventory.AppliedItem.AppliedItem)
+                      (Data.ProtoLens.RepeatedField Data.ProtoLens.Unpacked item)
+              in
+              Data.ProtoLens.MessageDescriptor
+                (Data.Map.fromList
+                   [(Data.ProtoLens.Tag 4, item__field_descriptor)])
+                (Data.Map.fromList [("item", item__field_descriptor)])
+
+item ::
+     forall msg msg' . Data.ProtoLens.HasField "item" msg msg' =>
+       Lens.Family2.Lens msg msg' (Data.ProtoLens.Field "item" msg)
+         (Data.ProtoLens.Field "item" msg')
+item
+  = Data.ProtoLens.field
+      (Data.ProtoLens.ProxySym :: Data.ProtoLens.ProxySym "item")
diff --git a/src/Proto/POGOProtos/Inventory/Candy.hs b/src/Proto/POGOProtos/Inventory/Candy.hs
new file mode 100644
--- /dev/null
+++ b/src/Proto/POGOProtos/Inventory/Candy.hs
@@ -0,0 +1,80 @@
+{- This file was auto-generated from POGOProtos/Inventory/Candy.proto by the proto-lens-protoc program. -}
+{-# LANGUAGE ScopedTypeVariables, DataKinds, TypeFamilies,
+  MultiParamTypeClasses, FlexibleContexts, FlexibleInstances #-}
+{-# OPTIONS_GHC -fno-warn-unused-imports#-}
+module Proto.POGOProtos.Inventory.Candy where
+import qualified Prelude
+import qualified Data.ProtoLens
+import qualified Data.ProtoLens.Message.Enum
+import qualified Lens.Family2
+import qualified Lens.Family2.Unchecked
+import qualified Data.Default.Class
+import qualified Data.Text
+import qualified Data.Int
+import qualified Data.Word
+import qualified Data.Map
+import qualified Data.ByteString
+import qualified Proto.POGOProtos.Enums.PokemonId
+
+data Candy = Candy{_Candy'familyId ::
+                   Proto.POGOProtos.Enums.PokemonId.PokemonId,
+                   _Candy'candy :: Data.Int.Int32}
+           deriving (Prelude.Show, Prelude.Eq)
+
+type instance Data.ProtoLens.Field "familyId" Candy =
+     Proto.POGOProtos.Enums.PokemonId.PokemonId
+
+instance Data.ProtoLens.HasField "familyId" Candy Candy where
+        field _
+          = Lens.Family2.Unchecked.lens _Candy'familyId
+              (\ x__ y__ -> x__{_Candy'familyId = y__})
+
+type instance Data.ProtoLens.Field "candy" Candy = Data.Int.Int32
+
+instance Data.ProtoLens.HasField "candy" Candy Candy where
+        field _
+          = Lens.Family2.Unchecked.lens _Candy'candy
+              (\ x__ y__ -> x__{_Candy'candy = y__})
+
+instance Data.Default.Class.Default Candy where
+        def
+          = Candy{_Candy'familyId = Data.Default.Class.def,
+                  _Candy'candy = Data.ProtoLens.fieldDefault}
+
+instance Data.ProtoLens.Message Candy where
+        descriptor
+          = let familyId__field_descriptor
+                  = Data.ProtoLens.FieldDescriptor "family_id"
+                      (Data.ProtoLens.EnumField ::
+                         Data.ProtoLens.FieldTypeDescriptor
+                           Proto.POGOProtos.Enums.PokemonId.PokemonId)
+                      (Data.ProtoLens.PlainField Data.ProtoLens.Optional familyId)
+                candy__field_descriptor
+                  = Data.ProtoLens.FieldDescriptor "candy"
+                      (Data.ProtoLens.Int32Field ::
+                         Data.ProtoLens.FieldTypeDescriptor Data.Int.Int32)
+                      (Data.ProtoLens.PlainField Data.ProtoLens.Optional candy)
+              in
+              Data.ProtoLens.MessageDescriptor
+                (Data.Map.fromList
+                   [(Data.ProtoLens.Tag 1, familyId__field_descriptor),
+                    (Data.ProtoLens.Tag 2, candy__field_descriptor)])
+                (Data.Map.fromList
+                   [("family_id", familyId__field_descriptor),
+                    ("candy", candy__field_descriptor)])
+
+candy ::
+      forall msg msg' . Data.ProtoLens.HasField "candy" msg msg' =>
+        Lens.Family2.Lens msg msg' (Data.ProtoLens.Field "candy" msg)
+          (Data.ProtoLens.Field "candy" msg')
+candy
+  = Data.ProtoLens.field
+      (Data.ProtoLens.ProxySym :: Data.ProtoLens.ProxySym "candy")
+
+familyId ::
+         forall msg msg' . Data.ProtoLens.HasField "familyId" msg msg' =>
+           Lens.Family2.Lens msg msg' (Data.ProtoLens.Field "familyId" msg)
+             (Data.ProtoLens.Field "familyId" msg')
+familyId
+  = Data.ProtoLens.field
+      (Data.ProtoLens.ProxySym :: Data.ProtoLens.ProxySym "familyId")
diff --git a/src/Proto/POGOProtos/Inventory/EggIncubator.hs b/src/Proto/POGOProtos/Inventory/EggIncubator.hs
new file mode 100644
--- /dev/null
+++ b/src/Proto/POGOProtos/Inventory/EggIncubator.hs
@@ -0,0 +1,229 @@
+{- This file was auto-generated from POGOProtos/Inventory/EggIncubator.proto by the proto-lens-protoc program. -}
+{-# LANGUAGE ScopedTypeVariables, DataKinds, TypeFamilies,
+  MultiParamTypeClasses, FlexibleContexts, FlexibleInstances #-}
+{-# OPTIONS_GHC -fno-warn-unused-imports#-}
+module Proto.POGOProtos.Inventory.EggIncubator where
+import qualified Prelude
+import qualified Data.ProtoLens
+import qualified Data.ProtoLens.Message.Enum
+import qualified Lens.Family2
+import qualified Lens.Family2.Unchecked
+import qualified Data.Default.Class
+import qualified Data.Text
+import qualified Data.Int
+import qualified Data.Word
+import qualified Data.Map
+import qualified Data.ByteString
+import qualified Proto.POGOProtos.Inventory.EggIncubatorType
+import qualified Proto.POGOProtos.Inventory.Item.ItemId
+
+data EggIncubator = EggIncubator{_EggIncubator'id ::
+                                 Data.Text.Text,
+                                 _EggIncubator'itemId ::
+                                 Proto.POGOProtos.Inventory.Item.ItemId.ItemId,
+                                 _EggIncubator'incubatorType ::
+                                 Proto.POGOProtos.Inventory.EggIncubatorType.EggIncubatorType,
+                                 _EggIncubator'usesRemaining :: Data.Int.Int32,
+                                 _EggIncubator'pokemonId :: Data.Word.Word64,
+                                 _EggIncubator'startKmWalked :: Prelude.Double,
+                                 _EggIncubator'targetKmWalked :: Prelude.Double}
+                  deriving (Prelude.Show, Prelude.Eq)
+
+type instance Data.ProtoLens.Field "id" EggIncubator =
+     Data.Text.Text
+
+instance Data.ProtoLens.HasField "id" EggIncubator EggIncubator
+         where
+        field _
+          = Lens.Family2.Unchecked.lens _EggIncubator'id
+              (\ x__ y__ -> x__{_EggIncubator'id = y__})
+
+type instance Data.ProtoLens.Field "itemId" EggIncubator =
+     Proto.POGOProtos.Inventory.Item.ItemId.ItemId
+
+instance Data.ProtoLens.HasField "itemId" EggIncubator EggIncubator
+         where
+        field _
+          = Lens.Family2.Unchecked.lens _EggIncubator'itemId
+              (\ x__ y__ -> x__{_EggIncubator'itemId = y__})
+
+type instance Data.ProtoLens.Field "incubatorType" EggIncubator =
+     Proto.POGOProtos.Inventory.EggIncubatorType.EggIncubatorType
+
+instance Data.ProtoLens.HasField "incubatorType" EggIncubator
+         EggIncubator where
+        field _
+          = Lens.Family2.Unchecked.lens _EggIncubator'incubatorType
+              (\ x__ y__ -> x__{_EggIncubator'incubatorType = y__})
+
+type instance Data.ProtoLens.Field "usesRemaining" EggIncubator =
+     Data.Int.Int32
+
+instance Data.ProtoLens.HasField "usesRemaining" EggIncubator
+         EggIncubator where
+        field _
+          = Lens.Family2.Unchecked.lens _EggIncubator'usesRemaining
+              (\ x__ y__ -> x__{_EggIncubator'usesRemaining = y__})
+
+type instance Data.ProtoLens.Field "pokemonId" EggIncubator =
+     Data.Word.Word64
+
+instance Data.ProtoLens.HasField "pokemonId" EggIncubator
+         EggIncubator where
+        field _
+          = Lens.Family2.Unchecked.lens _EggIncubator'pokemonId
+              (\ x__ y__ -> x__{_EggIncubator'pokemonId = y__})
+
+type instance Data.ProtoLens.Field "startKmWalked" EggIncubator =
+     Prelude.Double
+
+instance Data.ProtoLens.HasField "startKmWalked" EggIncubator
+         EggIncubator where
+        field _
+          = Lens.Family2.Unchecked.lens _EggIncubator'startKmWalked
+              (\ x__ y__ -> x__{_EggIncubator'startKmWalked = y__})
+
+type instance Data.ProtoLens.Field "targetKmWalked" EggIncubator =
+     Prelude.Double
+
+instance Data.ProtoLens.HasField "targetKmWalked" EggIncubator
+         EggIncubator where
+        field _
+          = Lens.Family2.Unchecked.lens _EggIncubator'targetKmWalked
+              (\ x__ y__ -> x__{_EggIncubator'targetKmWalked = y__})
+
+instance Data.Default.Class.Default EggIncubator where
+        def
+          = EggIncubator{_EggIncubator'id = Data.ProtoLens.fieldDefault,
+                         _EggIncubator'itemId = Data.Default.Class.def,
+                         _EggIncubator'incubatorType = Data.Default.Class.def,
+                         _EggIncubator'usesRemaining = Data.ProtoLens.fieldDefault,
+                         _EggIncubator'pokemonId = Data.ProtoLens.fieldDefault,
+                         _EggIncubator'startKmWalked = Data.ProtoLens.fieldDefault,
+                         _EggIncubator'targetKmWalked = Data.ProtoLens.fieldDefault}
+
+instance Data.ProtoLens.Message EggIncubator where
+        descriptor
+          = let id__field_descriptor
+                  = Data.ProtoLens.FieldDescriptor "id"
+                      (Data.ProtoLens.StringField ::
+                         Data.ProtoLens.FieldTypeDescriptor Data.Text.Text)
+                      (Data.ProtoLens.PlainField Data.ProtoLens.Optional id)
+                itemId__field_descriptor
+                  = Data.ProtoLens.FieldDescriptor "item_id"
+                      (Data.ProtoLens.EnumField ::
+                         Data.ProtoLens.FieldTypeDescriptor
+                           Proto.POGOProtos.Inventory.Item.ItemId.ItemId)
+                      (Data.ProtoLens.PlainField Data.ProtoLens.Optional itemId)
+                incubatorType__field_descriptor
+                  = Data.ProtoLens.FieldDescriptor "incubator_type"
+                      (Data.ProtoLens.EnumField ::
+                         Data.ProtoLens.FieldTypeDescriptor
+                           Proto.POGOProtos.Inventory.EggIncubatorType.EggIncubatorType)
+                      (Data.ProtoLens.PlainField Data.ProtoLens.Optional incubatorType)
+                usesRemaining__field_descriptor
+                  = Data.ProtoLens.FieldDescriptor "uses_remaining"
+                      (Data.ProtoLens.Int32Field ::
+                         Data.ProtoLens.FieldTypeDescriptor Data.Int.Int32)
+                      (Data.ProtoLens.PlainField Data.ProtoLens.Optional usesRemaining)
+                pokemonId__field_descriptor
+                  = Data.ProtoLens.FieldDescriptor "pokemon_id"
+                      (Data.ProtoLens.UInt64Field ::
+                         Data.ProtoLens.FieldTypeDescriptor Data.Word.Word64)
+                      (Data.ProtoLens.PlainField Data.ProtoLens.Optional pokemonId)
+                startKmWalked__field_descriptor
+                  = Data.ProtoLens.FieldDescriptor "start_km_walked"
+                      (Data.ProtoLens.DoubleField ::
+                         Data.ProtoLens.FieldTypeDescriptor Prelude.Double)
+                      (Data.ProtoLens.PlainField Data.ProtoLens.Optional startKmWalked)
+                targetKmWalked__field_descriptor
+                  = Data.ProtoLens.FieldDescriptor "target_km_walked"
+                      (Data.ProtoLens.DoubleField ::
+                         Data.ProtoLens.FieldTypeDescriptor Prelude.Double)
+                      (Data.ProtoLens.PlainField Data.ProtoLens.Optional targetKmWalked)
+              in
+              Data.ProtoLens.MessageDescriptor
+                (Data.Map.fromList
+                   [(Data.ProtoLens.Tag 1, id__field_descriptor),
+                    (Data.ProtoLens.Tag 2, itemId__field_descriptor),
+                    (Data.ProtoLens.Tag 3, incubatorType__field_descriptor),
+                    (Data.ProtoLens.Tag 4, usesRemaining__field_descriptor),
+                    (Data.ProtoLens.Tag 5, pokemonId__field_descriptor),
+                    (Data.ProtoLens.Tag 6, startKmWalked__field_descriptor),
+                    (Data.ProtoLens.Tag 7, targetKmWalked__field_descriptor)])
+                (Data.Map.fromList
+                   [("id", id__field_descriptor),
+                    ("item_id", itemId__field_descriptor),
+                    ("incubator_type", incubatorType__field_descriptor),
+                    ("uses_remaining", usesRemaining__field_descriptor),
+                    ("pokemon_id", pokemonId__field_descriptor),
+                    ("start_km_walked", startKmWalked__field_descriptor),
+                    ("target_km_walked", targetKmWalked__field_descriptor)])
+
+id ::
+   forall msg msg' . Data.ProtoLens.HasField "id" msg msg' =>
+     Lens.Family2.Lens msg msg' (Data.ProtoLens.Field "id" msg)
+       (Data.ProtoLens.Field "id" msg')
+id
+  = Data.ProtoLens.field
+      (Data.ProtoLens.ProxySym :: Data.ProtoLens.ProxySym "id")
+
+incubatorType ::
+              forall msg msg' .
+                Data.ProtoLens.HasField "incubatorType" msg msg' =>
+                Lens.Family2.Lens msg msg'
+                  (Data.ProtoLens.Field "incubatorType" msg)
+                  (Data.ProtoLens.Field "incubatorType" msg')
+incubatorType
+  = Data.ProtoLens.field
+      (Data.ProtoLens.ProxySym ::
+         Data.ProtoLens.ProxySym "incubatorType")
+
+itemId ::
+       forall msg msg' . Data.ProtoLens.HasField "itemId" msg msg' =>
+         Lens.Family2.Lens msg msg' (Data.ProtoLens.Field "itemId" msg)
+           (Data.ProtoLens.Field "itemId" msg')
+itemId
+  = Data.ProtoLens.field
+      (Data.ProtoLens.ProxySym :: Data.ProtoLens.ProxySym "itemId")
+
+pokemonId ::
+          forall msg msg' . Data.ProtoLens.HasField "pokemonId" msg msg' =>
+            Lens.Family2.Lens msg msg' (Data.ProtoLens.Field "pokemonId" msg)
+              (Data.ProtoLens.Field "pokemonId" msg')
+pokemonId
+  = Data.ProtoLens.field
+      (Data.ProtoLens.ProxySym :: Data.ProtoLens.ProxySym "pokemonId")
+
+startKmWalked ::
+              forall msg msg' .
+                Data.ProtoLens.HasField "startKmWalked" msg msg' =>
+                Lens.Family2.Lens msg msg'
+                  (Data.ProtoLens.Field "startKmWalked" msg)
+                  (Data.ProtoLens.Field "startKmWalked" msg')
+startKmWalked
+  = Data.ProtoLens.field
+      (Data.ProtoLens.ProxySym ::
+         Data.ProtoLens.ProxySym "startKmWalked")
+
+targetKmWalked ::
+               forall msg msg' .
+                 Data.ProtoLens.HasField "targetKmWalked" msg msg' =>
+                 Lens.Family2.Lens msg msg'
+                   (Data.ProtoLens.Field "targetKmWalked" msg)
+                   (Data.ProtoLens.Field "targetKmWalked" msg')
+targetKmWalked
+  = Data.ProtoLens.field
+      (Data.ProtoLens.ProxySym ::
+         Data.ProtoLens.ProxySym "targetKmWalked")
+
+usesRemaining ::
+              forall msg msg' .
+                Data.ProtoLens.HasField "usesRemaining" msg msg' =>
+                Lens.Family2.Lens msg msg'
+                  (Data.ProtoLens.Field "usesRemaining" msg)
+                  (Data.ProtoLens.Field "usesRemaining" msg')
+usesRemaining
+  = Data.ProtoLens.field
+      (Data.ProtoLens.ProxySym ::
+         Data.ProtoLens.ProxySym "usesRemaining")
diff --git a/src/Proto/POGOProtos/Inventory/EggIncubatorType.hs b/src/Proto/POGOProtos/Inventory/EggIncubatorType.hs
new file mode 100644
--- /dev/null
+++ b/src/Proto/POGOProtos/Inventory/EggIncubatorType.hs
@@ -0,0 +1,63 @@
+{- This file was auto-generated from POGOProtos/Inventory/EggIncubatorType.proto by the proto-lens-protoc program. -}
+{-# LANGUAGE ScopedTypeVariables, DataKinds, TypeFamilies,
+  MultiParamTypeClasses, FlexibleContexts, FlexibleInstances #-}
+{-# OPTIONS_GHC -fno-warn-unused-imports#-}
+module Proto.POGOProtos.Inventory.EggIncubatorType where
+import qualified Prelude
+import qualified Data.ProtoLens
+import qualified Data.ProtoLens.Message.Enum
+import qualified Lens.Family2
+import qualified Lens.Family2.Unchecked
+import qualified Data.Default.Class
+import qualified Data.Text
+import qualified Data.Int
+import qualified Data.Word
+import qualified Data.Map
+import qualified Data.ByteString
+
+data EggIncubatorType = INCUBATOR_UNSET
+                      | INCUBATOR_DISTANCE
+                      deriving (Prelude.Show, Prelude.Eq)
+
+instance Data.Default.Class.Default EggIncubatorType where
+        def = INCUBATOR_UNSET
+
+instance Data.ProtoLens.FieldDefault EggIncubatorType where
+        fieldDefault = INCUBATOR_UNSET
+
+instance Data.ProtoLens.MessageEnum EggIncubatorType where
+        maybeToEnum 0 = Prelude.Just INCUBATOR_UNSET
+        maybeToEnum 1 = Prelude.Just INCUBATOR_DISTANCE
+        maybeToEnum _ = Prelude.Nothing
+        showEnum INCUBATOR_UNSET = "INCUBATOR_UNSET"
+        showEnum INCUBATOR_DISTANCE = "INCUBATOR_DISTANCE"
+        readEnum "INCUBATOR_UNSET" = Prelude.Just INCUBATOR_UNSET
+        readEnum "INCUBATOR_DISTANCE" = Prelude.Just INCUBATOR_DISTANCE
+        readEnum _ = Prelude.Nothing
+
+instance Prelude.Enum EggIncubatorType where
+        toEnum k__
+          = Prelude.maybe
+              (Prelude.error
+                 ((Prelude.++) "toEnum: unknown value for enum EggIncubatorType: "
+                    (Prelude.show k__)))
+              Prelude.id
+              (Data.ProtoLens.maybeToEnum k__)
+        fromEnum INCUBATOR_UNSET = 0
+        fromEnum INCUBATOR_DISTANCE = 1
+        succ INCUBATOR_DISTANCE
+          = Prelude.error
+              "Ident \"EggIncubatorType\".Ident \"succ\": bad argument Ident \"INCUBATOR_DISTANCE\". This value would be out of bounds."
+        succ INCUBATOR_UNSET = INCUBATOR_DISTANCE
+        pred INCUBATOR_UNSET
+          = Prelude.error
+              "Ident \"EggIncubatorType\".Ident \"pred\": bad argument Ident \"INCUBATOR_UNSET\". This value would be out of bounds."
+        pred INCUBATOR_DISTANCE = INCUBATOR_UNSET
+        enumFrom = Data.ProtoLens.Message.Enum.messageEnumFrom
+        enumFromTo = Data.ProtoLens.Message.Enum.messageEnumFromTo
+        enumFromThen = Data.ProtoLens.Message.Enum.messageEnumFromThen
+        enumFromThenTo = Data.ProtoLens.Message.Enum.messageEnumFromThenTo
+
+instance Prelude.Bounded EggIncubatorType where
+        minBound = INCUBATOR_UNSET
+        maxBound = INCUBATOR_DISTANCE
diff --git a/src/Proto/POGOProtos/Inventory/EggIncubators.hs b/src/Proto/POGOProtos/Inventory/EggIncubators.hs
new file mode 100644
--- /dev/null
+++ b/src/Proto/POGOProtos/Inventory/EggIncubators.hs
@@ -0,0 +1,58 @@
+{- This file was auto-generated from POGOProtos/Inventory/EggIncubators.proto by the proto-lens-protoc program. -}
+{-# LANGUAGE ScopedTypeVariables, DataKinds, TypeFamilies,
+  MultiParamTypeClasses, FlexibleContexts, FlexibleInstances #-}
+{-# OPTIONS_GHC -fno-warn-unused-imports#-}
+module Proto.POGOProtos.Inventory.EggIncubators where
+import qualified Prelude
+import qualified Data.ProtoLens
+import qualified Data.ProtoLens.Message.Enum
+import qualified Lens.Family2
+import qualified Lens.Family2.Unchecked
+import qualified Data.Default.Class
+import qualified Data.Text
+import qualified Data.Int
+import qualified Data.Word
+import qualified Data.Map
+import qualified Data.ByteString
+import qualified Proto.POGOProtos.Inventory.EggIncubator
+
+data EggIncubators = EggIncubators{_EggIncubators'eggIncubator ::
+                                   [Proto.POGOProtos.Inventory.EggIncubator.EggIncubator]}
+                   deriving (Prelude.Show, Prelude.Eq)
+
+type instance Data.ProtoLens.Field "eggIncubator" EggIncubators =
+     [Proto.POGOProtos.Inventory.EggIncubator.EggIncubator]
+
+instance Data.ProtoLens.HasField "eggIncubator" EggIncubators
+         EggIncubators where
+        field _
+          = Lens.Family2.Unchecked.lens _EggIncubators'eggIncubator
+              (\ x__ y__ -> x__{_EggIncubators'eggIncubator = y__})
+
+instance Data.Default.Class.Default EggIncubators where
+        def = EggIncubators{_EggIncubators'eggIncubator = []}
+
+instance Data.ProtoLens.Message EggIncubators where
+        descriptor
+          = let eggIncubator__field_descriptor
+                  = Data.ProtoLens.FieldDescriptor "egg_incubator"
+                      (Data.ProtoLens.MessageField ::
+                         Data.ProtoLens.FieldTypeDescriptor
+                           Proto.POGOProtos.Inventory.EggIncubator.EggIncubator)
+                      (Data.ProtoLens.RepeatedField Data.ProtoLens.Unpacked eggIncubator)
+              in
+              Data.ProtoLens.MessageDescriptor
+                (Data.Map.fromList
+                   [(Data.ProtoLens.Tag 1, eggIncubator__field_descriptor)])
+                (Data.Map.fromList
+                   [("egg_incubator", eggIncubator__field_descriptor)])
+
+eggIncubator ::
+             forall msg msg' .
+               Data.ProtoLens.HasField "eggIncubator" msg msg' =>
+               Lens.Family2.Lens msg msg'
+                 (Data.ProtoLens.Field "eggIncubator" msg)
+                 (Data.ProtoLens.Field "eggIncubator" msg')
+eggIncubator
+  = Data.ProtoLens.field
+      (Data.ProtoLens.ProxySym :: Data.ProtoLens.ProxySym "eggIncubator")
diff --git a/src/Proto/POGOProtos/Inventory/InventoryDelta.hs b/src/Proto/POGOProtos/Inventory/InventoryDelta.hs
new file mode 100644
--- /dev/null
+++ b/src/Proto/POGOProtos/Inventory/InventoryDelta.hs
@@ -0,0 +1,123 @@
+{- This file was auto-generated from POGOProtos/Inventory/InventoryDelta.proto by the proto-lens-protoc program. -}
+{-# LANGUAGE ScopedTypeVariables, DataKinds, TypeFamilies,
+  MultiParamTypeClasses, FlexibleContexts, FlexibleInstances #-}
+{-# OPTIONS_GHC -fno-warn-unused-imports#-}
+module Proto.POGOProtos.Inventory.InventoryDelta where
+import qualified Prelude
+import qualified Data.ProtoLens
+import qualified Data.ProtoLens.Message.Enum
+import qualified Lens.Family2
+import qualified Lens.Family2.Unchecked
+import qualified Data.Default.Class
+import qualified Data.Text
+import qualified Data.Int
+import qualified Data.Word
+import qualified Data.Map
+import qualified Data.ByteString
+import qualified Proto.POGOProtos.Inventory.InventoryItem
+
+data InventoryDelta = InventoryDelta{_InventoryDelta'originalTimestampMs
+                                     :: Data.Int.Int64,
+                                     _InventoryDelta'newTimestampMs :: Data.Int.Int64,
+                                     _InventoryDelta'inventoryItems ::
+                                     [Proto.POGOProtos.Inventory.InventoryItem.InventoryItem]}
+                    deriving (Prelude.Show, Prelude.Eq)
+
+type instance
+     Data.ProtoLens.Field "originalTimestampMs" InventoryDelta =
+     Data.Int.Int64
+
+instance Data.ProtoLens.HasField "originalTimestampMs"
+         InventoryDelta InventoryDelta where
+        field _
+          = Lens.Family2.Unchecked.lens _InventoryDelta'originalTimestampMs
+              (\ x__ y__ -> x__{_InventoryDelta'originalTimestampMs = y__})
+
+type instance Data.ProtoLens.Field "newTimestampMs" InventoryDelta
+     = Data.Int.Int64
+
+instance Data.ProtoLens.HasField "newTimestampMs" InventoryDelta
+         InventoryDelta where
+        field _
+          = Lens.Family2.Unchecked.lens _InventoryDelta'newTimestampMs
+              (\ x__ y__ -> x__{_InventoryDelta'newTimestampMs = y__})
+
+type instance Data.ProtoLens.Field "inventoryItems" InventoryDelta
+     = [Proto.POGOProtos.Inventory.InventoryItem.InventoryItem]
+
+instance Data.ProtoLens.HasField "inventoryItems" InventoryDelta
+         InventoryDelta where
+        field _
+          = Lens.Family2.Unchecked.lens _InventoryDelta'inventoryItems
+              (\ x__ y__ -> x__{_InventoryDelta'inventoryItems = y__})
+
+instance Data.Default.Class.Default InventoryDelta where
+        def
+          = InventoryDelta{_InventoryDelta'originalTimestampMs =
+                             Data.ProtoLens.fieldDefault,
+                           _InventoryDelta'newTimestampMs = Data.ProtoLens.fieldDefault,
+                           _InventoryDelta'inventoryItems = []}
+
+instance Data.ProtoLens.Message InventoryDelta where
+        descriptor
+          = let originalTimestampMs__field_descriptor
+                  = Data.ProtoLens.FieldDescriptor "original_timestamp_ms"
+                      (Data.ProtoLens.Int64Field ::
+                         Data.ProtoLens.FieldTypeDescriptor Data.Int.Int64)
+                      (Data.ProtoLens.PlainField Data.ProtoLens.Optional
+                         originalTimestampMs)
+                newTimestampMs__field_descriptor
+                  = Data.ProtoLens.FieldDescriptor "new_timestamp_ms"
+                      (Data.ProtoLens.Int64Field ::
+                         Data.ProtoLens.FieldTypeDescriptor Data.Int.Int64)
+                      (Data.ProtoLens.PlainField Data.ProtoLens.Optional newTimestampMs)
+                inventoryItems__field_descriptor
+                  = Data.ProtoLens.FieldDescriptor "inventory_items"
+                      (Data.ProtoLens.MessageField ::
+                         Data.ProtoLens.FieldTypeDescriptor
+                           Proto.POGOProtos.Inventory.InventoryItem.InventoryItem)
+                      (Data.ProtoLens.RepeatedField Data.ProtoLens.Unpacked
+                         inventoryItems)
+              in
+              Data.ProtoLens.MessageDescriptor
+                (Data.Map.fromList
+                   [(Data.ProtoLens.Tag 1, originalTimestampMs__field_descriptor),
+                    (Data.ProtoLens.Tag 2, newTimestampMs__field_descriptor),
+                    (Data.ProtoLens.Tag 3, inventoryItems__field_descriptor)])
+                (Data.Map.fromList
+                   [("original_timestamp_ms", originalTimestampMs__field_descriptor),
+                    ("new_timestamp_ms", newTimestampMs__field_descriptor),
+                    ("inventory_items", inventoryItems__field_descriptor)])
+
+inventoryItems ::
+               forall msg msg' .
+                 Data.ProtoLens.HasField "inventoryItems" msg msg' =>
+                 Lens.Family2.Lens msg msg'
+                   (Data.ProtoLens.Field "inventoryItems" msg)
+                   (Data.ProtoLens.Field "inventoryItems" msg')
+inventoryItems
+  = Data.ProtoLens.field
+      (Data.ProtoLens.ProxySym ::
+         Data.ProtoLens.ProxySym "inventoryItems")
+
+newTimestampMs ::
+               forall msg msg' .
+                 Data.ProtoLens.HasField "newTimestampMs" msg msg' =>
+                 Lens.Family2.Lens msg msg'
+                   (Data.ProtoLens.Field "newTimestampMs" msg)
+                   (Data.ProtoLens.Field "newTimestampMs" msg')
+newTimestampMs
+  = Data.ProtoLens.field
+      (Data.ProtoLens.ProxySym ::
+         Data.ProtoLens.ProxySym "newTimestampMs")
+
+originalTimestampMs ::
+                    forall msg msg' .
+                      Data.ProtoLens.HasField "originalTimestampMs" msg msg' =>
+                      Lens.Family2.Lens msg msg'
+                        (Data.ProtoLens.Field "originalTimestampMs" msg)
+                        (Data.ProtoLens.Field "originalTimestampMs" msg')
+originalTimestampMs
+  = Data.ProtoLens.field
+      (Data.ProtoLens.ProxySym ::
+         Data.ProtoLens.ProxySym "originalTimestampMs")
diff --git a/src/Proto/POGOProtos/Inventory/InventoryItem.hs b/src/Proto/POGOProtos/Inventory/InventoryItem.hs
new file mode 100644
--- /dev/null
+++ b/src/Proto/POGOProtos/Inventory/InventoryItem.hs
@@ -0,0 +1,146 @@
+{- This file was auto-generated from POGOProtos/Inventory/InventoryItem.proto by the proto-lens-protoc program. -}
+{-# LANGUAGE ScopedTypeVariables, DataKinds, TypeFamilies,
+  MultiParamTypeClasses, FlexibleContexts, FlexibleInstances #-}
+{-# OPTIONS_GHC -fno-warn-unused-imports#-}
+module Proto.POGOProtos.Inventory.InventoryItem where
+import qualified Prelude
+import qualified Data.ProtoLens
+import qualified Data.ProtoLens.Message.Enum
+import qualified Lens.Family2
+import qualified Lens.Family2.Unchecked
+import qualified Data.Default.Class
+import qualified Data.Text
+import qualified Data.Int
+import qualified Data.Word
+import qualified Data.Map
+import qualified Data.ByteString
+import qualified Proto.POGOProtos.Inventory.InventoryItemData
+
+data InventoryItem = InventoryItem{_InventoryItem'modifiedTimestampMs
+                                   :: Data.Int.Int64,
+                                   _InventoryItem'deletedItemKey :: Data.Int.Int64,
+                                   _InventoryItem'inventoryItemData ::
+                                   Prelude.Maybe
+                                     Proto.POGOProtos.Inventory.InventoryItemData.InventoryItemData}
+                   deriving (Prelude.Show, Prelude.Eq)
+
+type instance
+     Data.ProtoLens.Field "modifiedTimestampMs" InventoryItem =
+     Data.Int.Int64
+
+instance Data.ProtoLens.HasField "modifiedTimestampMs"
+         InventoryItem InventoryItem where
+        field _
+          = Lens.Family2.Unchecked.lens _InventoryItem'modifiedTimestampMs
+              (\ x__ y__ -> x__{_InventoryItem'modifiedTimestampMs = y__})
+
+type instance Data.ProtoLens.Field "deletedItemKey" InventoryItem =
+     Data.Int.Int64
+
+instance Data.ProtoLens.HasField "deletedItemKey" InventoryItem
+         InventoryItem where
+        field _
+          = Lens.Family2.Unchecked.lens _InventoryItem'deletedItemKey
+              (\ x__ y__ -> x__{_InventoryItem'deletedItemKey = y__})
+
+type instance
+     Data.ProtoLens.Field "inventoryItemData" InventoryItem =
+     Proto.POGOProtos.Inventory.InventoryItemData.InventoryItemData
+
+instance Data.ProtoLens.HasField "inventoryItemData" InventoryItem
+         InventoryItem where
+        field _
+          = (Prelude..) maybe'inventoryItemData
+              (Data.ProtoLens.maybeLens Data.Default.Class.def)
+
+type instance
+     Data.ProtoLens.Field "maybe'inventoryItemData" InventoryItem =
+     Prelude.Maybe
+       Proto.POGOProtos.Inventory.InventoryItemData.InventoryItemData
+
+instance Data.ProtoLens.HasField "maybe'inventoryItemData"
+         InventoryItem InventoryItem where
+        field _
+          = Lens.Family2.Unchecked.lens _InventoryItem'inventoryItemData
+              (\ x__ y__ -> x__{_InventoryItem'inventoryItemData = y__})
+
+instance Data.Default.Class.Default InventoryItem where
+        def
+          = InventoryItem{_InventoryItem'modifiedTimestampMs =
+                            Data.ProtoLens.fieldDefault,
+                          _InventoryItem'deletedItemKey = Data.ProtoLens.fieldDefault,
+                          _InventoryItem'inventoryItemData = Prelude.Nothing}
+
+instance Data.ProtoLens.Message InventoryItem where
+        descriptor
+          = let modifiedTimestampMs__field_descriptor
+                  = Data.ProtoLens.FieldDescriptor "modified_timestamp_ms"
+                      (Data.ProtoLens.Int64Field ::
+                         Data.ProtoLens.FieldTypeDescriptor Data.Int.Int64)
+                      (Data.ProtoLens.PlainField Data.ProtoLens.Optional
+                         modifiedTimestampMs)
+                deletedItemKey__field_descriptor
+                  = Data.ProtoLens.FieldDescriptor "deleted_item_key"
+                      (Data.ProtoLens.Int64Field ::
+                         Data.ProtoLens.FieldTypeDescriptor Data.Int.Int64)
+                      (Data.ProtoLens.PlainField Data.ProtoLens.Optional deletedItemKey)
+                inventoryItemData__field_descriptor
+                  = Data.ProtoLens.FieldDescriptor "inventory_item_data"
+                      (Data.ProtoLens.MessageField ::
+                         Data.ProtoLens.FieldTypeDescriptor
+                           Proto.POGOProtos.Inventory.InventoryItemData.InventoryItemData)
+                      (Data.ProtoLens.OptionalField maybe'inventoryItemData)
+              in
+              Data.ProtoLens.MessageDescriptor
+                (Data.Map.fromList
+                   [(Data.ProtoLens.Tag 1, modifiedTimestampMs__field_descriptor),
+                    (Data.ProtoLens.Tag 2, deletedItemKey__field_descriptor),
+                    (Data.ProtoLens.Tag 3, inventoryItemData__field_descriptor)])
+                (Data.Map.fromList
+                   [("modified_timestamp_ms", modifiedTimestampMs__field_descriptor),
+                    ("deleted_item_key", deletedItemKey__field_descriptor),
+                    ("inventory_item_data", inventoryItemData__field_descriptor)])
+
+deletedItemKey ::
+               forall msg msg' .
+                 Data.ProtoLens.HasField "deletedItemKey" msg msg' =>
+                 Lens.Family2.Lens msg msg'
+                   (Data.ProtoLens.Field "deletedItemKey" msg)
+                   (Data.ProtoLens.Field "deletedItemKey" msg')
+deletedItemKey
+  = Data.ProtoLens.field
+      (Data.ProtoLens.ProxySym ::
+         Data.ProtoLens.ProxySym "deletedItemKey")
+
+inventoryItemData ::
+                  forall msg msg' .
+                    Data.ProtoLens.HasField "inventoryItemData" msg msg' =>
+                    Lens.Family2.Lens msg msg'
+                      (Data.ProtoLens.Field "inventoryItemData" msg)
+                      (Data.ProtoLens.Field "inventoryItemData" msg')
+inventoryItemData
+  = Data.ProtoLens.field
+      (Data.ProtoLens.ProxySym ::
+         Data.ProtoLens.ProxySym "inventoryItemData")
+
+maybe'inventoryItemData ::
+                        forall msg msg' .
+                          Data.ProtoLens.HasField "maybe'inventoryItemData" msg msg' =>
+                          Lens.Family2.Lens msg msg'
+                            (Data.ProtoLens.Field "maybe'inventoryItemData" msg)
+                            (Data.ProtoLens.Field "maybe'inventoryItemData" msg')
+maybe'inventoryItemData
+  = Data.ProtoLens.field
+      (Data.ProtoLens.ProxySym ::
+         Data.ProtoLens.ProxySym "maybe'inventoryItemData")
+
+modifiedTimestampMs ::
+                    forall msg msg' .
+                      Data.ProtoLens.HasField "modifiedTimestampMs" msg msg' =>
+                      Lens.Family2.Lens msg msg'
+                        (Data.ProtoLens.Field "modifiedTimestampMs" msg)
+                        (Data.ProtoLens.Field "modifiedTimestampMs" msg')
+modifiedTimestampMs
+  = Data.ProtoLens.field
+      (Data.ProtoLens.ProxySym ::
+         Data.ProtoLens.ProxySym "modifiedTimestampMs")
diff --git a/src/Proto/POGOProtos/Inventory/InventoryItemData.hs b/src/Proto/POGOProtos/Inventory/InventoryItemData.hs
new file mode 100644
--- /dev/null
+++ b/src/Proto/POGOProtos/Inventory/InventoryItemData.hs
@@ -0,0 +1,553 @@
+{- This file was auto-generated from POGOProtos/Inventory/InventoryItemData.proto by the proto-lens-protoc program. -}
+{-# LANGUAGE ScopedTypeVariables, DataKinds, TypeFamilies,
+  MultiParamTypeClasses, FlexibleContexts, FlexibleInstances #-}
+{-# OPTIONS_GHC -fno-warn-unused-imports#-}
+module Proto.POGOProtos.Inventory.InventoryItemData where
+import qualified Prelude
+import qualified Data.ProtoLens
+import qualified Data.ProtoLens.Message.Enum
+import qualified Lens.Family2
+import qualified Lens.Family2.Unchecked
+import qualified Data.Default.Class
+import qualified Data.Text
+import qualified Data.Int
+import qualified Data.Word
+import qualified Data.Map
+import qualified Data.ByteString
+import qualified Proto.POGOProtos.Data.Player.PlayerCamera
+import qualified Proto.POGOProtos.Data.Player.PlayerCurrency
+import qualified Proto.POGOProtos.Data.Player.PlayerStats
+import qualified Proto.POGOProtos.Data.PokedexEntry
+import qualified Proto.POGOProtos.Data.PokemonData
+import qualified Proto.POGOProtos.Inventory.AppliedItems
+import qualified Proto.POGOProtos.Inventory.Candy
+import qualified Proto.POGOProtos.Inventory.EggIncubators
+import qualified Proto.POGOProtos.Inventory.InventoryUpgrades
+import qualified Proto.POGOProtos.Inventory.Item.ItemData
+
+data InventoryItemData = InventoryItemData{_InventoryItemData'pokemonData
+                                           ::
+                                           Prelude.Maybe
+                                             Proto.POGOProtos.Data.PokemonData.PokemonData,
+                                           _InventoryItemData'item ::
+                                           Prelude.Maybe
+                                             Proto.POGOProtos.Inventory.Item.ItemData.ItemData,
+                                           _InventoryItemData'pokedexEntry ::
+                                           Prelude.Maybe
+                                             Proto.POGOProtos.Data.PokedexEntry.PokedexEntry,
+                                           _InventoryItemData'playerStats ::
+                                           Prelude.Maybe
+                                             Proto.POGOProtos.Data.Player.PlayerStats.PlayerStats,
+                                           _InventoryItemData'playerCurrency ::
+                                           Prelude.Maybe
+                                             Proto.POGOProtos.Data.Player.PlayerCurrency.PlayerCurrency,
+                                           _InventoryItemData'playerCamera ::
+                                           Prelude.Maybe
+                                             Proto.POGOProtos.Data.Player.PlayerCamera.PlayerCamera,
+                                           _InventoryItemData'inventoryUpgrades ::
+                                           Prelude.Maybe
+                                             Proto.POGOProtos.Inventory.InventoryUpgrades.InventoryUpgrades,
+                                           _InventoryItemData'appliedItems ::
+                                           Prelude.Maybe
+                                             Proto.POGOProtos.Inventory.AppliedItems.AppliedItems,
+                                           _InventoryItemData'eggIncubators ::
+                                           Prelude.Maybe
+                                             Proto.POGOProtos.Inventory.EggIncubators.EggIncubators,
+                                           _InventoryItemData'candy ::
+                                           Prelude.Maybe Proto.POGOProtos.Inventory.Candy.Candy}
+                       deriving (Prelude.Show, Prelude.Eq)
+
+type instance Data.ProtoLens.Field "pokemonData" InventoryItemData
+     = Proto.POGOProtos.Data.PokemonData.PokemonData
+
+instance Data.ProtoLens.HasField "pokemonData" InventoryItemData
+         InventoryItemData where
+        field _
+          = (Prelude..) maybe'pokemonData
+              (Data.ProtoLens.maybeLens Data.Default.Class.def)
+
+type instance
+     Data.ProtoLens.Field "maybe'pokemonData" InventoryItemData =
+     Prelude.Maybe Proto.POGOProtos.Data.PokemonData.PokemonData
+
+instance Data.ProtoLens.HasField "maybe'pokemonData"
+         InventoryItemData InventoryItemData where
+        field _
+          = Lens.Family2.Unchecked.lens _InventoryItemData'pokemonData
+              (\ x__ y__ -> x__{_InventoryItemData'pokemonData = y__})
+
+type instance Data.ProtoLens.Field "item" InventoryItemData =
+     Proto.POGOProtos.Inventory.Item.ItemData.ItemData
+
+instance Data.ProtoLens.HasField "item" InventoryItemData
+         InventoryItemData where
+        field _
+          = (Prelude..) maybe'item
+              (Data.ProtoLens.maybeLens Data.Default.Class.def)
+
+type instance Data.ProtoLens.Field "maybe'item" InventoryItemData =
+     Prelude.Maybe Proto.POGOProtos.Inventory.Item.ItemData.ItemData
+
+instance Data.ProtoLens.HasField "maybe'item" InventoryItemData
+         InventoryItemData where
+        field _
+          = Lens.Family2.Unchecked.lens _InventoryItemData'item
+              (\ x__ y__ -> x__{_InventoryItemData'item = y__})
+
+type instance Data.ProtoLens.Field "pokedexEntry" InventoryItemData
+     = Proto.POGOProtos.Data.PokedexEntry.PokedexEntry
+
+instance Data.ProtoLens.HasField "pokedexEntry" InventoryItemData
+         InventoryItemData where
+        field _
+          = (Prelude..) maybe'pokedexEntry
+              (Data.ProtoLens.maybeLens Data.Default.Class.def)
+
+type instance
+     Data.ProtoLens.Field "maybe'pokedexEntry" InventoryItemData =
+     Prelude.Maybe Proto.POGOProtos.Data.PokedexEntry.PokedexEntry
+
+instance Data.ProtoLens.HasField "maybe'pokedexEntry"
+         InventoryItemData InventoryItemData where
+        field _
+          = Lens.Family2.Unchecked.lens _InventoryItemData'pokedexEntry
+              (\ x__ y__ -> x__{_InventoryItemData'pokedexEntry = y__})
+
+type instance Data.ProtoLens.Field "playerStats" InventoryItemData
+     = Proto.POGOProtos.Data.Player.PlayerStats.PlayerStats
+
+instance Data.ProtoLens.HasField "playerStats" InventoryItemData
+         InventoryItemData where
+        field _
+          = (Prelude..) maybe'playerStats
+              (Data.ProtoLens.maybeLens Data.Default.Class.def)
+
+type instance
+     Data.ProtoLens.Field "maybe'playerStats" InventoryItemData =
+     Prelude.Maybe Proto.POGOProtos.Data.Player.PlayerStats.PlayerStats
+
+instance Data.ProtoLens.HasField "maybe'playerStats"
+         InventoryItemData InventoryItemData where
+        field _
+          = Lens.Family2.Unchecked.lens _InventoryItemData'playerStats
+              (\ x__ y__ -> x__{_InventoryItemData'playerStats = y__})
+
+type instance
+     Data.ProtoLens.Field "playerCurrency" InventoryItemData =
+     Proto.POGOProtos.Data.Player.PlayerCurrency.PlayerCurrency
+
+instance Data.ProtoLens.HasField "playerCurrency" InventoryItemData
+         InventoryItemData where
+        field _
+          = (Prelude..) maybe'playerCurrency
+              (Data.ProtoLens.maybeLens Data.Default.Class.def)
+
+type instance
+     Data.ProtoLens.Field "maybe'playerCurrency" InventoryItemData =
+     Prelude.Maybe
+       Proto.POGOProtos.Data.Player.PlayerCurrency.PlayerCurrency
+
+instance Data.ProtoLens.HasField "maybe'playerCurrency"
+         InventoryItemData InventoryItemData where
+        field _
+          = Lens.Family2.Unchecked.lens _InventoryItemData'playerCurrency
+              (\ x__ y__ -> x__{_InventoryItemData'playerCurrency = y__})
+
+type instance Data.ProtoLens.Field "playerCamera" InventoryItemData
+     = Proto.POGOProtos.Data.Player.PlayerCamera.PlayerCamera
+
+instance Data.ProtoLens.HasField "playerCamera" InventoryItemData
+         InventoryItemData where
+        field _
+          = (Prelude..) maybe'playerCamera
+              (Data.ProtoLens.maybeLens Data.Default.Class.def)
+
+type instance
+     Data.ProtoLens.Field "maybe'playerCamera" InventoryItemData =
+     Prelude.Maybe
+       Proto.POGOProtos.Data.Player.PlayerCamera.PlayerCamera
+
+instance Data.ProtoLens.HasField "maybe'playerCamera"
+         InventoryItemData InventoryItemData where
+        field _
+          = Lens.Family2.Unchecked.lens _InventoryItemData'playerCamera
+              (\ x__ y__ -> x__{_InventoryItemData'playerCamera = y__})
+
+type instance
+     Data.ProtoLens.Field "inventoryUpgrades" InventoryItemData =
+     Proto.POGOProtos.Inventory.InventoryUpgrades.InventoryUpgrades
+
+instance Data.ProtoLens.HasField "inventoryUpgrades"
+         InventoryItemData InventoryItemData where
+        field _
+          = (Prelude..) maybe'inventoryUpgrades
+              (Data.ProtoLens.maybeLens Data.Default.Class.def)
+
+type instance
+     Data.ProtoLens.Field "maybe'inventoryUpgrades" InventoryItemData =
+     Prelude.Maybe
+       Proto.POGOProtos.Inventory.InventoryUpgrades.InventoryUpgrades
+
+instance Data.ProtoLens.HasField "maybe'inventoryUpgrades"
+         InventoryItemData InventoryItemData where
+        field _
+          = Lens.Family2.Unchecked.lens _InventoryItemData'inventoryUpgrades
+              (\ x__ y__ -> x__{_InventoryItemData'inventoryUpgrades = y__})
+
+type instance Data.ProtoLens.Field "appliedItems" InventoryItemData
+     = Proto.POGOProtos.Inventory.AppliedItems.AppliedItems
+
+instance Data.ProtoLens.HasField "appliedItems" InventoryItemData
+         InventoryItemData where
+        field _
+          = (Prelude..) maybe'appliedItems
+              (Data.ProtoLens.maybeLens Data.Default.Class.def)
+
+type instance
+     Data.ProtoLens.Field "maybe'appliedItems" InventoryItemData =
+     Prelude.Maybe Proto.POGOProtos.Inventory.AppliedItems.AppliedItems
+
+instance Data.ProtoLens.HasField "maybe'appliedItems"
+         InventoryItemData InventoryItemData where
+        field _
+          = Lens.Family2.Unchecked.lens _InventoryItemData'appliedItems
+              (\ x__ y__ -> x__{_InventoryItemData'appliedItems = y__})
+
+type instance
+     Data.ProtoLens.Field "eggIncubators" InventoryItemData =
+     Proto.POGOProtos.Inventory.EggIncubators.EggIncubators
+
+instance Data.ProtoLens.HasField "eggIncubators" InventoryItemData
+         InventoryItemData where
+        field _
+          = (Prelude..) maybe'eggIncubators
+              (Data.ProtoLens.maybeLens Data.Default.Class.def)
+
+type instance
+     Data.ProtoLens.Field "maybe'eggIncubators" InventoryItemData =
+     Prelude.Maybe
+       Proto.POGOProtos.Inventory.EggIncubators.EggIncubators
+
+instance Data.ProtoLens.HasField "maybe'eggIncubators"
+         InventoryItemData InventoryItemData where
+        field _
+          = Lens.Family2.Unchecked.lens _InventoryItemData'eggIncubators
+              (\ x__ y__ -> x__{_InventoryItemData'eggIncubators = y__})
+
+type instance Data.ProtoLens.Field "candy" InventoryItemData =
+     Proto.POGOProtos.Inventory.Candy.Candy
+
+instance Data.ProtoLens.HasField "candy" InventoryItemData
+         InventoryItemData where
+        field _
+          = (Prelude..) maybe'candy
+              (Data.ProtoLens.maybeLens Data.Default.Class.def)
+
+type instance Data.ProtoLens.Field "maybe'candy" InventoryItemData
+     = Prelude.Maybe Proto.POGOProtos.Inventory.Candy.Candy
+
+instance Data.ProtoLens.HasField "maybe'candy" InventoryItemData
+         InventoryItemData where
+        field _
+          = Lens.Family2.Unchecked.lens _InventoryItemData'candy
+              (\ x__ y__ -> x__{_InventoryItemData'candy = y__})
+
+instance Data.Default.Class.Default InventoryItemData where
+        def
+          = InventoryItemData{_InventoryItemData'pokemonData =
+                                Prelude.Nothing,
+                              _InventoryItemData'item = Prelude.Nothing,
+                              _InventoryItemData'pokedexEntry = Prelude.Nothing,
+                              _InventoryItemData'playerStats = Prelude.Nothing,
+                              _InventoryItemData'playerCurrency = Prelude.Nothing,
+                              _InventoryItemData'playerCamera = Prelude.Nothing,
+                              _InventoryItemData'inventoryUpgrades = Prelude.Nothing,
+                              _InventoryItemData'appliedItems = Prelude.Nothing,
+                              _InventoryItemData'eggIncubators = Prelude.Nothing,
+                              _InventoryItemData'candy = Prelude.Nothing}
+
+instance Data.ProtoLens.Message InventoryItemData where
+        descriptor
+          = let pokemonData__field_descriptor
+                  = Data.ProtoLens.FieldDescriptor "pokemon_data"
+                      (Data.ProtoLens.MessageField ::
+                         Data.ProtoLens.FieldTypeDescriptor
+                           Proto.POGOProtos.Data.PokemonData.PokemonData)
+                      (Data.ProtoLens.OptionalField maybe'pokemonData)
+                item__field_descriptor
+                  = Data.ProtoLens.FieldDescriptor "item"
+                      (Data.ProtoLens.MessageField ::
+                         Data.ProtoLens.FieldTypeDescriptor
+                           Proto.POGOProtos.Inventory.Item.ItemData.ItemData)
+                      (Data.ProtoLens.OptionalField maybe'item)
+                pokedexEntry__field_descriptor
+                  = Data.ProtoLens.FieldDescriptor "pokedex_entry"
+                      (Data.ProtoLens.MessageField ::
+                         Data.ProtoLens.FieldTypeDescriptor
+                           Proto.POGOProtos.Data.PokedexEntry.PokedexEntry)
+                      (Data.ProtoLens.OptionalField maybe'pokedexEntry)
+                playerStats__field_descriptor
+                  = Data.ProtoLens.FieldDescriptor "player_stats"
+                      (Data.ProtoLens.MessageField ::
+                         Data.ProtoLens.FieldTypeDescriptor
+                           Proto.POGOProtos.Data.Player.PlayerStats.PlayerStats)
+                      (Data.ProtoLens.OptionalField maybe'playerStats)
+                playerCurrency__field_descriptor
+                  = Data.ProtoLens.FieldDescriptor "player_currency"
+                      (Data.ProtoLens.MessageField ::
+                         Data.ProtoLens.FieldTypeDescriptor
+                           Proto.POGOProtos.Data.Player.PlayerCurrency.PlayerCurrency)
+                      (Data.ProtoLens.OptionalField maybe'playerCurrency)
+                playerCamera__field_descriptor
+                  = Data.ProtoLens.FieldDescriptor "player_camera"
+                      (Data.ProtoLens.MessageField ::
+                         Data.ProtoLens.FieldTypeDescriptor
+                           Proto.POGOProtos.Data.Player.PlayerCamera.PlayerCamera)
+                      (Data.ProtoLens.OptionalField maybe'playerCamera)
+                inventoryUpgrades__field_descriptor
+                  = Data.ProtoLens.FieldDescriptor "inventory_upgrades"
+                      (Data.ProtoLens.MessageField ::
+                         Data.ProtoLens.FieldTypeDescriptor
+                           Proto.POGOProtos.Inventory.InventoryUpgrades.InventoryUpgrades)
+                      (Data.ProtoLens.OptionalField maybe'inventoryUpgrades)
+                appliedItems__field_descriptor
+                  = Data.ProtoLens.FieldDescriptor "applied_items"
+                      (Data.ProtoLens.MessageField ::
+                         Data.ProtoLens.FieldTypeDescriptor
+                           Proto.POGOProtos.Inventory.AppliedItems.AppliedItems)
+                      (Data.ProtoLens.OptionalField maybe'appliedItems)
+                eggIncubators__field_descriptor
+                  = Data.ProtoLens.FieldDescriptor "egg_incubators"
+                      (Data.ProtoLens.MessageField ::
+                         Data.ProtoLens.FieldTypeDescriptor
+                           Proto.POGOProtos.Inventory.EggIncubators.EggIncubators)
+                      (Data.ProtoLens.OptionalField maybe'eggIncubators)
+                candy__field_descriptor
+                  = Data.ProtoLens.FieldDescriptor "candy"
+                      (Data.ProtoLens.MessageField ::
+                         Data.ProtoLens.FieldTypeDescriptor
+                           Proto.POGOProtos.Inventory.Candy.Candy)
+                      (Data.ProtoLens.OptionalField maybe'candy)
+              in
+              Data.ProtoLens.MessageDescriptor
+                (Data.Map.fromList
+                   [(Data.ProtoLens.Tag 1, pokemonData__field_descriptor),
+                    (Data.ProtoLens.Tag 2, item__field_descriptor),
+                    (Data.ProtoLens.Tag 3, pokedexEntry__field_descriptor),
+                    (Data.ProtoLens.Tag 4, playerStats__field_descriptor),
+                    (Data.ProtoLens.Tag 5, playerCurrency__field_descriptor),
+                    (Data.ProtoLens.Tag 6, playerCamera__field_descriptor),
+                    (Data.ProtoLens.Tag 7, inventoryUpgrades__field_descriptor),
+                    (Data.ProtoLens.Tag 8, appliedItems__field_descriptor),
+                    (Data.ProtoLens.Tag 9, eggIncubators__field_descriptor),
+                    (Data.ProtoLens.Tag 10, candy__field_descriptor)])
+                (Data.Map.fromList
+                   [("pokemon_data", pokemonData__field_descriptor),
+                    ("item", item__field_descriptor),
+                    ("pokedex_entry", pokedexEntry__field_descriptor),
+                    ("player_stats", playerStats__field_descriptor),
+                    ("player_currency", playerCurrency__field_descriptor),
+                    ("player_camera", playerCamera__field_descriptor),
+                    ("inventory_upgrades", inventoryUpgrades__field_descriptor),
+                    ("applied_items", appliedItems__field_descriptor),
+                    ("egg_incubators", eggIncubators__field_descriptor),
+                    ("candy", candy__field_descriptor)])
+
+appliedItems ::
+             forall msg msg' .
+               Data.ProtoLens.HasField "appliedItems" msg msg' =>
+               Lens.Family2.Lens msg msg'
+                 (Data.ProtoLens.Field "appliedItems" msg)
+                 (Data.ProtoLens.Field "appliedItems" msg')
+appliedItems
+  = Data.ProtoLens.field
+      (Data.ProtoLens.ProxySym :: Data.ProtoLens.ProxySym "appliedItems")
+
+candy ::
+      forall msg msg' . Data.ProtoLens.HasField "candy" msg msg' =>
+        Lens.Family2.Lens msg msg' (Data.ProtoLens.Field "candy" msg)
+          (Data.ProtoLens.Field "candy" msg')
+candy
+  = Data.ProtoLens.field
+      (Data.ProtoLens.ProxySym :: Data.ProtoLens.ProxySym "candy")
+
+eggIncubators ::
+              forall msg msg' .
+                Data.ProtoLens.HasField "eggIncubators" msg msg' =>
+                Lens.Family2.Lens msg msg'
+                  (Data.ProtoLens.Field "eggIncubators" msg)
+                  (Data.ProtoLens.Field "eggIncubators" msg')
+eggIncubators
+  = Data.ProtoLens.field
+      (Data.ProtoLens.ProxySym ::
+         Data.ProtoLens.ProxySym "eggIncubators")
+
+inventoryUpgrades ::
+                  forall msg msg' .
+                    Data.ProtoLens.HasField "inventoryUpgrades" msg msg' =>
+                    Lens.Family2.Lens msg msg'
+                      (Data.ProtoLens.Field "inventoryUpgrades" msg)
+                      (Data.ProtoLens.Field "inventoryUpgrades" msg')
+inventoryUpgrades
+  = Data.ProtoLens.field
+      (Data.ProtoLens.ProxySym ::
+         Data.ProtoLens.ProxySym "inventoryUpgrades")
+
+item ::
+     forall msg msg' . Data.ProtoLens.HasField "item" msg msg' =>
+       Lens.Family2.Lens msg msg' (Data.ProtoLens.Field "item" msg)
+         (Data.ProtoLens.Field "item" msg')
+item
+  = Data.ProtoLens.field
+      (Data.ProtoLens.ProxySym :: Data.ProtoLens.ProxySym "item")
+
+maybe'appliedItems ::
+                   forall msg msg' .
+                     Data.ProtoLens.HasField "maybe'appliedItems" msg msg' =>
+                     Lens.Family2.Lens msg msg'
+                       (Data.ProtoLens.Field "maybe'appliedItems" msg)
+                       (Data.ProtoLens.Field "maybe'appliedItems" msg')
+maybe'appliedItems
+  = Data.ProtoLens.field
+      (Data.ProtoLens.ProxySym ::
+         Data.ProtoLens.ProxySym "maybe'appliedItems")
+
+maybe'candy ::
+            forall msg msg' . Data.ProtoLens.HasField "maybe'candy" msg msg' =>
+              Lens.Family2.Lens msg msg' (Data.ProtoLens.Field "maybe'candy" msg)
+                (Data.ProtoLens.Field "maybe'candy" msg')
+maybe'candy
+  = Data.ProtoLens.field
+      (Data.ProtoLens.ProxySym :: Data.ProtoLens.ProxySym "maybe'candy")
+
+maybe'eggIncubators ::
+                    forall msg msg' .
+                      Data.ProtoLens.HasField "maybe'eggIncubators" msg msg' =>
+                      Lens.Family2.Lens msg msg'
+                        (Data.ProtoLens.Field "maybe'eggIncubators" msg)
+                        (Data.ProtoLens.Field "maybe'eggIncubators" msg')
+maybe'eggIncubators
+  = Data.ProtoLens.field
+      (Data.ProtoLens.ProxySym ::
+         Data.ProtoLens.ProxySym "maybe'eggIncubators")
+
+maybe'inventoryUpgrades ::
+                        forall msg msg' .
+                          Data.ProtoLens.HasField "maybe'inventoryUpgrades" msg msg' =>
+                          Lens.Family2.Lens msg msg'
+                            (Data.ProtoLens.Field "maybe'inventoryUpgrades" msg)
+                            (Data.ProtoLens.Field "maybe'inventoryUpgrades" msg')
+maybe'inventoryUpgrades
+  = Data.ProtoLens.field
+      (Data.ProtoLens.ProxySym ::
+         Data.ProtoLens.ProxySym "maybe'inventoryUpgrades")
+
+maybe'item ::
+           forall msg msg' . Data.ProtoLens.HasField "maybe'item" msg msg' =>
+             Lens.Family2.Lens msg msg' (Data.ProtoLens.Field "maybe'item" msg)
+               (Data.ProtoLens.Field "maybe'item" msg')
+maybe'item
+  = Data.ProtoLens.field
+      (Data.ProtoLens.ProxySym :: Data.ProtoLens.ProxySym "maybe'item")
+
+maybe'playerCamera ::
+                   forall msg msg' .
+                     Data.ProtoLens.HasField "maybe'playerCamera" msg msg' =>
+                     Lens.Family2.Lens msg msg'
+                       (Data.ProtoLens.Field "maybe'playerCamera" msg)
+                       (Data.ProtoLens.Field "maybe'playerCamera" msg')
+maybe'playerCamera
+  = Data.ProtoLens.field
+      (Data.ProtoLens.ProxySym ::
+         Data.ProtoLens.ProxySym "maybe'playerCamera")
+
+maybe'playerCurrency ::
+                     forall msg msg' .
+                       Data.ProtoLens.HasField "maybe'playerCurrency" msg msg' =>
+                       Lens.Family2.Lens msg msg'
+                         (Data.ProtoLens.Field "maybe'playerCurrency" msg)
+                         (Data.ProtoLens.Field "maybe'playerCurrency" msg')
+maybe'playerCurrency
+  = Data.ProtoLens.field
+      (Data.ProtoLens.ProxySym ::
+         Data.ProtoLens.ProxySym "maybe'playerCurrency")
+
+maybe'playerStats ::
+                  forall msg msg' .
+                    Data.ProtoLens.HasField "maybe'playerStats" msg msg' =>
+                    Lens.Family2.Lens msg msg'
+                      (Data.ProtoLens.Field "maybe'playerStats" msg)
+                      (Data.ProtoLens.Field "maybe'playerStats" msg')
+maybe'playerStats
+  = Data.ProtoLens.field
+      (Data.ProtoLens.ProxySym ::
+         Data.ProtoLens.ProxySym "maybe'playerStats")
+
+maybe'pokedexEntry ::
+                   forall msg msg' .
+                     Data.ProtoLens.HasField "maybe'pokedexEntry" msg msg' =>
+                     Lens.Family2.Lens msg msg'
+                       (Data.ProtoLens.Field "maybe'pokedexEntry" msg)
+                       (Data.ProtoLens.Field "maybe'pokedexEntry" msg')
+maybe'pokedexEntry
+  = Data.ProtoLens.field
+      (Data.ProtoLens.ProxySym ::
+         Data.ProtoLens.ProxySym "maybe'pokedexEntry")
+
+maybe'pokemonData ::
+                  forall msg msg' .
+                    Data.ProtoLens.HasField "maybe'pokemonData" msg msg' =>
+                    Lens.Family2.Lens msg msg'
+                      (Data.ProtoLens.Field "maybe'pokemonData" msg)
+                      (Data.ProtoLens.Field "maybe'pokemonData" msg')
+maybe'pokemonData
+  = Data.ProtoLens.field
+      (Data.ProtoLens.ProxySym ::
+         Data.ProtoLens.ProxySym "maybe'pokemonData")
+
+playerCamera ::
+             forall msg msg' .
+               Data.ProtoLens.HasField "playerCamera" msg msg' =>
+               Lens.Family2.Lens msg msg'
+                 (Data.ProtoLens.Field "playerCamera" msg)
+                 (Data.ProtoLens.Field "playerCamera" msg')
+playerCamera
+  = Data.ProtoLens.field
+      (Data.ProtoLens.ProxySym :: Data.ProtoLens.ProxySym "playerCamera")
+
+playerCurrency ::
+               forall msg msg' .
+                 Data.ProtoLens.HasField "playerCurrency" msg msg' =>
+                 Lens.Family2.Lens msg msg'
+                   (Data.ProtoLens.Field "playerCurrency" msg)
+                   (Data.ProtoLens.Field "playerCurrency" msg')
+playerCurrency
+  = Data.ProtoLens.field
+      (Data.ProtoLens.ProxySym ::
+         Data.ProtoLens.ProxySym "playerCurrency")
+
+playerStats ::
+            forall msg msg' . Data.ProtoLens.HasField "playerStats" msg msg' =>
+              Lens.Family2.Lens msg msg' (Data.ProtoLens.Field "playerStats" msg)
+                (Data.ProtoLens.Field "playerStats" msg')
+playerStats
+  = Data.ProtoLens.field
+      (Data.ProtoLens.ProxySym :: Data.ProtoLens.ProxySym "playerStats")
+
+pokedexEntry ::
+             forall msg msg' .
+               Data.ProtoLens.HasField "pokedexEntry" msg msg' =>
+               Lens.Family2.Lens msg msg'
+                 (Data.ProtoLens.Field "pokedexEntry" msg)
+                 (Data.ProtoLens.Field "pokedexEntry" msg')
+pokedexEntry
+  = Data.ProtoLens.field
+      (Data.ProtoLens.ProxySym :: Data.ProtoLens.ProxySym "pokedexEntry")
+
+pokemonData ::
+            forall msg msg' . Data.ProtoLens.HasField "pokemonData" msg msg' =>
+              Lens.Family2.Lens msg msg' (Data.ProtoLens.Field "pokemonData" msg)
+                (Data.ProtoLens.Field "pokemonData" msg')
+pokemonData
+  = Data.ProtoLens.field
+      (Data.ProtoLens.ProxySym :: Data.ProtoLens.ProxySym "pokemonData")
diff --git a/src/Proto/POGOProtos/Inventory/InventoryUpgrade.hs b/src/Proto/POGOProtos/Inventory/InventoryUpgrade.hs
new file mode 100644
--- /dev/null
+++ b/src/Proto/POGOProtos/Inventory/InventoryUpgrade.hs
@@ -0,0 +1,118 @@
+{- This file was auto-generated from POGOProtos/Inventory/InventoryUpgrade.proto by the proto-lens-protoc program. -}
+{-# LANGUAGE ScopedTypeVariables, DataKinds, TypeFamilies,
+  MultiParamTypeClasses, FlexibleContexts, FlexibleInstances #-}
+{-# OPTIONS_GHC -fno-warn-unused-imports#-}
+module Proto.POGOProtos.Inventory.InventoryUpgrade where
+import qualified Prelude
+import qualified Data.ProtoLens
+import qualified Data.ProtoLens.Message.Enum
+import qualified Lens.Family2
+import qualified Lens.Family2.Unchecked
+import qualified Data.Default.Class
+import qualified Data.Text
+import qualified Data.Int
+import qualified Data.Word
+import qualified Data.Map
+import qualified Data.ByteString
+import qualified Proto.POGOProtos.Inventory.InventoryUpgradeType
+import qualified Proto.POGOProtos.Inventory.Item.ItemId
+
+data InventoryUpgrade = InventoryUpgrade{_InventoryUpgrade'itemId
+                                         :: Proto.POGOProtos.Inventory.Item.ItemId.ItemId,
+                                         _InventoryUpgrade'upgradeType ::
+                                         Proto.POGOProtos.Inventory.InventoryUpgradeType.InventoryUpgradeType,
+                                         _InventoryUpgrade'additionalStorage :: Data.Int.Int32}
+                      deriving (Prelude.Show, Prelude.Eq)
+
+type instance Data.ProtoLens.Field "itemId" InventoryUpgrade =
+     Proto.POGOProtos.Inventory.Item.ItemId.ItemId
+
+instance Data.ProtoLens.HasField "itemId" InventoryUpgrade
+         InventoryUpgrade where
+        field _
+          = Lens.Family2.Unchecked.lens _InventoryUpgrade'itemId
+              (\ x__ y__ -> x__{_InventoryUpgrade'itemId = y__})
+
+type instance Data.ProtoLens.Field "upgradeType" InventoryUpgrade =
+     Proto.POGOProtos.Inventory.InventoryUpgradeType.InventoryUpgradeType
+
+instance Data.ProtoLens.HasField "upgradeType" InventoryUpgrade
+         InventoryUpgrade where
+        field _
+          = Lens.Family2.Unchecked.lens _InventoryUpgrade'upgradeType
+              (\ x__ y__ -> x__{_InventoryUpgrade'upgradeType = y__})
+
+type instance
+     Data.ProtoLens.Field "additionalStorage" InventoryUpgrade =
+     Data.Int.Int32
+
+instance Data.ProtoLens.HasField "additionalStorage"
+         InventoryUpgrade InventoryUpgrade where
+        field _
+          = Lens.Family2.Unchecked.lens _InventoryUpgrade'additionalStorage
+              (\ x__ y__ -> x__{_InventoryUpgrade'additionalStorage = y__})
+
+instance Data.Default.Class.Default InventoryUpgrade where
+        def
+          = InventoryUpgrade{_InventoryUpgrade'itemId =
+                               Data.Default.Class.def,
+                             _InventoryUpgrade'upgradeType = Data.Default.Class.def,
+                             _InventoryUpgrade'additionalStorage = Data.ProtoLens.fieldDefault}
+
+instance Data.ProtoLens.Message InventoryUpgrade where
+        descriptor
+          = let itemId__field_descriptor
+                  = Data.ProtoLens.FieldDescriptor "item_id"
+                      (Data.ProtoLens.EnumField ::
+                         Data.ProtoLens.FieldTypeDescriptor
+                           Proto.POGOProtos.Inventory.Item.ItemId.ItemId)
+                      (Data.ProtoLens.PlainField Data.ProtoLens.Optional itemId)
+                upgradeType__field_descriptor
+                  = Data.ProtoLens.FieldDescriptor "upgrade_type"
+                      (Data.ProtoLens.EnumField ::
+                         Data.ProtoLens.FieldTypeDescriptor
+                           Proto.POGOProtos.Inventory.InventoryUpgradeType.InventoryUpgradeType)
+                      (Data.ProtoLens.PlainField Data.ProtoLens.Optional upgradeType)
+                additionalStorage__field_descriptor
+                  = Data.ProtoLens.FieldDescriptor "additional_storage"
+                      (Data.ProtoLens.Int32Field ::
+                         Data.ProtoLens.FieldTypeDescriptor Data.Int.Int32)
+                      (Data.ProtoLens.PlainField Data.ProtoLens.Optional
+                         additionalStorage)
+              in
+              Data.ProtoLens.MessageDescriptor
+                (Data.Map.fromList
+                   [(Data.ProtoLens.Tag 1, itemId__field_descriptor),
+                    (Data.ProtoLens.Tag 2, upgradeType__field_descriptor),
+                    (Data.ProtoLens.Tag 3, additionalStorage__field_descriptor)])
+                (Data.Map.fromList
+                   [("item_id", itemId__field_descriptor),
+                    ("upgrade_type", upgradeType__field_descriptor),
+                    ("additional_storage", additionalStorage__field_descriptor)])
+
+additionalStorage ::
+                  forall msg msg' .
+                    Data.ProtoLens.HasField "additionalStorage" msg msg' =>
+                    Lens.Family2.Lens msg msg'
+                      (Data.ProtoLens.Field "additionalStorage" msg)
+                      (Data.ProtoLens.Field "additionalStorage" msg')
+additionalStorage
+  = Data.ProtoLens.field
+      (Data.ProtoLens.ProxySym ::
+         Data.ProtoLens.ProxySym "additionalStorage")
+
+itemId ::
+       forall msg msg' . Data.ProtoLens.HasField "itemId" msg msg' =>
+         Lens.Family2.Lens msg msg' (Data.ProtoLens.Field "itemId" msg)
+           (Data.ProtoLens.Field "itemId" msg')
+itemId
+  = Data.ProtoLens.field
+      (Data.ProtoLens.ProxySym :: Data.ProtoLens.ProxySym "itemId")
+
+upgradeType ::
+            forall msg msg' . Data.ProtoLens.HasField "upgradeType" msg msg' =>
+              Lens.Family2.Lens msg msg' (Data.ProtoLens.Field "upgradeType" msg)
+                (Data.ProtoLens.Field "upgradeType" msg')
+upgradeType
+  = Data.ProtoLens.field
+      (Data.ProtoLens.ProxySym :: Data.ProtoLens.ProxySym "upgradeType")
diff --git a/src/Proto/POGOProtos/Inventory/InventoryUpgradeType.hs b/src/Proto/POGOProtos/Inventory/InventoryUpgradeType.hs
new file mode 100644
--- /dev/null
+++ b/src/Proto/POGOProtos/Inventory/InventoryUpgradeType.hs
@@ -0,0 +1,73 @@
+{- This file was auto-generated from POGOProtos/Inventory/InventoryUpgradeType.proto by the proto-lens-protoc program. -}
+{-# LANGUAGE ScopedTypeVariables, DataKinds, TypeFamilies,
+  MultiParamTypeClasses, FlexibleContexts, FlexibleInstances #-}
+{-# OPTIONS_GHC -fno-warn-unused-imports#-}
+module Proto.POGOProtos.Inventory.InventoryUpgradeType where
+import qualified Prelude
+import qualified Data.ProtoLens
+import qualified Data.ProtoLens.Message.Enum
+import qualified Lens.Family2
+import qualified Lens.Family2.Unchecked
+import qualified Data.Default.Class
+import qualified Data.Text
+import qualified Data.Int
+import qualified Data.Word
+import qualified Data.Map
+import qualified Data.ByteString
+
+data InventoryUpgradeType = UPGRADE_UNSET
+                          | INCREASE_ITEM_STORAGE
+                          | INCREASE_POKEMON_STORAGE
+                          deriving (Prelude.Show, Prelude.Eq)
+
+instance Data.Default.Class.Default InventoryUpgradeType where
+        def = UPGRADE_UNSET
+
+instance Data.ProtoLens.FieldDefault InventoryUpgradeType where
+        fieldDefault = UPGRADE_UNSET
+
+instance Data.ProtoLens.MessageEnum InventoryUpgradeType where
+        maybeToEnum 0 = Prelude.Just UPGRADE_UNSET
+        maybeToEnum 1 = Prelude.Just INCREASE_ITEM_STORAGE
+        maybeToEnum 2 = Prelude.Just INCREASE_POKEMON_STORAGE
+        maybeToEnum _ = Prelude.Nothing
+        showEnum UPGRADE_UNSET = "UPGRADE_UNSET"
+        showEnum INCREASE_ITEM_STORAGE = "INCREASE_ITEM_STORAGE"
+        showEnum INCREASE_POKEMON_STORAGE = "INCREASE_POKEMON_STORAGE"
+        readEnum "UPGRADE_UNSET" = Prelude.Just UPGRADE_UNSET
+        readEnum "INCREASE_ITEM_STORAGE"
+          = Prelude.Just INCREASE_ITEM_STORAGE
+        readEnum "INCREASE_POKEMON_STORAGE"
+          = Prelude.Just INCREASE_POKEMON_STORAGE
+        readEnum _ = Prelude.Nothing
+
+instance Prelude.Enum InventoryUpgradeType where
+        toEnum k__
+          = Prelude.maybe
+              (Prelude.error
+                 ((Prelude.++)
+                    "toEnum: unknown value for enum InventoryUpgradeType: "
+                    (Prelude.show k__)))
+              Prelude.id
+              (Data.ProtoLens.maybeToEnum k__)
+        fromEnum UPGRADE_UNSET = 0
+        fromEnum INCREASE_ITEM_STORAGE = 1
+        fromEnum INCREASE_POKEMON_STORAGE = 2
+        succ INCREASE_POKEMON_STORAGE
+          = Prelude.error
+              "Ident \"InventoryUpgradeType\".Ident \"succ\": bad argument Ident \"INCREASE_POKEMON_STORAGE\". This value would be out of bounds."
+        succ UPGRADE_UNSET = INCREASE_ITEM_STORAGE
+        succ INCREASE_ITEM_STORAGE = INCREASE_POKEMON_STORAGE
+        pred UPGRADE_UNSET
+          = Prelude.error
+              "Ident \"InventoryUpgradeType\".Ident \"pred\": bad argument Ident \"UPGRADE_UNSET\". This value would be out of bounds."
+        pred INCREASE_ITEM_STORAGE = UPGRADE_UNSET
+        pred INCREASE_POKEMON_STORAGE = INCREASE_ITEM_STORAGE
+        enumFrom = Data.ProtoLens.Message.Enum.messageEnumFrom
+        enumFromTo = Data.ProtoLens.Message.Enum.messageEnumFromTo
+        enumFromThen = Data.ProtoLens.Message.Enum.messageEnumFromThen
+        enumFromThenTo = Data.ProtoLens.Message.Enum.messageEnumFromThenTo
+
+instance Prelude.Bounded InventoryUpgradeType where
+        minBound = UPGRADE_UNSET
+        maxBound = INCREASE_POKEMON_STORAGE
diff --git a/src/Proto/POGOProtos/Inventory/InventoryUpgrades.hs b/src/Proto/POGOProtos/Inventory/InventoryUpgrades.hs
new file mode 100644
--- /dev/null
+++ b/src/Proto/POGOProtos/Inventory/InventoryUpgrades.hs
@@ -0,0 +1,62 @@
+{- This file was auto-generated from POGOProtos/Inventory/InventoryUpgrades.proto by the proto-lens-protoc program. -}
+{-# LANGUAGE ScopedTypeVariables, DataKinds, TypeFamilies,
+  MultiParamTypeClasses, FlexibleContexts, FlexibleInstances #-}
+{-# OPTIONS_GHC -fno-warn-unused-imports#-}
+module Proto.POGOProtos.Inventory.InventoryUpgrades where
+import qualified Prelude
+import qualified Data.ProtoLens
+import qualified Data.ProtoLens.Message.Enum
+import qualified Lens.Family2
+import qualified Lens.Family2.Unchecked
+import qualified Data.Default.Class
+import qualified Data.Text
+import qualified Data.Int
+import qualified Data.Word
+import qualified Data.Map
+import qualified Data.ByteString
+import qualified Proto.POGOProtos.Inventory.InventoryUpgrade
+
+data InventoryUpgrades = InventoryUpgrades{_InventoryUpgrades'inventoryUpgrades
+                                           ::
+                                           [Proto.POGOProtos.Inventory.InventoryUpgrade.InventoryUpgrade]}
+                       deriving (Prelude.Show, Prelude.Eq)
+
+type instance
+     Data.ProtoLens.Field "inventoryUpgrades" InventoryUpgrades =
+     [Proto.POGOProtos.Inventory.InventoryUpgrade.InventoryUpgrade]
+
+instance Data.ProtoLens.HasField "inventoryUpgrades"
+         InventoryUpgrades InventoryUpgrades where
+        field _
+          = Lens.Family2.Unchecked.lens _InventoryUpgrades'inventoryUpgrades
+              (\ x__ y__ -> x__{_InventoryUpgrades'inventoryUpgrades = y__})
+
+instance Data.Default.Class.Default InventoryUpgrades where
+        def = InventoryUpgrades{_InventoryUpgrades'inventoryUpgrades = []}
+
+instance Data.ProtoLens.Message InventoryUpgrades where
+        descriptor
+          = let inventoryUpgrades__field_descriptor
+                  = Data.ProtoLens.FieldDescriptor "inventory_upgrades"
+                      (Data.ProtoLens.MessageField ::
+                         Data.ProtoLens.FieldTypeDescriptor
+                           Proto.POGOProtos.Inventory.InventoryUpgrade.InventoryUpgrade)
+                      (Data.ProtoLens.RepeatedField Data.ProtoLens.Unpacked
+                         inventoryUpgrades)
+              in
+              Data.ProtoLens.MessageDescriptor
+                (Data.Map.fromList
+                   [(Data.ProtoLens.Tag 1, inventoryUpgrades__field_descriptor)])
+                (Data.Map.fromList
+                   [("inventory_upgrades", inventoryUpgrades__field_descriptor)])
+
+inventoryUpgrades ::
+                  forall msg msg' .
+                    Data.ProtoLens.HasField "inventoryUpgrades" msg msg' =>
+                    Lens.Family2.Lens msg msg'
+                      (Data.ProtoLens.Field "inventoryUpgrades" msg)
+                      (Data.ProtoLens.Field "inventoryUpgrades" msg')
+inventoryUpgrades
+  = Data.ProtoLens.field
+      (Data.ProtoLens.ProxySym ::
+         Data.ProtoLens.ProxySym "inventoryUpgrades")
diff --git a/src/Proto/POGOProtos/Inventory/Item/ItemAward.hs b/src/Proto/POGOProtos/Inventory/Item/ItemAward.hs
new file mode 100644
--- /dev/null
+++ b/src/Proto/POGOProtos/Inventory/Item/ItemAward.hs
@@ -0,0 +1,82 @@
+{- This file was auto-generated from POGOProtos/Inventory/Item/ItemAward.proto by the proto-lens-protoc program. -}
+{-# LANGUAGE ScopedTypeVariables, DataKinds, TypeFamilies,
+  MultiParamTypeClasses, FlexibleContexts, FlexibleInstances #-}
+{-# OPTIONS_GHC -fno-warn-unused-imports#-}
+module Proto.POGOProtos.Inventory.Item.ItemAward where
+import qualified Prelude
+import qualified Data.ProtoLens
+import qualified Data.ProtoLens.Message.Enum
+import qualified Lens.Family2
+import qualified Lens.Family2.Unchecked
+import qualified Data.Default.Class
+import qualified Data.Text
+import qualified Data.Int
+import qualified Data.Word
+import qualified Data.Map
+import qualified Data.ByteString
+import qualified Proto.POGOProtos.Inventory.Item.ItemId
+
+data ItemAward = ItemAward{_ItemAward'itemId ::
+                           Proto.POGOProtos.Inventory.Item.ItemId.ItemId,
+                           _ItemAward'itemCount :: Data.Int.Int32}
+               deriving (Prelude.Show, Prelude.Eq)
+
+type instance Data.ProtoLens.Field "itemId" ItemAward =
+     Proto.POGOProtos.Inventory.Item.ItemId.ItemId
+
+instance Data.ProtoLens.HasField "itemId" ItemAward ItemAward where
+        field _
+          = Lens.Family2.Unchecked.lens _ItemAward'itemId
+              (\ x__ y__ -> x__{_ItemAward'itemId = y__})
+
+type instance Data.ProtoLens.Field "itemCount" ItemAward =
+     Data.Int.Int32
+
+instance Data.ProtoLens.HasField "itemCount" ItemAward ItemAward
+         where
+        field _
+          = Lens.Family2.Unchecked.lens _ItemAward'itemCount
+              (\ x__ y__ -> x__{_ItemAward'itemCount = y__})
+
+instance Data.Default.Class.Default ItemAward where
+        def
+          = ItemAward{_ItemAward'itemId = Data.Default.Class.def,
+                      _ItemAward'itemCount = Data.ProtoLens.fieldDefault}
+
+instance Data.ProtoLens.Message ItemAward where
+        descriptor
+          = let itemId__field_descriptor
+                  = Data.ProtoLens.FieldDescriptor "item_id"
+                      (Data.ProtoLens.EnumField ::
+                         Data.ProtoLens.FieldTypeDescriptor
+                           Proto.POGOProtos.Inventory.Item.ItemId.ItemId)
+                      (Data.ProtoLens.PlainField Data.ProtoLens.Optional itemId)
+                itemCount__field_descriptor
+                  = Data.ProtoLens.FieldDescriptor "item_count"
+                      (Data.ProtoLens.Int32Field ::
+                         Data.ProtoLens.FieldTypeDescriptor Data.Int.Int32)
+                      (Data.ProtoLens.PlainField Data.ProtoLens.Optional itemCount)
+              in
+              Data.ProtoLens.MessageDescriptor
+                (Data.Map.fromList
+                   [(Data.ProtoLens.Tag 1, itemId__field_descriptor),
+                    (Data.ProtoLens.Tag 2, itemCount__field_descriptor)])
+                (Data.Map.fromList
+                   [("item_id", itemId__field_descriptor),
+                    ("item_count", itemCount__field_descriptor)])
+
+itemCount ::
+          forall msg msg' . Data.ProtoLens.HasField "itemCount" msg msg' =>
+            Lens.Family2.Lens msg msg' (Data.ProtoLens.Field "itemCount" msg)
+              (Data.ProtoLens.Field "itemCount" msg')
+itemCount
+  = Data.ProtoLens.field
+      (Data.ProtoLens.ProxySym :: Data.ProtoLens.ProxySym "itemCount")
+
+itemId ::
+       forall msg msg' . Data.ProtoLens.HasField "itemId" msg msg' =>
+         Lens.Family2.Lens msg msg' (Data.ProtoLens.Field "itemId" msg)
+           (Data.ProtoLens.Field "itemId" msg')
+itemId
+  = Data.ProtoLens.field
+      (Data.ProtoLens.ProxySym :: Data.ProtoLens.ProxySym "itemId")
diff --git a/src/Proto/POGOProtos/Inventory/Item/ItemData.hs b/src/Proto/POGOProtos/Inventory/Item/ItemData.hs
new file mode 100644
--- /dev/null
+++ b/src/Proto/POGOProtos/Inventory/Item/ItemData.hs
@@ -0,0 +1,105 @@
+{- This file was auto-generated from POGOProtos/Inventory/Item/ItemData.proto by the proto-lens-protoc program. -}
+{-# LANGUAGE ScopedTypeVariables, DataKinds, TypeFamilies,
+  MultiParamTypeClasses, FlexibleContexts, FlexibleInstances #-}
+{-# OPTIONS_GHC -fno-warn-unused-imports#-}
+module Proto.POGOProtos.Inventory.Item.ItemData where
+import qualified Prelude
+import qualified Data.ProtoLens
+import qualified Data.ProtoLens.Message.Enum
+import qualified Lens.Family2
+import qualified Lens.Family2.Unchecked
+import qualified Data.Default.Class
+import qualified Data.Text
+import qualified Data.Int
+import qualified Data.Word
+import qualified Data.Map
+import qualified Data.ByteString
+import qualified Proto.POGOProtos.Inventory.Item.ItemId
+
+data ItemData = ItemData{_ItemData'itemId ::
+                         Proto.POGOProtos.Inventory.Item.ItemId.ItemId,
+                         _ItemData'count :: Data.Int.Int32,
+                         _ItemData'unseen :: Prelude.Bool}
+              deriving (Prelude.Show, Prelude.Eq)
+
+type instance Data.ProtoLens.Field "itemId" ItemData =
+     Proto.POGOProtos.Inventory.Item.ItemId.ItemId
+
+instance Data.ProtoLens.HasField "itemId" ItemData ItemData where
+        field _
+          = Lens.Family2.Unchecked.lens _ItemData'itemId
+              (\ x__ y__ -> x__{_ItemData'itemId = y__})
+
+type instance Data.ProtoLens.Field "count" ItemData =
+     Data.Int.Int32
+
+instance Data.ProtoLens.HasField "count" ItemData ItemData where
+        field _
+          = Lens.Family2.Unchecked.lens _ItemData'count
+              (\ x__ y__ -> x__{_ItemData'count = y__})
+
+type instance Data.ProtoLens.Field "unseen" ItemData = Prelude.Bool
+
+instance Data.ProtoLens.HasField "unseen" ItemData ItemData where
+        field _
+          = Lens.Family2.Unchecked.lens _ItemData'unseen
+              (\ x__ y__ -> x__{_ItemData'unseen = y__})
+
+instance Data.Default.Class.Default ItemData where
+        def
+          = ItemData{_ItemData'itemId = Data.Default.Class.def,
+                     _ItemData'count = Data.ProtoLens.fieldDefault,
+                     _ItemData'unseen = Data.ProtoLens.fieldDefault}
+
+instance Data.ProtoLens.Message ItemData where
+        descriptor
+          = let itemId__field_descriptor
+                  = Data.ProtoLens.FieldDescriptor "item_id"
+                      (Data.ProtoLens.EnumField ::
+                         Data.ProtoLens.FieldTypeDescriptor
+                           Proto.POGOProtos.Inventory.Item.ItemId.ItemId)
+                      (Data.ProtoLens.PlainField Data.ProtoLens.Optional itemId)
+                count__field_descriptor
+                  = Data.ProtoLens.FieldDescriptor "count"
+                      (Data.ProtoLens.Int32Field ::
+                         Data.ProtoLens.FieldTypeDescriptor Data.Int.Int32)
+                      (Data.ProtoLens.PlainField Data.ProtoLens.Optional count)
+                unseen__field_descriptor
+                  = Data.ProtoLens.FieldDescriptor "unseen"
+                      (Data.ProtoLens.BoolField ::
+                         Data.ProtoLens.FieldTypeDescriptor Prelude.Bool)
+                      (Data.ProtoLens.PlainField Data.ProtoLens.Optional unseen)
+              in
+              Data.ProtoLens.MessageDescriptor
+                (Data.Map.fromList
+                   [(Data.ProtoLens.Tag 1, itemId__field_descriptor),
+                    (Data.ProtoLens.Tag 2, count__field_descriptor),
+                    (Data.ProtoLens.Tag 3, unseen__field_descriptor)])
+                (Data.Map.fromList
+                   [("item_id", itemId__field_descriptor),
+                    ("count", count__field_descriptor),
+                    ("unseen", unseen__field_descriptor)])
+
+count ::
+      forall msg msg' . Data.ProtoLens.HasField "count" msg msg' =>
+        Lens.Family2.Lens msg msg' (Data.ProtoLens.Field "count" msg)
+          (Data.ProtoLens.Field "count" msg')
+count
+  = Data.ProtoLens.field
+      (Data.ProtoLens.ProxySym :: Data.ProtoLens.ProxySym "count")
+
+itemId ::
+       forall msg msg' . Data.ProtoLens.HasField "itemId" msg msg' =>
+         Lens.Family2.Lens msg msg' (Data.ProtoLens.Field "itemId" msg)
+           (Data.ProtoLens.Field "itemId" msg')
+itemId
+  = Data.ProtoLens.field
+      (Data.ProtoLens.ProxySym :: Data.ProtoLens.ProxySym "itemId")
+
+unseen ::
+       forall msg msg' . Data.ProtoLens.HasField "unseen" msg msg' =>
+         Lens.Family2.Lens msg msg' (Data.ProtoLens.Field "unseen" msg)
+           (Data.ProtoLens.Field "unseen" msg')
+unseen
+  = Data.ProtoLens.field
+      (Data.ProtoLens.ProxySym :: Data.ProtoLens.ProxySym "unseen")
diff --git a/src/Proto/POGOProtos/Inventory/Item/ItemId.hs b/src/Proto/POGOProtos/Inventory/Item/ItemId.hs
new file mode 100644
--- /dev/null
+++ b/src/Proto/POGOProtos/Inventory/Item/ItemId.hs
@@ -0,0 +1,265 @@
+{- This file was auto-generated from POGOProtos/Inventory/Item/ItemId.proto by the proto-lens-protoc program. -}
+{-# LANGUAGE ScopedTypeVariables, DataKinds, TypeFamilies,
+  MultiParamTypeClasses, FlexibleContexts, FlexibleInstances #-}
+{-# OPTIONS_GHC -fno-warn-unused-imports#-}
+module Proto.POGOProtos.Inventory.Item.ItemId where
+import qualified Prelude
+import qualified Data.ProtoLens
+import qualified Data.ProtoLens.Message.Enum
+import qualified Lens.Family2
+import qualified Lens.Family2.Unchecked
+import qualified Data.Default.Class
+import qualified Data.Text
+import qualified Data.Int
+import qualified Data.Word
+import qualified Data.Map
+import qualified Data.ByteString
+
+data ItemId = ITEM_UNKNOWN
+            | ITEM_POKE_BALL
+            | ITEM_GREAT_BALL
+            | ITEM_ULTRA_BALL
+            | ITEM_MASTER_BALL
+            | ITEM_POTION
+            | ITEM_SUPER_POTION
+            | ITEM_HYPER_POTION
+            | ITEM_MAX_POTION
+            | ITEM_REVIVE
+            | ITEM_MAX_REVIVE
+            | ITEM_LUCKY_EGG
+            | ITEM_INCENSE_ORDINARY
+            | ITEM_INCENSE_SPICY
+            | ITEM_INCENSE_COOL
+            | ITEM_INCENSE_FLORAL
+            | ITEM_TROY_DISK
+            | ITEM_X_ATTACK
+            | ITEM_X_DEFENSE
+            | ITEM_X_MIRACLE
+            | ITEM_RAZZ_BERRY
+            | ITEM_BLUK_BERRY
+            | ITEM_NANAB_BERRY
+            | ITEM_WEPAR_BERRY
+            | ITEM_PINAP_BERRY
+            | ITEM_SPECIAL_CAMERA
+            | ITEM_INCUBATOR_BASIC_UNLIMITED
+            | ITEM_INCUBATOR_BASIC
+            | ITEM_POKEMON_STORAGE_UPGRADE
+            | ITEM_ITEM_STORAGE_UPGRADE
+            deriving (Prelude.Show, Prelude.Eq)
+
+instance Data.Default.Class.Default ItemId where
+        def = ITEM_UNKNOWN
+
+instance Data.ProtoLens.FieldDefault ItemId where
+        fieldDefault = ITEM_UNKNOWN
+
+instance Data.ProtoLens.MessageEnum ItemId where
+        maybeToEnum 0 = Prelude.Just ITEM_UNKNOWN
+        maybeToEnum 1 = Prelude.Just ITEM_POKE_BALL
+        maybeToEnum 2 = Prelude.Just ITEM_GREAT_BALL
+        maybeToEnum 3 = Prelude.Just ITEM_ULTRA_BALL
+        maybeToEnum 4 = Prelude.Just ITEM_MASTER_BALL
+        maybeToEnum 101 = Prelude.Just ITEM_POTION
+        maybeToEnum 102 = Prelude.Just ITEM_SUPER_POTION
+        maybeToEnum 103 = Prelude.Just ITEM_HYPER_POTION
+        maybeToEnum 104 = Prelude.Just ITEM_MAX_POTION
+        maybeToEnum 201 = Prelude.Just ITEM_REVIVE
+        maybeToEnum 202 = Prelude.Just ITEM_MAX_REVIVE
+        maybeToEnum 301 = Prelude.Just ITEM_LUCKY_EGG
+        maybeToEnum 401 = Prelude.Just ITEM_INCENSE_ORDINARY
+        maybeToEnum 402 = Prelude.Just ITEM_INCENSE_SPICY
+        maybeToEnum 403 = Prelude.Just ITEM_INCENSE_COOL
+        maybeToEnum 404 = Prelude.Just ITEM_INCENSE_FLORAL
+        maybeToEnum 501 = Prelude.Just ITEM_TROY_DISK
+        maybeToEnum 602 = Prelude.Just ITEM_X_ATTACK
+        maybeToEnum 603 = Prelude.Just ITEM_X_DEFENSE
+        maybeToEnum 604 = Prelude.Just ITEM_X_MIRACLE
+        maybeToEnum 701 = Prelude.Just ITEM_RAZZ_BERRY
+        maybeToEnum 702 = Prelude.Just ITEM_BLUK_BERRY
+        maybeToEnum 703 = Prelude.Just ITEM_NANAB_BERRY
+        maybeToEnum 704 = Prelude.Just ITEM_WEPAR_BERRY
+        maybeToEnum 705 = Prelude.Just ITEM_PINAP_BERRY
+        maybeToEnum 801 = Prelude.Just ITEM_SPECIAL_CAMERA
+        maybeToEnum 901 = Prelude.Just ITEM_INCUBATOR_BASIC_UNLIMITED
+        maybeToEnum 902 = Prelude.Just ITEM_INCUBATOR_BASIC
+        maybeToEnum 1001 = Prelude.Just ITEM_POKEMON_STORAGE_UPGRADE
+        maybeToEnum 1002 = Prelude.Just ITEM_ITEM_STORAGE_UPGRADE
+        maybeToEnum _ = Prelude.Nothing
+        showEnum ITEM_UNKNOWN = "ITEM_UNKNOWN"
+        showEnum ITEM_POKE_BALL = "ITEM_POKE_BALL"
+        showEnum ITEM_GREAT_BALL = "ITEM_GREAT_BALL"
+        showEnum ITEM_ULTRA_BALL = "ITEM_ULTRA_BALL"
+        showEnum ITEM_MASTER_BALL = "ITEM_MASTER_BALL"
+        showEnum ITEM_POTION = "ITEM_POTION"
+        showEnum ITEM_SUPER_POTION = "ITEM_SUPER_POTION"
+        showEnum ITEM_HYPER_POTION = "ITEM_HYPER_POTION"
+        showEnum ITEM_MAX_POTION = "ITEM_MAX_POTION"
+        showEnum ITEM_REVIVE = "ITEM_REVIVE"
+        showEnum ITEM_MAX_REVIVE = "ITEM_MAX_REVIVE"
+        showEnum ITEM_LUCKY_EGG = "ITEM_LUCKY_EGG"
+        showEnum ITEM_INCENSE_ORDINARY = "ITEM_INCENSE_ORDINARY"
+        showEnum ITEM_INCENSE_SPICY = "ITEM_INCENSE_SPICY"
+        showEnum ITEM_INCENSE_COOL = "ITEM_INCENSE_COOL"
+        showEnum ITEM_INCENSE_FLORAL = "ITEM_INCENSE_FLORAL"
+        showEnum ITEM_TROY_DISK = "ITEM_TROY_DISK"
+        showEnum ITEM_X_ATTACK = "ITEM_X_ATTACK"
+        showEnum ITEM_X_DEFENSE = "ITEM_X_DEFENSE"
+        showEnum ITEM_X_MIRACLE = "ITEM_X_MIRACLE"
+        showEnum ITEM_RAZZ_BERRY = "ITEM_RAZZ_BERRY"
+        showEnum ITEM_BLUK_BERRY = "ITEM_BLUK_BERRY"
+        showEnum ITEM_NANAB_BERRY = "ITEM_NANAB_BERRY"
+        showEnum ITEM_WEPAR_BERRY = "ITEM_WEPAR_BERRY"
+        showEnum ITEM_PINAP_BERRY = "ITEM_PINAP_BERRY"
+        showEnum ITEM_SPECIAL_CAMERA = "ITEM_SPECIAL_CAMERA"
+        showEnum ITEM_INCUBATOR_BASIC_UNLIMITED
+          = "ITEM_INCUBATOR_BASIC_UNLIMITED"
+        showEnum ITEM_INCUBATOR_BASIC = "ITEM_INCUBATOR_BASIC"
+        showEnum ITEM_POKEMON_STORAGE_UPGRADE
+          = "ITEM_POKEMON_STORAGE_UPGRADE"
+        showEnum ITEM_ITEM_STORAGE_UPGRADE = "ITEM_ITEM_STORAGE_UPGRADE"
+        readEnum "ITEM_UNKNOWN" = Prelude.Just ITEM_UNKNOWN
+        readEnum "ITEM_POKE_BALL" = Prelude.Just ITEM_POKE_BALL
+        readEnum "ITEM_GREAT_BALL" = Prelude.Just ITEM_GREAT_BALL
+        readEnum "ITEM_ULTRA_BALL" = Prelude.Just ITEM_ULTRA_BALL
+        readEnum "ITEM_MASTER_BALL" = Prelude.Just ITEM_MASTER_BALL
+        readEnum "ITEM_POTION" = Prelude.Just ITEM_POTION
+        readEnum "ITEM_SUPER_POTION" = Prelude.Just ITEM_SUPER_POTION
+        readEnum "ITEM_HYPER_POTION" = Prelude.Just ITEM_HYPER_POTION
+        readEnum "ITEM_MAX_POTION" = Prelude.Just ITEM_MAX_POTION
+        readEnum "ITEM_REVIVE" = Prelude.Just ITEM_REVIVE
+        readEnum "ITEM_MAX_REVIVE" = Prelude.Just ITEM_MAX_REVIVE
+        readEnum "ITEM_LUCKY_EGG" = Prelude.Just ITEM_LUCKY_EGG
+        readEnum "ITEM_INCENSE_ORDINARY"
+          = Prelude.Just ITEM_INCENSE_ORDINARY
+        readEnum "ITEM_INCENSE_SPICY" = Prelude.Just ITEM_INCENSE_SPICY
+        readEnum "ITEM_INCENSE_COOL" = Prelude.Just ITEM_INCENSE_COOL
+        readEnum "ITEM_INCENSE_FLORAL" = Prelude.Just ITEM_INCENSE_FLORAL
+        readEnum "ITEM_TROY_DISK" = Prelude.Just ITEM_TROY_DISK
+        readEnum "ITEM_X_ATTACK" = Prelude.Just ITEM_X_ATTACK
+        readEnum "ITEM_X_DEFENSE" = Prelude.Just ITEM_X_DEFENSE
+        readEnum "ITEM_X_MIRACLE" = Prelude.Just ITEM_X_MIRACLE
+        readEnum "ITEM_RAZZ_BERRY" = Prelude.Just ITEM_RAZZ_BERRY
+        readEnum "ITEM_BLUK_BERRY" = Prelude.Just ITEM_BLUK_BERRY
+        readEnum "ITEM_NANAB_BERRY" = Prelude.Just ITEM_NANAB_BERRY
+        readEnum "ITEM_WEPAR_BERRY" = Prelude.Just ITEM_WEPAR_BERRY
+        readEnum "ITEM_PINAP_BERRY" = Prelude.Just ITEM_PINAP_BERRY
+        readEnum "ITEM_SPECIAL_CAMERA" = Prelude.Just ITEM_SPECIAL_CAMERA
+        readEnum "ITEM_INCUBATOR_BASIC_UNLIMITED"
+          = Prelude.Just ITEM_INCUBATOR_BASIC_UNLIMITED
+        readEnum "ITEM_INCUBATOR_BASIC" = Prelude.Just ITEM_INCUBATOR_BASIC
+        readEnum "ITEM_POKEMON_STORAGE_UPGRADE"
+          = Prelude.Just ITEM_POKEMON_STORAGE_UPGRADE
+        readEnum "ITEM_ITEM_STORAGE_UPGRADE"
+          = Prelude.Just ITEM_ITEM_STORAGE_UPGRADE
+        readEnum _ = Prelude.Nothing
+
+instance Prelude.Enum ItemId where
+        toEnum k__
+          = Prelude.maybe
+              (Prelude.error
+                 ((Prelude.++) "toEnum: unknown value for enum ItemId: "
+                    (Prelude.show k__)))
+              Prelude.id
+              (Data.ProtoLens.maybeToEnum k__)
+        fromEnum ITEM_UNKNOWN = 0
+        fromEnum ITEM_POKE_BALL = 1
+        fromEnum ITEM_GREAT_BALL = 2
+        fromEnum ITEM_ULTRA_BALL = 3
+        fromEnum ITEM_MASTER_BALL = 4
+        fromEnum ITEM_POTION = 101
+        fromEnum ITEM_SUPER_POTION = 102
+        fromEnum ITEM_HYPER_POTION = 103
+        fromEnum ITEM_MAX_POTION = 104
+        fromEnum ITEM_REVIVE = 201
+        fromEnum ITEM_MAX_REVIVE = 202
+        fromEnum ITEM_LUCKY_EGG = 301
+        fromEnum ITEM_INCENSE_ORDINARY = 401
+        fromEnum ITEM_INCENSE_SPICY = 402
+        fromEnum ITEM_INCENSE_COOL = 403
+        fromEnum ITEM_INCENSE_FLORAL = 404
+        fromEnum ITEM_TROY_DISK = 501
+        fromEnum ITEM_X_ATTACK = 602
+        fromEnum ITEM_X_DEFENSE = 603
+        fromEnum ITEM_X_MIRACLE = 604
+        fromEnum ITEM_RAZZ_BERRY = 701
+        fromEnum ITEM_BLUK_BERRY = 702
+        fromEnum ITEM_NANAB_BERRY = 703
+        fromEnum ITEM_WEPAR_BERRY = 704
+        fromEnum ITEM_PINAP_BERRY = 705
+        fromEnum ITEM_SPECIAL_CAMERA = 801
+        fromEnum ITEM_INCUBATOR_BASIC_UNLIMITED = 901
+        fromEnum ITEM_INCUBATOR_BASIC = 902
+        fromEnum ITEM_POKEMON_STORAGE_UPGRADE = 1001
+        fromEnum ITEM_ITEM_STORAGE_UPGRADE = 1002
+        succ ITEM_ITEM_STORAGE_UPGRADE
+          = Prelude.error
+              "Ident \"ItemId\".Ident \"succ\": bad argument Ident \"ITEM_ITEM_STORAGE_UPGRADE\". This value would be out of bounds."
+        succ ITEM_UNKNOWN = ITEM_POKE_BALL
+        succ ITEM_POKE_BALL = ITEM_GREAT_BALL
+        succ ITEM_GREAT_BALL = ITEM_ULTRA_BALL
+        succ ITEM_ULTRA_BALL = ITEM_MASTER_BALL
+        succ ITEM_MASTER_BALL = ITEM_POTION
+        succ ITEM_POTION = ITEM_SUPER_POTION
+        succ ITEM_SUPER_POTION = ITEM_HYPER_POTION
+        succ ITEM_HYPER_POTION = ITEM_MAX_POTION
+        succ ITEM_MAX_POTION = ITEM_REVIVE
+        succ ITEM_REVIVE = ITEM_MAX_REVIVE
+        succ ITEM_MAX_REVIVE = ITEM_LUCKY_EGG
+        succ ITEM_LUCKY_EGG = ITEM_INCENSE_ORDINARY
+        succ ITEM_INCENSE_ORDINARY = ITEM_INCENSE_SPICY
+        succ ITEM_INCENSE_SPICY = ITEM_INCENSE_COOL
+        succ ITEM_INCENSE_COOL = ITEM_INCENSE_FLORAL
+        succ ITEM_INCENSE_FLORAL = ITEM_TROY_DISK
+        succ ITEM_TROY_DISK = ITEM_X_ATTACK
+        succ ITEM_X_ATTACK = ITEM_X_DEFENSE
+        succ ITEM_X_DEFENSE = ITEM_X_MIRACLE
+        succ ITEM_X_MIRACLE = ITEM_RAZZ_BERRY
+        succ ITEM_RAZZ_BERRY = ITEM_BLUK_BERRY
+        succ ITEM_BLUK_BERRY = ITEM_NANAB_BERRY
+        succ ITEM_NANAB_BERRY = ITEM_WEPAR_BERRY
+        succ ITEM_WEPAR_BERRY = ITEM_PINAP_BERRY
+        succ ITEM_PINAP_BERRY = ITEM_SPECIAL_CAMERA
+        succ ITEM_SPECIAL_CAMERA = ITEM_INCUBATOR_BASIC_UNLIMITED
+        succ ITEM_INCUBATOR_BASIC_UNLIMITED = ITEM_INCUBATOR_BASIC
+        succ ITEM_INCUBATOR_BASIC = ITEM_POKEMON_STORAGE_UPGRADE
+        succ ITEM_POKEMON_STORAGE_UPGRADE = ITEM_ITEM_STORAGE_UPGRADE
+        pred ITEM_UNKNOWN
+          = Prelude.error
+              "Ident \"ItemId\".Ident \"pred\": bad argument Ident \"ITEM_UNKNOWN\". This value would be out of bounds."
+        pred ITEM_POKE_BALL = ITEM_UNKNOWN
+        pred ITEM_GREAT_BALL = ITEM_POKE_BALL
+        pred ITEM_ULTRA_BALL = ITEM_GREAT_BALL
+        pred ITEM_MASTER_BALL = ITEM_ULTRA_BALL
+        pred ITEM_POTION = ITEM_MASTER_BALL
+        pred ITEM_SUPER_POTION = ITEM_POTION
+        pred ITEM_HYPER_POTION = ITEM_SUPER_POTION
+        pred ITEM_MAX_POTION = ITEM_HYPER_POTION
+        pred ITEM_REVIVE = ITEM_MAX_POTION
+        pred ITEM_MAX_REVIVE = ITEM_REVIVE
+        pred ITEM_LUCKY_EGG = ITEM_MAX_REVIVE
+        pred ITEM_INCENSE_ORDINARY = ITEM_LUCKY_EGG
+        pred ITEM_INCENSE_SPICY = ITEM_INCENSE_ORDINARY
+        pred ITEM_INCENSE_COOL = ITEM_INCENSE_SPICY
+        pred ITEM_INCENSE_FLORAL = ITEM_INCENSE_COOL
+        pred ITEM_TROY_DISK = ITEM_INCENSE_FLORAL
+        pred ITEM_X_ATTACK = ITEM_TROY_DISK
+        pred ITEM_X_DEFENSE = ITEM_X_ATTACK
+        pred ITEM_X_MIRACLE = ITEM_X_DEFENSE
+        pred ITEM_RAZZ_BERRY = ITEM_X_MIRACLE
+        pred ITEM_BLUK_BERRY = ITEM_RAZZ_BERRY
+        pred ITEM_NANAB_BERRY = ITEM_BLUK_BERRY
+        pred ITEM_WEPAR_BERRY = ITEM_NANAB_BERRY
+        pred ITEM_PINAP_BERRY = ITEM_WEPAR_BERRY
+        pred ITEM_SPECIAL_CAMERA = ITEM_PINAP_BERRY
+        pred ITEM_INCUBATOR_BASIC_UNLIMITED = ITEM_SPECIAL_CAMERA
+        pred ITEM_INCUBATOR_BASIC = ITEM_INCUBATOR_BASIC_UNLIMITED
+        pred ITEM_POKEMON_STORAGE_UPGRADE = ITEM_INCUBATOR_BASIC
+        pred ITEM_ITEM_STORAGE_UPGRADE = ITEM_POKEMON_STORAGE_UPGRADE
+        enumFrom = Data.ProtoLens.Message.Enum.messageEnumFrom
+        enumFromTo = Data.ProtoLens.Message.Enum.messageEnumFromTo
+        enumFromThen = Data.ProtoLens.Message.Enum.messageEnumFromThen
+        enumFromThenTo = Data.ProtoLens.Message.Enum.messageEnumFromThenTo
+
+instance Prelude.Bounded ItemId where
+        minBound = ITEM_UNKNOWN
+        maxBound = ITEM_ITEM_STORAGE_UPGRADE
diff --git a/src/Proto/POGOProtos/Inventory/Item/ItemType.hs b/src/Proto/POGOProtos/Inventory/Item/ItemType.hs
new file mode 100644
--- /dev/null
+++ b/src/Proto/POGOProtos/Inventory/Item/ItemType.hs
@@ -0,0 +1,142 @@
+{- This file was auto-generated from POGOProtos/Inventory/Item/ItemType.proto by the proto-lens-protoc program. -}
+{-# LANGUAGE ScopedTypeVariables, DataKinds, TypeFamilies,
+  MultiParamTypeClasses, FlexibleContexts, FlexibleInstances #-}
+{-# OPTIONS_GHC -fno-warn-unused-imports#-}
+module Proto.POGOProtos.Inventory.Item.ItemType where
+import qualified Prelude
+import qualified Data.ProtoLens
+import qualified Data.ProtoLens.Message.Enum
+import qualified Lens.Family2
+import qualified Lens.Family2.Unchecked
+import qualified Data.Default.Class
+import qualified Data.Text
+import qualified Data.Int
+import qualified Data.Word
+import qualified Data.Map
+import qualified Data.ByteString
+
+data ItemType = ITEM_TYPE_NONE
+              | ITEM_TYPE_POKEBALL
+              | ITEM_TYPE_POTION
+              | ITEM_TYPE_REVIVE
+              | ITEM_TYPE_MAP
+              | ITEM_TYPE_BATTLE
+              | ITEM_TYPE_FOOD
+              | ITEM_TYPE_CAMERA
+              | ITEM_TYPE_DISK
+              | ITEM_TYPE_INCUBATOR
+              | ITEM_TYPE_INCENSE
+              | ITEM_TYPE_XP_BOOST
+              | ITEM_TYPE_INVENTORY_UPGRADE
+              deriving (Prelude.Show, Prelude.Eq)
+
+instance Data.Default.Class.Default ItemType where
+        def = ITEM_TYPE_NONE
+
+instance Data.ProtoLens.FieldDefault ItemType where
+        fieldDefault = ITEM_TYPE_NONE
+
+instance Data.ProtoLens.MessageEnum ItemType where
+        maybeToEnum 0 = Prelude.Just ITEM_TYPE_NONE
+        maybeToEnum 1 = Prelude.Just ITEM_TYPE_POKEBALL
+        maybeToEnum 2 = Prelude.Just ITEM_TYPE_POTION
+        maybeToEnum 3 = Prelude.Just ITEM_TYPE_REVIVE
+        maybeToEnum 4 = Prelude.Just ITEM_TYPE_MAP
+        maybeToEnum 5 = Prelude.Just ITEM_TYPE_BATTLE
+        maybeToEnum 6 = Prelude.Just ITEM_TYPE_FOOD
+        maybeToEnum 7 = Prelude.Just ITEM_TYPE_CAMERA
+        maybeToEnum 8 = Prelude.Just ITEM_TYPE_DISK
+        maybeToEnum 9 = Prelude.Just ITEM_TYPE_INCUBATOR
+        maybeToEnum 10 = Prelude.Just ITEM_TYPE_INCENSE
+        maybeToEnum 11 = Prelude.Just ITEM_TYPE_XP_BOOST
+        maybeToEnum 12 = Prelude.Just ITEM_TYPE_INVENTORY_UPGRADE
+        maybeToEnum _ = Prelude.Nothing
+        showEnum ITEM_TYPE_NONE = "ITEM_TYPE_NONE"
+        showEnum ITEM_TYPE_POKEBALL = "ITEM_TYPE_POKEBALL"
+        showEnum ITEM_TYPE_POTION = "ITEM_TYPE_POTION"
+        showEnum ITEM_TYPE_REVIVE = "ITEM_TYPE_REVIVE"
+        showEnum ITEM_TYPE_MAP = "ITEM_TYPE_MAP"
+        showEnum ITEM_TYPE_BATTLE = "ITEM_TYPE_BATTLE"
+        showEnum ITEM_TYPE_FOOD = "ITEM_TYPE_FOOD"
+        showEnum ITEM_TYPE_CAMERA = "ITEM_TYPE_CAMERA"
+        showEnum ITEM_TYPE_DISK = "ITEM_TYPE_DISK"
+        showEnum ITEM_TYPE_INCUBATOR = "ITEM_TYPE_INCUBATOR"
+        showEnum ITEM_TYPE_INCENSE = "ITEM_TYPE_INCENSE"
+        showEnum ITEM_TYPE_XP_BOOST = "ITEM_TYPE_XP_BOOST"
+        showEnum ITEM_TYPE_INVENTORY_UPGRADE
+          = "ITEM_TYPE_INVENTORY_UPGRADE"
+        readEnum "ITEM_TYPE_NONE" = Prelude.Just ITEM_TYPE_NONE
+        readEnum "ITEM_TYPE_POKEBALL" = Prelude.Just ITEM_TYPE_POKEBALL
+        readEnum "ITEM_TYPE_POTION" = Prelude.Just ITEM_TYPE_POTION
+        readEnum "ITEM_TYPE_REVIVE" = Prelude.Just ITEM_TYPE_REVIVE
+        readEnum "ITEM_TYPE_MAP" = Prelude.Just ITEM_TYPE_MAP
+        readEnum "ITEM_TYPE_BATTLE" = Prelude.Just ITEM_TYPE_BATTLE
+        readEnum "ITEM_TYPE_FOOD" = Prelude.Just ITEM_TYPE_FOOD
+        readEnum "ITEM_TYPE_CAMERA" = Prelude.Just ITEM_TYPE_CAMERA
+        readEnum "ITEM_TYPE_DISK" = Prelude.Just ITEM_TYPE_DISK
+        readEnum "ITEM_TYPE_INCUBATOR" = Prelude.Just ITEM_TYPE_INCUBATOR
+        readEnum "ITEM_TYPE_INCENSE" = Prelude.Just ITEM_TYPE_INCENSE
+        readEnum "ITEM_TYPE_XP_BOOST" = Prelude.Just ITEM_TYPE_XP_BOOST
+        readEnum "ITEM_TYPE_INVENTORY_UPGRADE"
+          = Prelude.Just ITEM_TYPE_INVENTORY_UPGRADE
+        readEnum _ = Prelude.Nothing
+
+instance Prelude.Enum ItemType where
+        toEnum k__
+          = Prelude.maybe
+              (Prelude.error
+                 ((Prelude.++) "toEnum: unknown value for enum ItemType: "
+                    (Prelude.show k__)))
+              Prelude.id
+              (Data.ProtoLens.maybeToEnum k__)
+        fromEnum ITEM_TYPE_NONE = 0
+        fromEnum ITEM_TYPE_POKEBALL = 1
+        fromEnum ITEM_TYPE_POTION = 2
+        fromEnum ITEM_TYPE_REVIVE = 3
+        fromEnum ITEM_TYPE_MAP = 4
+        fromEnum ITEM_TYPE_BATTLE = 5
+        fromEnum ITEM_TYPE_FOOD = 6
+        fromEnum ITEM_TYPE_CAMERA = 7
+        fromEnum ITEM_TYPE_DISK = 8
+        fromEnum ITEM_TYPE_INCUBATOR = 9
+        fromEnum ITEM_TYPE_INCENSE = 10
+        fromEnum ITEM_TYPE_XP_BOOST = 11
+        fromEnum ITEM_TYPE_INVENTORY_UPGRADE = 12
+        succ ITEM_TYPE_INVENTORY_UPGRADE
+          = Prelude.error
+              "Ident \"ItemType\".Ident \"succ\": bad argument Ident \"ITEM_TYPE_INVENTORY_UPGRADE\". This value would be out of bounds."
+        succ ITEM_TYPE_NONE = ITEM_TYPE_POKEBALL
+        succ ITEM_TYPE_POKEBALL = ITEM_TYPE_POTION
+        succ ITEM_TYPE_POTION = ITEM_TYPE_REVIVE
+        succ ITEM_TYPE_REVIVE = ITEM_TYPE_MAP
+        succ ITEM_TYPE_MAP = ITEM_TYPE_BATTLE
+        succ ITEM_TYPE_BATTLE = ITEM_TYPE_FOOD
+        succ ITEM_TYPE_FOOD = ITEM_TYPE_CAMERA
+        succ ITEM_TYPE_CAMERA = ITEM_TYPE_DISK
+        succ ITEM_TYPE_DISK = ITEM_TYPE_INCUBATOR
+        succ ITEM_TYPE_INCUBATOR = ITEM_TYPE_INCENSE
+        succ ITEM_TYPE_INCENSE = ITEM_TYPE_XP_BOOST
+        succ ITEM_TYPE_XP_BOOST = ITEM_TYPE_INVENTORY_UPGRADE
+        pred ITEM_TYPE_NONE
+          = Prelude.error
+              "Ident \"ItemType\".Ident \"pred\": bad argument Ident \"ITEM_TYPE_NONE\". This value would be out of bounds."
+        pred ITEM_TYPE_POKEBALL = ITEM_TYPE_NONE
+        pred ITEM_TYPE_POTION = ITEM_TYPE_POKEBALL
+        pred ITEM_TYPE_REVIVE = ITEM_TYPE_POTION
+        pred ITEM_TYPE_MAP = ITEM_TYPE_REVIVE
+        pred ITEM_TYPE_BATTLE = ITEM_TYPE_MAP
+        pred ITEM_TYPE_FOOD = ITEM_TYPE_BATTLE
+        pred ITEM_TYPE_CAMERA = ITEM_TYPE_FOOD
+        pred ITEM_TYPE_DISK = ITEM_TYPE_CAMERA
+        pred ITEM_TYPE_INCUBATOR = ITEM_TYPE_DISK
+        pred ITEM_TYPE_INCENSE = ITEM_TYPE_INCUBATOR
+        pred ITEM_TYPE_XP_BOOST = ITEM_TYPE_INCENSE
+        pred ITEM_TYPE_INVENTORY_UPGRADE = ITEM_TYPE_XP_BOOST
+        enumFrom = Data.ProtoLens.Message.Enum.messageEnumFrom
+        enumFromTo = Data.ProtoLens.Message.Enum.messageEnumFromTo
+        enumFromThen = Data.ProtoLens.Message.Enum.messageEnumFromThen
+        enumFromThenTo = Data.ProtoLens.Message.Enum.messageEnumFromThenTo
+
+instance Prelude.Bounded ItemType where
+        minBound = ITEM_TYPE_NONE
+        maxBound = ITEM_TYPE_INVENTORY_UPGRADE
diff --git a/src/Proto/POGOProtos/Map/Fort/FortData.hs b/src/Proto/POGOProtos/Map/Fort/FortData.hs
new file mode 100644
--- /dev/null
+++ b/src/Proto/POGOProtos/Map/Fort/FortData.hs
@@ -0,0 +1,501 @@
+{- This file was auto-generated from POGOProtos/Map/Fort/FortData.proto by the proto-lens-protoc program. -}
+{-# LANGUAGE ScopedTypeVariables, DataKinds, TypeFamilies,
+  MultiParamTypeClasses, FlexibleContexts, FlexibleInstances #-}
+{-# OPTIONS_GHC -fno-warn-unused-imports#-}
+module Proto.POGOProtos.Map.Fort.FortData where
+import qualified Prelude
+import qualified Data.ProtoLens
+import qualified Data.ProtoLens.Message.Enum
+import qualified Lens.Family2
+import qualified Lens.Family2.Unchecked
+import qualified Data.Default.Class
+import qualified Data.Text
+import qualified Data.Int
+import qualified Data.Word
+import qualified Data.Map
+import qualified Data.ByteString
+import qualified Proto.POGOProtos.Enums.PokemonId
+import qualified Proto.POGOProtos.Enums.TeamColor
+import qualified Proto.POGOProtos.Map.Fort.FortLureInfo
+import qualified Proto.POGOProtos.Map.Fort.FortRenderingType
+import qualified Proto.POGOProtos.Map.Fort.FortSponsor
+import qualified Proto.POGOProtos.Map.Fort.FortType
+
+data FortData = FortData{_FortData'id :: Data.Text.Text,
+                         _FortData'lastModifiedTimestampMs :: Data.Int.Int64,
+                         _FortData'latitude :: Prelude.Double,
+                         _FortData'longitude :: Prelude.Double,
+                         _FortData'enabled :: Prelude.Bool,
+                         _FortData'type' :: Proto.POGOProtos.Map.Fort.FortType.FortType,
+                         _FortData'ownedByTeam ::
+                         Proto.POGOProtos.Enums.TeamColor.TeamColor,
+                         _FortData'guardPokemonId ::
+                         Proto.POGOProtos.Enums.PokemonId.PokemonId,
+                         _FortData'guardPokemonCp :: Data.Int.Int32,
+                         _FortData'gymPoints :: Data.Int.Int64,
+                         _FortData'isInBattle :: Prelude.Bool,
+                         _FortData'cooldownCompleteTimestampMs :: Data.Int.Int64,
+                         _FortData'sponsor ::
+                         Proto.POGOProtos.Map.Fort.FortSponsor.FortSponsor,
+                         _FortData'renderingType ::
+                         Proto.POGOProtos.Map.Fort.FortRenderingType.FortRenderingType,
+                         _FortData'activeFortModifier :: Data.ByteString.ByteString,
+                         _FortData'lureInfo ::
+                         Prelude.Maybe Proto.POGOProtos.Map.Fort.FortLureInfo.FortLureInfo}
+              deriving (Prelude.Show, Prelude.Eq)
+
+type instance Data.ProtoLens.Field "id" FortData = Data.Text.Text
+
+instance Data.ProtoLens.HasField "id" FortData FortData where
+        field _
+          = Lens.Family2.Unchecked.lens _FortData'id
+              (\ x__ y__ -> x__{_FortData'id = y__})
+
+type instance
+     Data.ProtoLens.Field "lastModifiedTimestampMs" FortData =
+     Data.Int.Int64
+
+instance Data.ProtoLens.HasField "lastModifiedTimestampMs" FortData
+         FortData where
+        field _
+          = Lens.Family2.Unchecked.lens _FortData'lastModifiedTimestampMs
+              (\ x__ y__ -> x__{_FortData'lastModifiedTimestampMs = y__})
+
+type instance Data.ProtoLens.Field "latitude" FortData =
+     Prelude.Double
+
+instance Data.ProtoLens.HasField "latitude" FortData FortData where
+        field _
+          = Lens.Family2.Unchecked.lens _FortData'latitude
+              (\ x__ y__ -> x__{_FortData'latitude = y__})
+
+type instance Data.ProtoLens.Field "longitude" FortData =
+     Prelude.Double
+
+instance Data.ProtoLens.HasField "longitude" FortData FortData
+         where
+        field _
+          = Lens.Family2.Unchecked.lens _FortData'longitude
+              (\ x__ y__ -> x__{_FortData'longitude = y__})
+
+type instance Data.ProtoLens.Field "enabled" FortData =
+     Prelude.Bool
+
+instance Data.ProtoLens.HasField "enabled" FortData FortData where
+        field _
+          = Lens.Family2.Unchecked.lens _FortData'enabled
+              (\ x__ y__ -> x__{_FortData'enabled = y__})
+
+type instance Data.ProtoLens.Field "type'" FortData =
+     Proto.POGOProtos.Map.Fort.FortType.FortType
+
+instance Data.ProtoLens.HasField "type'" FortData FortData where
+        field _
+          = Lens.Family2.Unchecked.lens _FortData'type'
+              (\ x__ y__ -> x__{_FortData'type' = y__})
+
+type instance Data.ProtoLens.Field "ownedByTeam" FortData =
+     Proto.POGOProtos.Enums.TeamColor.TeamColor
+
+instance Data.ProtoLens.HasField "ownedByTeam" FortData FortData
+         where
+        field _
+          = Lens.Family2.Unchecked.lens _FortData'ownedByTeam
+              (\ x__ y__ -> x__{_FortData'ownedByTeam = y__})
+
+type instance Data.ProtoLens.Field "guardPokemonId" FortData =
+     Proto.POGOProtos.Enums.PokemonId.PokemonId
+
+instance Data.ProtoLens.HasField "guardPokemonId" FortData FortData
+         where
+        field _
+          = Lens.Family2.Unchecked.lens _FortData'guardPokemonId
+              (\ x__ y__ -> x__{_FortData'guardPokemonId = y__})
+
+type instance Data.ProtoLens.Field "guardPokemonCp" FortData =
+     Data.Int.Int32
+
+instance Data.ProtoLens.HasField "guardPokemonCp" FortData FortData
+         where
+        field _
+          = Lens.Family2.Unchecked.lens _FortData'guardPokemonCp
+              (\ x__ y__ -> x__{_FortData'guardPokemonCp = y__})
+
+type instance Data.ProtoLens.Field "gymPoints" FortData =
+     Data.Int.Int64
+
+instance Data.ProtoLens.HasField "gymPoints" FortData FortData
+         where
+        field _
+          = Lens.Family2.Unchecked.lens _FortData'gymPoints
+              (\ x__ y__ -> x__{_FortData'gymPoints = y__})
+
+type instance Data.ProtoLens.Field "isInBattle" FortData =
+     Prelude.Bool
+
+instance Data.ProtoLens.HasField "isInBattle" FortData FortData
+         where
+        field _
+          = Lens.Family2.Unchecked.lens _FortData'isInBattle
+              (\ x__ y__ -> x__{_FortData'isInBattle = y__})
+
+type instance
+     Data.ProtoLens.Field "cooldownCompleteTimestampMs" FortData =
+     Data.Int.Int64
+
+instance Data.ProtoLens.HasField "cooldownCompleteTimestampMs"
+         FortData FortData where
+        field _
+          = Lens.Family2.Unchecked.lens _FortData'cooldownCompleteTimestampMs
+              (\ x__ y__ -> x__{_FortData'cooldownCompleteTimestampMs = y__})
+
+type instance Data.ProtoLens.Field "sponsor" FortData =
+     Proto.POGOProtos.Map.Fort.FortSponsor.FortSponsor
+
+instance Data.ProtoLens.HasField "sponsor" FortData FortData where
+        field _
+          = Lens.Family2.Unchecked.lens _FortData'sponsor
+              (\ x__ y__ -> x__{_FortData'sponsor = y__})
+
+type instance Data.ProtoLens.Field "renderingType" FortData =
+     Proto.POGOProtos.Map.Fort.FortRenderingType.FortRenderingType
+
+instance Data.ProtoLens.HasField "renderingType" FortData FortData
+         where
+        field _
+          = Lens.Family2.Unchecked.lens _FortData'renderingType
+              (\ x__ y__ -> x__{_FortData'renderingType = y__})
+
+type instance Data.ProtoLens.Field "activeFortModifier" FortData =
+     Data.ByteString.ByteString
+
+instance Data.ProtoLens.HasField "activeFortModifier" FortData
+         FortData where
+        field _
+          = Lens.Family2.Unchecked.lens _FortData'activeFortModifier
+              (\ x__ y__ -> x__{_FortData'activeFortModifier = y__})
+
+type instance Data.ProtoLens.Field "lureInfo" FortData =
+     Proto.POGOProtos.Map.Fort.FortLureInfo.FortLureInfo
+
+instance Data.ProtoLens.HasField "lureInfo" FortData FortData where
+        field _
+          = (Prelude..) maybe'lureInfo
+              (Data.ProtoLens.maybeLens Data.Default.Class.def)
+
+type instance Data.ProtoLens.Field "maybe'lureInfo" FortData =
+     Prelude.Maybe Proto.POGOProtos.Map.Fort.FortLureInfo.FortLureInfo
+
+instance Data.ProtoLens.HasField "maybe'lureInfo" FortData FortData
+         where
+        field _
+          = Lens.Family2.Unchecked.lens _FortData'lureInfo
+              (\ x__ y__ -> x__{_FortData'lureInfo = y__})
+
+instance Data.Default.Class.Default FortData where
+        def
+          = FortData{_FortData'id = Data.ProtoLens.fieldDefault,
+                     _FortData'lastModifiedTimestampMs = Data.ProtoLens.fieldDefault,
+                     _FortData'latitude = Data.ProtoLens.fieldDefault,
+                     _FortData'longitude = Data.ProtoLens.fieldDefault,
+                     _FortData'enabled = Data.ProtoLens.fieldDefault,
+                     _FortData'type' = Data.Default.Class.def,
+                     _FortData'ownedByTeam = Data.Default.Class.def,
+                     _FortData'guardPokemonId = Data.Default.Class.def,
+                     _FortData'guardPokemonCp = Data.ProtoLens.fieldDefault,
+                     _FortData'gymPoints = Data.ProtoLens.fieldDefault,
+                     _FortData'isInBattle = Data.ProtoLens.fieldDefault,
+                     _FortData'cooldownCompleteTimestampMs =
+                       Data.ProtoLens.fieldDefault,
+                     _FortData'sponsor = Data.Default.Class.def,
+                     _FortData'renderingType = Data.Default.Class.def,
+                     _FortData'activeFortModifier = Data.ProtoLens.fieldDefault,
+                     _FortData'lureInfo = Prelude.Nothing}
+
+instance Data.ProtoLens.Message FortData where
+        descriptor
+          = let id__field_descriptor
+                  = Data.ProtoLens.FieldDescriptor "id"
+                      (Data.ProtoLens.StringField ::
+                         Data.ProtoLens.FieldTypeDescriptor Data.Text.Text)
+                      (Data.ProtoLens.PlainField Data.ProtoLens.Optional id)
+                lastModifiedTimestampMs__field_descriptor
+                  = Data.ProtoLens.FieldDescriptor "last_modified_timestamp_ms"
+                      (Data.ProtoLens.Int64Field ::
+                         Data.ProtoLens.FieldTypeDescriptor Data.Int.Int64)
+                      (Data.ProtoLens.PlainField Data.ProtoLens.Optional
+                         lastModifiedTimestampMs)
+                latitude__field_descriptor
+                  = Data.ProtoLens.FieldDescriptor "latitude"
+                      (Data.ProtoLens.DoubleField ::
+                         Data.ProtoLens.FieldTypeDescriptor Prelude.Double)
+                      (Data.ProtoLens.PlainField Data.ProtoLens.Optional latitude)
+                longitude__field_descriptor
+                  = Data.ProtoLens.FieldDescriptor "longitude"
+                      (Data.ProtoLens.DoubleField ::
+                         Data.ProtoLens.FieldTypeDescriptor Prelude.Double)
+                      (Data.ProtoLens.PlainField Data.ProtoLens.Optional longitude)
+                enabled__field_descriptor
+                  = Data.ProtoLens.FieldDescriptor "enabled"
+                      (Data.ProtoLens.BoolField ::
+                         Data.ProtoLens.FieldTypeDescriptor Prelude.Bool)
+                      (Data.ProtoLens.PlainField Data.ProtoLens.Optional enabled)
+                type'__field_descriptor
+                  = Data.ProtoLens.FieldDescriptor "type"
+                      (Data.ProtoLens.EnumField ::
+                         Data.ProtoLens.FieldTypeDescriptor
+                           Proto.POGOProtos.Map.Fort.FortType.FortType)
+                      (Data.ProtoLens.PlainField Data.ProtoLens.Optional type')
+                ownedByTeam__field_descriptor
+                  = Data.ProtoLens.FieldDescriptor "owned_by_team"
+                      (Data.ProtoLens.EnumField ::
+                         Data.ProtoLens.FieldTypeDescriptor
+                           Proto.POGOProtos.Enums.TeamColor.TeamColor)
+                      (Data.ProtoLens.PlainField Data.ProtoLens.Optional ownedByTeam)
+                guardPokemonId__field_descriptor
+                  = Data.ProtoLens.FieldDescriptor "guard_pokemon_id"
+                      (Data.ProtoLens.EnumField ::
+                         Data.ProtoLens.FieldTypeDescriptor
+                           Proto.POGOProtos.Enums.PokemonId.PokemonId)
+                      (Data.ProtoLens.PlainField Data.ProtoLens.Optional guardPokemonId)
+                guardPokemonCp__field_descriptor
+                  = Data.ProtoLens.FieldDescriptor "guard_pokemon_cp"
+                      (Data.ProtoLens.Int32Field ::
+                         Data.ProtoLens.FieldTypeDescriptor Data.Int.Int32)
+                      (Data.ProtoLens.PlainField Data.ProtoLens.Optional guardPokemonCp)
+                gymPoints__field_descriptor
+                  = Data.ProtoLens.FieldDescriptor "gym_points"
+                      (Data.ProtoLens.Int64Field ::
+                         Data.ProtoLens.FieldTypeDescriptor Data.Int.Int64)
+                      (Data.ProtoLens.PlainField Data.ProtoLens.Optional gymPoints)
+                isInBattle__field_descriptor
+                  = Data.ProtoLens.FieldDescriptor "is_in_battle"
+                      (Data.ProtoLens.BoolField ::
+                         Data.ProtoLens.FieldTypeDescriptor Prelude.Bool)
+                      (Data.ProtoLens.PlainField Data.ProtoLens.Optional isInBattle)
+                cooldownCompleteTimestampMs__field_descriptor
+                  = Data.ProtoLens.FieldDescriptor "cooldown_complete_timestamp_ms"
+                      (Data.ProtoLens.Int64Field ::
+                         Data.ProtoLens.FieldTypeDescriptor Data.Int.Int64)
+                      (Data.ProtoLens.PlainField Data.ProtoLens.Optional
+                         cooldownCompleteTimestampMs)
+                sponsor__field_descriptor
+                  = Data.ProtoLens.FieldDescriptor "sponsor"
+                      (Data.ProtoLens.EnumField ::
+                         Data.ProtoLens.FieldTypeDescriptor
+                           Proto.POGOProtos.Map.Fort.FortSponsor.FortSponsor)
+                      (Data.ProtoLens.PlainField Data.ProtoLens.Optional sponsor)
+                renderingType__field_descriptor
+                  = Data.ProtoLens.FieldDescriptor "rendering_type"
+                      (Data.ProtoLens.EnumField ::
+                         Data.ProtoLens.FieldTypeDescriptor
+                           Proto.POGOProtos.Map.Fort.FortRenderingType.FortRenderingType)
+                      (Data.ProtoLens.PlainField Data.ProtoLens.Optional renderingType)
+                activeFortModifier__field_descriptor
+                  = Data.ProtoLens.FieldDescriptor "active_fort_modifier"
+                      (Data.ProtoLens.BytesField ::
+                         Data.ProtoLens.FieldTypeDescriptor Data.ByteString.ByteString)
+                      (Data.ProtoLens.PlainField Data.ProtoLens.Optional
+                         activeFortModifier)
+                lureInfo__field_descriptor
+                  = Data.ProtoLens.FieldDescriptor "lure_info"
+                      (Data.ProtoLens.MessageField ::
+                         Data.ProtoLens.FieldTypeDescriptor
+                           Proto.POGOProtos.Map.Fort.FortLureInfo.FortLureInfo)
+                      (Data.ProtoLens.OptionalField maybe'lureInfo)
+              in
+              Data.ProtoLens.MessageDescriptor
+                (Data.Map.fromList
+                   [(Data.ProtoLens.Tag 1, id__field_descriptor),
+                    (Data.ProtoLens.Tag 2, lastModifiedTimestampMs__field_descriptor),
+                    (Data.ProtoLens.Tag 3, latitude__field_descriptor),
+                    (Data.ProtoLens.Tag 4, longitude__field_descriptor),
+                    (Data.ProtoLens.Tag 8, enabled__field_descriptor),
+                    (Data.ProtoLens.Tag 9, type'__field_descriptor),
+                    (Data.ProtoLens.Tag 5, ownedByTeam__field_descriptor),
+                    (Data.ProtoLens.Tag 6, guardPokemonId__field_descriptor),
+                    (Data.ProtoLens.Tag 7, guardPokemonCp__field_descriptor),
+                    (Data.ProtoLens.Tag 10, gymPoints__field_descriptor),
+                    (Data.ProtoLens.Tag 11, isInBattle__field_descriptor),
+                    (Data.ProtoLens.Tag 14,
+                     cooldownCompleteTimestampMs__field_descriptor),
+                    (Data.ProtoLens.Tag 15, sponsor__field_descriptor),
+                    (Data.ProtoLens.Tag 16, renderingType__field_descriptor),
+                    (Data.ProtoLens.Tag 12, activeFortModifier__field_descriptor),
+                    (Data.ProtoLens.Tag 13, lureInfo__field_descriptor)])
+                (Data.Map.fromList
+                   [("id", id__field_descriptor),
+                    ("last_modified_timestamp_ms",
+                     lastModifiedTimestampMs__field_descriptor),
+                    ("latitude", latitude__field_descriptor),
+                    ("longitude", longitude__field_descriptor),
+                    ("enabled", enabled__field_descriptor),
+                    ("type", type'__field_descriptor),
+                    ("owned_by_team", ownedByTeam__field_descriptor),
+                    ("guard_pokemon_id", guardPokemonId__field_descriptor),
+                    ("guard_pokemon_cp", guardPokemonCp__field_descriptor),
+                    ("gym_points", gymPoints__field_descriptor),
+                    ("is_in_battle", isInBattle__field_descriptor),
+                    ("cooldown_complete_timestamp_ms",
+                     cooldownCompleteTimestampMs__field_descriptor),
+                    ("sponsor", sponsor__field_descriptor),
+                    ("rendering_type", renderingType__field_descriptor),
+                    ("active_fort_modifier", activeFortModifier__field_descriptor),
+                    ("lure_info", lureInfo__field_descriptor)])
+
+activeFortModifier ::
+                   forall msg msg' .
+                     Data.ProtoLens.HasField "activeFortModifier" msg msg' =>
+                     Lens.Family2.Lens msg msg'
+                       (Data.ProtoLens.Field "activeFortModifier" msg)
+                       (Data.ProtoLens.Field "activeFortModifier" msg')
+activeFortModifier
+  = Data.ProtoLens.field
+      (Data.ProtoLens.ProxySym ::
+         Data.ProtoLens.ProxySym "activeFortModifier")
+
+cooldownCompleteTimestampMs ::
+                            forall msg msg' .
+                              Data.ProtoLens.HasField "cooldownCompleteTimestampMs" msg msg' =>
+                              Lens.Family2.Lens msg msg'
+                                (Data.ProtoLens.Field "cooldownCompleteTimestampMs" msg)
+                                (Data.ProtoLens.Field "cooldownCompleteTimestampMs" msg')
+cooldownCompleteTimestampMs
+  = Data.ProtoLens.field
+      (Data.ProtoLens.ProxySym ::
+         Data.ProtoLens.ProxySym "cooldownCompleteTimestampMs")
+
+enabled ::
+        forall msg msg' . Data.ProtoLens.HasField "enabled" msg msg' =>
+          Lens.Family2.Lens msg msg' (Data.ProtoLens.Field "enabled" msg)
+            (Data.ProtoLens.Field "enabled" msg')
+enabled
+  = Data.ProtoLens.field
+      (Data.ProtoLens.ProxySym :: Data.ProtoLens.ProxySym "enabled")
+
+guardPokemonCp ::
+               forall msg msg' .
+                 Data.ProtoLens.HasField "guardPokemonCp" msg msg' =>
+                 Lens.Family2.Lens msg msg'
+                   (Data.ProtoLens.Field "guardPokemonCp" msg)
+                   (Data.ProtoLens.Field "guardPokemonCp" msg')
+guardPokemonCp
+  = Data.ProtoLens.field
+      (Data.ProtoLens.ProxySym ::
+         Data.ProtoLens.ProxySym "guardPokemonCp")
+
+guardPokemonId ::
+               forall msg msg' .
+                 Data.ProtoLens.HasField "guardPokemonId" msg msg' =>
+                 Lens.Family2.Lens msg msg'
+                   (Data.ProtoLens.Field "guardPokemonId" msg)
+                   (Data.ProtoLens.Field "guardPokemonId" msg')
+guardPokemonId
+  = Data.ProtoLens.field
+      (Data.ProtoLens.ProxySym ::
+         Data.ProtoLens.ProxySym "guardPokemonId")
+
+gymPoints ::
+          forall msg msg' . Data.ProtoLens.HasField "gymPoints" msg msg' =>
+            Lens.Family2.Lens msg msg' (Data.ProtoLens.Field "gymPoints" msg)
+              (Data.ProtoLens.Field "gymPoints" msg')
+gymPoints
+  = Data.ProtoLens.field
+      (Data.ProtoLens.ProxySym :: Data.ProtoLens.ProxySym "gymPoints")
+
+id ::
+   forall msg msg' . Data.ProtoLens.HasField "id" msg msg' =>
+     Lens.Family2.Lens msg msg' (Data.ProtoLens.Field "id" msg)
+       (Data.ProtoLens.Field "id" msg')
+id
+  = Data.ProtoLens.field
+      (Data.ProtoLens.ProxySym :: Data.ProtoLens.ProxySym "id")
+
+isInBattle ::
+           forall msg msg' . Data.ProtoLens.HasField "isInBattle" msg msg' =>
+             Lens.Family2.Lens msg msg' (Data.ProtoLens.Field "isInBattle" msg)
+               (Data.ProtoLens.Field "isInBattle" msg')
+isInBattle
+  = Data.ProtoLens.field
+      (Data.ProtoLens.ProxySym :: Data.ProtoLens.ProxySym "isInBattle")
+
+lastModifiedTimestampMs ::
+                        forall msg msg' .
+                          Data.ProtoLens.HasField "lastModifiedTimestampMs" msg msg' =>
+                          Lens.Family2.Lens msg msg'
+                            (Data.ProtoLens.Field "lastModifiedTimestampMs" msg)
+                            (Data.ProtoLens.Field "lastModifiedTimestampMs" msg')
+lastModifiedTimestampMs
+  = Data.ProtoLens.field
+      (Data.ProtoLens.ProxySym ::
+         Data.ProtoLens.ProxySym "lastModifiedTimestampMs")
+
+latitude ::
+         forall msg msg' . Data.ProtoLens.HasField "latitude" msg msg' =>
+           Lens.Family2.Lens msg msg' (Data.ProtoLens.Field "latitude" msg)
+             (Data.ProtoLens.Field "latitude" msg')
+latitude
+  = Data.ProtoLens.field
+      (Data.ProtoLens.ProxySym :: Data.ProtoLens.ProxySym "latitude")
+
+longitude ::
+          forall msg msg' . Data.ProtoLens.HasField "longitude" msg msg' =>
+            Lens.Family2.Lens msg msg' (Data.ProtoLens.Field "longitude" msg)
+              (Data.ProtoLens.Field "longitude" msg')
+longitude
+  = Data.ProtoLens.field
+      (Data.ProtoLens.ProxySym :: Data.ProtoLens.ProxySym "longitude")
+
+lureInfo ::
+         forall msg msg' . Data.ProtoLens.HasField "lureInfo" msg msg' =>
+           Lens.Family2.Lens msg msg' (Data.ProtoLens.Field "lureInfo" msg)
+             (Data.ProtoLens.Field "lureInfo" msg')
+lureInfo
+  = Data.ProtoLens.field
+      (Data.ProtoLens.ProxySym :: Data.ProtoLens.ProxySym "lureInfo")
+
+maybe'lureInfo ::
+               forall msg msg' .
+                 Data.ProtoLens.HasField "maybe'lureInfo" msg msg' =>
+                 Lens.Family2.Lens msg msg'
+                   (Data.ProtoLens.Field "maybe'lureInfo" msg)
+                   (Data.ProtoLens.Field "maybe'lureInfo" msg')
+maybe'lureInfo
+  = Data.ProtoLens.field
+      (Data.ProtoLens.ProxySym ::
+         Data.ProtoLens.ProxySym "maybe'lureInfo")
+
+ownedByTeam ::
+            forall msg msg' . Data.ProtoLens.HasField "ownedByTeam" msg msg' =>
+              Lens.Family2.Lens msg msg' (Data.ProtoLens.Field "ownedByTeam" msg)
+                (Data.ProtoLens.Field "ownedByTeam" msg')
+ownedByTeam
+  = Data.ProtoLens.field
+      (Data.ProtoLens.ProxySym :: Data.ProtoLens.ProxySym "ownedByTeam")
+
+renderingType ::
+              forall msg msg' .
+                Data.ProtoLens.HasField "renderingType" msg msg' =>
+                Lens.Family2.Lens msg msg'
+                  (Data.ProtoLens.Field "renderingType" msg)
+                  (Data.ProtoLens.Field "renderingType" msg')
+renderingType
+  = Data.ProtoLens.field
+      (Data.ProtoLens.ProxySym ::
+         Data.ProtoLens.ProxySym "renderingType")
+
+sponsor ::
+        forall msg msg' . Data.ProtoLens.HasField "sponsor" msg msg' =>
+          Lens.Family2.Lens msg msg' (Data.ProtoLens.Field "sponsor" msg)
+            (Data.ProtoLens.Field "sponsor" msg')
+sponsor
+  = Data.ProtoLens.field
+      (Data.ProtoLens.ProxySym :: Data.ProtoLens.ProxySym "sponsor")
+
+type' ::
+      forall msg msg' . Data.ProtoLens.HasField "type'" msg msg' =>
+        Lens.Family2.Lens msg msg' (Data.ProtoLens.Field "type'" msg)
+          (Data.ProtoLens.Field "type'" msg')
+type'
+  = Data.ProtoLens.field
+      (Data.ProtoLens.ProxySym :: Data.ProtoLens.ProxySym "type'")
diff --git a/src/Proto/POGOProtos/Map/Fort/FortLureInfo.hs b/src/Proto/POGOProtos/Map/Fort/FortLureInfo.hs
new file mode 100644
--- /dev/null
+++ b/src/Proto/POGOProtos/Map/Fort/FortLureInfo.hs
@@ -0,0 +1,145 @@
+{- This file was auto-generated from POGOProtos/Map/Fort/FortLureInfo.proto by the proto-lens-protoc program. -}
+{-# LANGUAGE ScopedTypeVariables, DataKinds, TypeFamilies,
+  MultiParamTypeClasses, FlexibleContexts, FlexibleInstances #-}
+{-# OPTIONS_GHC -fno-warn-unused-imports#-}
+module Proto.POGOProtos.Map.Fort.FortLureInfo where
+import qualified Prelude
+import qualified Data.ProtoLens
+import qualified Data.ProtoLens.Message.Enum
+import qualified Lens.Family2
+import qualified Lens.Family2.Unchecked
+import qualified Data.Default.Class
+import qualified Data.Text
+import qualified Data.Int
+import qualified Data.Word
+import qualified Data.Map
+import qualified Data.ByteString
+import qualified Proto.POGOProtos.Enums.PokemonId
+
+data FortLureInfo = FortLureInfo{_FortLureInfo'fortId ::
+                                 Data.Text.Text,
+                                 _FortLureInfo'encounterId :: Data.Word.Word64,
+                                 _FortLureInfo'activePokemonId ::
+                                 Proto.POGOProtos.Enums.PokemonId.PokemonId,
+                                 _FortLureInfo'lureExpiresTimestampMs :: Data.Int.Int64}
+                  deriving (Prelude.Show, Prelude.Eq)
+
+type instance Data.ProtoLens.Field "fortId" FortLureInfo =
+     Data.Text.Text
+
+instance Data.ProtoLens.HasField "fortId" FortLureInfo FortLureInfo
+         where
+        field _
+          = Lens.Family2.Unchecked.lens _FortLureInfo'fortId
+              (\ x__ y__ -> x__{_FortLureInfo'fortId = y__})
+
+type instance Data.ProtoLens.Field "encounterId" FortLureInfo =
+     Data.Word.Word64
+
+instance Data.ProtoLens.HasField "encounterId" FortLureInfo
+         FortLureInfo where
+        field _
+          = Lens.Family2.Unchecked.lens _FortLureInfo'encounterId
+              (\ x__ y__ -> x__{_FortLureInfo'encounterId = y__})
+
+type instance Data.ProtoLens.Field "activePokemonId" FortLureInfo =
+     Proto.POGOProtos.Enums.PokemonId.PokemonId
+
+instance Data.ProtoLens.HasField "activePokemonId" FortLureInfo
+         FortLureInfo where
+        field _
+          = Lens.Family2.Unchecked.lens _FortLureInfo'activePokemonId
+              (\ x__ y__ -> x__{_FortLureInfo'activePokemonId = y__})
+
+type instance
+     Data.ProtoLens.Field "lureExpiresTimestampMs" FortLureInfo =
+     Data.Int.Int64
+
+instance Data.ProtoLens.HasField "lureExpiresTimestampMs"
+         FortLureInfo FortLureInfo where
+        field _
+          = Lens.Family2.Unchecked.lens _FortLureInfo'lureExpiresTimestampMs
+              (\ x__ y__ -> x__{_FortLureInfo'lureExpiresTimestampMs = y__})
+
+instance Data.Default.Class.Default FortLureInfo where
+        def
+          = FortLureInfo{_FortLureInfo'fortId = Data.ProtoLens.fieldDefault,
+                         _FortLureInfo'encounterId = Data.ProtoLens.fieldDefault,
+                         _FortLureInfo'activePokemonId = Data.Default.Class.def,
+                         _FortLureInfo'lureExpiresTimestampMs = Data.ProtoLens.fieldDefault}
+
+instance Data.ProtoLens.Message FortLureInfo where
+        descriptor
+          = let fortId__field_descriptor
+                  = Data.ProtoLens.FieldDescriptor "fort_id"
+                      (Data.ProtoLens.StringField ::
+                         Data.ProtoLens.FieldTypeDescriptor Data.Text.Text)
+                      (Data.ProtoLens.PlainField Data.ProtoLens.Optional fortId)
+                encounterId__field_descriptor
+                  = Data.ProtoLens.FieldDescriptor "encounter_id"
+                      (Data.ProtoLens.Fixed64Field ::
+                         Data.ProtoLens.FieldTypeDescriptor Data.Word.Word64)
+                      (Data.ProtoLens.PlainField Data.ProtoLens.Optional encounterId)
+                activePokemonId__field_descriptor
+                  = Data.ProtoLens.FieldDescriptor "active_pokemon_id"
+                      (Data.ProtoLens.EnumField ::
+                         Data.ProtoLens.FieldTypeDescriptor
+                           Proto.POGOProtos.Enums.PokemonId.PokemonId)
+                      (Data.ProtoLens.PlainField Data.ProtoLens.Optional activePokemonId)
+                lureExpiresTimestampMs__field_descriptor
+                  = Data.ProtoLens.FieldDescriptor "lure_expires_timestamp_ms"
+                      (Data.ProtoLens.Int64Field ::
+                         Data.ProtoLens.FieldTypeDescriptor Data.Int.Int64)
+                      (Data.ProtoLens.PlainField Data.ProtoLens.Optional
+                         lureExpiresTimestampMs)
+              in
+              Data.ProtoLens.MessageDescriptor
+                (Data.Map.fromList
+                   [(Data.ProtoLens.Tag 1, fortId__field_descriptor),
+                    (Data.ProtoLens.Tag 2, encounterId__field_descriptor),
+                    (Data.ProtoLens.Tag 3, activePokemonId__field_descriptor),
+                    (Data.ProtoLens.Tag 4, lureExpiresTimestampMs__field_descriptor)])
+                (Data.Map.fromList
+                   [("fort_id", fortId__field_descriptor),
+                    ("encounter_id", encounterId__field_descriptor),
+                    ("active_pokemon_id", activePokemonId__field_descriptor),
+                    ("lure_expires_timestamp_ms",
+                     lureExpiresTimestampMs__field_descriptor)])
+
+activePokemonId ::
+                forall msg msg' .
+                  Data.ProtoLens.HasField "activePokemonId" msg msg' =>
+                  Lens.Family2.Lens msg msg'
+                    (Data.ProtoLens.Field "activePokemonId" msg)
+                    (Data.ProtoLens.Field "activePokemonId" msg')
+activePokemonId
+  = Data.ProtoLens.field
+      (Data.ProtoLens.ProxySym ::
+         Data.ProtoLens.ProxySym "activePokemonId")
+
+encounterId ::
+            forall msg msg' . Data.ProtoLens.HasField "encounterId" msg msg' =>
+              Lens.Family2.Lens msg msg' (Data.ProtoLens.Field "encounterId" msg)
+                (Data.ProtoLens.Field "encounterId" msg')
+encounterId
+  = Data.ProtoLens.field
+      (Data.ProtoLens.ProxySym :: Data.ProtoLens.ProxySym "encounterId")
+
+fortId ::
+       forall msg msg' . Data.ProtoLens.HasField "fortId" msg msg' =>
+         Lens.Family2.Lens msg msg' (Data.ProtoLens.Field "fortId" msg)
+           (Data.ProtoLens.Field "fortId" msg')
+fortId
+  = Data.ProtoLens.field
+      (Data.ProtoLens.ProxySym :: Data.ProtoLens.ProxySym "fortId")
+
+lureExpiresTimestampMs ::
+                       forall msg msg' .
+                         Data.ProtoLens.HasField "lureExpiresTimestampMs" msg msg' =>
+                         Lens.Family2.Lens msg msg'
+                           (Data.ProtoLens.Field "lureExpiresTimestampMs" msg)
+                           (Data.ProtoLens.Field "lureExpiresTimestampMs" msg')
+lureExpiresTimestampMs
+  = Data.ProtoLens.field
+      (Data.ProtoLens.ProxySym ::
+         Data.ProtoLens.ProxySym "lureExpiresTimestampMs")
diff --git a/src/Proto/POGOProtos/Map/Fort/FortModifier.hs b/src/Proto/POGOProtos/Map/Fort/FortModifier.hs
new file mode 100644
--- /dev/null
+++ b/src/Proto/POGOProtos/Map/Fort/FortModifier.hs
@@ -0,0 +1,121 @@
+{- This file was auto-generated from POGOProtos/Map/Fort/FortModifier.proto by the proto-lens-protoc program. -}
+{-# LANGUAGE ScopedTypeVariables, DataKinds, TypeFamilies,
+  MultiParamTypeClasses, FlexibleContexts, FlexibleInstances #-}
+{-# OPTIONS_GHC -fno-warn-unused-imports#-}
+module Proto.POGOProtos.Map.Fort.FortModifier where
+import qualified Prelude
+import qualified Data.ProtoLens
+import qualified Data.ProtoLens.Message.Enum
+import qualified Lens.Family2
+import qualified Lens.Family2.Unchecked
+import qualified Data.Default.Class
+import qualified Data.Text
+import qualified Data.Int
+import qualified Data.Word
+import qualified Data.Map
+import qualified Data.ByteString
+import qualified Proto.POGOProtos.Inventory.Item.ItemId
+
+data FortModifier = FortModifier{_FortModifier'itemId ::
+                                 Proto.POGOProtos.Inventory.Item.ItemId.ItemId,
+                                 _FortModifier'expirationTimestampMs :: Data.Int.Int64,
+                                 _FortModifier'deployerPlayerCodename :: Data.Text.Text}
+                  deriving (Prelude.Show, Prelude.Eq)
+
+type instance Data.ProtoLens.Field "itemId" FortModifier =
+     Proto.POGOProtos.Inventory.Item.ItemId.ItemId
+
+instance Data.ProtoLens.HasField "itemId" FortModifier FortModifier
+         where
+        field _
+          = Lens.Family2.Unchecked.lens _FortModifier'itemId
+              (\ x__ y__ -> x__{_FortModifier'itemId = y__})
+
+type instance
+     Data.ProtoLens.Field "expirationTimestampMs" FortModifier =
+     Data.Int.Int64
+
+instance Data.ProtoLens.HasField "expirationTimestampMs"
+         FortModifier FortModifier where
+        field _
+          = Lens.Family2.Unchecked.lens _FortModifier'expirationTimestampMs
+              (\ x__ y__ -> x__{_FortModifier'expirationTimestampMs = y__})
+
+type instance
+     Data.ProtoLens.Field "deployerPlayerCodename" FortModifier =
+     Data.Text.Text
+
+instance Data.ProtoLens.HasField "deployerPlayerCodename"
+         FortModifier FortModifier where
+        field _
+          = Lens.Family2.Unchecked.lens _FortModifier'deployerPlayerCodename
+              (\ x__ y__ -> x__{_FortModifier'deployerPlayerCodename = y__})
+
+instance Data.Default.Class.Default FortModifier where
+        def
+          = FortModifier{_FortModifier'itemId = Data.Default.Class.def,
+                         _FortModifier'expirationTimestampMs = Data.ProtoLens.fieldDefault,
+                         _FortModifier'deployerPlayerCodename = Data.ProtoLens.fieldDefault}
+
+instance Data.ProtoLens.Message FortModifier where
+        descriptor
+          = let itemId__field_descriptor
+                  = Data.ProtoLens.FieldDescriptor "item_id"
+                      (Data.ProtoLens.EnumField ::
+                         Data.ProtoLens.FieldTypeDescriptor
+                           Proto.POGOProtos.Inventory.Item.ItemId.ItemId)
+                      (Data.ProtoLens.PlainField Data.ProtoLens.Optional itemId)
+                expirationTimestampMs__field_descriptor
+                  = Data.ProtoLens.FieldDescriptor "expiration_timestamp_ms"
+                      (Data.ProtoLens.Int64Field ::
+                         Data.ProtoLens.FieldTypeDescriptor Data.Int.Int64)
+                      (Data.ProtoLens.PlainField Data.ProtoLens.Optional
+                         expirationTimestampMs)
+                deployerPlayerCodename__field_descriptor
+                  = Data.ProtoLens.FieldDescriptor "deployer_player_codename"
+                      (Data.ProtoLens.StringField ::
+                         Data.ProtoLens.FieldTypeDescriptor Data.Text.Text)
+                      (Data.ProtoLens.PlainField Data.ProtoLens.Optional
+                         deployerPlayerCodename)
+              in
+              Data.ProtoLens.MessageDescriptor
+                (Data.Map.fromList
+                   [(Data.ProtoLens.Tag 1, itemId__field_descriptor),
+                    (Data.ProtoLens.Tag 2, expirationTimestampMs__field_descriptor),
+                    (Data.ProtoLens.Tag 3, deployerPlayerCodename__field_descriptor)])
+                (Data.Map.fromList
+                   [("item_id", itemId__field_descriptor),
+                    ("expiration_timestamp_ms",
+                     expirationTimestampMs__field_descriptor),
+                    ("deployer_player_codename",
+                     deployerPlayerCodename__field_descriptor)])
+
+deployerPlayerCodename ::
+                       forall msg msg' .
+                         Data.ProtoLens.HasField "deployerPlayerCodename" msg msg' =>
+                         Lens.Family2.Lens msg msg'
+                           (Data.ProtoLens.Field "deployerPlayerCodename" msg)
+                           (Data.ProtoLens.Field "deployerPlayerCodename" msg')
+deployerPlayerCodename
+  = Data.ProtoLens.field
+      (Data.ProtoLens.ProxySym ::
+         Data.ProtoLens.ProxySym "deployerPlayerCodename")
+
+expirationTimestampMs ::
+                      forall msg msg' .
+                        Data.ProtoLens.HasField "expirationTimestampMs" msg msg' =>
+                        Lens.Family2.Lens msg msg'
+                          (Data.ProtoLens.Field "expirationTimestampMs" msg)
+                          (Data.ProtoLens.Field "expirationTimestampMs" msg')
+expirationTimestampMs
+  = Data.ProtoLens.field
+      (Data.ProtoLens.ProxySym ::
+         Data.ProtoLens.ProxySym "expirationTimestampMs")
+
+itemId ::
+       forall msg msg' . Data.ProtoLens.HasField "itemId" msg msg' =>
+         Lens.Family2.Lens msg msg' (Data.ProtoLens.Field "itemId" msg)
+           (Data.ProtoLens.Field "itemId" msg')
+itemId
+  = Data.ProtoLens.field
+      (Data.ProtoLens.ProxySym :: Data.ProtoLens.ProxySym "itemId")
diff --git a/src/Proto/POGOProtos/Map/Fort/FortRenderingType.hs b/src/Proto/POGOProtos/Map/Fort/FortRenderingType.hs
new file mode 100644
--- /dev/null
+++ b/src/Proto/POGOProtos/Map/Fort/FortRenderingType.hs
@@ -0,0 +1,63 @@
+{- This file was auto-generated from POGOProtos/Map/Fort/FortRenderingType.proto by the proto-lens-protoc program. -}
+{-# LANGUAGE ScopedTypeVariables, DataKinds, TypeFamilies,
+  MultiParamTypeClasses, FlexibleContexts, FlexibleInstances #-}
+{-# OPTIONS_GHC -fno-warn-unused-imports#-}
+module Proto.POGOProtos.Map.Fort.FortRenderingType where
+import qualified Prelude
+import qualified Data.ProtoLens
+import qualified Data.ProtoLens.Message.Enum
+import qualified Lens.Family2
+import qualified Lens.Family2.Unchecked
+import qualified Data.Default.Class
+import qualified Data.Text
+import qualified Data.Int
+import qualified Data.Word
+import qualified Data.Map
+import qualified Data.ByteString
+
+data FortRenderingType = DEFAULT
+                       | INTERNAL_TEST
+                       deriving (Prelude.Show, Prelude.Eq)
+
+instance Data.Default.Class.Default FortRenderingType where
+        def = DEFAULT
+
+instance Data.ProtoLens.FieldDefault FortRenderingType where
+        fieldDefault = DEFAULT
+
+instance Data.ProtoLens.MessageEnum FortRenderingType where
+        maybeToEnum 0 = Prelude.Just DEFAULT
+        maybeToEnum 1 = Prelude.Just INTERNAL_TEST
+        maybeToEnum _ = Prelude.Nothing
+        showEnum DEFAULT = "DEFAULT"
+        showEnum INTERNAL_TEST = "INTERNAL_TEST"
+        readEnum "DEFAULT" = Prelude.Just DEFAULT
+        readEnum "INTERNAL_TEST" = Prelude.Just INTERNAL_TEST
+        readEnum _ = Prelude.Nothing
+
+instance Prelude.Enum FortRenderingType where
+        toEnum k__
+          = Prelude.maybe
+              (Prelude.error
+                 ((Prelude.++) "toEnum: unknown value for enum FortRenderingType: "
+                    (Prelude.show k__)))
+              Prelude.id
+              (Data.ProtoLens.maybeToEnum k__)
+        fromEnum DEFAULT = 0
+        fromEnum INTERNAL_TEST = 1
+        succ INTERNAL_TEST
+          = Prelude.error
+              "Ident \"FortRenderingType\".Ident \"succ\": bad argument Ident \"INTERNAL_TEST\". This value would be out of bounds."
+        succ DEFAULT = INTERNAL_TEST
+        pred DEFAULT
+          = Prelude.error
+              "Ident \"FortRenderingType\".Ident \"pred\": bad argument Ident \"DEFAULT\". This value would be out of bounds."
+        pred INTERNAL_TEST = DEFAULT
+        enumFrom = Data.ProtoLens.Message.Enum.messageEnumFrom
+        enumFromTo = Data.ProtoLens.Message.Enum.messageEnumFromTo
+        enumFromThen = Data.ProtoLens.Message.Enum.messageEnumFromThen
+        enumFromThenTo = Data.ProtoLens.Message.Enum.messageEnumFromThenTo
+
+instance Prelude.Bounded FortRenderingType where
+        minBound = DEFAULT
+        maxBound = INTERNAL_TEST
diff --git a/src/Proto/POGOProtos/Map/Fort/FortSponsor.hs b/src/Proto/POGOProtos/Map/Fort/FortSponsor.hs
new file mode 100644
--- /dev/null
+++ b/src/Proto/POGOProtos/Map/Fort/FortSponsor.hs
@@ -0,0 +1,70 @@
+{- This file was auto-generated from POGOProtos/Map/Fort/FortSponsor.proto by the proto-lens-protoc program. -}
+{-# LANGUAGE ScopedTypeVariables, DataKinds, TypeFamilies,
+  MultiParamTypeClasses, FlexibleContexts, FlexibleInstances #-}
+{-# OPTIONS_GHC -fno-warn-unused-imports#-}
+module Proto.POGOProtos.Map.Fort.FortSponsor where
+import qualified Prelude
+import qualified Data.ProtoLens
+import qualified Data.ProtoLens.Message.Enum
+import qualified Lens.Family2
+import qualified Lens.Family2.Unchecked
+import qualified Data.Default.Class
+import qualified Data.Text
+import qualified Data.Int
+import qualified Data.Word
+import qualified Data.Map
+import qualified Data.ByteString
+
+data FortSponsor = UNSET_SPONSOR
+                 | MCDONALDS
+                 | POKEMON_STORE
+                 deriving (Prelude.Show, Prelude.Eq)
+
+instance Data.Default.Class.Default FortSponsor where
+        def = UNSET_SPONSOR
+
+instance Data.ProtoLens.FieldDefault FortSponsor where
+        fieldDefault = UNSET_SPONSOR
+
+instance Data.ProtoLens.MessageEnum FortSponsor where
+        maybeToEnum 0 = Prelude.Just UNSET_SPONSOR
+        maybeToEnum 1 = Prelude.Just MCDONALDS
+        maybeToEnum 2 = Prelude.Just POKEMON_STORE
+        maybeToEnum _ = Prelude.Nothing
+        showEnum UNSET_SPONSOR = "UNSET_SPONSOR"
+        showEnum MCDONALDS = "MCDONALDS"
+        showEnum POKEMON_STORE = "POKEMON_STORE"
+        readEnum "UNSET_SPONSOR" = Prelude.Just UNSET_SPONSOR
+        readEnum "MCDONALDS" = Prelude.Just MCDONALDS
+        readEnum "POKEMON_STORE" = Prelude.Just POKEMON_STORE
+        readEnum _ = Prelude.Nothing
+
+instance Prelude.Enum FortSponsor where
+        toEnum k__
+          = Prelude.maybe
+              (Prelude.error
+                 ((Prelude.++) "toEnum: unknown value for enum FortSponsor: "
+                    (Prelude.show k__)))
+              Prelude.id
+              (Data.ProtoLens.maybeToEnum k__)
+        fromEnum UNSET_SPONSOR = 0
+        fromEnum MCDONALDS = 1
+        fromEnum POKEMON_STORE = 2
+        succ POKEMON_STORE
+          = Prelude.error
+              "Ident \"FortSponsor\".Ident \"succ\": bad argument Ident \"POKEMON_STORE\". This value would be out of bounds."
+        succ UNSET_SPONSOR = MCDONALDS
+        succ MCDONALDS = POKEMON_STORE
+        pred UNSET_SPONSOR
+          = Prelude.error
+              "Ident \"FortSponsor\".Ident \"pred\": bad argument Ident \"UNSET_SPONSOR\". This value would be out of bounds."
+        pred MCDONALDS = UNSET_SPONSOR
+        pred POKEMON_STORE = MCDONALDS
+        enumFrom = Data.ProtoLens.Message.Enum.messageEnumFrom
+        enumFromTo = Data.ProtoLens.Message.Enum.messageEnumFromTo
+        enumFromThen = Data.ProtoLens.Message.Enum.messageEnumFromThen
+        enumFromThenTo = Data.ProtoLens.Message.Enum.messageEnumFromThenTo
+
+instance Prelude.Bounded FortSponsor where
+        minBound = UNSET_SPONSOR
+        maxBound = POKEMON_STORE
diff --git a/src/Proto/POGOProtos/Map/Fort/FortSummary.hs b/src/Proto/POGOProtos/Map/Fort/FortSummary.hs
new file mode 100644
--- /dev/null
+++ b/src/Proto/POGOProtos/Map/Fort/FortSummary.hs
@@ -0,0 +1,143 @@
+{- This file was auto-generated from POGOProtos/Map/Fort/FortSummary.proto by the proto-lens-protoc program. -}
+{-# LANGUAGE ScopedTypeVariables, DataKinds, TypeFamilies,
+  MultiParamTypeClasses, FlexibleContexts, FlexibleInstances #-}
+{-# OPTIONS_GHC -fno-warn-unused-imports#-}
+module Proto.POGOProtos.Map.Fort.FortSummary where
+import qualified Prelude
+import qualified Data.ProtoLens
+import qualified Data.ProtoLens.Message.Enum
+import qualified Lens.Family2
+import qualified Lens.Family2.Unchecked
+import qualified Data.Default.Class
+import qualified Data.Text
+import qualified Data.Int
+import qualified Data.Word
+import qualified Data.Map
+import qualified Data.ByteString
+
+data FortSummary = FortSummary{_FortSummary'fortSummaryId ::
+                               Data.Text.Text,
+                               _FortSummary'lastModifiedTimestampMs :: Data.Int.Int64,
+                               _FortSummary'latitude :: Prelude.Double,
+                               _FortSummary'longitude :: Prelude.Double}
+                 deriving (Prelude.Show, Prelude.Eq)
+
+type instance Data.ProtoLens.Field "fortSummaryId" FortSummary =
+     Data.Text.Text
+
+instance Data.ProtoLens.HasField "fortSummaryId" FortSummary
+         FortSummary where
+        field _
+          = Lens.Family2.Unchecked.lens _FortSummary'fortSummaryId
+              (\ x__ y__ -> x__{_FortSummary'fortSummaryId = y__})
+
+type instance
+     Data.ProtoLens.Field "lastModifiedTimestampMs" FortSummary =
+     Data.Int.Int64
+
+instance Data.ProtoLens.HasField "lastModifiedTimestampMs"
+         FortSummary FortSummary where
+        field _
+          = Lens.Family2.Unchecked.lens _FortSummary'lastModifiedTimestampMs
+              (\ x__ y__ -> x__{_FortSummary'lastModifiedTimestampMs = y__})
+
+type instance Data.ProtoLens.Field "latitude" FortSummary =
+     Prelude.Double
+
+instance Data.ProtoLens.HasField "latitude" FortSummary FortSummary
+         where
+        field _
+          = Lens.Family2.Unchecked.lens _FortSummary'latitude
+              (\ x__ y__ -> x__{_FortSummary'latitude = y__})
+
+type instance Data.ProtoLens.Field "longitude" FortSummary =
+     Prelude.Double
+
+instance Data.ProtoLens.HasField "longitude" FortSummary
+         FortSummary where
+        field _
+          = Lens.Family2.Unchecked.lens _FortSummary'longitude
+              (\ x__ y__ -> x__{_FortSummary'longitude = y__})
+
+instance Data.Default.Class.Default FortSummary where
+        def
+          = FortSummary{_FortSummary'fortSummaryId =
+                          Data.ProtoLens.fieldDefault,
+                        _FortSummary'lastModifiedTimestampMs = Data.ProtoLens.fieldDefault,
+                        _FortSummary'latitude = Data.ProtoLens.fieldDefault,
+                        _FortSummary'longitude = Data.ProtoLens.fieldDefault}
+
+instance Data.ProtoLens.Message FortSummary where
+        descriptor
+          = let fortSummaryId__field_descriptor
+                  = Data.ProtoLens.FieldDescriptor "fort_summary_id"
+                      (Data.ProtoLens.StringField ::
+                         Data.ProtoLens.FieldTypeDescriptor Data.Text.Text)
+                      (Data.ProtoLens.PlainField Data.ProtoLens.Optional fortSummaryId)
+                lastModifiedTimestampMs__field_descriptor
+                  = Data.ProtoLens.FieldDescriptor "last_modified_timestamp_ms"
+                      (Data.ProtoLens.Int64Field ::
+                         Data.ProtoLens.FieldTypeDescriptor Data.Int.Int64)
+                      (Data.ProtoLens.PlainField Data.ProtoLens.Optional
+                         lastModifiedTimestampMs)
+                latitude__field_descriptor
+                  = Data.ProtoLens.FieldDescriptor "latitude"
+                      (Data.ProtoLens.DoubleField ::
+                         Data.ProtoLens.FieldTypeDescriptor Prelude.Double)
+                      (Data.ProtoLens.PlainField Data.ProtoLens.Optional latitude)
+                longitude__field_descriptor
+                  = Data.ProtoLens.FieldDescriptor "longitude"
+                      (Data.ProtoLens.DoubleField ::
+                         Data.ProtoLens.FieldTypeDescriptor Prelude.Double)
+                      (Data.ProtoLens.PlainField Data.ProtoLens.Optional longitude)
+              in
+              Data.ProtoLens.MessageDescriptor
+                (Data.Map.fromList
+                   [(Data.ProtoLens.Tag 1, fortSummaryId__field_descriptor),
+                    (Data.ProtoLens.Tag 2, lastModifiedTimestampMs__field_descriptor),
+                    (Data.ProtoLens.Tag 3, latitude__field_descriptor),
+                    (Data.ProtoLens.Tag 4, longitude__field_descriptor)])
+                (Data.Map.fromList
+                   [("fort_summary_id", fortSummaryId__field_descriptor),
+                    ("last_modified_timestamp_ms",
+                     lastModifiedTimestampMs__field_descriptor),
+                    ("latitude", latitude__field_descriptor),
+                    ("longitude", longitude__field_descriptor)])
+
+fortSummaryId ::
+              forall msg msg' .
+                Data.ProtoLens.HasField "fortSummaryId" msg msg' =>
+                Lens.Family2.Lens msg msg'
+                  (Data.ProtoLens.Field "fortSummaryId" msg)
+                  (Data.ProtoLens.Field "fortSummaryId" msg')
+fortSummaryId
+  = Data.ProtoLens.field
+      (Data.ProtoLens.ProxySym ::
+         Data.ProtoLens.ProxySym "fortSummaryId")
+
+lastModifiedTimestampMs ::
+                        forall msg msg' .
+                          Data.ProtoLens.HasField "lastModifiedTimestampMs" msg msg' =>
+                          Lens.Family2.Lens msg msg'
+                            (Data.ProtoLens.Field "lastModifiedTimestampMs" msg)
+                            (Data.ProtoLens.Field "lastModifiedTimestampMs" msg')
+lastModifiedTimestampMs
+  = Data.ProtoLens.field
+      (Data.ProtoLens.ProxySym ::
+         Data.ProtoLens.ProxySym "lastModifiedTimestampMs")
+
+latitude ::
+         forall msg msg' . Data.ProtoLens.HasField "latitude" msg msg' =>
+           Lens.Family2.Lens msg msg' (Data.ProtoLens.Field "latitude" msg)
+             (Data.ProtoLens.Field "latitude" msg')
+latitude
+  = Data.ProtoLens.field
+      (Data.ProtoLens.ProxySym :: Data.ProtoLens.ProxySym "latitude")
+
+longitude ::
+          forall msg msg' . Data.ProtoLens.HasField "longitude" msg msg' =>
+            Lens.Family2.Lens msg msg' (Data.ProtoLens.Field "longitude" msg)
+              (Data.ProtoLens.Field "longitude" msg')
+longitude
+  = Data.ProtoLens.field
+      (Data.ProtoLens.ProxySym :: Data.ProtoLens.ProxySym "longitude")
diff --git a/src/Proto/POGOProtos/Map/Fort/FortType.hs b/src/Proto/POGOProtos/Map/Fort/FortType.hs
new file mode 100644
--- /dev/null
+++ b/src/Proto/POGOProtos/Map/Fort/FortType.hs
@@ -0,0 +1,63 @@
+{- This file was auto-generated from POGOProtos/Map/Fort/FortType.proto by the proto-lens-protoc program. -}
+{-# LANGUAGE ScopedTypeVariables, DataKinds, TypeFamilies,
+  MultiParamTypeClasses, FlexibleContexts, FlexibleInstances #-}
+{-# OPTIONS_GHC -fno-warn-unused-imports#-}
+module Proto.POGOProtos.Map.Fort.FortType where
+import qualified Prelude
+import qualified Data.ProtoLens
+import qualified Data.ProtoLens.Message.Enum
+import qualified Lens.Family2
+import qualified Lens.Family2.Unchecked
+import qualified Data.Default.Class
+import qualified Data.Text
+import qualified Data.Int
+import qualified Data.Word
+import qualified Data.Map
+import qualified Data.ByteString
+
+data FortType = GYM
+              | CHECKPOINT
+              deriving (Prelude.Show, Prelude.Eq)
+
+instance Data.Default.Class.Default FortType where
+        def = GYM
+
+instance Data.ProtoLens.FieldDefault FortType where
+        fieldDefault = GYM
+
+instance Data.ProtoLens.MessageEnum FortType where
+        maybeToEnum 0 = Prelude.Just GYM
+        maybeToEnum 1 = Prelude.Just CHECKPOINT
+        maybeToEnum _ = Prelude.Nothing
+        showEnum GYM = "GYM"
+        showEnum CHECKPOINT = "CHECKPOINT"
+        readEnum "GYM" = Prelude.Just GYM
+        readEnum "CHECKPOINT" = Prelude.Just CHECKPOINT
+        readEnum _ = Prelude.Nothing
+
+instance Prelude.Enum FortType where
+        toEnum k__
+          = Prelude.maybe
+              (Prelude.error
+                 ((Prelude.++) "toEnum: unknown value for enum FortType: "
+                    (Prelude.show k__)))
+              Prelude.id
+              (Data.ProtoLens.maybeToEnum k__)
+        fromEnum GYM = 0
+        fromEnum CHECKPOINT = 1
+        succ CHECKPOINT
+          = Prelude.error
+              "Ident \"FortType\".Ident \"succ\": bad argument Ident \"CHECKPOINT\". This value would be out of bounds."
+        succ GYM = CHECKPOINT
+        pred GYM
+          = Prelude.error
+              "Ident \"FortType\".Ident \"pred\": bad argument Ident \"GYM\". This value would be out of bounds."
+        pred CHECKPOINT = GYM
+        enumFrom = Data.ProtoLens.Message.Enum.messageEnumFrom
+        enumFromTo = Data.ProtoLens.Message.Enum.messageEnumFromTo
+        enumFromThen = Data.ProtoLens.Message.Enum.messageEnumFromThen
+        enumFromThenTo = Data.ProtoLens.Message.Enum.messageEnumFromThenTo
+
+instance Prelude.Bounded FortType where
+        minBound = GYM
+        maxBound = CHECKPOINT
diff --git a/src/Proto/POGOProtos/Map/MapCell.hs b/src/Proto/POGOProtos/Map/MapCell.hs
new file mode 100644
--- /dev/null
+++ b/src/Proto/POGOProtos/Map/MapCell.hs
@@ -0,0 +1,357 @@
+{- This file was auto-generated from POGOProtos/Map/MapCell.proto by the proto-lens-protoc program. -}
+{-# LANGUAGE ScopedTypeVariables, DataKinds, TypeFamilies,
+  MultiParamTypeClasses, FlexibleContexts, FlexibleInstances #-}
+{-# OPTIONS_GHC -fno-warn-unused-imports#-}
+module Proto.POGOProtos.Map.MapCell where
+import qualified Prelude
+import qualified Data.ProtoLens
+import qualified Data.ProtoLens.Message.Enum
+import qualified Lens.Family2
+import qualified Lens.Family2.Unchecked
+import qualified Data.Default.Class
+import qualified Data.Text
+import qualified Data.Int
+import qualified Data.Word
+import qualified Data.Map
+import qualified Data.ByteString
+import qualified Proto.POGOProtos.Map.Fort.FortData
+import qualified Proto.POGOProtos.Map.Fort.FortSummary
+import qualified Proto.POGOProtos.Map.Pokemon.MapPokemon
+import qualified Proto.POGOProtos.Map.Pokemon.NearbyPokemon
+import qualified Proto.POGOProtos.Map.Pokemon.WildPokemon
+import qualified Proto.POGOProtos.Map.SpawnPoint
+
+data MapCell = MapCell{_MapCell's2CellId :: Data.Word.Word64,
+                       _MapCell'currentTimestampMs :: Data.Int.Int64,
+                       _MapCell'forts :: [Proto.POGOProtos.Map.Fort.FortData.FortData],
+                       _MapCell'spawnPoints ::
+                       [Proto.POGOProtos.Map.SpawnPoint.SpawnPoint],
+                       _MapCell'deletedObjects :: [Data.Text.Text],
+                       _MapCell'isTruncatedList :: Prelude.Bool,
+                       _MapCell'fortSummaries ::
+                       [Proto.POGOProtos.Map.Fort.FortSummary.FortSummary],
+                       _MapCell'decimatedSpawnPoints ::
+                       [Proto.POGOProtos.Map.SpawnPoint.SpawnPoint],
+                       _MapCell'wildPokemons ::
+                       [Proto.POGOProtos.Map.Pokemon.WildPokemon.WildPokemon],
+                       _MapCell'catchablePokemons ::
+                       [Proto.POGOProtos.Map.Pokemon.MapPokemon.MapPokemon],
+                       _MapCell'nearbyPokemons ::
+                       [Proto.POGOProtos.Map.Pokemon.NearbyPokemon.NearbyPokemon]}
+             deriving (Prelude.Show, Prelude.Eq)
+
+type instance Data.ProtoLens.Field "s2CellId" MapCell =
+     Data.Word.Word64
+
+instance Data.ProtoLens.HasField "s2CellId" MapCell MapCell where
+        field _
+          = Lens.Family2.Unchecked.lens _MapCell's2CellId
+              (\ x__ y__ -> x__{_MapCell's2CellId = y__})
+
+type instance Data.ProtoLens.Field "currentTimestampMs" MapCell =
+     Data.Int.Int64
+
+instance Data.ProtoLens.HasField "currentTimestampMs" MapCell
+         MapCell where
+        field _
+          = Lens.Family2.Unchecked.lens _MapCell'currentTimestampMs
+              (\ x__ y__ -> x__{_MapCell'currentTimestampMs = y__})
+
+type instance Data.ProtoLens.Field "forts" MapCell =
+     [Proto.POGOProtos.Map.Fort.FortData.FortData]
+
+instance Data.ProtoLens.HasField "forts" MapCell MapCell where
+        field _
+          = Lens.Family2.Unchecked.lens _MapCell'forts
+              (\ x__ y__ -> x__{_MapCell'forts = y__})
+
+type instance Data.ProtoLens.Field "spawnPoints" MapCell =
+     [Proto.POGOProtos.Map.SpawnPoint.SpawnPoint]
+
+instance Data.ProtoLens.HasField "spawnPoints" MapCell MapCell
+         where
+        field _
+          = Lens.Family2.Unchecked.lens _MapCell'spawnPoints
+              (\ x__ y__ -> x__{_MapCell'spawnPoints = y__})
+
+type instance Data.ProtoLens.Field "deletedObjects" MapCell =
+     [Data.Text.Text]
+
+instance Data.ProtoLens.HasField "deletedObjects" MapCell MapCell
+         where
+        field _
+          = Lens.Family2.Unchecked.lens _MapCell'deletedObjects
+              (\ x__ y__ -> x__{_MapCell'deletedObjects = y__})
+
+type instance Data.ProtoLens.Field "isTruncatedList" MapCell =
+     Prelude.Bool
+
+instance Data.ProtoLens.HasField "isTruncatedList" MapCell MapCell
+         where
+        field _
+          = Lens.Family2.Unchecked.lens _MapCell'isTruncatedList
+              (\ x__ y__ -> x__{_MapCell'isTruncatedList = y__})
+
+type instance Data.ProtoLens.Field "fortSummaries" MapCell =
+     [Proto.POGOProtos.Map.Fort.FortSummary.FortSummary]
+
+instance Data.ProtoLens.HasField "fortSummaries" MapCell MapCell
+         where
+        field _
+          = Lens.Family2.Unchecked.lens _MapCell'fortSummaries
+              (\ x__ y__ -> x__{_MapCell'fortSummaries = y__})
+
+type instance Data.ProtoLens.Field "decimatedSpawnPoints" MapCell =
+     [Proto.POGOProtos.Map.SpawnPoint.SpawnPoint]
+
+instance Data.ProtoLens.HasField "decimatedSpawnPoints" MapCell
+         MapCell where
+        field _
+          = Lens.Family2.Unchecked.lens _MapCell'decimatedSpawnPoints
+              (\ x__ y__ -> x__{_MapCell'decimatedSpawnPoints = y__})
+
+type instance Data.ProtoLens.Field "wildPokemons" MapCell =
+     [Proto.POGOProtos.Map.Pokemon.WildPokemon.WildPokemon]
+
+instance Data.ProtoLens.HasField "wildPokemons" MapCell MapCell
+         where
+        field _
+          = Lens.Family2.Unchecked.lens _MapCell'wildPokemons
+              (\ x__ y__ -> x__{_MapCell'wildPokemons = y__})
+
+type instance Data.ProtoLens.Field "catchablePokemons" MapCell =
+     [Proto.POGOProtos.Map.Pokemon.MapPokemon.MapPokemon]
+
+instance Data.ProtoLens.HasField "catchablePokemons" MapCell
+         MapCell where
+        field _
+          = Lens.Family2.Unchecked.lens _MapCell'catchablePokemons
+              (\ x__ y__ -> x__{_MapCell'catchablePokemons = y__})
+
+type instance Data.ProtoLens.Field "nearbyPokemons" MapCell =
+     [Proto.POGOProtos.Map.Pokemon.NearbyPokemon.NearbyPokemon]
+
+instance Data.ProtoLens.HasField "nearbyPokemons" MapCell MapCell
+         where
+        field _
+          = Lens.Family2.Unchecked.lens _MapCell'nearbyPokemons
+              (\ x__ y__ -> x__{_MapCell'nearbyPokemons = y__})
+
+instance Data.Default.Class.Default MapCell where
+        def
+          = MapCell{_MapCell's2CellId = Data.ProtoLens.fieldDefault,
+                    _MapCell'currentTimestampMs = Data.ProtoLens.fieldDefault,
+                    _MapCell'forts = [], _MapCell'spawnPoints = [],
+                    _MapCell'deletedObjects = [],
+                    _MapCell'isTruncatedList = Data.ProtoLens.fieldDefault,
+                    _MapCell'fortSummaries = [], _MapCell'decimatedSpawnPoints = [],
+                    _MapCell'wildPokemons = [], _MapCell'catchablePokemons = [],
+                    _MapCell'nearbyPokemons = []}
+
+instance Data.ProtoLens.Message MapCell where
+        descriptor
+          = let s2CellId__field_descriptor
+                  = Data.ProtoLens.FieldDescriptor "s2_cell_id"
+                      (Data.ProtoLens.UInt64Field ::
+                         Data.ProtoLens.FieldTypeDescriptor Data.Word.Word64)
+                      (Data.ProtoLens.PlainField Data.ProtoLens.Optional s2CellId)
+                currentTimestampMs__field_descriptor
+                  = Data.ProtoLens.FieldDescriptor "current_timestamp_ms"
+                      (Data.ProtoLens.Int64Field ::
+                         Data.ProtoLens.FieldTypeDescriptor Data.Int.Int64)
+                      (Data.ProtoLens.PlainField Data.ProtoLens.Optional
+                         currentTimestampMs)
+                forts__field_descriptor
+                  = Data.ProtoLens.FieldDescriptor "forts"
+                      (Data.ProtoLens.MessageField ::
+                         Data.ProtoLens.FieldTypeDescriptor
+                           Proto.POGOProtos.Map.Fort.FortData.FortData)
+                      (Data.ProtoLens.RepeatedField Data.ProtoLens.Unpacked forts)
+                spawnPoints__field_descriptor
+                  = Data.ProtoLens.FieldDescriptor "spawn_points"
+                      (Data.ProtoLens.MessageField ::
+                         Data.ProtoLens.FieldTypeDescriptor
+                           Proto.POGOProtos.Map.SpawnPoint.SpawnPoint)
+                      (Data.ProtoLens.RepeatedField Data.ProtoLens.Unpacked spawnPoints)
+                deletedObjects__field_descriptor
+                  = Data.ProtoLens.FieldDescriptor "deleted_objects"
+                      (Data.ProtoLens.StringField ::
+                         Data.ProtoLens.FieldTypeDescriptor Data.Text.Text)
+                      (Data.ProtoLens.RepeatedField Data.ProtoLens.Unpacked
+                         deletedObjects)
+                isTruncatedList__field_descriptor
+                  = Data.ProtoLens.FieldDescriptor "is_truncated_list"
+                      (Data.ProtoLens.BoolField ::
+                         Data.ProtoLens.FieldTypeDescriptor Prelude.Bool)
+                      (Data.ProtoLens.PlainField Data.ProtoLens.Optional isTruncatedList)
+                fortSummaries__field_descriptor
+                  = Data.ProtoLens.FieldDescriptor "fort_summaries"
+                      (Data.ProtoLens.MessageField ::
+                         Data.ProtoLens.FieldTypeDescriptor
+                           Proto.POGOProtos.Map.Fort.FortSummary.FortSummary)
+                      (Data.ProtoLens.RepeatedField Data.ProtoLens.Unpacked
+                         fortSummaries)
+                decimatedSpawnPoints__field_descriptor
+                  = Data.ProtoLens.FieldDescriptor "decimated_spawn_points"
+                      (Data.ProtoLens.MessageField ::
+                         Data.ProtoLens.FieldTypeDescriptor
+                           Proto.POGOProtos.Map.SpawnPoint.SpawnPoint)
+                      (Data.ProtoLens.RepeatedField Data.ProtoLens.Unpacked
+                         decimatedSpawnPoints)
+                wildPokemons__field_descriptor
+                  = Data.ProtoLens.FieldDescriptor "wild_pokemons"
+                      (Data.ProtoLens.MessageField ::
+                         Data.ProtoLens.FieldTypeDescriptor
+                           Proto.POGOProtos.Map.Pokemon.WildPokemon.WildPokemon)
+                      (Data.ProtoLens.RepeatedField Data.ProtoLens.Unpacked wildPokemons)
+                catchablePokemons__field_descriptor
+                  = Data.ProtoLens.FieldDescriptor "catchable_pokemons"
+                      (Data.ProtoLens.MessageField ::
+                         Data.ProtoLens.FieldTypeDescriptor
+                           Proto.POGOProtos.Map.Pokemon.MapPokemon.MapPokemon)
+                      (Data.ProtoLens.RepeatedField Data.ProtoLens.Unpacked
+                         catchablePokemons)
+                nearbyPokemons__field_descriptor
+                  = Data.ProtoLens.FieldDescriptor "nearby_pokemons"
+                      (Data.ProtoLens.MessageField ::
+                         Data.ProtoLens.FieldTypeDescriptor
+                           Proto.POGOProtos.Map.Pokemon.NearbyPokemon.NearbyPokemon)
+                      (Data.ProtoLens.RepeatedField Data.ProtoLens.Unpacked
+                         nearbyPokemons)
+              in
+              Data.ProtoLens.MessageDescriptor
+                (Data.Map.fromList
+                   [(Data.ProtoLens.Tag 1, s2CellId__field_descriptor),
+                    (Data.ProtoLens.Tag 2, currentTimestampMs__field_descriptor),
+                    (Data.ProtoLens.Tag 3, forts__field_descriptor),
+                    (Data.ProtoLens.Tag 4, spawnPoints__field_descriptor),
+                    (Data.ProtoLens.Tag 6, deletedObjects__field_descriptor),
+                    (Data.ProtoLens.Tag 7, isTruncatedList__field_descriptor),
+                    (Data.ProtoLens.Tag 8, fortSummaries__field_descriptor),
+                    (Data.ProtoLens.Tag 9, decimatedSpawnPoints__field_descriptor),
+                    (Data.ProtoLens.Tag 5, wildPokemons__field_descriptor),
+                    (Data.ProtoLens.Tag 10, catchablePokemons__field_descriptor),
+                    (Data.ProtoLens.Tag 11, nearbyPokemons__field_descriptor)])
+                (Data.Map.fromList
+                   [("s2_cell_id", s2CellId__field_descriptor),
+                    ("current_timestamp_ms", currentTimestampMs__field_descriptor),
+                    ("forts", forts__field_descriptor),
+                    ("spawn_points", spawnPoints__field_descriptor),
+                    ("deleted_objects", deletedObjects__field_descriptor),
+                    ("is_truncated_list", isTruncatedList__field_descriptor),
+                    ("fort_summaries", fortSummaries__field_descriptor),
+                    ("decimated_spawn_points", decimatedSpawnPoints__field_descriptor),
+                    ("wild_pokemons", wildPokemons__field_descriptor),
+                    ("catchable_pokemons", catchablePokemons__field_descriptor),
+                    ("nearby_pokemons", nearbyPokemons__field_descriptor)])
+
+catchablePokemons ::
+                  forall msg msg' .
+                    Data.ProtoLens.HasField "catchablePokemons" msg msg' =>
+                    Lens.Family2.Lens msg msg'
+                      (Data.ProtoLens.Field "catchablePokemons" msg)
+                      (Data.ProtoLens.Field "catchablePokemons" msg')
+catchablePokemons
+  = Data.ProtoLens.field
+      (Data.ProtoLens.ProxySym ::
+         Data.ProtoLens.ProxySym "catchablePokemons")
+
+currentTimestampMs ::
+                   forall msg msg' .
+                     Data.ProtoLens.HasField "currentTimestampMs" msg msg' =>
+                     Lens.Family2.Lens msg msg'
+                       (Data.ProtoLens.Field "currentTimestampMs" msg)
+                       (Data.ProtoLens.Field "currentTimestampMs" msg')
+currentTimestampMs
+  = Data.ProtoLens.field
+      (Data.ProtoLens.ProxySym ::
+         Data.ProtoLens.ProxySym "currentTimestampMs")
+
+decimatedSpawnPoints ::
+                     forall msg msg' .
+                       Data.ProtoLens.HasField "decimatedSpawnPoints" msg msg' =>
+                       Lens.Family2.Lens msg msg'
+                         (Data.ProtoLens.Field "decimatedSpawnPoints" msg)
+                         (Data.ProtoLens.Field "decimatedSpawnPoints" msg')
+decimatedSpawnPoints
+  = Data.ProtoLens.field
+      (Data.ProtoLens.ProxySym ::
+         Data.ProtoLens.ProxySym "decimatedSpawnPoints")
+
+deletedObjects ::
+               forall msg msg' .
+                 Data.ProtoLens.HasField "deletedObjects" msg msg' =>
+                 Lens.Family2.Lens msg msg'
+                   (Data.ProtoLens.Field "deletedObjects" msg)
+                   (Data.ProtoLens.Field "deletedObjects" msg')
+deletedObjects
+  = Data.ProtoLens.field
+      (Data.ProtoLens.ProxySym ::
+         Data.ProtoLens.ProxySym "deletedObjects")
+
+fortSummaries ::
+              forall msg msg' .
+                Data.ProtoLens.HasField "fortSummaries" msg msg' =>
+                Lens.Family2.Lens msg msg'
+                  (Data.ProtoLens.Field "fortSummaries" msg)
+                  (Data.ProtoLens.Field "fortSummaries" msg')
+fortSummaries
+  = Data.ProtoLens.field
+      (Data.ProtoLens.ProxySym ::
+         Data.ProtoLens.ProxySym "fortSummaries")
+
+forts ::
+      forall msg msg' . Data.ProtoLens.HasField "forts" msg msg' =>
+        Lens.Family2.Lens msg msg' (Data.ProtoLens.Field "forts" msg)
+          (Data.ProtoLens.Field "forts" msg')
+forts
+  = Data.ProtoLens.field
+      (Data.ProtoLens.ProxySym :: Data.ProtoLens.ProxySym "forts")
+
+isTruncatedList ::
+                forall msg msg' .
+                  Data.ProtoLens.HasField "isTruncatedList" msg msg' =>
+                  Lens.Family2.Lens msg msg'
+                    (Data.ProtoLens.Field "isTruncatedList" msg)
+                    (Data.ProtoLens.Field "isTruncatedList" msg')
+isTruncatedList
+  = Data.ProtoLens.field
+      (Data.ProtoLens.ProxySym ::
+         Data.ProtoLens.ProxySym "isTruncatedList")
+
+nearbyPokemons ::
+               forall msg msg' .
+                 Data.ProtoLens.HasField "nearbyPokemons" msg msg' =>
+                 Lens.Family2.Lens msg msg'
+                   (Data.ProtoLens.Field "nearbyPokemons" msg)
+                   (Data.ProtoLens.Field "nearbyPokemons" msg')
+nearbyPokemons
+  = Data.ProtoLens.field
+      (Data.ProtoLens.ProxySym ::
+         Data.ProtoLens.ProxySym "nearbyPokemons")
+
+s2CellId ::
+         forall msg msg' . Data.ProtoLens.HasField "s2CellId" msg msg' =>
+           Lens.Family2.Lens msg msg' (Data.ProtoLens.Field "s2CellId" msg)
+             (Data.ProtoLens.Field "s2CellId" msg')
+s2CellId
+  = Data.ProtoLens.field
+      (Data.ProtoLens.ProxySym :: Data.ProtoLens.ProxySym "s2CellId")
+
+spawnPoints ::
+            forall msg msg' . Data.ProtoLens.HasField "spawnPoints" msg msg' =>
+              Lens.Family2.Lens msg msg' (Data.ProtoLens.Field "spawnPoints" msg)
+                (Data.ProtoLens.Field "spawnPoints" msg')
+spawnPoints
+  = Data.ProtoLens.field
+      (Data.ProtoLens.ProxySym :: Data.ProtoLens.ProxySym "spawnPoints")
+
+wildPokemons ::
+             forall msg msg' .
+               Data.ProtoLens.HasField "wildPokemons" msg msg' =>
+               Lens.Family2.Lens msg msg'
+                 (Data.ProtoLens.Field "wildPokemons" msg)
+                 (Data.ProtoLens.Field "wildPokemons" msg')
+wildPokemons
+  = Data.ProtoLens.field
+      (Data.ProtoLens.ProxySym :: Data.ProtoLens.ProxySym "wildPokemons")
diff --git a/src/Proto/POGOProtos/Map/MapObjectsStatus.hs b/src/Proto/POGOProtos/Map/MapObjectsStatus.hs
new file mode 100644
--- /dev/null
+++ b/src/Proto/POGOProtos/Map/MapObjectsStatus.hs
@@ -0,0 +1,70 @@
+{- This file was auto-generated from POGOProtos/Map/MapObjectsStatus.proto by the proto-lens-protoc program. -}
+{-# LANGUAGE ScopedTypeVariables, DataKinds, TypeFamilies,
+  MultiParamTypeClasses, FlexibleContexts, FlexibleInstances #-}
+{-# OPTIONS_GHC -fno-warn-unused-imports#-}
+module Proto.POGOProtos.Map.MapObjectsStatus where
+import qualified Prelude
+import qualified Data.ProtoLens
+import qualified Data.ProtoLens.Message.Enum
+import qualified Lens.Family2
+import qualified Lens.Family2.Unchecked
+import qualified Data.Default.Class
+import qualified Data.Text
+import qualified Data.Int
+import qualified Data.Word
+import qualified Data.Map
+import qualified Data.ByteString
+
+data MapObjectsStatus = UNSET_STATUS
+                      | SUCCESS
+                      | LOCATION_UNSET
+                      deriving (Prelude.Show, Prelude.Eq)
+
+instance Data.Default.Class.Default MapObjectsStatus where
+        def = UNSET_STATUS
+
+instance Data.ProtoLens.FieldDefault MapObjectsStatus where
+        fieldDefault = UNSET_STATUS
+
+instance Data.ProtoLens.MessageEnum MapObjectsStatus where
+        maybeToEnum 0 = Prelude.Just UNSET_STATUS
+        maybeToEnum 1 = Prelude.Just SUCCESS
+        maybeToEnum 2 = Prelude.Just LOCATION_UNSET
+        maybeToEnum _ = Prelude.Nothing
+        showEnum UNSET_STATUS = "UNSET_STATUS"
+        showEnum SUCCESS = "SUCCESS"
+        showEnum LOCATION_UNSET = "LOCATION_UNSET"
+        readEnum "UNSET_STATUS" = Prelude.Just UNSET_STATUS
+        readEnum "SUCCESS" = Prelude.Just SUCCESS
+        readEnum "LOCATION_UNSET" = Prelude.Just LOCATION_UNSET
+        readEnum _ = Prelude.Nothing
+
+instance Prelude.Enum MapObjectsStatus where
+        toEnum k__
+          = Prelude.maybe
+              (Prelude.error
+                 ((Prelude.++) "toEnum: unknown value for enum MapObjectsStatus: "
+                    (Prelude.show k__)))
+              Prelude.id
+              (Data.ProtoLens.maybeToEnum k__)
+        fromEnum UNSET_STATUS = 0
+        fromEnum SUCCESS = 1
+        fromEnum LOCATION_UNSET = 2
+        succ LOCATION_UNSET
+          = Prelude.error
+              "Ident \"MapObjectsStatus\".Ident \"succ\": bad argument Ident \"LOCATION_UNSET\". This value would be out of bounds."
+        succ UNSET_STATUS = SUCCESS
+        succ SUCCESS = LOCATION_UNSET
+        pred UNSET_STATUS
+          = Prelude.error
+              "Ident \"MapObjectsStatus\".Ident \"pred\": bad argument Ident \"UNSET_STATUS\". This value would be out of bounds."
+        pred SUCCESS = UNSET_STATUS
+        pred LOCATION_UNSET = SUCCESS
+        enumFrom = Data.ProtoLens.Message.Enum.messageEnumFrom
+        enumFromTo = Data.ProtoLens.Message.Enum.messageEnumFromTo
+        enumFromThen = Data.ProtoLens.Message.Enum.messageEnumFromThen
+        enumFromThenTo = Data.ProtoLens.Message.Enum.messageEnumFromThenTo
+
+instance Prelude.Bounded MapObjectsStatus where
+        minBound = UNSET_STATUS
+        maxBound = LOCATION_UNSET
diff --git a/src/Proto/POGOProtos/Map/Pokemon/MapPokemon.hs b/src/Proto/POGOProtos/Map/Pokemon/MapPokemon.hs
new file mode 100644
--- /dev/null
+++ b/src/Proto/POGOProtos/Map/Pokemon/MapPokemon.hs
@@ -0,0 +1,197 @@
+{- This file was auto-generated from POGOProtos/Map/Pokemon/MapPokemon.proto by the proto-lens-protoc program. -}
+{-# LANGUAGE ScopedTypeVariables, DataKinds, TypeFamilies,
+  MultiParamTypeClasses, FlexibleContexts, FlexibleInstances #-}
+{-# OPTIONS_GHC -fno-warn-unused-imports#-}
+module Proto.POGOProtos.Map.Pokemon.MapPokemon where
+import qualified Prelude
+import qualified Data.ProtoLens
+import qualified Data.ProtoLens.Message.Enum
+import qualified Lens.Family2
+import qualified Lens.Family2.Unchecked
+import qualified Data.Default.Class
+import qualified Data.Text
+import qualified Data.Int
+import qualified Data.Word
+import qualified Data.Map
+import qualified Data.ByteString
+import qualified Proto.POGOProtos.Enums.PokemonId
+
+data MapPokemon = MapPokemon{_MapPokemon'spawnPointId ::
+                             Data.Text.Text,
+                             _MapPokemon'encounterId :: Data.Word.Word64,
+                             _MapPokemon'pokemonId ::
+                             Proto.POGOProtos.Enums.PokemonId.PokemonId,
+                             _MapPokemon'expirationTimestampMs :: Data.Int.Int64,
+                             _MapPokemon'latitude :: Prelude.Double,
+                             _MapPokemon'longitude :: Prelude.Double}
+                deriving (Prelude.Show, Prelude.Eq)
+
+type instance Data.ProtoLens.Field "spawnPointId" MapPokemon =
+     Data.Text.Text
+
+instance Data.ProtoLens.HasField "spawnPointId" MapPokemon
+         MapPokemon where
+        field _
+          = Lens.Family2.Unchecked.lens _MapPokemon'spawnPointId
+              (\ x__ y__ -> x__{_MapPokemon'spawnPointId = y__})
+
+type instance Data.ProtoLens.Field "encounterId" MapPokemon =
+     Data.Word.Word64
+
+instance Data.ProtoLens.HasField "encounterId" MapPokemon
+         MapPokemon where
+        field _
+          = Lens.Family2.Unchecked.lens _MapPokemon'encounterId
+              (\ x__ y__ -> x__{_MapPokemon'encounterId = y__})
+
+type instance Data.ProtoLens.Field "pokemonId" MapPokemon =
+     Proto.POGOProtos.Enums.PokemonId.PokemonId
+
+instance Data.ProtoLens.HasField "pokemonId" MapPokemon MapPokemon
+         where
+        field _
+          = Lens.Family2.Unchecked.lens _MapPokemon'pokemonId
+              (\ x__ y__ -> x__{_MapPokemon'pokemonId = y__})
+
+type instance
+     Data.ProtoLens.Field "expirationTimestampMs" MapPokemon =
+     Data.Int.Int64
+
+instance Data.ProtoLens.HasField "expirationTimestampMs" MapPokemon
+         MapPokemon where
+        field _
+          = Lens.Family2.Unchecked.lens _MapPokemon'expirationTimestampMs
+              (\ x__ y__ -> x__{_MapPokemon'expirationTimestampMs = y__})
+
+type instance Data.ProtoLens.Field "latitude" MapPokemon =
+     Prelude.Double
+
+instance Data.ProtoLens.HasField "latitude" MapPokemon MapPokemon
+         where
+        field _
+          = Lens.Family2.Unchecked.lens _MapPokemon'latitude
+              (\ x__ y__ -> x__{_MapPokemon'latitude = y__})
+
+type instance Data.ProtoLens.Field "longitude" MapPokemon =
+     Prelude.Double
+
+instance Data.ProtoLens.HasField "longitude" MapPokemon MapPokemon
+         where
+        field _
+          = Lens.Family2.Unchecked.lens _MapPokemon'longitude
+              (\ x__ y__ -> x__{_MapPokemon'longitude = y__})
+
+instance Data.Default.Class.Default MapPokemon where
+        def
+          = MapPokemon{_MapPokemon'spawnPointId =
+                         Data.ProtoLens.fieldDefault,
+                       _MapPokemon'encounterId = Data.ProtoLens.fieldDefault,
+                       _MapPokemon'pokemonId = Data.Default.Class.def,
+                       _MapPokemon'expirationTimestampMs = Data.ProtoLens.fieldDefault,
+                       _MapPokemon'latitude = Data.ProtoLens.fieldDefault,
+                       _MapPokemon'longitude = Data.ProtoLens.fieldDefault}
+
+instance Data.ProtoLens.Message MapPokemon where
+        descriptor
+          = let spawnPointId__field_descriptor
+                  = Data.ProtoLens.FieldDescriptor "spawn_point_id"
+                      (Data.ProtoLens.StringField ::
+                         Data.ProtoLens.FieldTypeDescriptor Data.Text.Text)
+                      (Data.ProtoLens.PlainField Data.ProtoLens.Optional spawnPointId)
+                encounterId__field_descriptor
+                  = Data.ProtoLens.FieldDescriptor "encounter_id"
+                      (Data.ProtoLens.Fixed64Field ::
+                         Data.ProtoLens.FieldTypeDescriptor Data.Word.Word64)
+                      (Data.ProtoLens.PlainField Data.ProtoLens.Optional encounterId)
+                pokemonId__field_descriptor
+                  = Data.ProtoLens.FieldDescriptor "pokemon_id"
+                      (Data.ProtoLens.EnumField ::
+                         Data.ProtoLens.FieldTypeDescriptor
+                           Proto.POGOProtos.Enums.PokemonId.PokemonId)
+                      (Data.ProtoLens.PlainField Data.ProtoLens.Optional pokemonId)
+                expirationTimestampMs__field_descriptor
+                  = Data.ProtoLens.FieldDescriptor "expiration_timestamp_ms"
+                      (Data.ProtoLens.Int64Field ::
+                         Data.ProtoLens.FieldTypeDescriptor Data.Int.Int64)
+                      (Data.ProtoLens.PlainField Data.ProtoLens.Optional
+                         expirationTimestampMs)
+                latitude__field_descriptor
+                  = Data.ProtoLens.FieldDescriptor "latitude"
+                      (Data.ProtoLens.DoubleField ::
+                         Data.ProtoLens.FieldTypeDescriptor Prelude.Double)
+                      (Data.ProtoLens.PlainField Data.ProtoLens.Optional latitude)
+                longitude__field_descriptor
+                  = Data.ProtoLens.FieldDescriptor "longitude"
+                      (Data.ProtoLens.DoubleField ::
+                         Data.ProtoLens.FieldTypeDescriptor Prelude.Double)
+                      (Data.ProtoLens.PlainField Data.ProtoLens.Optional longitude)
+              in
+              Data.ProtoLens.MessageDescriptor
+                (Data.Map.fromList
+                   [(Data.ProtoLens.Tag 1, spawnPointId__field_descriptor),
+                    (Data.ProtoLens.Tag 2, encounterId__field_descriptor),
+                    (Data.ProtoLens.Tag 3, pokemonId__field_descriptor),
+                    (Data.ProtoLens.Tag 4, expirationTimestampMs__field_descriptor),
+                    (Data.ProtoLens.Tag 5, latitude__field_descriptor),
+                    (Data.ProtoLens.Tag 6, longitude__field_descriptor)])
+                (Data.Map.fromList
+                   [("spawn_point_id", spawnPointId__field_descriptor),
+                    ("encounter_id", encounterId__field_descriptor),
+                    ("pokemon_id", pokemonId__field_descriptor),
+                    ("expiration_timestamp_ms",
+                     expirationTimestampMs__field_descriptor),
+                    ("latitude", latitude__field_descriptor),
+                    ("longitude", longitude__field_descriptor)])
+
+encounterId ::
+            forall msg msg' . Data.ProtoLens.HasField "encounterId" msg msg' =>
+              Lens.Family2.Lens msg msg' (Data.ProtoLens.Field "encounterId" msg)
+                (Data.ProtoLens.Field "encounterId" msg')
+encounterId
+  = Data.ProtoLens.field
+      (Data.ProtoLens.ProxySym :: Data.ProtoLens.ProxySym "encounterId")
+
+expirationTimestampMs ::
+                      forall msg msg' .
+                        Data.ProtoLens.HasField "expirationTimestampMs" msg msg' =>
+                        Lens.Family2.Lens msg msg'
+                          (Data.ProtoLens.Field "expirationTimestampMs" msg)
+                          (Data.ProtoLens.Field "expirationTimestampMs" msg')
+expirationTimestampMs
+  = Data.ProtoLens.field
+      (Data.ProtoLens.ProxySym ::
+         Data.ProtoLens.ProxySym "expirationTimestampMs")
+
+latitude ::
+         forall msg msg' . Data.ProtoLens.HasField "latitude" msg msg' =>
+           Lens.Family2.Lens msg msg' (Data.ProtoLens.Field "latitude" msg)
+             (Data.ProtoLens.Field "latitude" msg')
+latitude
+  = Data.ProtoLens.field
+      (Data.ProtoLens.ProxySym :: Data.ProtoLens.ProxySym "latitude")
+
+longitude ::
+          forall msg msg' . Data.ProtoLens.HasField "longitude" msg msg' =>
+            Lens.Family2.Lens msg msg' (Data.ProtoLens.Field "longitude" msg)
+              (Data.ProtoLens.Field "longitude" msg')
+longitude
+  = Data.ProtoLens.field
+      (Data.ProtoLens.ProxySym :: Data.ProtoLens.ProxySym "longitude")
+
+pokemonId ::
+          forall msg msg' . Data.ProtoLens.HasField "pokemonId" msg msg' =>
+            Lens.Family2.Lens msg msg' (Data.ProtoLens.Field "pokemonId" msg)
+              (Data.ProtoLens.Field "pokemonId" msg')
+pokemonId
+  = Data.ProtoLens.field
+      (Data.ProtoLens.ProxySym :: Data.ProtoLens.ProxySym "pokemonId")
+
+spawnPointId ::
+             forall msg msg' .
+               Data.ProtoLens.HasField "spawnPointId" msg msg' =>
+               Lens.Family2.Lens msg msg'
+                 (Data.ProtoLens.Field "spawnPointId" msg)
+                 (Data.ProtoLens.Field "spawnPointId" msg')
+spawnPointId
+  = Data.ProtoLens.field
+      (Data.ProtoLens.ProxySym :: Data.ProtoLens.ProxySym "spawnPointId")
diff --git a/src/Proto/POGOProtos/Map/Pokemon/NearbyPokemon.hs b/src/Proto/POGOProtos/Map/Pokemon/NearbyPokemon.hs
new file mode 100644
--- /dev/null
+++ b/src/Proto/POGOProtos/Map/Pokemon/NearbyPokemon.hs
@@ -0,0 +1,113 @@
+{- This file was auto-generated from POGOProtos/Map/Pokemon/NearbyPokemon.proto by the proto-lens-protoc program. -}
+{-# LANGUAGE ScopedTypeVariables, DataKinds, TypeFamilies,
+  MultiParamTypeClasses, FlexibleContexts, FlexibleInstances #-}
+{-# OPTIONS_GHC -fno-warn-unused-imports#-}
+module Proto.POGOProtos.Map.Pokemon.NearbyPokemon where
+import qualified Prelude
+import qualified Data.ProtoLens
+import qualified Data.ProtoLens.Message.Enum
+import qualified Lens.Family2
+import qualified Lens.Family2.Unchecked
+import qualified Data.Default.Class
+import qualified Data.Text
+import qualified Data.Int
+import qualified Data.Word
+import qualified Data.Map
+import qualified Data.ByteString
+import qualified Proto.POGOProtos.Enums.PokemonId
+
+data NearbyPokemon = NearbyPokemon{_NearbyPokemon'pokemonId ::
+                                   Proto.POGOProtos.Enums.PokemonId.PokemonId,
+                                   _NearbyPokemon'distanceInMeters :: Prelude.Float,
+                                   _NearbyPokemon'encounterId :: Data.Word.Word64}
+                   deriving (Prelude.Show, Prelude.Eq)
+
+type instance Data.ProtoLens.Field "pokemonId" NearbyPokemon =
+     Proto.POGOProtos.Enums.PokemonId.PokemonId
+
+instance Data.ProtoLens.HasField "pokemonId" NearbyPokemon
+         NearbyPokemon where
+        field _
+          = Lens.Family2.Unchecked.lens _NearbyPokemon'pokemonId
+              (\ x__ y__ -> x__{_NearbyPokemon'pokemonId = y__})
+
+type instance Data.ProtoLens.Field "distanceInMeters" NearbyPokemon
+     = Prelude.Float
+
+instance Data.ProtoLens.HasField "distanceInMeters" NearbyPokemon
+         NearbyPokemon where
+        field _
+          = Lens.Family2.Unchecked.lens _NearbyPokemon'distanceInMeters
+              (\ x__ y__ -> x__{_NearbyPokemon'distanceInMeters = y__})
+
+type instance Data.ProtoLens.Field "encounterId" NearbyPokemon =
+     Data.Word.Word64
+
+instance Data.ProtoLens.HasField "encounterId" NearbyPokemon
+         NearbyPokemon where
+        field _
+          = Lens.Family2.Unchecked.lens _NearbyPokemon'encounterId
+              (\ x__ y__ -> x__{_NearbyPokemon'encounterId = y__})
+
+instance Data.Default.Class.Default NearbyPokemon where
+        def
+          = NearbyPokemon{_NearbyPokemon'pokemonId = Data.Default.Class.def,
+                          _NearbyPokemon'distanceInMeters = Data.ProtoLens.fieldDefault,
+                          _NearbyPokemon'encounterId = Data.ProtoLens.fieldDefault}
+
+instance Data.ProtoLens.Message NearbyPokemon where
+        descriptor
+          = let pokemonId__field_descriptor
+                  = Data.ProtoLens.FieldDescriptor "pokemon_id"
+                      (Data.ProtoLens.EnumField ::
+                         Data.ProtoLens.FieldTypeDescriptor
+                           Proto.POGOProtos.Enums.PokemonId.PokemonId)
+                      (Data.ProtoLens.PlainField Data.ProtoLens.Optional pokemonId)
+                distanceInMeters__field_descriptor
+                  = Data.ProtoLens.FieldDescriptor "distance_in_meters"
+                      (Data.ProtoLens.FloatField ::
+                         Data.ProtoLens.FieldTypeDescriptor Prelude.Float)
+                      (Data.ProtoLens.PlainField Data.ProtoLens.Optional
+                         distanceInMeters)
+                encounterId__field_descriptor
+                  = Data.ProtoLens.FieldDescriptor "encounter_id"
+                      (Data.ProtoLens.Fixed64Field ::
+                         Data.ProtoLens.FieldTypeDescriptor Data.Word.Word64)
+                      (Data.ProtoLens.PlainField Data.ProtoLens.Optional encounterId)
+              in
+              Data.ProtoLens.MessageDescriptor
+                (Data.Map.fromList
+                   [(Data.ProtoLens.Tag 1, pokemonId__field_descriptor),
+                    (Data.ProtoLens.Tag 2, distanceInMeters__field_descriptor),
+                    (Data.ProtoLens.Tag 3, encounterId__field_descriptor)])
+                (Data.Map.fromList
+                   [("pokemon_id", pokemonId__field_descriptor),
+                    ("distance_in_meters", distanceInMeters__field_descriptor),
+                    ("encounter_id", encounterId__field_descriptor)])
+
+distanceInMeters ::
+                 forall msg msg' .
+                   Data.ProtoLens.HasField "distanceInMeters" msg msg' =>
+                   Lens.Family2.Lens msg msg'
+                     (Data.ProtoLens.Field "distanceInMeters" msg)
+                     (Data.ProtoLens.Field "distanceInMeters" msg')
+distanceInMeters
+  = Data.ProtoLens.field
+      (Data.ProtoLens.ProxySym ::
+         Data.ProtoLens.ProxySym "distanceInMeters")
+
+encounterId ::
+            forall msg msg' . Data.ProtoLens.HasField "encounterId" msg msg' =>
+              Lens.Family2.Lens msg msg' (Data.ProtoLens.Field "encounterId" msg)
+                (Data.ProtoLens.Field "encounterId" msg')
+encounterId
+  = Data.ProtoLens.field
+      (Data.ProtoLens.ProxySym :: Data.ProtoLens.ProxySym "encounterId")
+
+pokemonId ::
+          forall msg msg' . Data.ProtoLens.HasField "pokemonId" msg msg' =>
+            Lens.Family2.Lens msg msg' (Data.ProtoLens.Field "pokemonId" msg)
+              (Data.ProtoLens.Field "pokemonId" msg')
+pokemonId
+  = Data.ProtoLens.field
+      (Data.ProtoLens.ProxySym :: Data.ProtoLens.ProxySym "pokemonId")
diff --git a/src/Proto/POGOProtos/Map/Pokemon/WildPokemon.hs b/src/Proto/POGOProtos/Map/Pokemon/WildPokemon.hs
new file mode 100644
--- /dev/null
+++ b/src/Proto/POGOProtos/Map/Pokemon/WildPokemon.hs
@@ -0,0 +1,247 @@
+{- This file was auto-generated from POGOProtos/Map/Pokemon/WildPokemon.proto by the proto-lens-protoc program. -}
+{-# LANGUAGE ScopedTypeVariables, DataKinds, TypeFamilies,
+  MultiParamTypeClasses, FlexibleContexts, FlexibleInstances #-}
+{-# OPTIONS_GHC -fno-warn-unused-imports#-}
+module Proto.POGOProtos.Map.Pokemon.WildPokemon where
+import qualified Prelude
+import qualified Data.ProtoLens
+import qualified Data.ProtoLens.Message.Enum
+import qualified Lens.Family2
+import qualified Lens.Family2.Unchecked
+import qualified Data.Default.Class
+import qualified Data.Text
+import qualified Data.Int
+import qualified Data.Word
+import qualified Data.Map
+import qualified Data.ByteString
+import qualified Proto.POGOProtos.Data.PokemonData
+
+data WildPokemon = WildPokemon{_WildPokemon'encounterId ::
+                               Data.Word.Word64,
+                               _WildPokemon'lastModifiedTimestampMs :: Data.Int.Int64,
+                               _WildPokemon'latitude :: Prelude.Double,
+                               _WildPokemon'longitude :: Prelude.Double,
+                               _WildPokemon'spawnPointId :: Data.Text.Text,
+                               _WildPokemon'pokemonData ::
+                               Prelude.Maybe Proto.POGOProtos.Data.PokemonData.PokemonData,
+                               _WildPokemon'timeTillHiddenMs :: Data.Int.Int32}
+                 deriving (Prelude.Show, Prelude.Eq)
+
+type instance Data.ProtoLens.Field "encounterId" WildPokemon =
+     Data.Word.Word64
+
+instance Data.ProtoLens.HasField "encounterId" WildPokemon
+         WildPokemon where
+        field _
+          = Lens.Family2.Unchecked.lens _WildPokemon'encounterId
+              (\ x__ y__ -> x__{_WildPokemon'encounterId = y__})
+
+type instance
+     Data.ProtoLens.Field "lastModifiedTimestampMs" WildPokemon =
+     Data.Int.Int64
+
+instance Data.ProtoLens.HasField "lastModifiedTimestampMs"
+         WildPokemon WildPokemon where
+        field _
+          = Lens.Family2.Unchecked.lens _WildPokemon'lastModifiedTimestampMs
+              (\ x__ y__ -> x__{_WildPokemon'lastModifiedTimestampMs = y__})
+
+type instance Data.ProtoLens.Field "latitude" WildPokemon =
+     Prelude.Double
+
+instance Data.ProtoLens.HasField "latitude" WildPokemon WildPokemon
+         where
+        field _
+          = Lens.Family2.Unchecked.lens _WildPokemon'latitude
+              (\ x__ y__ -> x__{_WildPokemon'latitude = y__})
+
+type instance Data.ProtoLens.Field "longitude" WildPokemon =
+     Prelude.Double
+
+instance Data.ProtoLens.HasField "longitude" WildPokemon
+         WildPokemon where
+        field _
+          = Lens.Family2.Unchecked.lens _WildPokemon'longitude
+              (\ x__ y__ -> x__{_WildPokemon'longitude = y__})
+
+type instance Data.ProtoLens.Field "spawnPointId" WildPokemon =
+     Data.Text.Text
+
+instance Data.ProtoLens.HasField "spawnPointId" WildPokemon
+         WildPokemon where
+        field _
+          = Lens.Family2.Unchecked.lens _WildPokemon'spawnPointId
+              (\ x__ y__ -> x__{_WildPokemon'spawnPointId = y__})
+
+type instance Data.ProtoLens.Field "pokemonData" WildPokemon =
+     Proto.POGOProtos.Data.PokemonData.PokemonData
+
+instance Data.ProtoLens.HasField "pokemonData" WildPokemon
+         WildPokemon where
+        field _
+          = (Prelude..) maybe'pokemonData
+              (Data.ProtoLens.maybeLens Data.Default.Class.def)
+
+type instance Data.ProtoLens.Field "maybe'pokemonData" WildPokemon
+     = Prelude.Maybe Proto.POGOProtos.Data.PokemonData.PokemonData
+
+instance Data.ProtoLens.HasField "maybe'pokemonData" WildPokemon
+         WildPokemon where
+        field _
+          = Lens.Family2.Unchecked.lens _WildPokemon'pokemonData
+              (\ x__ y__ -> x__{_WildPokemon'pokemonData = y__})
+
+type instance Data.ProtoLens.Field "timeTillHiddenMs" WildPokemon =
+     Data.Int.Int32
+
+instance Data.ProtoLens.HasField "timeTillHiddenMs" WildPokemon
+         WildPokemon where
+        field _
+          = Lens.Family2.Unchecked.lens _WildPokemon'timeTillHiddenMs
+              (\ x__ y__ -> x__{_WildPokemon'timeTillHiddenMs = y__})
+
+instance Data.Default.Class.Default WildPokemon where
+        def
+          = WildPokemon{_WildPokemon'encounterId =
+                          Data.ProtoLens.fieldDefault,
+                        _WildPokemon'lastModifiedTimestampMs = Data.ProtoLens.fieldDefault,
+                        _WildPokemon'latitude = Data.ProtoLens.fieldDefault,
+                        _WildPokemon'longitude = Data.ProtoLens.fieldDefault,
+                        _WildPokemon'spawnPointId = Data.ProtoLens.fieldDefault,
+                        _WildPokemon'pokemonData = Prelude.Nothing,
+                        _WildPokemon'timeTillHiddenMs = Data.ProtoLens.fieldDefault}
+
+instance Data.ProtoLens.Message WildPokemon where
+        descriptor
+          = let encounterId__field_descriptor
+                  = Data.ProtoLens.FieldDescriptor "encounter_id"
+                      (Data.ProtoLens.Fixed64Field ::
+                         Data.ProtoLens.FieldTypeDescriptor Data.Word.Word64)
+                      (Data.ProtoLens.PlainField Data.ProtoLens.Optional encounterId)
+                lastModifiedTimestampMs__field_descriptor
+                  = Data.ProtoLens.FieldDescriptor "last_modified_timestamp_ms"
+                      (Data.ProtoLens.Int64Field ::
+                         Data.ProtoLens.FieldTypeDescriptor Data.Int.Int64)
+                      (Data.ProtoLens.PlainField Data.ProtoLens.Optional
+                         lastModifiedTimestampMs)
+                latitude__field_descriptor
+                  = Data.ProtoLens.FieldDescriptor "latitude"
+                      (Data.ProtoLens.DoubleField ::
+                         Data.ProtoLens.FieldTypeDescriptor Prelude.Double)
+                      (Data.ProtoLens.PlainField Data.ProtoLens.Optional latitude)
+                longitude__field_descriptor
+                  = Data.ProtoLens.FieldDescriptor "longitude"
+                      (Data.ProtoLens.DoubleField ::
+                         Data.ProtoLens.FieldTypeDescriptor Prelude.Double)
+                      (Data.ProtoLens.PlainField Data.ProtoLens.Optional longitude)
+                spawnPointId__field_descriptor
+                  = Data.ProtoLens.FieldDescriptor "spawn_point_id"
+                      (Data.ProtoLens.StringField ::
+                         Data.ProtoLens.FieldTypeDescriptor Data.Text.Text)
+                      (Data.ProtoLens.PlainField Data.ProtoLens.Optional spawnPointId)
+                pokemonData__field_descriptor
+                  = Data.ProtoLens.FieldDescriptor "pokemon_data"
+                      (Data.ProtoLens.MessageField ::
+                         Data.ProtoLens.FieldTypeDescriptor
+                           Proto.POGOProtos.Data.PokemonData.PokemonData)
+                      (Data.ProtoLens.OptionalField maybe'pokemonData)
+                timeTillHiddenMs__field_descriptor
+                  = Data.ProtoLens.FieldDescriptor "time_till_hidden_ms"
+                      (Data.ProtoLens.Int32Field ::
+                         Data.ProtoLens.FieldTypeDescriptor Data.Int.Int32)
+                      (Data.ProtoLens.PlainField Data.ProtoLens.Optional
+                         timeTillHiddenMs)
+              in
+              Data.ProtoLens.MessageDescriptor
+                (Data.Map.fromList
+                   [(Data.ProtoLens.Tag 1, encounterId__field_descriptor),
+                    (Data.ProtoLens.Tag 2, lastModifiedTimestampMs__field_descriptor),
+                    (Data.ProtoLens.Tag 3, latitude__field_descriptor),
+                    (Data.ProtoLens.Tag 4, longitude__field_descriptor),
+                    (Data.ProtoLens.Tag 5, spawnPointId__field_descriptor),
+                    (Data.ProtoLens.Tag 7, pokemonData__field_descriptor),
+                    (Data.ProtoLens.Tag 11, timeTillHiddenMs__field_descriptor)])
+                (Data.Map.fromList
+                   [("encounter_id", encounterId__field_descriptor),
+                    ("last_modified_timestamp_ms",
+                     lastModifiedTimestampMs__field_descriptor),
+                    ("latitude", latitude__field_descriptor),
+                    ("longitude", longitude__field_descriptor),
+                    ("spawn_point_id", spawnPointId__field_descriptor),
+                    ("pokemon_data", pokemonData__field_descriptor),
+                    ("time_till_hidden_ms", timeTillHiddenMs__field_descriptor)])
+
+encounterId ::
+            forall msg msg' . Data.ProtoLens.HasField "encounterId" msg msg' =>
+              Lens.Family2.Lens msg msg' (Data.ProtoLens.Field "encounterId" msg)
+                (Data.ProtoLens.Field "encounterId" msg')
+encounterId
+  = Data.ProtoLens.field
+      (Data.ProtoLens.ProxySym :: Data.ProtoLens.ProxySym "encounterId")
+
+lastModifiedTimestampMs ::
+                        forall msg msg' .
+                          Data.ProtoLens.HasField "lastModifiedTimestampMs" msg msg' =>
+                          Lens.Family2.Lens msg msg'
+                            (Data.ProtoLens.Field "lastModifiedTimestampMs" msg)
+                            (Data.ProtoLens.Field "lastModifiedTimestampMs" msg')
+lastModifiedTimestampMs
+  = Data.ProtoLens.field
+      (Data.ProtoLens.ProxySym ::
+         Data.ProtoLens.ProxySym "lastModifiedTimestampMs")
+
+latitude ::
+         forall msg msg' . Data.ProtoLens.HasField "latitude" msg msg' =>
+           Lens.Family2.Lens msg msg' (Data.ProtoLens.Field "latitude" msg)
+             (Data.ProtoLens.Field "latitude" msg')
+latitude
+  = Data.ProtoLens.field
+      (Data.ProtoLens.ProxySym :: Data.ProtoLens.ProxySym "latitude")
+
+longitude ::
+          forall msg msg' . Data.ProtoLens.HasField "longitude" msg msg' =>
+            Lens.Family2.Lens msg msg' (Data.ProtoLens.Field "longitude" msg)
+              (Data.ProtoLens.Field "longitude" msg')
+longitude
+  = Data.ProtoLens.field
+      (Data.ProtoLens.ProxySym :: Data.ProtoLens.ProxySym "longitude")
+
+maybe'pokemonData ::
+                  forall msg msg' .
+                    Data.ProtoLens.HasField "maybe'pokemonData" msg msg' =>
+                    Lens.Family2.Lens msg msg'
+                      (Data.ProtoLens.Field "maybe'pokemonData" msg)
+                      (Data.ProtoLens.Field "maybe'pokemonData" msg')
+maybe'pokemonData
+  = Data.ProtoLens.field
+      (Data.ProtoLens.ProxySym ::
+         Data.ProtoLens.ProxySym "maybe'pokemonData")
+
+pokemonData ::
+            forall msg msg' . Data.ProtoLens.HasField "pokemonData" msg msg' =>
+              Lens.Family2.Lens msg msg' (Data.ProtoLens.Field "pokemonData" msg)
+                (Data.ProtoLens.Field "pokemonData" msg')
+pokemonData
+  = Data.ProtoLens.field
+      (Data.ProtoLens.ProxySym :: Data.ProtoLens.ProxySym "pokemonData")
+
+spawnPointId ::
+             forall msg msg' .
+               Data.ProtoLens.HasField "spawnPointId" msg msg' =>
+               Lens.Family2.Lens msg msg'
+                 (Data.ProtoLens.Field "spawnPointId" msg)
+                 (Data.ProtoLens.Field "spawnPointId" msg')
+spawnPointId
+  = Data.ProtoLens.field
+      (Data.ProtoLens.ProxySym :: Data.ProtoLens.ProxySym "spawnPointId")
+
+timeTillHiddenMs ::
+                 forall msg msg' .
+                   Data.ProtoLens.HasField "timeTillHiddenMs" msg msg' =>
+                   Lens.Family2.Lens msg msg'
+                     (Data.ProtoLens.Field "timeTillHiddenMs" msg)
+                     (Data.ProtoLens.Field "timeTillHiddenMs" msg')
+timeTillHiddenMs
+  = Data.ProtoLens.field
+      (Data.ProtoLens.ProxySym ::
+         Data.ProtoLens.ProxySym "timeTillHiddenMs")
diff --git a/src/Proto/POGOProtos/Map/SpawnPoint.hs b/src/Proto/POGOProtos/Map/SpawnPoint.hs
new file mode 100644
--- /dev/null
+++ b/src/Proto/POGOProtos/Map/SpawnPoint.hs
@@ -0,0 +1,81 @@
+{- This file was auto-generated from POGOProtos/Map/SpawnPoint.proto by the proto-lens-protoc program. -}
+{-# LANGUAGE ScopedTypeVariables, DataKinds, TypeFamilies,
+  MultiParamTypeClasses, FlexibleContexts, FlexibleInstances #-}
+{-# OPTIONS_GHC -fno-warn-unused-imports#-}
+module Proto.POGOProtos.Map.SpawnPoint where
+import qualified Prelude
+import qualified Data.ProtoLens
+import qualified Data.ProtoLens.Message.Enum
+import qualified Lens.Family2
+import qualified Lens.Family2.Unchecked
+import qualified Data.Default.Class
+import qualified Data.Text
+import qualified Data.Int
+import qualified Data.Word
+import qualified Data.Map
+import qualified Data.ByteString
+
+data SpawnPoint = SpawnPoint{_SpawnPoint'latitude ::
+                             Prelude.Double,
+                             _SpawnPoint'longitude :: Prelude.Double}
+                deriving (Prelude.Show, Prelude.Eq)
+
+type instance Data.ProtoLens.Field "latitude" SpawnPoint =
+     Prelude.Double
+
+instance Data.ProtoLens.HasField "latitude" SpawnPoint SpawnPoint
+         where
+        field _
+          = Lens.Family2.Unchecked.lens _SpawnPoint'latitude
+              (\ x__ y__ -> x__{_SpawnPoint'latitude = y__})
+
+type instance Data.ProtoLens.Field "longitude" SpawnPoint =
+     Prelude.Double
+
+instance Data.ProtoLens.HasField "longitude" SpawnPoint SpawnPoint
+         where
+        field _
+          = Lens.Family2.Unchecked.lens _SpawnPoint'longitude
+              (\ x__ y__ -> x__{_SpawnPoint'longitude = y__})
+
+instance Data.Default.Class.Default SpawnPoint where
+        def
+          = SpawnPoint{_SpawnPoint'latitude = Data.ProtoLens.fieldDefault,
+                       _SpawnPoint'longitude = Data.ProtoLens.fieldDefault}
+
+instance Data.ProtoLens.Message SpawnPoint where
+        descriptor
+          = let latitude__field_descriptor
+                  = Data.ProtoLens.FieldDescriptor "latitude"
+                      (Data.ProtoLens.DoubleField ::
+                         Data.ProtoLens.FieldTypeDescriptor Prelude.Double)
+                      (Data.ProtoLens.PlainField Data.ProtoLens.Optional latitude)
+                longitude__field_descriptor
+                  = Data.ProtoLens.FieldDescriptor "longitude"
+                      (Data.ProtoLens.DoubleField ::
+                         Data.ProtoLens.FieldTypeDescriptor Prelude.Double)
+                      (Data.ProtoLens.PlainField Data.ProtoLens.Optional longitude)
+              in
+              Data.ProtoLens.MessageDescriptor
+                (Data.Map.fromList
+                   [(Data.ProtoLens.Tag 2, latitude__field_descriptor),
+                    (Data.ProtoLens.Tag 3, longitude__field_descriptor)])
+                (Data.Map.fromList
+                   [("latitude", latitude__field_descriptor),
+                    ("longitude", longitude__field_descriptor)])
+
+latitude ::
+         forall msg msg' . Data.ProtoLens.HasField "latitude" msg msg' =>
+           Lens.Family2.Lens msg msg' (Data.ProtoLens.Field "latitude" msg)
+             (Data.ProtoLens.Field "latitude" msg')
+latitude
+  = Data.ProtoLens.field
+      (Data.ProtoLens.ProxySym :: Data.ProtoLens.ProxySym "latitude")
+
+longitude ::
+          forall msg msg' . Data.ProtoLens.HasField "longitude" msg msg' =>
+            Lens.Family2.Lens msg msg' (Data.ProtoLens.Field "longitude" msg)
+              (Data.ProtoLens.Field "longitude" msg')
+longitude
+  = Data.ProtoLens.field
+      (Data.ProtoLens.ProxySym :: Data.ProtoLens.ProxySym "longitude")
diff --git a/src/Proto/POGOProtos/Networking/Envelopes/AuthTicket.hs b/src/Proto/POGOProtos/Networking/Envelopes/AuthTicket.hs
new file mode 100644
--- /dev/null
+++ b/src/Proto/POGOProtos/Networking/Envelopes/AuthTicket.hs
@@ -0,0 +1,110 @@
+{- This file was auto-generated from POGOProtos/Networking/Envelopes/AuthTicket.proto by the proto-lens-protoc program. -}
+{-# LANGUAGE ScopedTypeVariables, DataKinds, TypeFamilies,
+  MultiParamTypeClasses, FlexibleContexts, FlexibleInstances #-}
+{-# OPTIONS_GHC -fno-warn-unused-imports#-}
+module Proto.POGOProtos.Networking.Envelopes.AuthTicket where
+import qualified Prelude
+import qualified Data.ProtoLens
+import qualified Data.ProtoLens.Message.Enum
+import qualified Lens.Family2
+import qualified Lens.Family2.Unchecked
+import qualified Data.Default.Class
+import qualified Data.Text
+import qualified Data.Int
+import qualified Data.Word
+import qualified Data.Map
+import qualified Data.ByteString
+
+data AuthTicket = AuthTicket{_AuthTicket'start ::
+                             Data.ByteString.ByteString,
+                             _AuthTicket'expireTimestampMs :: Data.Word.Word64,
+                             _AuthTicket'end :: Data.ByteString.ByteString}
+                deriving (Prelude.Show, Prelude.Eq)
+
+type instance Data.ProtoLens.Field "start" AuthTicket =
+     Data.ByteString.ByteString
+
+instance Data.ProtoLens.HasField "start" AuthTicket AuthTicket
+         where
+        field _
+          = Lens.Family2.Unchecked.lens _AuthTicket'start
+              (\ x__ y__ -> x__{_AuthTicket'start = y__})
+
+type instance Data.ProtoLens.Field "expireTimestampMs" AuthTicket =
+     Data.Word.Word64
+
+instance Data.ProtoLens.HasField "expireTimestampMs" AuthTicket
+         AuthTicket where
+        field _
+          = Lens.Family2.Unchecked.lens _AuthTicket'expireTimestampMs
+              (\ x__ y__ -> x__{_AuthTicket'expireTimestampMs = y__})
+
+type instance Data.ProtoLens.Field "end" AuthTicket =
+     Data.ByteString.ByteString
+
+instance Data.ProtoLens.HasField "end" AuthTicket AuthTicket where
+        field _
+          = Lens.Family2.Unchecked.lens _AuthTicket'end
+              (\ x__ y__ -> x__{_AuthTicket'end = y__})
+
+instance Data.Default.Class.Default AuthTicket where
+        def
+          = AuthTicket{_AuthTicket'start = Data.ProtoLens.fieldDefault,
+                       _AuthTicket'expireTimestampMs = Data.ProtoLens.fieldDefault,
+                       _AuthTicket'end = Data.ProtoLens.fieldDefault}
+
+instance Data.ProtoLens.Message AuthTicket where
+        descriptor
+          = let start__field_descriptor
+                  = Data.ProtoLens.FieldDescriptor "start"
+                      (Data.ProtoLens.BytesField ::
+                         Data.ProtoLens.FieldTypeDescriptor Data.ByteString.ByteString)
+                      (Data.ProtoLens.PlainField Data.ProtoLens.Optional start)
+                expireTimestampMs__field_descriptor
+                  = Data.ProtoLens.FieldDescriptor "expire_timestamp_ms"
+                      (Data.ProtoLens.UInt64Field ::
+                         Data.ProtoLens.FieldTypeDescriptor Data.Word.Word64)
+                      (Data.ProtoLens.PlainField Data.ProtoLens.Optional
+                         expireTimestampMs)
+                end__field_descriptor
+                  = Data.ProtoLens.FieldDescriptor "end"
+                      (Data.ProtoLens.BytesField ::
+                         Data.ProtoLens.FieldTypeDescriptor Data.ByteString.ByteString)
+                      (Data.ProtoLens.PlainField Data.ProtoLens.Optional end)
+              in
+              Data.ProtoLens.MessageDescriptor
+                (Data.Map.fromList
+                   [(Data.ProtoLens.Tag 1, start__field_descriptor),
+                    (Data.ProtoLens.Tag 2, expireTimestampMs__field_descriptor),
+                    (Data.ProtoLens.Tag 3, end__field_descriptor)])
+                (Data.Map.fromList
+                   [("start", start__field_descriptor),
+                    ("expire_timestamp_ms", expireTimestampMs__field_descriptor),
+                    ("end", end__field_descriptor)])
+
+end ::
+    forall msg msg' . Data.ProtoLens.HasField "end" msg msg' =>
+      Lens.Family2.Lens msg msg' (Data.ProtoLens.Field "end" msg)
+        (Data.ProtoLens.Field "end" msg')
+end
+  = Data.ProtoLens.field
+      (Data.ProtoLens.ProxySym :: Data.ProtoLens.ProxySym "end")
+
+expireTimestampMs ::
+                  forall msg msg' .
+                    Data.ProtoLens.HasField "expireTimestampMs" msg msg' =>
+                    Lens.Family2.Lens msg msg'
+                      (Data.ProtoLens.Field "expireTimestampMs" msg)
+                      (Data.ProtoLens.Field "expireTimestampMs" msg')
+expireTimestampMs
+  = Data.ProtoLens.field
+      (Data.ProtoLens.ProxySym ::
+         Data.ProtoLens.ProxySym "expireTimestampMs")
+
+start ::
+      forall msg msg' . Data.ProtoLens.HasField "start" msg msg' =>
+        Lens.Family2.Lens msg msg' (Data.ProtoLens.Field "start" msg)
+          (Data.ProtoLens.Field "start" msg')
+start
+  = Data.ProtoLens.field
+      (Data.ProtoLens.ProxySym :: Data.ProtoLens.ProxySym "start")
diff --git a/src/Proto/POGOProtos/Networking/Envelopes/RequestEnvelope.hs b/src/Proto/POGOProtos/Networking/Envelopes/RequestEnvelope.hs
new file mode 100644
--- /dev/null
+++ b/src/Proto/POGOProtos/Networking/Envelopes/RequestEnvelope.hs
@@ -0,0 +1,525 @@
+{- This file was auto-generated from POGOProtos/Networking/Envelopes/RequestEnvelope.proto by the proto-lens-protoc program. -}
+{-# LANGUAGE ScopedTypeVariables, DataKinds, TypeFamilies,
+  MultiParamTypeClasses, FlexibleContexts, FlexibleInstances #-}
+{-# OPTIONS_GHC -fno-warn-unused-imports#-}
+module Proto.POGOProtos.Networking.Envelopes.RequestEnvelope where
+import qualified Prelude
+import qualified Data.ProtoLens
+import qualified Data.ProtoLens.Message.Enum
+import qualified Lens.Family2
+import qualified Lens.Family2.Unchecked
+import qualified Data.Default.Class
+import qualified Data.Text
+import qualified Data.Int
+import qualified Data.Word
+import qualified Data.Map
+import qualified Data.ByteString
+import qualified Proto.POGOProtos.Networking.Envelopes.AuthTicket
+import qualified Proto.POGOProtos.Networking.Envelopes.Unknown6
+import qualified Proto.POGOProtos.Networking.Requests.Request
+
+data RequestEnvelope = RequestEnvelope{_RequestEnvelope'statusCode
+                                       :: Data.Int.Int32,
+                                       _RequestEnvelope'requestId :: Data.Word.Word64,
+                                       _RequestEnvelope'requests ::
+                                       [Proto.POGOProtos.Networking.Requests.Request.Request],
+                                       _RequestEnvelope'unknown6 ::
+                                       Prelude.Maybe
+                                         Proto.POGOProtos.Networking.Envelopes.Unknown6.Unknown6,
+                                       _RequestEnvelope'latitude :: Prelude.Double,
+                                       _RequestEnvelope'longitude :: Prelude.Double,
+                                       _RequestEnvelope'altitude :: Prelude.Double,
+                                       _RequestEnvelope'authInfo ::
+                                       Prelude.Maybe RequestEnvelope'AuthInfo,
+                                       _RequestEnvelope'authTicket ::
+                                       Prelude.Maybe
+                                         Proto.POGOProtos.Networking.Envelopes.AuthTicket.AuthTicket,
+                                       _RequestEnvelope'unknown12 :: Data.Int.Int64}
+                     deriving (Prelude.Show, Prelude.Eq)
+
+type instance Data.ProtoLens.Field "statusCode" RequestEnvelope =
+     Data.Int.Int32
+
+instance Data.ProtoLens.HasField "statusCode" RequestEnvelope
+         RequestEnvelope where
+        field _
+          = Lens.Family2.Unchecked.lens _RequestEnvelope'statusCode
+              (\ x__ y__ -> x__{_RequestEnvelope'statusCode = y__})
+
+type instance Data.ProtoLens.Field "requestId" RequestEnvelope =
+     Data.Word.Word64
+
+instance Data.ProtoLens.HasField "requestId" RequestEnvelope
+         RequestEnvelope where
+        field _
+          = Lens.Family2.Unchecked.lens _RequestEnvelope'requestId
+              (\ x__ y__ -> x__{_RequestEnvelope'requestId = y__})
+
+type instance Data.ProtoLens.Field "requests" RequestEnvelope =
+     [Proto.POGOProtos.Networking.Requests.Request.Request]
+
+instance Data.ProtoLens.HasField "requests" RequestEnvelope
+         RequestEnvelope where
+        field _
+          = Lens.Family2.Unchecked.lens _RequestEnvelope'requests
+              (\ x__ y__ -> x__{_RequestEnvelope'requests = y__})
+
+type instance Data.ProtoLens.Field "unknown6" RequestEnvelope =
+     Proto.POGOProtos.Networking.Envelopes.Unknown6.Unknown6
+
+instance Data.ProtoLens.HasField "unknown6" RequestEnvelope
+         RequestEnvelope where
+        field _
+          = (Prelude..) maybe'unknown6
+              (Data.ProtoLens.maybeLens Data.Default.Class.def)
+
+type instance Data.ProtoLens.Field "maybe'unknown6" RequestEnvelope
+     =
+     Prelude.Maybe
+       Proto.POGOProtos.Networking.Envelopes.Unknown6.Unknown6
+
+instance Data.ProtoLens.HasField "maybe'unknown6" RequestEnvelope
+         RequestEnvelope where
+        field _
+          = Lens.Family2.Unchecked.lens _RequestEnvelope'unknown6
+              (\ x__ y__ -> x__{_RequestEnvelope'unknown6 = y__})
+
+type instance Data.ProtoLens.Field "latitude" RequestEnvelope =
+     Prelude.Double
+
+instance Data.ProtoLens.HasField "latitude" RequestEnvelope
+         RequestEnvelope where
+        field _
+          = Lens.Family2.Unchecked.lens _RequestEnvelope'latitude
+              (\ x__ y__ -> x__{_RequestEnvelope'latitude = y__})
+
+type instance Data.ProtoLens.Field "longitude" RequestEnvelope =
+     Prelude.Double
+
+instance Data.ProtoLens.HasField "longitude" RequestEnvelope
+         RequestEnvelope where
+        field _
+          = Lens.Family2.Unchecked.lens _RequestEnvelope'longitude
+              (\ x__ y__ -> x__{_RequestEnvelope'longitude = y__})
+
+type instance Data.ProtoLens.Field "altitude" RequestEnvelope =
+     Prelude.Double
+
+instance Data.ProtoLens.HasField "altitude" RequestEnvelope
+         RequestEnvelope where
+        field _
+          = Lens.Family2.Unchecked.lens _RequestEnvelope'altitude
+              (\ x__ y__ -> x__{_RequestEnvelope'altitude = y__})
+
+type instance Data.ProtoLens.Field "authInfo" RequestEnvelope =
+     RequestEnvelope'AuthInfo
+
+instance Data.ProtoLens.HasField "authInfo" RequestEnvelope
+         RequestEnvelope where
+        field _
+          = (Prelude..) maybe'authInfo
+              (Data.ProtoLens.maybeLens Data.Default.Class.def)
+
+type instance Data.ProtoLens.Field "maybe'authInfo" RequestEnvelope
+     = Prelude.Maybe RequestEnvelope'AuthInfo
+
+instance Data.ProtoLens.HasField "maybe'authInfo" RequestEnvelope
+         RequestEnvelope where
+        field _
+          = Lens.Family2.Unchecked.lens _RequestEnvelope'authInfo
+              (\ x__ y__ -> x__{_RequestEnvelope'authInfo = y__})
+
+type instance Data.ProtoLens.Field "authTicket" RequestEnvelope =
+     Proto.POGOProtos.Networking.Envelopes.AuthTicket.AuthTicket
+
+instance Data.ProtoLens.HasField "authTicket" RequestEnvelope
+         RequestEnvelope where
+        field _
+          = (Prelude..) maybe'authTicket
+              (Data.ProtoLens.maybeLens Data.Default.Class.def)
+
+type instance
+     Data.ProtoLens.Field "maybe'authTicket" RequestEnvelope =
+     Prelude.Maybe
+       Proto.POGOProtos.Networking.Envelopes.AuthTicket.AuthTicket
+
+instance Data.ProtoLens.HasField "maybe'authTicket" RequestEnvelope
+         RequestEnvelope where
+        field _
+          = Lens.Family2.Unchecked.lens _RequestEnvelope'authTicket
+              (\ x__ y__ -> x__{_RequestEnvelope'authTicket = y__})
+
+type instance Data.ProtoLens.Field "unknown12" RequestEnvelope =
+     Data.Int.Int64
+
+instance Data.ProtoLens.HasField "unknown12" RequestEnvelope
+         RequestEnvelope where
+        field _
+          = Lens.Family2.Unchecked.lens _RequestEnvelope'unknown12
+              (\ x__ y__ -> x__{_RequestEnvelope'unknown12 = y__})
+
+instance Data.Default.Class.Default RequestEnvelope where
+        def
+          = RequestEnvelope{_RequestEnvelope'statusCode =
+                              Data.ProtoLens.fieldDefault,
+                            _RequestEnvelope'requestId = Data.ProtoLens.fieldDefault,
+                            _RequestEnvelope'requests = [],
+                            _RequestEnvelope'unknown6 = Prelude.Nothing,
+                            _RequestEnvelope'latitude = Data.ProtoLens.fieldDefault,
+                            _RequestEnvelope'longitude = Data.ProtoLens.fieldDefault,
+                            _RequestEnvelope'altitude = Data.ProtoLens.fieldDefault,
+                            _RequestEnvelope'authInfo = Prelude.Nothing,
+                            _RequestEnvelope'authTicket = Prelude.Nothing,
+                            _RequestEnvelope'unknown12 = Data.ProtoLens.fieldDefault}
+
+instance Data.ProtoLens.Message RequestEnvelope where
+        descriptor
+          = let statusCode__field_descriptor
+                  = Data.ProtoLens.FieldDescriptor "status_code"
+                      (Data.ProtoLens.Int32Field ::
+                         Data.ProtoLens.FieldTypeDescriptor Data.Int.Int32)
+                      (Data.ProtoLens.PlainField Data.ProtoLens.Optional statusCode)
+                requestId__field_descriptor
+                  = Data.ProtoLens.FieldDescriptor "request_id"
+                      (Data.ProtoLens.UInt64Field ::
+                         Data.ProtoLens.FieldTypeDescriptor Data.Word.Word64)
+                      (Data.ProtoLens.PlainField Data.ProtoLens.Optional requestId)
+                requests__field_descriptor
+                  = Data.ProtoLens.FieldDescriptor "requests"
+                      (Data.ProtoLens.MessageField ::
+                         Data.ProtoLens.FieldTypeDescriptor
+                           Proto.POGOProtos.Networking.Requests.Request.Request)
+                      (Data.ProtoLens.RepeatedField Data.ProtoLens.Unpacked requests)
+                unknown6__field_descriptor
+                  = Data.ProtoLens.FieldDescriptor "unknown6"
+                      (Data.ProtoLens.MessageField ::
+                         Data.ProtoLens.FieldTypeDescriptor
+                           Proto.POGOProtos.Networking.Envelopes.Unknown6.Unknown6)
+                      (Data.ProtoLens.OptionalField maybe'unknown6)
+                latitude__field_descriptor
+                  = Data.ProtoLens.FieldDescriptor "latitude"
+                      (Data.ProtoLens.DoubleField ::
+                         Data.ProtoLens.FieldTypeDescriptor Prelude.Double)
+                      (Data.ProtoLens.PlainField Data.ProtoLens.Optional latitude)
+                longitude__field_descriptor
+                  = Data.ProtoLens.FieldDescriptor "longitude"
+                      (Data.ProtoLens.DoubleField ::
+                         Data.ProtoLens.FieldTypeDescriptor Prelude.Double)
+                      (Data.ProtoLens.PlainField Data.ProtoLens.Optional longitude)
+                altitude__field_descriptor
+                  = Data.ProtoLens.FieldDescriptor "altitude"
+                      (Data.ProtoLens.DoubleField ::
+                         Data.ProtoLens.FieldTypeDescriptor Prelude.Double)
+                      (Data.ProtoLens.PlainField Data.ProtoLens.Optional altitude)
+                authInfo__field_descriptor
+                  = Data.ProtoLens.FieldDescriptor "auth_info"
+                      (Data.ProtoLens.MessageField ::
+                         Data.ProtoLens.FieldTypeDescriptor RequestEnvelope'AuthInfo)
+                      (Data.ProtoLens.OptionalField maybe'authInfo)
+                authTicket__field_descriptor
+                  = Data.ProtoLens.FieldDescriptor "auth_ticket"
+                      (Data.ProtoLens.MessageField ::
+                         Data.ProtoLens.FieldTypeDescriptor
+                           Proto.POGOProtos.Networking.Envelopes.AuthTicket.AuthTicket)
+                      (Data.ProtoLens.OptionalField maybe'authTicket)
+                unknown12__field_descriptor
+                  = Data.ProtoLens.FieldDescriptor "unknown12"
+                      (Data.ProtoLens.Int64Field ::
+                         Data.ProtoLens.FieldTypeDescriptor Data.Int.Int64)
+                      (Data.ProtoLens.PlainField Data.ProtoLens.Optional unknown12)
+              in
+              Data.ProtoLens.MessageDescriptor
+                (Data.Map.fromList
+                   [(Data.ProtoLens.Tag 1, statusCode__field_descriptor),
+                    (Data.ProtoLens.Tag 3, requestId__field_descriptor),
+                    (Data.ProtoLens.Tag 4, requests__field_descriptor),
+                    (Data.ProtoLens.Tag 6, unknown6__field_descriptor),
+                    (Data.ProtoLens.Tag 7, latitude__field_descriptor),
+                    (Data.ProtoLens.Tag 8, longitude__field_descriptor),
+                    (Data.ProtoLens.Tag 9, altitude__field_descriptor),
+                    (Data.ProtoLens.Tag 10, authInfo__field_descriptor),
+                    (Data.ProtoLens.Tag 11, authTicket__field_descriptor),
+                    (Data.ProtoLens.Tag 12, unknown12__field_descriptor)])
+                (Data.Map.fromList
+                   [("status_code", statusCode__field_descriptor),
+                    ("request_id", requestId__field_descriptor),
+                    ("requests", requests__field_descriptor),
+                    ("unknown6", unknown6__field_descriptor),
+                    ("latitude", latitude__field_descriptor),
+                    ("longitude", longitude__field_descriptor),
+                    ("altitude", altitude__field_descriptor),
+                    ("auth_info", authInfo__field_descriptor),
+                    ("auth_ticket", authTicket__field_descriptor),
+                    ("unknown12", unknown12__field_descriptor)])
+
+data RequestEnvelope'AuthInfo = RequestEnvelope'AuthInfo{_RequestEnvelope'AuthInfo'provider
+                                                         :: Data.Text.Text,
+                                                         _RequestEnvelope'AuthInfo'token ::
+                                                         Prelude.Maybe RequestEnvelope'AuthInfo'JWT}
+                              deriving (Prelude.Show, Prelude.Eq)
+
+type instance
+     Data.ProtoLens.Field "provider" RequestEnvelope'AuthInfo =
+     Data.Text.Text
+
+instance Data.ProtoLens.HasField "provider"
+         RequestEnvelope'AuthInfo RequestEnvelope'AuthInfo where
+        field _
+          = Lens.Family2.Unchecked.lens _RequestEnvelope'AuthInfo'provider
+              (\ x__ y__ -> x__{_RequestEnvelope'AuthInfo'provider = y__})
+
+type instance Data.ProtoLens.Field "token" RequestEnvelope'AuthInfo
+     = RequestEnvelope'AuthInfo'JWT
+
+instance Data.ProtoLens.HasField "token" RequestEnvelope'AuthInfo
+         RequestEnvelope'AuthInfo where
+        field _
+          = (Prelude..) maybe'token
+              (Data.ProtoLens.maybeLens Data.Default.Class.def)
+
+type instance
+     Data.ProtoLens.Field "maybe'token" RequestEnvelope'AuthInfo =
+     Prelude.Maybe RequestEnvelope'AuthInfo'JWT
+
+instance Data.ProtoLens.HasField "maybe'token"
+         RequestEnvelope'AuthInfo RequestEnvelope'AuthInfo where
+        field _
+          = Lens.Family2.Unchecked.lens _RequestEnvelope'AuthInfo'token
+              (\ x__ y__ -> x__{_RequestEnvelope'AuthInfo'token = y__})
+
+instance Data.Default.Class.Default RequestEnvelope'AuthInfo where
+        def
+          = RequestEnvelope'AuthInfo{_RequestEnvelope'AuthInfo'provider =
+                                       Data.ProtoLens.fieldDefault,
+                                     _RequestEnvelope'AuthInfo'token = Prelude.Nothing}
+
+instance Data.ProtoLens.Message RequestEnvelope'AuthInfo where
+        descriptor
+          = let provider__field_descriptor
+                  = Data.ProtoLens.FieldDescriptor "provider"
+                      (Data.ProtoLens.StringField ::
+                         Data.ProtoLens.FieldTypeDescriptor Data.Text.Text)
+                      (Data.ProtoLens.PlainField Data.ProtoLens.Optional provider)
+                token__field_descriptor
+                  = Data.ProtoLens.FieldDescriptor "token"
+                      (Data.ProtoLens.MessageField ::
+                         Data.ProtoLens.FieldTypeDescriptor RequestEnvelope'AuthInfo'JWT)
+                      (Data.ProtoLens.OptionalField maybe'token)
+              in
+              Data.ProtoLens.MessageDescriptor
+                (Data.Map.fromList
+                   [(Data.ProtoLens.Tag 1, provider__field_descriptor),
+                    (Data.ProtoLens.Tag 2, token__field_descriptor)])
+                (Data.Map.fromList
+                   [("provider", provider__field_descriptor),
+                    ("token", token__field_descriptor)])
+
+data RequestEnvelope'AuthInfo'JWT = RequestEnvelope'AuthInfo'JWT{_RequestEnvelope'AuthInfo'JWT'contents
+                                                                 :: Data.Text.Text,
+                                                                 _RequestEnvelope'AuthInfo'JWT'unknown2
+                                                                 :: Data.Int.Int32}
+                                  deriving (Prelude.Show, Prelude.Eq)
+
+type instance
+     Data.ProtoLens.Field "contents" RequestEnvelope'AuthInfo'JWT =
+     Data.Text.Text
+
+instance Data.ProtoLens.HasField "contents"
+         RequestEnvelope'AuthInfo'JWT RequestEnvelope'AuthInfo'JWT where
+        field _
+          = Lens.Family2.Unchecked.lens
+              _RequestEnvelope'AuthInfo'JWT'contents
+              (\ x__ y__ -> x__{_RequestEnvelope'AuthInfo'JWT'contents = y__})
+
+type instance
+     Data.ProtoLens.Field "unknown2" RequestEnvelope'AuthInfo'JWT =
+     Data.Int.Int32
+
+instance Data.ProtoLens.HasField "unknown2"
+         RequestEnvelope'AuthInfo'JWT RequestEnvelope'AuthInfo'JWT where
+        field _
+          = Lens.Family2.Unchecked.lens
+              _RequestEnvelope'AuthInfo'JWT'unknown2
+              (\ x__ y__ -> x__{_RequestEnvelope'AuthInfo'JWT'unknown2 = y__})
+
+instance Data.Default.Class.Default RequestEnvelope'AuthInfo'JWT
+         where
+        def
+          = RequestEnvelope'AuthInfo'JWT{_RequestEnvelope'AuthInfo'JWT'contents
+                                           = Data.ProtoLens.fieldDefault,
+                                         _RequestEnvelope'AuthInfo'JWT'unknown2 =
+                                           Data.ProtoLens.fieldDefault}
+
+instance Data.ProtoLens.Message RequestEnvelope'AuthInfo'JWT where
+        descriptor
+          = let contents__field_descriptor
+                  = Data.ProtoLens.FieldDescriptor "contents"
+                      (Data.ProtoLens.StringField ::
+                         Data.ProtoLens.FieldTypeDescriptor Data.Text.Text)
+                      (Data.ProtoLens.PlainField Data.ProtoLens.Optional contents)
+                unknown2__field_descriptor
+                  = Data.ProtoLens.FieldDescriptor "unknown2"
+                      (Data.ProtoLens.Int32Field ::
+                         Data.ProtoLens.FieldTypeDescriptor Data.Int.Int32)
+                      (Data.ProtoLens.PlainField Data.ProtoLens.Optional unknown2)
+              in
+              Data.ProtoLens.MessageDescriptor
+                (Data.Map.fromList
+                   [(Data.ProtoLens.Tag 1, contents__field_descriptor),
+                    (Data.ProtoLens.Tag 2, unknown2__field_descriptor)])
+                (Data.Map.fromList
+                   [("contents", contents__field_descriptor),
+                    ("unknown2", unknown2__field_descriptor)])
+
+altitude ::
+         forall msg msg' . Data.ProtoLens.HasField "altitude" msg msg' =>
+           Lens.Family2.Lens msg msg' (Data.ProtoLens.Field "altitude" msg)
+             (Data.ProtoLens.Field "altitude" msg')
+altitude
+  = Data.ProtoLens.field
+      (Data.ProtoLens.ProxySym :: Data.ProtoLens.ProxySym "altitude")
+
+authInfo ::
+         forall msg msg' . Data.ProtoLens.HasField "authInfo" msg msg' =>
+           Lens.Family2.Lens msg msg' (Data.ProtoLens.Field "authInfo" msg)
+             (Data.ProtoLens.Field "authInfo" msg')
+authInfo
+  = Data.ProtoLens.field
+      (Data.ProtoLens.ProxySym :: Data.ProtoLens.ProxySym "authInfo")
+
+authTicket ::
+           forall msg msg' . Data.ProtoLens.HasField "authTicket" msg msg' =>
+             Lens.Family2.Lens msg msg' (Data.ProtoLens.Field "authTicket" msg)
+               (Data.ProtoLens.Field "authTicket" msg')
+authTicket
+  = Data.ProtoLens.field
+      (Data.ProtoLens.ProxySym :: Data.ProtoLens.ProxySym "authTicket")
+
+contents ::
+         forall msg msg' . Data.ProtoLens.HasField "contents" msg msg' =>
+           Lens.Family2.Lens msg msg' (Data.ProtoLens.Field "contents" msg)
+             (Data.ProtoLens.Field "contents" msg')
+contents
+  = Data.ProtoLens.field
+      (Data.ProtoLens.ProxySym :: Data.ProtoLens.ProxySym "contents")
+
+latitude ::
+         forall msg msg' . Data.ProtoLens.HasField "latitude" msg msg' =>
+           Lens.Family2.Lens msg msg' (Data.ProtoLens.Field "latitude" msg)
+             (Data.ProtoLens.Field "latitude" msg')
+latitude
+  = Data.ProtoLens.field
+      (Data.ProtoLens.ProxySym :: Data.ProtoLens.ProxySym "latitude")
+
+longitude ::
+          forall msg msg' . Data.ProtoLens.HasField "longitude" msg msg' =>
+            Lens.Family2.Lens msg msg' (Data.ProtoLens.Field "longitude" msg)
+              (Data.ProtoLens.Field "longitude" msg')
+longitude
+  = Data.ProtoLens.field
+      (Data.ProtoLens.ProxySym :: Data.ProtoLens.ProxySym "longitude")
+
+maybe'authInfo ::
+               forall msg msg' .
+                 Data.ProtoLens.HasField "maybe'authInfo" msg msg' =>
+                 Lens.Family2.Lens msg msg'
+                   (Data.ProtoLens.Field "maybe'authInfo" msg)
+                   (Data.ProtoLens.Field "maybe'authInfo" msg')
+maybe'authInfo
+  = Data.ProtoLens.field
+      (Data.ProtoLens.ProxySym ::
+         Data.ProtoLens.ProxySym "maybe'authInfo")
+
+maybe'authTicket ::
+                 forall msg msg' .
+                   Data.ProtoLens.HasField "maybe'authTicket" msg msg' =>
+                   Lens.Family2.Lens msg msg'
+                     (Data.ProtoLens.Field "maybe'authTicket" msg)
+                     (Data.ProtoLens.Field "maybe'authTicket" msg')
+maybe'authTicket
+  = Data.ProtoLens.field
+      (Data.ProtoLens.ProxySym ::
+         Data.ProtoLens.ProxySym "maybe'authTicket")
+
+maybe'token ::
+            forall msg msg' . Data.ProtoLens.HasField "maybe'token" msg msg' =>
+              Lens.Family2.Lens msg msg' (Data.ProtoLens.Field "maybe'token" msg)
+                (Data.ProtoLens.Field "maybe'token" msg')
+maybe'token
+  = Data.ProtoLens.field
+      (Data.ProtoLens.ProxySym :: Data.ProtoLens.ProxySym "maybe'token")
+
+maybe'unknown6 ::
+               forall msg msg' .
+                 Data.ProtoLens.HasField "maybe'unknown6" msg msg' =>
+                 Lens.Family2.Lens msg msg'
+                   (Data.ProtoLens.Field "maybe'unknown6" msg)
+                   (Data.ProtoLens.Field "maybe'unknown6" msg')
+maybe'unknown6
+  = Data.ProtoLens.field
+      (Data.ProtoLens.ProxySym ::
+         Data.ProtoLens.ProxySym "maybe'unknown6")
+
+provider ::
+         forall msg msg' . Data.ProtoLens.HasField "provider" msg msg' =>
+           Lens.Family2.Lens msg msg' (Data.ProtoLens.Field "provider" msg)
+             (Data.ProtoLens.Field "provider" msg')
+provider
+  = Data.ProtoLens.field
+      (Data.ProtoLens.ProxySym :: Data.ProtoLens.ProxySym "provider")
+
+requestId ::
+          forall msg msg' . Data.ProtoLens.HasField "requestId" msg msg' =>
+            Lens.Family2.Lens msg msg' (Data.ProtoLens.Field "requestId" msg)
+              (Data.ProtoLens.Field "requestId" msg')
+requestId
+  = Data.ProtoLens.field
+      (Data.ProtoLens.ProxySym :: Data.ProtoLens.ProxySym "requestId")
+
+requests ::
+         forall msg msg' . Data.ProtoLens.HasField "requests" msg msg' =>
+           Lens.Family2.Lens msg msg' (Data.ProtoLens.Field "requests" msg)
+             (Data.ProtoLens.Field "requests" msg')
+requests
+  = Data.ProtoLens.field
+      (Data.ProtoLens.ProxySym :: Data.ProtoLens.ProxySym "requests")
+
+statusCode ::
+           forall msg msg' . Data.ProtoLens.HasField "statusCode" msg msg' =>
+             Lens.Family2.Lens msg msg' (Data.ProtoLens.Field "statusCode" msg)
+               (Data.ProtoLens.Field "statusCode" msg')
+statusCode
+  = Data.ProtoLens.field
+      (Data.ProtoLens.ProxySym :: Data.ProtoLens.ProxySym "statusCode")
+
+token ::
+      forall msg msg' . Data.ProtoLens.HasField "token" msg msg' =>
+        Lens.Family2.Lens msg msg' (Data.ProtoLens.Field "token" msg)
+          (Data.ProtoLens.Field "token" msg')
+token
+  = Data.ProtoLens.field
+      (Data.ProtoLens.ProxySym :: Data.ProtoLens.ProxySym "token")
+
+unknown12 ::
+          forall msg msg' . Data.ProtoLens.HasField "unknown12" msg msg' =>
+            Lens.Family2.Lens msg msg' (Data.ProtoLens.Field "unknown12" msg)
+              (Data.ProtoLens.Field "unknown12" msg')
+unknown12
+  = Data.ProtoLens.field
+      (Data.ProtoLens.ProxySym :: Data.ProtoLens.ProxySym "unknown12")
+
+unknown2 ::
+         forall msg msg' . Data.ProtoLens.HasField "unknown2" msg msg' =>
+           Lens.Family2.Lens msg msg' (Data.ProtoLens.Field "unknown2" msg)
+             (Data.ProtoLens.Field "unknown2" msg')
+unknown2
+  = Data.ProtoLens.field
+      (Data.ProtoLens.ProxySym :: Data.ProtoLens.ProxySym "unknown2")
+
+unknown6 ::
+         forall msg msg' . Data.ProtoLens.HasField "unknown6" msg msg' =>
+           Lens.Family2.Lens msg msg' (Data.ProtoLens.Field "unknown6" msg)
+             (Data.ProtoLens.Field "unknown6" msg')
+unknown6
+  = Data.ProtoLens.field
+      (Data.ProtoLens.ProxySym :: Data.ProtoLens.ProxySym "unknown6")
diff --git a/src/Proto/POGOProtos/Networking/Envelopes/ResponseEnvelope.hs b/src/Proto/POGOProtos/Networking/Envelopes/ResponseEnvelope.hs
new file mode 100644
--- /dev/null
+++ b/src/Proto/POGOProtos/Networking/Envelopes/ResponseEnvelope.hs
@@ -0,0 +1,364 @@
+{- This file was auto-generated from POGOProtos/Networking/Envelopes/ResponseEnvelope.proto by the proto-lens-protoc program. -}
+{-# LANGUAGE ScopedTypeVariables, DataKinds, TypeFamilies,
+  MultiParamTypeClasses, FlexibleContexts, FlexibleInstances #-}
+{-# OPTIONS_GHC -fno-warn-unused-imports#-}
+module Proto.POGOProtos.Networking.Envelopes.ResponseEnvelope where
+import qualified Prelude
+import qualified Data.ProtoLens
+import qualified Data.ProtoLens.Message.Enum
+import qualified Lens.Family2
+import qualified Lens.Family2.Unchecked
+import qualified Data.Default.Class
+import qualified Data.Text
+import qualified Data.Int
+import qualified Data.Word
+import qualified Data.Map
+import qualified Data.ByteString
+import qualified Proto.POGOProtos.Networking.Envelopes.AuthTicket
+import qualified
+       Proto.POGOProtos.Networking.Envelopes.Unknown6Response
+
+data ResponseEnvelope = ResponseEnvelope{_ResponseEnvelope'statusCode
+                                         :: Data.Int.Int32,
+                                         _ResponseEnvelope'requestId :: Data.Word.Word64,
+                                         _ResponseEnvelope'apiUrl :: Data.Text.Text,
+                                         _ResponseEnvelope'unknown6 ::
+                                         Prelude.Maybe
+                                           Proto.POGOProtos.Networking.Envelopes.Unknown6Response.Unknown6Response,
+                                         _ResponseEnvelope'authTicket ::
+                                         Prelude.Maybe
+                                           Proto.POGOProtos.Networking.Envelopes.AuthTicket.AuthTicket,
+                                         _ResponseEnvelope'returns :: [Data.ByteString.ByteString],
+                                         _ResponseEnvelope'error :: Data.Text.Text}
+                      deriving (Prelude.Show, Prelude.Eq)
+
+type instance Data.ProtoLens.Field "statusCode" ResponseEnvelope =
+     Data.Int.Int32
+
+instance Data.ProtoLens.HasField "statusCode" ResponseEnvelope
+         ResponseEnvelope where
+        field _
+          = Lens.Family2.Unchecked.lens _ResponseEnvelope'statusCode
+              (\ x__ y__ -> x__{_ResponseEnvelope'statusCode = y__})
+
+type instance Data.ProtoLens.Field "requestId" ResponseEnvelope =
+     Data.Word.Word64
+
+instance Data.ProtoLens.HasField "requestId" ResponseEnvelope
+         ResponseEnvelope where
+        field _
+          = Lens.Family2.Unchecked.lens _ResponseEnvelope'requestId
+              (\ x__ y__ -> x__{_ResponseEnvelope'requestId = y__})
+
+type instance Data.ProtoLens.Field "apiUrl" ResponseEnvelope =
+     Data.Text.Text
+
+instance Data.ProtoLens.HasField "apiUrl" ResponseEnvelope
+         ResponseEnvelope where
+        field _
+          = Lens.Family2.Unchecked.lens _ResponseEnvelope'apiUrl
+              (\ x__ y__ -> x__{_ResponseEnvelope'apiUrl = y__})
+
+type instance Data.ProtoLens.Field "unknown6" ResponseEnvelope =
+     Proto.POGOProtos.Networking.Envelopes.Unknown6Response.Unknown6Response
+
+instance Data.ProtoLens.HasField "unknown6" ResponseEnvelope
+         ResponseEnvelope where
+        field _
+          = (Prelude..) maybe'unknown6
+              (Data.ProtoLens.maybeLens Data.Default.Class.def)
+
+type instance
+     Data.ProtoLens.Field "maybe'unknown6" ResponseEnvelope =
+     Prelude.Maybe
+       Proto.POGOProtos.Networking.Envelopes.Unknown6Response.Unknown6Response
+
+instance Data.ProtoLens.HasField "maybe'unknown6" ResponseEnvelope
+         ResponseEnvelope where
+        field _
+          = Lens.Family2.Unchecked.lens _ResponseEnvelope'unknown6
+              (\ x__ y__ -> x__{_ResponseEnvelope'unknown6 = y__})
+
+type instance Data.ProtoLens.Field "authTicket" ResponseEnvelope =
+     Proto.POGOProtos.Networking.Envelopes.AuthTicket.AuthTicket
+
+instance Data.ProtoLens.HasField "authTicket" ResponseEnvelope
+         ResponseEnvelope where
+        field _
+          = (Prelude..) maybe'authTicket
+              (Data.ProtoLens.maybeLens Data.Default.Class.def)
+
+type instance
+     Data.ProtoLens.Field "maybe'authTicket" ResponseEnvelope =
+     Prelude.Maybe
+       Proto.POGOProtos.Networking.Envelopes.AuthTicket.AuthTicket
+
+instance Data.ProtoLens.HasField "maybe'authTicket"
+         ResponseEnvelope ResponseEnvelope where
+        field _
+          = Lens.Family2.Unchecked.lens _ResponseEnvelope'authTicket
+              (\ x__ y__ -> x__{_ResponseEnvelope'authTicket = y__})
+
+type instance Data.ProtoLens.Field "returns" ResponseEnvelope =
+     [Data.ByteString.ByteString]
+
+instance Data.ProtoLens.HasField "returns" ResponseEnvelope
+         ResponseEnvelope where
+        field _
+          = Lens.Family2.Unchecked.lens _ResponseEnvelope'returns
+              (\ x__ y__ -> x__{_ResponseEnvelope'returns = y__})
+
+type instance Data.ProtoLens.Field "error" ResponseEnvelope =
+     Data.Text.Text
+
+instance Data.ProtoLens.HasField "error" ResponseEnvelope
+         ResponseEnvelope where
+        field _
+          = Lens.Family2.Unchecked.lens _ResponseEnvelope'error
+              (\ x__ y__ -> x__{_ResponseEnvelope'error = y__})
+
+instance Data.Default.Class.Default ResponseEnvelope where
+        def
+          = ResponseEnvelope{_ResponseEnvelope'statusCode =
+                               Data.ProtoLens.fieldDefault,
+                             _ResponseEnvelope'requestId = Data.ProtoLens.fieldDefault,
+                             _ResponseEnvelope'apiUrl = Data.ProtoLens.fieldDefault,
+                             _ResponseEnvelope'unknown6 = Prelude.Nothing,
+                             _ResponseEnvelope'authTicket = Prelude.Nothing,
+                             _ResponseEnvelope'returns = [],
+                             _ResponseEnvelope'error = Data.ProtoLens.fieldDefault}
+
+instance Data.ProtoLens.Message ResponseEnvelope where
+        descriptor
+          = let statusCode__field_descriptor
+                  = Data.ProtoLens.FieldDescriptor "status_code"
+                      (Data.ProtoLens.Int32Field ::
+                         Data.ProtoLens.FieldTypeDescriptor Data.Int.Int32)
+                      (Data.ProtoLens.PlainField Data.ProtoLens.Optional statusCode)
+                requestId__field_descriptor
+                  = Data.ProtoLens.FieldDescriptor "request_id"
+                      (Data.ProtoLens.UInt64Field ::
+                         Data.ProtoLens.FieldTypeDescriptor Data.Word.Word64)
+                      (Data.ProtoLens.PlainField Data.ProtoLens.Optional requestId)
+                apiUrl__field_descriptor
+                  = Data.ProtoLens.FieldDescriptor "api_url"
+                      (Data.ProtoLens.StringField ::
+                         Data.ProtoLens.FieldTypeDescriptor Data.Text.Text)
+                      (Data.ProtoLens.PlainField Data.ProtoLens.Optional apiUrl)
+                unknown6__field_descriptor
+                  = Data.ProtoLens.FieldDescriptor "unknown6"
+                      (Data.ProtoLens.MessageField ::
+                         Data.ProtoLens.FieldTypeDescriptor
+                           Proto.POGOProtos.Networking.Envelopes.Unknown6Response.Unknown6Response)
+                      (Data.ProtoLens.OptionalField maybe'unknown6)
+                authTicket__field_descriptor
+                  = Data.ProtoLens.FieldDescriptor "auth_ticket"
+                      (Data.ProtoLens.MessageField ::
+                         Data.ProtoLens.FieldTypeDescriptor
+                           Proto.POGOProtos.Networking.Envelopes.AuthTicket.AuthTicket)
+                      (Data.ProtoLens.OptionalField maybe'authTicket)
+                returns__field_descriptor
+                  = Data.ProtoLens.FieldDescriptor "returns"
+                      (Data.ProtoLens.BytesField ::
+                         Data.ProtoLens.FieldTypeDescriptor Data.ByteString.ByteString)
+                      (Data.ProtoLens.RepeatedField Data.ProtoLens.Unpacked returns)
+                error__field_descriptor
+                  = Data.ProtoLens.FieldDescriptor "error"
+                      (Data.ProtoLens.StringField ::
+                         Data.ProtoLens.FieldTypeDescriptor Data.Text.Text)
+                      (Data.ProtoLens.PlainField Data.ProtoLens.Optional error)
+              in
+              Data.ProtoLens.MessageDescriptor
+                (Data.Map.fromList
+                   [(Data.ProtoLens.Tag 1, statusCode__field_descriptor),
+                    (Data.ProtoLens.Tag 2, requestId__field_descriptor),
+                    (Data.ProtoLens.Tag 3, apiUrl__field_descriptor),
+                    (Data.ProtoLens.Tag 6, unknown6__field_descriptor),
+                    (Data.ProtoLens.Tag 7, authTicket__field_descriptor),
+                    (Data.ProtoLens.Tag 100, returns__field_descriptor),
+                    (Data.ProtoLens.Tag 101, error__field_descriptor)])
+                (Data.Map.fromList
+                   [("status_code", statusCode__field_descriptor),
+                    ("request_id", requestId__field_descriptor),
+                    ("api_url", apiUrl__field_descriptor),
+                    ("unknown6", unknown6__field_descriptor),
+                    ("auth_ticket", authTicket__field_descriptor),
+                    ("returns", returns__field_descriptor),
+                    ("error", error__field_descriptor)])
+
+data ResponseEnvelope'Unknown7 = ResponseEnvelope'Unknown7{_ResponseEnvelope'Unknown7'unknown71
+                                                           :: Data.ByteString.ByteString,
+                                                           _ResponseEnvelope'Unknown7'unknown72 ::
+                                                           Data.Int.Int64,
+                                                           _ResponseEnvelope'Unknown7'unknown73 ::
+                                                           Data.ByteString.ByteString}
+                               deriving (Prelude.Show, Prelude.Eq)
+
+type instance
+     Data.ProtoLens.Field "unknown71" ResponseEnvelope'Unknown7 =
+     Data.ByteString.ByteString
+
+instance Data.ProtoLens.HasField "unknown71"
+         ResponseEnvelope'Unknown7 ResponseEnvelope'Unknown7 where
+        field _
+          = Lens.Family2.Unchecked.lens _ResponseEnvelope'Unknown7'unknown71
+              (\ x__ y__ -> x__{_ResponseEnvelope'Unknown7'unknown71 = y__})
+
+type instance
+     Data.ProtoLens.Field "unknown72" ResponseEnvelope'Unknown7 =
+     Data.Int.Int64
+
+instance Data.ProtoLens.HasField "unknown72"
+         ResponseEnvelope'Unknown7 ResponseEnvelope'Unknown7 where
+        field _
+          = Lens.Family2.Unchecked.lens _ResponseEnvelope'Unknown7'unknown72
+              (\ x__ y__ -> x__{_ResponseEnvelope'Unknown7'unknown72 = y__})
+
+type instance
+     Data.ProtoLens.Field "unknown73" ResponseEnvelope'Unknown7 =
+     Data.ByteString.ByteString
+
+instance Data.ProtoLens.HasField "unknown73"
+         ResponseEnvelope'Unknown7 ResponseEnvelope'Unknown7 where
+        field _
+          = Lens.Family2.Unchecked.lens _ResponseEnvelope'Unknown7'unknown73
+              (\ x__ y__ -> x__{_ResponseEnvelope'Unknown7'unknown73 = y__})
+
+instance Data.Default.Class.Default ResponseEnvelope'Unknown7 where
+        def
+          = ResponseEnvelope'Unknown7{_ResponseEnvelope'Unknown7'unknown71 =
+                                        Data.ProtoLens.fieldDefault,
+                                      _ResponseEnvelope'Unknown7'unknown72 =
+                                        Data.ProtoLens.fieldDefault,
+                                      _ResponseEnvelope'Unknown7'unknown73 =
+                                        Data.ProtoLens.fieldDefault}
+
+instance Data.ProtoLens.Message ResponseEnvelope'Unknown7 where
+        descriptor
+          = let unknown71__field_descriptor
+                  = Data.ProtoLens.FieldDescriptor "unknown71"
+                      (Data.ProtoLens.BytesField ::
+                         Data.ProtoLens.FieldTypeDescriptor Data.ByteString.ByteString)
+                      (Data.ProtoLens.PlainField Data.ProtoLens.Optional unknown71)
+                unknown72__field_descriptor
+                  = Data.ProtoLens.FieldDescriptor "unknown72"
+                      (Data.ProtoLens.Int64Field ::
+                         Data.ProtoLens.FieldTypeDescriptor Data.Int.Int64)
+                      (Data.ProtoLens.PlainField Data.ProtoLens.Optional unknown72)
+                unknown73__field_descriptor
+                  = Data.ProtoLens.FieldDescriptor "unknown73"
+                      (Data.ProtoLens.BytesField ::
+                         Data.ProtoLens.FieldTypeDescriptor Data.ByteString.ByteString)
+                      (Data.ProtoLens.PlainField Data.ProtoLens.Optional unknown73)
+              in
+              Data.ProtoLens.MessageDescriptor
+                (Data.Map.fromList
+                   [(Data.ProtoLens.Tag 1, unknown71__field_descriptor),
+                    (Data.ProtoLens.Tag 2, unknown72__field_descriptor),
+                    (Data.ProtoLens.Tag 3, unknown73__field_descriptor)])
+                (Data.Map.fromList
+                   [("unknown71", unknown71__field_descriptor),
+                    ("unknown72", unknown72__field_descriptor),
+                    ("unknown73", unknown73__field_descriptor)])
+
+apiUrl ::
+       forall msg msg' . Data.ProtoLens.HasField "apiUrl" msg msg' =>
+         Lens.Family2.Lens msg msg' (Data.ProtoLens.Field "apiUrl" msg)
+           (Data.ProtoLens.Field "apiUrl" msg')
+apiUrl
+  = Data.ProtoLens.field
+      (Data.ProtoLens.ProxySym :: Data.ProtoLens.ProxySym "apiUrl")
+
+authTicket ::
+           forall msg msg' . Data.ProtoLens.HasField "authTicket" msg msg' =>
+             Lens.Family2.Lens msg msg' (Data.ProtoLens.Field "authTicket" msg)
+               (Data.ProtoLens.Field "authTicket" msg')
+authTicket
+  = Data.ProtoLens.field
+      (Data.ProtoLens.ProxySym :: Data.ProtoLens.ProxySym "authTicket")
+
+error ::
+      forall msg msg' . Data.ProtoLens.HasField "error" msg msg' =>
+        Lens.Family2.Lens msg msg' (Data.ProtoLens.Field "error" msg)
+          (Data.ProtoLens.Field "error" msg')
+error
+  = Data.ProtoLens.field
+      (Data.ProtoLens.ProxySym :: Data.ProtoLens.ProxySym "error")
+
+maybe'authTicket ::
+                 forall msg msg' .
+                   Data.ProtoLens.HasField "maybe'authTicket" msg msg' =>
+                   Lens.Family2.Lens msg msg'
+                     (Data.ProtoLens.Field "maybe'authTicket" msg)
+                     (Data.ProtoLens.Field "maybe'authTicket" msg')
+maybe'authTicket
+  = Data.ProtoLens.field
+      (Data.ProtoLens.ProxySym ::
+         Data.ProtoLens.ProxySym "maybe'authTicket")
+
+maybe'unknown6 ::
+               forall msg msg' .
+                 Data.ProtoLens.HasField "maybe'unknown6" msg msg' =>
+                 Lens.Family2.Lens msg msg'
+                   (Data.ProtoLens.Field "maybe'unknown6" msg)
+                   (Data.ProtoLens.Field "maybe'unknown6" msg')
+maybe'unknown6
+  = Data.ProtoLens.field
+      (Data.ProtoLens.ProxySym ::
+         Data.ProtoLens.ProxySym "maybe'unknown6")
+
+requestId ::
+          forall msg msg' . Data.ProtoLens.HasField "requestId" msg msg' =>
+            Lens.Family2.Lens msg msg' (Data.ProtoLens.Field "requestId" msg)
+              (Data.ProtoLens.Field "requestId" msg')
+requestId
+  = Data.ProtoLens.field
+      (Data.ProtoLens.ProxySym :: Data.ProtoLens.ProxySym "requestId")
+
+returns ::
+        forall msg msg' . Data.ProtoLens.HasField "returns" msg msg' =>
+          Lens.Family2.Lens msg msg' (Data.ProtoLens.Field "returns" msg)
+            (Data.ProtoLens.Field "returns" msg')
+returns
+  = Data.ProtoLens.field
+      (Data.ProtoLens.ProxySym :: Data.ProtoLens.ProxySym "returns")
+
+statusCode ::
+           forall msg msg' . Data.ProtoLens.HasField "statusCode" msg msg' =>
+             Lens.Family2.Lens msg msg' (Data.ProtoLens.Field "statusCode" msg)
+               (Data.ProtoLens.Field "statusCode" msg')
+statusCode
+  = Data.ProtoLens.field
+      (Data.ProtoLens.ProxySym :: Data.ProtoLens.ProxySym "statusCode")
+
+unknown6 ::
+         forall msg msg' . Data.ProtoLens.HasField "unknown6" msg msg' =>
+           Lens.Family2.Lens msg msg' (Data.ProtoLens.Field "unknown6" msg)
+             (Data.ProtoLens.Field "unknown6" msg')
+unknown6
+  = Data.ProtoLens.field
+      (Data.ProtoLens.ProxySym :: Data.ProtoLens.ProxySym "unknown6")
+
+unknown71 ::
+          forall msg msg' . Data.ProtoLens.HasField "unknown71" msg msg' =>
+            Lens.Family2.Lens msg msg' (Data.ProtoLens.Field "unknown71" msg)
+              (Data.ProtoLens.Field "unknown71" msg')
+unknown71
+  = Data.ProtoLens.field
+      (Data.ProtoLens.ProxySym :: Data.ProtoLens.ProxySym "unknown71")
+
+unknown72 ::
+          forall msg msg' . Data.ProtoLens.HasField "unknown72" msg msg' =>
+            Lens.Family2.Lens msg msg' (Data.ProtoLens.Field "unknown72" msg)
+              (Data.ProtoLens.Field "unknown72" msg')
+unknown72
+  = Data.ProtoLens.field
+      (Data.ProtoLens.ProxySym :: Data.ProtoLens.ProxySym "unknown72")
+
+unknown73 ::
+          forall msg msg' . Data.ProtoLens.HasField "unknown73" msg msg' =>
+            Lens.Family2.Lens msg msg' (Data.ProtoLens.Field "unknown73" msg)
+              (Data.ProtoLens.Field "unknown73" msg')
+unknown73
+  = Data.ProtoLens.field
+      (Data.ProtoLens.ProxySym :: Data.ProtoLens.ProxySym "unknown73")
diff --git a/src/Proto/POGOProtos/Networking/Envelopes/Unknown6.hs b/src/Proto/POGOProtos/Networking/Envelopes/Unknown6.hs
new file mode 100644
--- /dev/null
+++ b/src/Proto/POGOProtos/Networking/Envelopes/Unknown6.hs
@@ -0,0 +1,129 @@
+{- This file was auto-generated from POGOProtos/Networking/Envelopes/Unknown6.proto by the proto-lens-protoc program. -}
+{-# LANGUAGE ScopedTypeVariables, DataKinds, TypeFamilies,
+  MultiParamTypeClasses, FlexibleContexts, FlexibleInstances #-}
+{-# OPTIONS_GHC -fno-warn-unused-imports#-}
+module Proto.POGOProtos.Networking.Envelopes.Unknown6 where
+import qualified Prelude
+import qualified Data.ProtoLens
+import qualified Data.ProtoLens.Message.Enum
+import qualified Lens.Family2
+import qualified Lens.Family2.Unchecked
+import qualified Data.Default.Class
+import qualified Data.Text
+import qualified Data.Int
+import qualified Data.Word
+import qualified Data.Map
+import qualified Data.ByteString
+
+data Unknown6 = Unknown6{_Unknown6'unknown1 :: Data.Int.Int32,
+                         _Unknown6'unknown2 :: Prelude.Maybe Unknown6'Unknown2}
+              deriving (Prelude.Show, Prelude.Eq)
+
+type instance Data.ProtoLens.Field "unknown1" Unknown6 =
+     Data.Int.Int32
+
+instance Data.ProtoLens.HasField "unknown1" Unknown6 Unknown6 where
+        field _
+          = Lens.Family2.Unchecked.lens _Unknown6'unknown1
+              (\ x__ y__ -> x__{_Unknown6'unknown1 = y__})
+
+type instance Data.ProtoLens.Field "unknown2" Unknown6 =
+     Unknown6'Unknown2
+
+instance Data.ProtoLens.HasField "unknown2" Unknown6 Unknown6 where
+        field _
+          = (Prelude..) maybe'unknown2
+              (Data.ProtoLens.maybeLens Data.Default.Class.def)
+
+type instance Data.ProtoLens.Field "maybe'unknown2" Unknown6 =
+     Prelude.Maybe Unknown6'Unknown2
+
+instance Data.ProtoLens.HasField "maybe'unknown2" Unknown6 Unknown6
+         where
+        field _
+          = Lens.Family2.Unchecked.lens _Unknown6'unknown2
+              (\ x__ y__ -> x__{_Unknown6'unknown2 = y__})
+
+instance Data.Default.Class.Default Unknown6 where
+        def
+          = Unknown6{_Unknown6'unknown1 = Data.ProtoLens.fieldDefault,
+                     _Unknown6'unknown2 = Prelude.Nothing}
+
+instance Data.ProtoLens.Message Unknown6 where
+        descriptor
+          = let unknown1__field_descriptor
+                  = Data.ProtoLens.FieldDescriptor "unknown1"
+                      (Data.ProtoLens.Int32Field ::
+                         Data.ProtoLens.FieldTypeDescriptor Data.Int.Int32)
+                      (Data.ProtoLens.PlainField Data.ProtoLens.Optional unknown1)
+                unknown2__field_descriptor
+                  = Data.ProtoLens.FieldDescriptor "unknown2"
+                      (Data.ProtoLens.MessageField ::
+                         Data.ProtoLens.FieldTypeDescriptor Unknown6'Unknown2)
+                      (Data.ProtoLens.OptionalField maybe'unknown2)
+              in
+              Data.ProtoLens.MessageDescriptor
+                (Data.Map.fromList
+                   [(Data.ProtoLens.Tag 1, unknown1__field_descriptor),
+                    (Data.ProtoLens.Tag 2, unknown2__field_descriptor)])
+                (Data.Map.fromList
+                   [("unknown1", unknown1__field_descriptor),
+                    ("unknown2", unknown2__field_descriptor)])
+
+data Unknown6'Unknown2 = Unknown6'Unknown2{_Unknown6'Unknown2'unknown1
+                                           :: Data.ByteString.ByteString}
+                       deriving (Prelude.Show, Prelude.Eq)
+
+type instance Data.ProtoLens.Field "unknown1" Unknown6'Unknown2 =
+     Data.ByteString.ByteString
+
+instance Data.ProtoLens.HasField "unknown1" Unknown6'Unknown2
+         Unknown6'Unknown2 where
+        field _
+          = Lens.Family2.Unchecked.lens _Unknown6'Unknown2'unknown1
+              (\ x__ y__ -> x__{_Unknown6'Unknown2'unknown1 = y__})
+
+instance Data.Default.Class.Default Unknown6'Unknown2 where
+        def
+          = Unknown6'Unknown2{_Unknown6'Unknown2'unknown1 =
+                                Data.ProtoLens.fieldDefault}
+
+instance Data.ProtoLens.Message Unknown6'Unknown2 where
+        descriptor
+          = let unknown1__field_descriptor
+                  = Data.ProtoLens.FieldDescriptor "unknown1"
+                      (Data.ProtoLens.BytesField ::
+                         Data.ProtoLens.FieldTypeDescriptor Data.ByteString.ByteString)
+                      (Data.ProtoLens.PlainField Data.ProtoLens.Optional unknown1)
+              in
+              Data.ProtoLens.MessageDescriptor
+                (Data.Map.fromList
+                   [(Data.ProtoLens.Tag 1, unknown1__field_descriptor)])
+                (Data.Map.fromList [("unknown1", unknown1__field_descriptor)])
+
+maybe'unknown2 ::
+               forall msg msg' .
+                 Data.ProtoLens.HasField "maybe'unknown2" msg msg' =>
+                 Lens.Family2.Lens msg msg'
+                   (Data.ProtoLens.Field "maybe'unknown2" msg)
+                   (Data.ProtoLens.Field "maybe'unknown2" msg')
+maybe'unknown2
+  = Data.ProtoLens.field
+      (Data.ProtoLens.ProxySym ::
+         Data.ProtoLens.ProxySym "maybe'unknown2")
+
+unknown1 ::
+         forall msg msg' . Data.ProtoLens.HasField "unknown1" msg msg' =>
+           Lens.Family2.Lens msg msg' (Data.ProtoLens.Field "unknown1" msg)
+             (Data.ProtoLens.Field "unknown1" msg')
+unknown1
+  = Data.ProtoLens.field
+      (Data.ProtoLens.ProxySym :: Data.ProtoLens.ProxySym "unknown1")
+
+unknown2 ::
+         forall msg msg' . Data.ProtoLens.HasField "unknown2" msg msg' =>
+           Lens.Family2.Lens msg msg' (Data.ProtoLens.Field "unknown2" msg)
+             (Data.ProtoLens.Field "unknown2" msg')
+unknown2
+  = Data.ProtoLens.field
+      (Data.ProtoLens.ProxySym :: Data.ProtoLens.ProxySym "unknown2")
diff --git a/src/Proto/POGOProtos/Networking/Envelopes/Unknown6Response.hs b/src/Proto/POGOProtos/Networking/Envelopes/Unknown6Response.hs
new file mode 100644
--- /dev/null
+++ b/src/Proto/POGOProtos/Networking/Envelopes/Unknown6Response.hs
@@ -0,0 +1,136 @@
+{- This file was auto-generated from POGOProtos/Networking/Envelopes/Unknown6Response.proto by the proto-lens-protoc program. -}
+{-# LANGUAGE ScopedTypeVariables, DataKinds, TypeFamilies,
+  MultiParamTypeClasses, FlexibleContexts, FlexibleInstances #-}
+{-# OPTIONS_GHC -fno-warn-unused-imports#-}
+module Proto.POGOProtos.Networking.Envelopes.Unknown6Response where
+import qualified Prelude
+import qualified Data.ProtoLens
+import qualified Data.ProtoLens.Message.Enum
+import qualified Lens.Family2
+import qualified Lens.Family2.Unchecked
+import qualified Data.Default.Class
+import qualified Data.Text
+import qualified Data.Int
+import qualified Data.Word
+import qualified Data.Map
+import qualified Data.ByteString
+
+data Unknown6Response = Unknown6Response{_Unknown6Response'unknown1
+                                         :: Data.Int.Int32,
+                                         _Unknown6Response'unknown2 ::
+                                         Prelude.Maybe Unknown6Response'Unknown2}
+                      deriving (Prelude.Show, Prelude.Eq)
+
+type instance Data.ProtoLens.Field "unknown1" Unknown6Response =
+     Data.Int.Int32
+
+instance Data.ProtoLens.HasField "unknown1" Unknown6Response
+         Unknown6Response where
+        field _
+          = Lens.Family2.Unchecked.lens _Unknown6Response'unknown1
+              (\ x__ y__ -> x__{_Unknown6Response'unknown1 = y__})
+
+type instance Data.ProtoLens.Field "unknown2" Unknown6Response =
+     Unknown6Response'Unknown2
+
+instance Data.ProtoLens.HasField "unknown2" Unknown6Response
+         Unknown6Response where
+        field _
+          = (Prelude..) maybe'unknown2
+              (Data.ProtoLens.maybeLens Data.Default.Class.def)
+
+type instance
+     Data.ProtoLens.Field "maybe'unknown2" Unknown6Response =
+     Prelude.Maybe Unknown6Response'Unknown2
+
+instance Data.ProtoLens.HasField "maybe'unknown2" Unknown6Response
+         Unknown6Response where
+        field _
+          = Lens.Family2.Unchecked.lens _Unknown6Response'unknown2
+              (\ x__ y__ -> x__{_Unknown6Response'unknown2 = y__})
+
+instance Data.Default.Class.Default Unknown6Response where
+        def
+          = Unknown6Response{_Unknown6Response'unknown1 =
+                               Data.ProtoLens.fieldDefault,
+                             _Unknown6Response'unknown2 = Prelude.Nothing}
+
+instance Data.ProtoLens.Message Unknown6Response where
+        descriptor
+          = let unknown1__field_descriptor
+                  = Data.ProtoLens.FieldDescriptor "unknown1"
+                      (Data.ProtoLens.Int32Field ::
+                         Data.ProtoLens.FieldTypeDescriptor Data.Int.Int32)
+                      (Data.ProtoLens.PlainField Data.ProtoLens.Optional unknown1)
+                unknown2__field_descriptor
+                  = Data.ProtoLens.FieldDescriptor "unknown2"
+                      (Data.ProtoLens.MessageField ::
+                         Data.ProtoLens.FieldTypeDescriptor Unknown6Response'Unknown2)
+                      (Data.ProtoLens.OptionalField maybe'unknown2)
+              in
+              Data.ProtoLens.MessageDescriptor
+                (Data.Map.fromList
+                   [(Data.ProtoLens.Tag 1, unknown1__field_descriptor),
+                    (Data.ProtoLens.Tag 2, unknown2__field_descriptor)])
+                (Data.Map.fromList
+                   [("unknown1", unknown1__field_descriptor),
+                    ("unknown2", unknown2__field_descriptor)])
+
+data Unknown6Response'Unknown2 = Unknown6Response'Unknown2{_Unknown6Response'Unknown2'unknown1
+                                                           :: Data.Word.Word64}
+                               deriving (Prelude.Show, Prelude.Eq)
+
+type instance
+     Data.ProtoLens.Field "unknown1" Unknown6Response'Unknown2 =
+     Data.Word.Word64
+
+instance Data.ProtoLens.HasField "unknown1"
+         Unknown6Response'Unknown2 Unknown6Response'Unknown2 where
+        field _
+          = Lens.Family2.Unchecked.lens _Unknown6Response'Unknown2'unknown1
+              (\ x__ y__ -> x__{_Unknown6Response'Unknown2'unknown1 = y__})
+
+instance Data.Default.Class.Default Unknown6Response'Unknown2 where
+        def
+          = Unknown6Response'Unknown2{_Unknown6Response'Unknown2'unknown1 =
+                                        Data.ProtoLens.fieldDefault}
+
+instance Data.ProtoLens.Message Unknown6Response'Unknown2 where
+        descriptor
+          = let unknown1__field_descriptor
+                  = Data.ProtoLens.FieldDescriptor "unknown1"
+                      (Data.ProtoLens.UInt64Field ::
+                         Data.ProtoLens.FieldTypeDescriptor Data.Word.Word64)
+                      (Data.ProtoLens.PlainField Data.ProtoLens.Optional unknown1)
+              in
+              Data.ProtoLens.MessageDescriptor
+                (Data.Map.fromList
+                   [(Data.ProtoLens.Tag 1, unknown1__field_descriptor)])
+                (Data.Map.fromList [("unknown1", unknown1__field_descriptor)])
+
+maybe'unknown2 ::
+               forall msg msg' .
+                 Data.ProtoLens.HasField "maybe'unknown2" msg msg' =>
+                 Lens.Family2.Lens msg msg'
+                   (Data.ProtoLens.Field "maybe'unknown2" msg)
+                   (Data.ProtoLens.Field "maybe'unknown2" msg')
+maybe'unknown2
+  = Data.ProtoLens.field
+      (Data.ProtoLens.ProxySym ::
+         Data.ProtoLens.ProxySym "maybe'unknown2")
+
+unknown1 ::
+         forall msg msg' . Data.ProtoLens.HasField "unknown1" msg msg' =>
+           Lens.Family2.Lens msg msg' (Data.ProtoLens.Field "unknown1" msg)
+             (Data.ProtoLens.Field "unknown1" msg')
+unknown1
+  = Data.ProtoLens.field
+      (Data.ProtoLens.ProxySym :: Data.ProtoLens.ProxySym "unknown1")
+
+unknown2 ::
+         forall msg msg' . Data.ProtoLens.HasField "unknown2" msg msg' =>
+           Lens.Family2.Lens msg msg' (Data.ProtoLens.Field "unknown2" msg)
+             (Data.ProtoLens.Field "unknown2" msg')
+unknown2
+  = Data.ProtoLens.field
+      (Data.ProtoLens.ProxySym :: Data.ProtoLens.ProxySym "unknown2")
diff --git a/src/Proto/POGOProtos/Networking/Requests/Messages/AddFortModifierMessage.hs b/src/Proto/POGOProtos/Networking/Requests/Messages/AddFortModifierMessage.hs
new file mode 100644
--- /dev/null
+++ b/src/Proto/POGOProtos/Networking/Requests/Messages/AddFortModifierMessage.hs
@@ -0,0 +1,156 @@
+{- This file was auto-generated from POGOProtos/Networking/Requests/Messages/AddFortModifierMessage.proto by the proto-lens-protoc program. -}
+{-# LANGUAGE ScopedTypeVariables, DataKinds, TypeFamilies,
+  MultiParamTypeClasses, FlexibleContexts, FlexibleInstances #-}
+{-# OPTIONS_GHC -fno-warn-unused-imports#-}
+module Proto.POGOProtos.Networking.Requests.Messages.AddFortModifierMessage
+       where
+import qualified Prelude
+import qualified Data.ProtoLens
+import qualified Data.ProtoLens.Message.Enum
+import qualified Lens.Family2
+import qualified Lens.Family2.Unchecked
+import qualified Data.Default.Class
+import qualified Data.Text
+import qualified Data.Int
+import qualified Data.Word
+import qualified Data.Map
+import qualified Data.ByteString
+import qualified Proto.POGOProtos.Inventory.Item.ItemId
+
+data AddFortModifierMessage = AddFortModifierMessage{_AddFortModifierMessage'modifierType
+                                                     ::
+                                                     Proto.POGOProtos.Inventory.Item.ItemId.ItemId,
+                                                     _AddFortModifierMessage'fortId ::
+                                                     Data.Text.Text,
+                                                     _AddFortModifierMessage'playerLatitude ::
+                                                     Prelude.Double,
+                                                     _AddFortModifierMessage'playerLongitude ::
+                                                     Prelude.Double}
+                            deriving (Prelude.Show, Prelude.Eq)
+
+type instance
+     Data.ProtoLens.Field "modifierType" AddFortModifierMessage =
+     Proto.POGOProtos.Inventory.Item.ItemId.ItemId
+
+instance Data.ProtoLens.HasField "modifierType"
+         AddFortModifierMessage AddFortModifierMessage where
+        field _
+          = Lens.Family2.Unchecked.lens _AddFortModifierMessage'modifierType
+              (\ x__ y__ -> x__{_AddFortModifierMessage'modifierType = y__})
+
+type instance Data.ProtoLens.Field "fortId" AddFortModifierMessage
+     = Data.Text.Text
+
+instance Data.ProtoLens.HasField "fortId" AddFortModifierMessage
+         AddFortModifierMessage where
+        field _
+          = Lens.Family2.Unchecked.lens _AddFortModifierMessage'fortId
+              (\ x__ y__ -> x__{_AddFortModifierMessage'fortId = y__})
+
+type instance
+     Data.ProtoLens.Field "playerLatitude" AddFortModifierMessage =
+     Prelude.Double
+
+instance Data.ProtoLens.HasField "playerLatitude"
+         AddFortModifierMessage AddFortModifierMessage where
+        field _
+          = Lens.Family2.Unchecked.lens
+              _AddFortModifierMessage'playerLatitude
+              (\ x__ y__ -> x__{_AddFortModifierMessage'playerLatitude = y__})
+
+type instance
+     Data.ProtoLens.Field "playerLongitude" AddFortModifierMessage =
+     Prelude.Double
+
+instance Data.ProtoLens.HasField "playerLongitude"
+         AddFortModifierMessage AddFortModifierMessage where
+        field _
+          = Lens.Family2.Unchecked.lens
+              _AddFortModifierMessage'playerLongitude
+              (\ x__ y__ -> x__{_AddFortModifierMessage'playerLongitude = y__})
+
+instance Data.Default.Class.Default AddFortModifierMessage where
+        def
+          = AddFortModifierMessage{_AddFortModifierMessage'modifierType =
+                                     Data.Default.Class.def,
+                                   _AddFortModifierMessage'fortId = Data.ProtoLens.fieldDefault,
+                                   _AddFortModifierMessage'playerLatitude =
+                                     Data.ProtoLens.fieldDefault,
+                                   _AddFortModifierMessage'playerLongitude =
+                                     Data.ProtoLens.fieldDefault}
+
+instance Data.ProtoLens.Message AddFortModifierMessage where
+        descriptor
+          = let modifierType__field_descriptor
+                  = Data.ProtoLens.FieldDescriptor "modifier_type"
+                      (Data.ProtoLens.EnumField ::
+                         Data.ProtoLens.FieldTypeDescriptor
+                           Proto.POGOProtos.Inventory.Item.ItemId.ItemId)
+                      (Data.ProtoLens.PlainField Data.ProtoLens.Optional modifierType)
+                fortId__field_descriptor
+                  = Data.ProtoLens.FieldDescriptor "fort_id"
+                      (Data.ProtoLens.StringField ::
+                         Data.ProtoLens.FieldTypeDescriptor Data.Text.Text)
+                      (Data.ProtoLens.PlainField Data.ProtoLens.Optional fortId)
+                playerLatitude__field_descriptor
+                  = Data.ProtoLens.FieldDescriptor "player_latitude"
+                      (Data.ProtoLens.DoubleField ::
+                         Data.ProtoLens.FieldTypeDescriptor Prelude.Double)
+                      (Data.ProtoLens.PlainField Data.ProtoLens.Optional playerLatitude)
+                playerLongitude__field_descriptor
+                  = Data.ProtoLens.FieldDescriptor "player_longitude"
+                      (Data.ProtoLens.DoubleField ::
+                         Data.ProtoLens.FieldTypeDescriptor Prelude.Double)
+                      (Data.ProtoLens.PlainField Data.ProtoLens.Optional playerLongitude)
+              in
+              Data.ProtoLens.MessageDescriptor
+                (Data.Map.fromList
+                   [(Data.ProtoLens.Tag 1, modifierType__field_descriptor),
+                    (Data.ProtoLens.Tag 2, fortId__field_descriptor),
+                    (Data.ProtoLens.Tag 3, playerLatitude__field_descriptor),
+                    (Data.ProtoLens.Tag 4, playerLongitude__field_descriptor)])
+                (Data.Map.fromList
+                   [("modifier_type", modifierType__field_descriptor),
+                    ("fort_id", fortId__field_descriptor),
+                    ("player_latitude", playerLatitude__field_descriptor),
+                    ("player_longitude", playerLongitude__field_descriptor)])
+
+fortId ::
+       forall msg msg' . Data.ProtoLens.HasField "fortId" msg msg' =>
+         Lens.Family2.Lens msg msg' (Data.ProtoLens.Field "fortId" msg)
+           (Data.ProtoLens.Field "fortId" msg')
+fortId
+  = Data.ProtoLens.field
+      (Data.ProtoLens.ProxySym :: Data.ProtoLens.ProxySym "fortId")
+
+modifierType ::
+             forall msg msg' .
+               Data.ProtoLens.HasField "modifierType" msg msg' =>
+               Lens.Family2.Lens msg msg'
+                 (Data.ProtoLens.Field "modifierType" msg)
+                 (Data.ProtoLens.Field "modifierType" msg')
+modifierType
+  = Data.ProtoLens.field
+      (Data.ProtoLens.ProxySym :: Data.ProtoLens.ProxySym "modifierType")
+
+playerLatitude ::
+               forall msg msg' .
+                 Data.ProtoLens.HasField "playerLatitude" msg msg' =>
+                 Lens.Family2.Lens msg msg'
+                   (Data.ProtoLens.Field "playerLatitude" msg)
+                   (Data.ProtoLens.Field "playerLatitude" msg')
+playerLatitude
+  = Data.ProtoLens.field
+      (Data.ProtoLens.ProxySym ::
+         Data.ProtoLens.ProxySym "playerLatitude")
+
+playerLongitude ::
+                forall msg msg' .
+                  Data.ProtoLens.HasField "playerLongitude" msg msg' =>
+                  Lens.Family2.Lens msg msg'
+                    (Data.ProtoLens.Field "playerLongitude" msg)
+                    (Data.ProtoLens.Field "playerLongitude" msg')
+playerLongitude
+  = Data.ProtoLens.field
+      (Data.ProtoLens.ProxySym ::
+         Data.ProtoLens.ProxySym "playerLongitude")
diff --git a/src/Proto/POGOProtos/Networking/Requests/Messages/AttackGymMessage.hs b/src/Proto/POGOProtos/Networking/Requests/Messages/AttackGymMessage.hs
new file mode 100644
--- /dev/null
+++ b/src/Proto/POGOProtos/Networking/Requests/Messages/AttackGymMessage.hs
@@ -0,0 +1,233 @@
+{- This file was auto-generated from POGOProtos/Networking/Requests/Messages/AttackGymMessage.proto by the proto-lens-protoc program. -}
+{-# LANGUAGE ScopedTypeVariables, DataKinds, TypeFamilies,
+  MultiParamTypeClasses, FlexibleContexts, FlexibleInstances #-}
+{-# OPTIONS_GHC -fno-warn-unused-imports#-}
+module Proto.POGOProtos.Networking.Requests.Messages.AttackGymMessage
+       where
+import qualified Prelude
+import qualified Data.ProtoLens
+import qualified Data.ProtoLens.Message.Enum
+import qualified Lens.Family2
+import qualified Lens.Family2.Unchecked
+import qualified Data.Default.Class
+import qualified Data.Text
+import qualified Data.Int
+import qualified Data.Word
+import qualified Data.Map
+import qualified Data.ByteString
+import qualified Proto.POGOProtos.Data.Battle.BattleAction
+
+data AttackGymMessage = AttackGymMessage{_AttackGymMessage'gymId ::
+                                         Data.Text.Text,
+                                         _AttackGymMessage'battleId :: Data.Text.Text,
+                                         _AttackGymMessage'attackActions ::
+                                         [Proto.POGOProtos.Data.Battle.BattleAction.BattleAction],
+                                         _AttackGymMessage'lastRetrievedActions ::
+                                         Prelude.Maybe
+                                           Proto.POGOProtos.Data.Battle.BattleAction.BattleAction,
+                                         _AttackGymMessage'playerLatitude :: Prelude.Double,
+                                         _AttackGymMessage'playerLongitude :: Prelude.Double}
+                      deriving (Prelude.Show, Prelude.Eq)
+
+type instance Data.ProtoLens.Field "gymId" AttackGymMessage =
+     Data.Text.Text
+
+instance Data.ProtoLens.HasField "gymId" AttackGymMessage
+         AttackGymMessage where
+        field _
+          = Lens.Family2.Unchecked.lens _AttackGymMessage'gymId
+              (\ x__ y__ -> x__{_AttackGymMessage'gymId = y__})
+
+type instance Data.ProtoLens.Field "battleId" AttackGymMessage =
+     Data.Text.Text
+
+instance Data.ProtoLens.HasField "battleId" AttackGymMessage
+         AttackGymMessage where
+        field _
+          = Lens.Family2.Unchecked.lens _AttackGymMessage'battleId
+              (\ x__ y__ -> x__{_AttackGymMessage'battleId = y__})
+
+type instance Data.ProtoLens.Field "attackActions" AttackGymMessage
+     = [Proto.POGOProtos.Data.Battle.BattleAction.BattleAction]
+
+instance Data.ProtoLens.HasField "attackActions" AttackGymMessage
+         AttackGymMessage where
+        field _
+          = Lens.Family2.Unchecked.lens _AttackGymMessage'attackActions
+              (\ x__ y__ -> x__{_AttackGymMessage'attackActions = y__})
+
+type instance
+     Data.ProtoLens.Field "lastRetrievedActions" AttackGymMessage =
+     Proto.POGOProtos.Data.Battle.BattleAction.BattleAction
+
+instance Data.ProtoLens.HasField "lastRetrievedActions"
+         AttackGymMessage AttackGymMessage where
+        field _
+          = (Prelude..) maybe'lastRetrievedActions
+              (Data.ProtoLens.maybeLens Data.Default.Class.def)
+
+type instance
+     Data.ProtoLens.Field "maybe'lastRetrievedActions" AttackGymMessage
+     =
+     Prelude.Maybe
+       Proto.POGOProtos.Data.Battle.BattleAction.BattleAction
+
+instance Data.ProtoLens.HasField "maybe'lastRetrievedActions"
+         AttackGymMessage AttackGymMessage where
+        field _
+          = Lens.Family2.Unchecked.lens
+              _AttackGymMessage'lastRetrievedActions
+              (\ x__ y__ -> x__{_AttackGymMessage'lastRetrievedActions = y__})
+
+type instance
+     Data.ProtoLens.Field "playerLatitude" AttackGymMessage =
+     Prelude.Double
+
+instance Data.ProtoLens.HasField "playerLatitude" AttackGymMessage
+         AttackGymMessage where
+        field _
+          = Lens.Family2.Unchecked.lens _AttackGymMessage'playerLatitude
+              (\ x__ y__ -> x__{_AttackGymMessage'playerLatitude = y__})
+
+type instance
+     Data.ProtoLens.Field "playerLongitude" AttackGymMessage =
+     Prelude.Double
+
+instance Data.ProtoLens.HasField "playerLongitude" AttackGymMessage
+         AttackGymMessage where
+        field _
+          = Lens.Family2.Unchecked.lens _AttackGymMessage'playerLongitude
+              (\ x__ y__ -> x__{_AttackGymMessage'playerLongitude = y__})
+
+instance Data.Default.Class.Default AttackGymMessage where
+        def
+          = AttackGymMessage{_AttackGymMessage'gymId =
+                               Data.ProtoLens.fieldDefault,
+                             _AttackGymMessage'battleId = Data.ProtoLens.fieldDefault,
+                             _AttackGymMessage'attackActions = [],
+                             _AttackGymMessage'lastRetrievedActions = Prelude.Nothing,
+                             _AttackGymMessage'playerLatitude = Data.ProtoLens.fieldDefault,
+                             _AttackGymMessage'playerLongitude = Data.ProtoLens.fieldDefault}
+
+instance Data.ProtoLens.Message AttackGymMessage where
+        descriptor
+          = let gymId__field_descriptor
+                  = Data.ProtoLens.FieldDescriptor "gym_id"
+                      (Data.ProtoLens.StringField ::
+                         Data.ProtoLens.FieldTypeDescriptor Data.Text.Text)
+                      (Data.ProtoLens.PlainField Data.ProtoLens.Optional gymId)
+                battleId__field_descriptor
+                  = Data.ProtoLens.FieldDescriptor "battle_id"
+                      (Data.ProtoLens.StringField ::
+                         Data.ProtoLens.FieldTypeDescriptor Data.Text.Text)
+                      (Data.ProtoLens.PlainField Data.ProtoLens.Optional battleId)
+                attackActions__field_descriptor
+                  = Data.ProtoLens.FieldDescriptor "attack_actions"
+                      (Data.ProtoLens.MessageField ::
+                         Data.ProtoLens.FieldTypeDescriptor
+                           Proto.POGOProtos.Data.Battle.BattleAction.BattleAction)
+                      (Data.ProtoLens.RepeatedField Data.ProtoLens.Unpacked
+                         attackActions)
+                lastRetrievedActions__field_descriptor
+                  = Data.ProtoLens.FieldDescriptor "last_retrieved_actions"
+                      (Data.ProtoLens.MessageField ::
+                         Data.ProtoLens.FieldTypeDescriptor
+                           Proto.POGOProtos.Data.Battle.BattleAction.BattleAction)
+                      (Data.ProtoLens.OptionalField maybe'lastRetrievedActions)
+                playerLatitude__field_descriptor
+                  = Data.ProtoLens.FieldDescriptor "player_latitude"
+                      (Data.ProtoLens.DoubleField ::
+                         Data.ProtoLens.FieldTypeDescriptor Prelude.Double)
+                      (Data.ProtoLens.PlainField Data.ProtoLens.Optional playerLatitude)
+                playerLongitude__field_descriptor
+                  = Data.ProtoLens.FieldDescriptor "player_longitude"
+                      (Data.ProtoLens.DoubleField ::
+                         Data.ProtoLens.FieldTypeDescriptor Prelude.Double)
+                      (Data.ProtoLens.PlainField Data.ProtoLens.Optional playerLongitude)
+              in
+              Data.ProtoLens.MessageDescriptor
+                (Data.Map.fromList
+                   [(Data.ProtoLens.Tag 1, gymId__field_descriptor),
+                    (Data.ProtoLens.Tag 2, battleId__field_descriptor),
+                    (Data.ProtoLens.Tag 3, attackActions__field_descriptor),
+                    (Data.ProtoLens.Tag 4, lastRetrievedActions__field_descriptor),
+                    (Data.ProtoLens.Tag 5, playerLatitude__field_descriptor),
+                    (Data.ProtoLens.Tag 6, playerLongitude__field_descriptor)])
+                (Data.Map.fromList
+                   [("gym_id", gymId__field_descriptor),
+                    ("battle_id", battleId__field_descriptor),
+                    ("attack_actions", attackActions__field_descriptor),
+                    ("last_retrieved_actions", lastRetrievedActions__field_descriptor),
+                    ("player_latitude", playerLatitude__field_descriptor),
+                    ("player_longitude", playerLongitude__field_descriptor)])
+
+attackActions ::
+              forall msg msg' .
+                Data.ProtoLens.HasField "attackActions" msg msg' =>
+                Lens.Family2.Lens msg msg'
+                  (Data.ProtoLens.Field "attackActions" msg)
+                  (Data.ProtoLens.Field "attackActions" msg')
+attackActions
+  = Data.ProtoLens.field
+      (Data.ProtoLens.ProxySym ::
+         Data.ProtoLens.ProxySym "attackActions")
+
+battleId ::
+         forall msg msg' . Data.ProtoLens.HasField "battleId" msg msg' =>
+           Lens.Family2.Lens msg msg' (Data.ProtoLens.Field "battleId" msg)
+             (Data.ProtoLens.Field "battleId" msg')
+battleId
+  = Data.ProtoLens.field
+      (Data.ProtoLens.ProxySym :: Data.ProtoLens.ProxySym "battleId")
+
+gymId ::
+      forall msg msg' . Data.ProtoLens.HasField "gymId" msg msg' =>
+        Lens.Family2.Lens msg msg' (Data.ProtoLens.Field "gymId" msg)
+          (Data.ProtoLens.Field "gymId" msg')
+gymId
+  = Data.ProtoLens.field
+      (Data.ProtoLens.ProxySym :: Data.ProtoLens.ProxySym "gymId")
+
+lastRetrievedActions ::
+                     forall msg msg' .
+                       Data.ProtoLens.HasField "lastRetrievedActions" msg msg' =>
+                       Lens.Family2.Lens msg msg'
+                         (Data.ProtoLens.Field "lastRetrievedActions" msg)
+                         (Data.ProtoLens.Field "lastRetrievedActions" msg')
+lastRetrievedActions
+  = Data.ProtoLens.field
+      (Data.ProtoLens.ProxySym ::
+         Data.ProtoLens.ProxySym "lastRetrievedActions")
+
+maybe'lastRetrievedActions ::
+                           forall msg msg' .
+                             Data.ProtoLens.HasField "maybe'lastRetrievedActions" msg msg' =>
+                             Lens.Family2.Lens msg msg'
+                               (Data.ProtoLens.Field "maybe'lastRetrievedActions" msg)
+                               (Data.ProtoLens.Field "maybe'lastRetrievedActions" msg')
+maybe'lastRetrievedActions
+  = Data.ProtoLens.field
+      (Data.ProtoLens.ProxySym ::
+         Data.ProtoLens.ProxySym "maybe'lastRetrievedActions")
+
+playerLatitude ::
+               forall msg msg' .
+                 Data.ProtoLens.HasField "playerLatitude" msg msg' =>
+                 Lens.Family2.Lens msg msg'
+                   (Data.ProtoLens.Field "playerLatitude" msg)
+                   (Data.ProtoLens.Field "playerLatitude" msg')
+playerLatitude
+  = Data.ProtoLens.field
+      (Data.ProtoLens.ProxySym ::
+         Data.ProtoLens.ProxySym "playerLatitude")
+
+playerLongitude ::
+                forall msg msg' .
+                  Data.ProtoLens.HasField "playerLongitude" msg msg' =>
+                  Lens.Family2.Lens msg msg'
+                    (Data.ProtoLens.Field "playerLongitude" msg)
+                    (Data.ProtoLens.Field "playerLongitude" msg')
+playerLongitude
+  = Data.ProtoLens.field
+      (Data.ProtoLens.ProxySym ::
+         Data.ProtoLens.ProxySym "playerLongitude")
diff --git a/src/Proto/POGOProtos/Networking/Requests/Messages/CatchPokemonMessage.hs b/src/Proto/POGOProtos/Networking/Requests/Messages/CatchPokemonMessage.hs
new file mode 100644
--- /dev/null
+++ b/src/Proto/POGOProtos/Networking/Requests/Messages/CatchPokemonMessage.hs
@@ -0,0 +1,243 @@
+{- This file was auto-generated from POGOProtos/Networking/Requests/Messages/CatchPokemonMessage.proto by the proto-lens-protoc program. -}
+{-# LANGUAGE ScopedTypeVariables, DataKinds, TypeFamilies,
+  MultiParamTypeClasses, FlexibleContexts, FlexibleInstances #-}
+{-# OPTIONS_GHC -fno-warn-unused-imports#-}
+module Proto.POGOProtos.Networking.Requests.Messages.CatchPokemonMessage
+       where
+import qualified Prelude
+import qualified Data.ProtoLens
+import qualified Data.ProtoLens.Message.Enum
+import qualified Lens.Family2
+import qualified Lens.Family2.Unchecked
+import qualified Data.Default.Class
+import qualified Data.Text
+import qualified Data.Int
+import qualified Data.Word
+import qualified Data.Map
+import qualified Data.ByteString
+import qualified Proto.POGOProtos.Inventory.Item.ItemId
+
+data CatchPokemonMessage = CatchPokemonMessage{_CatchPokemonMessage'encounterId
+                                               :: Data.Word.Word64,
+                                               _CatchPokemonMessage'pokeball ::
+                                               Proto.POGOProtos.Inventory.Item.ItemId.ItemId,
+                                               _CatchPokemonMessage'normalizedReticleSize ::
+                                               Prelude.Double,
+                                               _CatchPokemonMessage'spawnPointId :: Data.Text.Text,
+                                               _CatchPokemonMessage'hitPokemon :: Prelude.Bool,
+                                               _CatchPokemonMessage'spinModifier :: Prelude.Double,
+                                               _CatchPokemonMessage'normalizedHitPosition ::
+                                               Prelude.Double}
+                         deriving (Prelude.Show, Prelude.Eq)
+
+type instance
+     Data.ProtoLens.Field "encounterId" CatchPokemonMessage =
+     Data.Word.Word64
+
+instance Data.ProtoLens.HasField "encounterId" CatchPokemonMessage
+         CatchPokemonMessage where
+        field _
+          = Lens.Family2.Unchecked.lens _CatchPokemonMessage'encounterId
+              (\ x__ y__ -> x__{_CatchPokemonMessage'encounterId = y__})
+
+type instance Data.ProtoLens.Field "pokeball" CatchPokemonMessage =
+     Proto.POGOProtos.Inventory.Item.ItemId.ItemId
+
+instance Data.ProtoLens.HasField "pokeball" CatchPokemonMessage
+         CatchPokemonMessage where
+        field _
+          = Lens.Family2.Unchecked.lens _CatchPokemonMessage'pokeball
+              (\ x__ y__ -> x__{_CatchPokemonMessage'pokeball = y__})
+
+type instance
+     Data.ProtoLens.Field "normalizedReticleSize" CatchPokemonMessage =
+     Prelude.Double
+
+instance Data.ProtoLens.HasField "normalizedReticleSize"
+         CatchPokemonMessage CatchPokemonMessage where
+        field _
+          = Lens.Family2.Unchecked.lens
+              _CatchPokemonMessage'normalizedReticleSize
+              (\ x__ y__ ->
+                 x__{_CatchPokemonMessage'normalizedReticleSize = y__})
+
+type instance
+     Data.ProtoLens.Field "spawnPointId" CatchPokemonMessage =
+     Data.Text.Text
+
+instance Data.ProtoLens.HasField "spawnPointId" CatchPokemonMessage
+         CatchPokemonMessage where
+        field _
+          = Lens.Family2.Unchecked.lens _CatchPokemonMessage'spawnPointId
+              (\ x__ y__ -> x__{_CatchPokemonMessage'spawnPointId = y__})
+
+type instance Data.ProtoLens.Field "hitPokemon" CatchPokemonMessage
+     = Prelude.Bool
+
+instance Data.ProtoLens.HasField "hitPokemon" CatchPokemonMessage
+         CatchPokemonMessage where
+        field _
+          = Lens.Family2.Unchecked.lens _CatchPokemonMessage'hitPokemon
+              (\ x__ y__ -> x__{_CatchPokemonMessage'hitPokemon = y__})
+
+type instance
+     Data.ProtoLens.Field "spinModifier" CatchPokemonMessage =
+     Prelude.Double
+
+instance Data.ProtoLens.HasField "spinModifier" CatchPokemonMessage
+         CatchPokemonMessage where
+        field _
+          = Lens.Family2.Unchecked.lens _CatchPokemonMessage'spinModifier
+              (\ x__ y__ -> x__{_CatchPokemonMessage'spinModifier = y__})
+
+type instance
+     Data.ProtoLens.Field "normalizedHitPosition" CatchPokemonMessage =
+     Prelude.Double
+
+instance Data.ProtoLens.HasField "normalizedHitPosition"
+         CatchPokemonMessage CatchPokemonMessage where
+        field _
+          = Lens.Family2.Unchecked.lens
+              _CatchPokemonMessage'normalizedHitPosition
+              (\ x__ y__ ->
+                 x__{_CatchPokemonMessage'normalizedHitPosition = y__})
+
+instance Data.Default.Class.Default CatchPokemonMessage where
+        def
+          = CatchPokemonMessage{_CatchPokemonMessage'encounterId =
+                                  Data.ProtoLens.fieldDefault,
+                                _CatchPokemonMessage'pokeball = Data.Default.Class.def,
+                                _CatchPokemonMessage'normalizedReticleSize =
+                                  Data.ProtoLens.fieldDefault,
+                                _CatchPokemonMessage'spawnPointId = Data.ProtoLens.fieldDefault,
+                                _CatchPokemonMessage'hitPokemon = Data.ProtoLens.fieldDefault,
+                                _CatchPokemonMessage'spinModifier = Data.ProtoLens.fieldDefault,
+                                _CatchPokemonMessage'normalizedHitPosition =
+                                  Data.ProtoLens.fieldDefault}
+
+instance Data.ProtoLens.Message CatchPokemonMessage where
+        descriptor
+          = let encounterId__field_descriptor
+                  = Data.ProtoLens.FieldDescriptor "encounter_id"
+                      (Data.ProtoLens.Fixed64Field ::
+                         Data.ProtoLens.FieldTypeDescriptor Data.Word.Word64)
+                      (Data.ProtoLens.PlainField Data.ProtoLens.Optional encounterId)
+                pokeball__field_descriptor
+                  = Data.ProtoLens.FieldDescriptor "pokeball"
+                      (Data.ProtoLens.EnumField ::
+                         Data.ProtoLens.FieldTypeDescriptor
+                           Proto.POGOProtos.Inventory.Item.ItemId.ItemId)
+                      (Data.ProtoLens.PlainField Data.ProtoLens.Optional pokeball)
+                normalizedReticleSize__field_descriptor
+                  = Data.ProtoLens.FieldDescriptor "normalized_reticle_size"
+                      (Data.ProtoLens.DoubleField ::
+                         Data.ProtoLens.FieldTypeDescriptor Prelude.Double)
+                      (Data.ProtoLens.PlainField Data.ProtoLens.Optional
+                         normalizedReticleSize)
+                spawnPointId__field_descriptor
+                  = Data.ProtoLens.FieldDescriptor "spawn_point_id"
+                      (Data.ProtoLens.StringField ::
+                         Data.ProtoLens.FieldTypeDescriptor Data.Text.Text)
+                      (Data.ProtoLens.PlainField Data.ProtoLens.Optional spawnPointId)
+                hitPokemon__field_descriptor
+                  = Data.ProtoLens.FieldDescriptor "hit_pokemon"
+                      (Data.ProtoLens.BoolField ::
+                         Data.ProtoLens.FieldTypeDescriptor Prelude.Bool)
+                      (Data.ProtoLens.PlainField Data.ProtoLens.Optional hitPokemon)
+                spinModifier__field_descriptor
+                  = Data.ProtoLens.FieldDescriptor "spin_modifier"
+                      (Data.ProtoLens.DoubleField ::
+                         Data.ProtoLens.FieldTypeDescriptor Prelude.Double)
+                      (Data.ProtoLens.PlainField Data.ProtoLens.Optional spinModifier)
+                normalizedHitPosition__field_descriptor
+                  = Data.ProtoLens.FieldDescriptor "normalized_hit_position"
+                      (Data.ProtoLens.DoubleField ::
+                         Data.ProtoLens.FieldTypeDescriptor Prelude.Double)
+                      (Data.ProtoLens.PlainField Data.ProtoLens.Optional
+                         normalizedHitPosition)
+              in
+              Data.ProtoLens.MessageDescriptor
+                (Data.Map.fromList
+                   [(Data.ProtoLens.Tag 1, encounterId__field_descriptor),
+                    (Data.ProtoLens.Tag 2, pokeball__field_descriptor),
+                    (Data.ProtoLens.Tag 3, normalizedReticleSize__field_descriptor),
+                    (Data.ProtoLens.Tag 4, spawnPointId__field_descriptor),
+                    (Data.ProtoLens.Tag 5, hitPokemon__field_descriptor),
+                    (Data.ProtoLens.Tag 6, spinModifier__field_descriptor),
+                    (Data.ProtoLens.Tag 7, normalizedHitPosition__field_descriptor)])
+                (Data.Map.fromList
+                   [("encounter_id", encounterId__field_descriptor),
+                    ("pokeball", pokeball__field_descriptor),
+                    ("normalized_reticle_size",
+                     normalizedReticleSize__field_descriptor),
+                    ("spawn_point_id", spawnPointId__field_descriptor),
+                    ("hit_pokemon", hitPokemon__field_descriptor),
+                    ("spin_modifier", spinModifier__field_descriptor),
+                    ("normalized_hit_position",
+                     normalizedHitPosition__field_descriptor)])
+
+encounterId ::
+            forall msg msg' . Data.ProtoLens.HasField "encounterId" msg msg' =>
+              Lens.Family2.Lens msg msg' (Data.ProtoLens.Field "encounterId" msg)
+                (Data.ProtoLens.Field "encounterId" msg')
+encounterId
+  = Data.ProtoLens.field
+      (Data.ProtoLens.ProxySym :: Data.ProtoLens.ProxySym "encounterId")
+
+hitPokemon ::
+           forall msg msg' . Data.ProtoLens.HasField "hitPokemon" msg msg' =>
+             Lens.Family2.Lens msg msg' (Data.ProtoLens.Field "hitPokemon" msg)
+               (Data.ProtoLens.Field "hitPokemon" msg')
+hitPokemon
+  = Data.ProtoLens.field
+      (Data.ProtoLens.ProxySym :: Data.ProtoLens.ProxySym "hitPokemon")
+
+normalizedHitPosition ::
+                      forall msg msg' .
+                        Data.ProtoLens.HasField "normalizedHitPosition" msg msg' =>
+                        Lens.Family2.Lens msg msg'
+                          (Data.ProtoLens.Field "normalizedHitPosition" msg)
+                          (Data.ProtoLens.Field "normalizedHitPosition" msg')
+normalizedHitPosition
+  = Data.ProtoLens.field
+      (Data.ProtoLens.ProxySym ::
+         Data.ProtoLens.ProxySym "normalizedHitPosition")
+
+normalizedReticleSize ::
+                      forall msg msg' .
+                        Data.ProtoLens.HasField "normalizedReticleSize" msg msg' =>
+                        Lens.Family2.Lens msg msg'
+                          (Data.ProtoLens.Field "normalizedReticleSize" msg)
+                          (Data.ProtoLens.Field "normalizedReticleSize" msg')
+normalizedReticleSize
+  = Data.ProtoLens.field
+      (Data.ProtoLens.ProxySym ::
+         Data.ProtoLens.ProxySym "normalizedReticleSize")
+
+pokeball ::
+         forall msg msg' . Data.ProtoLens.HasField "pokeball" msg msg' =>
+           Lens.Family2.Lens msg msg' (Data.ProtoLens.Field "pokeball" msg)
+             (Data.ProtoLens.Field "pokeball" msg')
+pokeball
+  = Data.ProtoLens.field
+      (Data.ProtoLens.ProxySym :: Data.ProtoLens.ProxySym "pokeball")
+
+spawnPointId ::
+             forall msg msg' .
+               Data.ProtoLens.HasField "spawnPointId" msg msg' =>
+               Lens.Family2.Lens msg msg'
+                 (Data.ProtoLens.Field "spawnPointId" msg)
+                 (Data.ProtoLens.Field "spawnPointId" msg')
+spawnPointId
+  = Data.ProtoLens.field
+      (Data.ProtoLens.ProxySym :: Data.ProtoLens.ProxySym "spawnPointId")
+
+spinModifier ::
+             forall msg msg' .
+               Data.ProtoLens.HasField "spinModifier" msg msg' =>
+               Lens.Family2.Lens msg msg'
+                 (Data.ProtoLens.Field "spinModifier" msg)
+                 (Data.ProtoLens.Field "spinModifier" msg')
+spinModifier
+  = Data.ProtoLens.field
+      (Data.ProtoLens.ProxySym :: Data.ProtoLens.ProxySym "spinModifier")
diff --git a/src/Proto/POGOProtos/Networking/Requests/Messages/CheckAwardedBadgesMessage.hs b/src/Proto/POGOProtos/Networking/Requests/Messages/CheckAwardedBadgesMessage.hs
new file mode 100644
--- /dev/null
+++ b/src/Proto/POGOProtos/Networking/Requests/Messages/CheckAwardedBadgesMessage.hs
@@ -0,0 +1,29 @@
+{- This file was auto-generated from POGOProtos/Networking/Requests/Messages/CheckAwardedBadgesMessage.proto by the proto-lens-protoc program. -}
+{-# LANGUAGE ScopedTypeVariables, DataKinds, TypeFamilies,
+  MultiParamTypeClasses, FlexibleContexts, FlexibleInstances #-}
+{-# OPTIONS_GHC -fno-warn-unused-imports#-}
+module Proto.POGOProtos.Networking.Requests.Messages.CheckAwardedBadgesMessage
+       where
+import qualified Prelude
+import qualified Data.ProtoLens
+import qualified Data.ProtoLens.Message.Enum
+import qualified Lens.Family2
+import qualified Lens.Family2.Unchecked
+import qualified Data.Default.Class
+import qualified Data.Text
+import qualified Data.Int
+import qualified Data.Word
+import qualified Data.Map
+import qualified Data.ByteString
+
+data CheckAwardedBadgesMessage = CheckAwardedBadgesMessage{}
+                               deriving (Prelude.Show, Prelude.Eq)
+
+instance Data.Default.Class.Default CheckAwardedBadgesMessage where
+        def = CheckAwardedBadgesMessage{}
+
+instance Data.ProtoLens.Message CheckAwardedBadgesMessage where
+        descriptor
+          = let in
+              Data.ProtoLens.MessageDescriptor (Data.Map.fromList [])
+                (Data.Map.fromList [])
diff --git a/src/Proto/POGOProtos/Networking/Requests/Messages/CheckCodenameAvailableMessage.hs b/src/Proto/POGOProtos/Networking/Requests/Messages/CheckCodenameAvailableMessage.hs
new file mode 100644
--- /dev/null
+++ b/src/Proto/POGOProtos/Networking/Requests/Messages/CheckCodenameAvailableMessage.hs
@@ -0,0 +1,59 @@
+{- This file was auto-generated from POGOProtos/Networking/Requests/Messages/CheckCodenameAvailableMessage.proto by the proto-lens-protoc program. -}
+{-# LANGUAGE ScopedTypeVariables, DataKinds, TypeFamilies,
+  MultiParamTypeClasses, FlexibleContexts, FlexibleInstances #-}
+{-# OPTIONS_GHC -fno-warn-unused-imports#-}
+module Proto.POGOProtos.Networking.Requests.Messages.CheckCodenameAvailableMessage
+       where
+import qualified Prelude
+import qualified Data.ProtoLens
+import qualified Data.ProtoLens.Message.Enum
+import qualified Lens.Family2
+import qualified Lens.Family2.Unchecked
+import qualified Data.Default.Class
+import qualified Data.Text
+import qualified Data.Int
+import qualified Data.Word
+import qualified Data.Map
+import qualified Data.ByteString
+
+data CheckCodenameAvailableMessage = CheckCodenameAvailableMessage{_CheckCodenameAvailableMessage'codename
+                                                                   :: Data.Text.Text}
+                                   deriving (Prelude.Show, Prelude.Eq)
+
+type instance
+     Data.ProtoLens.Field "codename" CheckCodenameAvailableMessage =
+     Data.Text.Text
+
+instance Data.ProtoLens.HasField "codename"
+         CheckCodenameAvailableMessage CheckCodenameAvailableMessage where
+        field _
+          = Lens.Family2.Unchecked.lens
+              _CheckCodenameAvailableMessage'codename
+              (\ x__ y__ -> x__{_CheckCodenameAvailableMessage'codename = y__})
+
+instance Data.Default.Class.Default CheckCodenameAvailableMessage
+         where
+        def
+          = CheckCodenameAvailableMessage{_CheckCodenameAvailableMessage'codename
+                                            = Data.ProtoLens.fieldDefault}
+
+instance Data.ProtoLens.Message CheckCodenameAvailableMessage where
+        descriptor
+          = let codename__field_descriptor
+                  = Data.ProtoLens.FieldDescriptor "codename"
+                      (Data.ProtoLens.StringField ::
+                         Data.ProtoLens.FieldTypeDescriptor Data.Text.Text)
+                      (Data.ProtoLens.PlainField Data.ProtoLens.Optional codename)
+              in
+              Data.ProtoLens.MessageDescriptor
+                (Data.Map.fromList
+                   [(Data.ProtoLens.Tag 1, codename__field_descriptor)])
+                (Data.Map.fromList [("codename", codename__field_descriptor)])
+
+codename ::
+         forall msg msg' . Data.ProtoLens.HasField "codename" msg msg' =>
+           Lens.Family2.Lens msg msg' (Data.ProtoLens.Field "codename" msg)
+             (Data.ProtoLens.Field "codename" msg')
+codename
+  = Data.ProtoLens.field
+      (Data.ProtoLens.ProxySym :: Data.ProtoLens.ProxySym "codename")
diff --git a/src/Proto/POGOProtos/Networking/Requests/Messages/ClaimCodenameMessage.hs b/src/Proto/POGOProtos/Networking/Requests/Messages/ClaimCodenameMessage.hs
new file mode 100644
--- /dev/null
+++ b/src/Proto/POGOProtos/Networking/Requests/Messages/ClaimCodenameMessage.hs
@@ -0,0 +1,56 @@
+{- This file was auto-generated from POGOProtos/Networking/Requests/Messages/ClaimCodenameMessage.proto by the proto-lens-protoc program. -}
+{-# LANGUAGE ScopedTypeVariables, DataKinds, TypeFamilies,
+  MultiParamTypeClasses, FlexibleContexts, FlexibleInstances #-}
+{-# OPTIONS_GHC -fno-warn-unused-imports#-}
+module Proto.POGOProtos.Networking.Requests.Messages.ClaimCodenameMessage
+       where
+import qualified Prelude
+import qualified Data.ProtoLens
+import qualified Data.ProtoLens.Message.Enum
+import qualified Lens.Family2
+import qualified Lens.Family2.Unchecked
+import qualified Data.Default.Class
+import qualified Data.Text
+import qualified Data.Int
+import qualified Data.Word
+import qualified Data.Map
+import qualified Data.ByteString
+
+data ClaimCodenameMessage = ClaimCodenameMessage{_ClaimCodenameMessage'codename
+                                                 :: Data.Text.Text}
+                          deriving (Prelude.Show, Prelude.Eq)
+
+type instance Data.ProtoLens.Field "codename" ClaimCodenameMessage
+     = Data.Text.Text
+
+instance Data.ProtoLens.HasField "codename" ClaimCodenameMessage
+         ClaimCodenameMessage where
+        field _
+          = Lens.Family2.Unchecked.lens _ClaimCodenameMessage'codename
+              (\ x__ y__ -> x__{_ClaimCodenameMessage'codename = y__})
+
+instance Data.Default.Class.Default ClaimCodenameMessage where
+        def
+          = ClaimCodenameMessage{_ClaimCodenameMessage'codename =
+                                   Data.ProtoLens.fieldDefault}
+
+instance Data.ProtoLens.Message ClaimCodenameMessage where
+        descriptor
+          = let codename__field_descriptor
+                  = Data.ProtoLens.FieldDescriptor "codename"
+                      (Data.ProtoLens.StringField ::
+                         Data.ProtoLens.FieldTypeDescriptor Data.Text.Text)
+                      (Data.ProtoLens.PlainField Data.ProtoLens.Optional codename)
+              in
+              Data.ProtoLens.MessageDescriptor
+                (Data.Map.fromList
+                   [(Data.ProtoLens.Tag 1, codename__field_descriptor)])
+                (Data.Map.fromList [("codename", codename__field_descriptor)])
+
+codename ::
+         forall msg msg' . Data.ProtoLens.HasField "codename" msg msg' =>
+           Lens.Family2.Lens msg msg' (Data.ProtoLens.Field "codename" msg)
+             (Data.ProtoLens.Field "codename" msg')
+codename
+  = Data.ProtoLens.field
+      (Data.ProtoLens.ProxySym :: Data.ProtoLens.ProxySym "codename")
diff --git a/src/Proto/POGOProtos/Networking/Requests/Messages/CollectDailyBonusMessage.hs b/src/Proto/POGOProtos/Networking/Requests/Messages/CollectDailyBonusMessage.hs
new file mode 100644
--- /dev/null
+++ b/src/Proto/POGOProtos/Networking/Requests/Messages/CollectDailyBonusMessage.hs
@@ -0,0 +1,29 @@
+{- This file was auto-generated from POGOProtos/Networking/Requests/Messages/CollectDailyBonusMessage.proto by the proto-lens-protoc program. -}
+{-# LANGUAGE ScopedTypeVariables, DataKinds, TypeFamilies,
+  MultiParamTypeClasses, FlexibleContexts, FlexibleInstances #-}
+{-# OPTIONS_GHC -fno-warn-unused-imports#-}
+module Proto.POGOProtos.Networking.Requests.Messages.CollectDailyBonusMessage
+       where
+import qualified Prelude
+import qualified Data.ProtoLens
+import qualified Data.ProtoLens.Message.Enum
+import qualified Lens.Family2
+import qualified Lens.Family2.Unchecked
+import qualified Data.Default.Class
+import qualified Data.Text
+import qualified Data.Int
+import qualified Data.Word
+import qualified Data.Map
+import qualified Data.ByteString
+
+data CollectDailyBonusMessage = CollectDailyBonusMessage{}
+                              deriving (Prelude.Show, Prelude.Eq)
+
+instance Data.Default.Class.Default CollectDailyBonusMessage where
+        def = CollectDailyBonusMessage{}
+
+instance Data.ProtoLens.Message CollectDailyBonusMessage where
+        descriptor
+          = let in
+              Data.ProtoLens.MessageDescriptor (Data.Map.fromList [])
+                (Data.Map.fromList [])
diff --git a/src/Proto/POGOProtos/Networking/Requests/Messages/CollectDailyDefenderBonusMessage.hs b/src/Proto/POGOProtos/Networking/Requests/Messages/CollectDailyDefenderBonusMessage.hs
new file mode 100644
--- /dev/null
+++ b/src/Proto/POGOProtos/Networking/Requests/Messages/CollectDailyDefenderBonusMessage.hs
@@ -0,0 +1,31 @@
+{- This file was auto-generated from POGOProtos/Networking/Requests/Messages/CollectDailyDefenderBonusMessage.proto by the proto-lens-protoc program. -}
+{-# LANGUAGE ScopedTypeVariables, DataKinds, TypeFamilies,
+  MultiParamTypeClasses, FlexibleContexts, FlexibleInstances #-}
+{-# OPTIONS_GHC -fno-warn-unused-imports#-}
+module Proto.POGOProtos.Networking.Requests.Messages.CollectDailyDefenderBonusMessage
+       where
+import qualified Prelude
+import qualified Data.ProtoLens
+import qualified Data.ProtoLens.Message.Enum
+import qualified Lens.Family2
+import qualified Lens.Family2.Unchecked
+import qualified Data.Default.Class
+import qualified Data.Text
+import qualified Data.Int
+import qualified Data.Word
+import qualified Data.Map
+import qualified Data.ByteString
+
+data CollectDailyDefenderBonusMessage = CollectDailyDefenderBonusMessage{}
+                                      deriving (Prelude.Show, Prelude.Eq)
+
+instance Data.Default.Class.Default
+         CollectDailyDefenderBonusMessage where
+        def = CollectDailyDefenderBonusMessage{}
+
+instance Data.ProtoLens.Message CollectDailyDefenderBonusMessage
+         where
+        descriptor
+          = let in
+              Data.ProtoLens.MessageDescriptor (Data.Map.fromList [])
+                (Data.Map.fromList [])
diff --git a/src/Proto/POGOProtos/Networking/Requests/Messages/DiskEncounterMessage.hs b/src/Proto/POGOProtos/Networking/Requests/Messages/DiskEncounterMessage.hs
new file mode 100644
--- /dev/null
+++ b/src/Proto/POGOProtos/Networking/Requests/Messages/DiskEncounterMessage.hs
@@ -0,0 +1,147 @@
+{- This file was auto-generated from POGOProtos/Networking/Requests/Messages/DiskEncounterMessage.proto by the proto-lens-protoc program. -}
+{-# LANGUAGE ScopedTypeVariables, DataKinds, TypeFamilies,
+  MultiParamTypeClasses, FlexibleContexts, FlexibleInstances #-}
+{-# OPTIONS_GHC -fno-warn-unused-imports#-}
+module Proto.POGOProtos.Networking.Requests.Messages.DiskEncounterMessage
+       where
+import qualified Prelude
+import qualified Data.ProtoLens
+import qualified Data.ProtoLens.Message.Enum
+import qualified Lens.Family2
+import qualified Lens.Family2.Unchecked
+import qualified Data.Default.Class
+import qualified Data.Text
+import qualified Data.Int
+import qualified Data.Word
+import qualified Data.Map
+import qualified Data.ByteString
+
+data DiskEncounterMessage = DiskEncounterMessage{_DiskEncounterMessage'encounterId
+                                                 :: Data.Word.Word64,
+                                                 _DiskEncounterMessage'fortId :: Data.Text.Text,
+                                                 _DiskEncounterMessage'playerLatitude ::
+                                                 Prelude.Double,
+                                                 _DiskEncounterMessage'playerLongitude ::
+                                                 Prelude.Double}
+                          deriving (Prelude.Show, Prelude.Eq)
+
+type instance
+     Data.ProtoLens.Field "encounterId" DiskEncounterMessage =
+     Data.Word.Word64
+
+instance Data.ProtoLens.HasField "encounterId" DiskEncounterMessage
+         DiskEncounterMessage where
+        field _
+          = Lens.Family2.Unchecked.lens _DiskEncounterMessage'encounterId
+              (\ x__ y__ -> x__{_DiskEncounterMessage'encounterId = y__})
+
+type instance Data.ProtoLens.Field "fortId" DiskEncounterMessage =
+     Data.Text.Text
+
+instance Data.ProtoLens.HasField "fortId" DiskEncounterMessage
+         DiskEncounterMessage where
+        field _
+          = Lens.Family2.Unchecked.lens _DiskEncounterMessage'fortId
+              (\ x__ y__ -> x__{_DiskEncounterMessage'fortId = y__})
+
+type instance
+     Data.ProtoLens.Field "playerLatitude" DiskEncounterMessage =
+     Prelude.Double
+
+instance Data.ProtoLens.HasField "playerLatitude"
+         DiskEncounterMessage DiskEncounterMessage where
+        field _
+          = Lens.Family2.Unchecked.lens _DiskEncounterMessage'playerLatitude
+              (\ x__ y__ -> x__{_DiskEncounterMessage'playerLatitude = y__})
+
+type instance
+     Data.ProtoLens.Field "playerLongitude" DiskEncounterMessage =
+     Prelude.Double
+
+instance Data.ProtoLens.HasField "playerLongitude"
+         DiskEncounterMessage DiskEncounterMessage where
+        field _
+          = Lens.Family2.Unchecked.lens _DiskEncounterMessage'playerLongitude
+              (\ x__ y__ -> x__{_DiskEncounterMessage'playerLongitude = y__})
+
+instance Data.Default.Class.Default DiskEncounterMessage where
+        def
+          = DiskEncounterMessage{_DiskEncounterMessage'encounterId =
+                                   Data.ProtoLens.fieldDefault,
+                                 _DiskEncounterMessage'fortId = Data.ProtoLens.fieldDefault,
+                                 _DiskEncounterMessage'playerLatitude = Data.ProtoLens.fieldDefault,
+                                 _DiskEncounterMessage'playerLongitude =
+                                   Data.ProtoLens.fieldDefault}
+
+instance Data.ProtoLens.Message DiskEncounterMessage where
+        descriptor
+          = let encounterId__field_descriptor
+                  = Data.ProtoLens.FieldDescriptor "encounter_id"
+                      (Data.ProtoLens.UInt64Field ::
+                         Data.ProtoLens.FieldTypeDescriptor Data.Word.Word64)
+                      (Data.ProtoLens.PlainField Data.ProtoLens.Optional encounterId)
+                fortId__field_descriptor
+                  = Data.ProtoLens.FieldDescriptor "fort_id"
+                      (Data.ProtoLens.StringField ::
+                         Data.ProtoLens.FieldTypeDescriptor Data.Text.Text)
+                      (Data.ProtoLens.PlainField Data.ProtoLens.Optional fortId)
+                playerLatitude__field_descriptor
+                  = Data.ProtoLens.FieldDescriptor "player_latitude"
+                      (Data.ProtoLens.DoubleField ::
+                         Data.ProtoLens.FieldTypeDescriptor Prelude.Double)
+                      (Data.ProtoLens.PlainField Data.ProtoLens.Optional playerLatitude)
+                playerLongitude__field_descriptor
+                  = Data.ProtoLens.FieldDescriptor "player_longitude"
+                      (Data.ProtoLens.DoubleField ::
+                         Data.ProtoLens.FieldTypeDescriptor Prelude.Double)
+                      (Data.ProtoLens.PlainField Data.ProtoLens.Optional playerLongitude)
+              in
+              Data.ProtoLens.MessageDescriptor
+                (Data.Map.fromList
+                   [(Data.ProtoLens.Tag 1, encounterId__field_descriptor),
+                    (Data.ProtoLens.Tag 2, fortId__field_descriptor),
+                    (Data.ProtoLens.Tag 3, playerLatitude__field_descriptor),
+                    (Data.ProtoLens.Tag 4, playerLongitude__field_descriptor)])
+                (Data.Map.fromList
+                   [("encounter_id", encounterId__field_descriptor),
+                    ("fort_id", fortId__field_descriptor),
+                    ("player_latitude", playerLatitude__field_descriptor),
+                    ("player_longitude", playerLongitude__field_descriptor)])
+
+encounterId ::
+            forall msg msg' . Data.ProtoLens.HasField "encounterId" msg msg' =>
+              Lens.Family2.Lens msg msg' (Data.ProtoLens.Field "encounterId" msg)
+                (Data.ProtoLens.Field "encounterId" msg')
+encounterId
+  = Data.ProtoLens.field
+      (Data.ProtoLens.ProxySym :: Data.ProtoLens.ProxySym "encounterId")
+
+fortId ::
+       forall msg msg' . Data.ProtoLens.HasField "fortId" msg msg' =>
+         Lens.Family2.Lens msg msg' (Data.ProtoLens.Field "fortId" msg)
+           (Data.ProtoLens.Field "fortId" msg')
+fortId
+  = Data.ProtoLens.field
+      (Data.ProtoLens.ProxySym :: Data.ProtoLens.ProxySym "fortId")
+
+playerLatitude ::
+               forall msg msg' .
+                 Data.ProtoLens.HasField "playerLatitude" msg msg' =>
+                 Lens.Family2.Lens msg msg'
+                   (Data.ProtoLens.Field "playerLatitude" msg)
+                   (Data.ProtoLens.Field "playerLatitude" msg')
+playerLatitude
+  = Data.ProtoLens.field
+      (Data.ProtoLens.ProxySym ::
+         Data.ProtoLens.ProxySym "playerLatitude")
+
+playerLongitude ::
+                forall msg msg' .
+                  Data.ProtoLens.HasField "playerLongitude" msg msg' =>
+                  Lens.Family2.Lens msg msg'
+                    (Data.ProtoLens.Field "playerLongitude" msg)
+                    (Data.ProtoLens.Field "playerLongitude" msg')
+playerLongitude
+  = Data.ProtoLens.field
+      (Data.ProtoLens.ProxySym ::
+         Data.ProtoLens.ProxySym "playerLongitude")
diff --git a/src/Proto/POGOProtos/Networking/Requests/Messages/DownloadItemTemplatesMessage.hs b/src/Proto/POGOProtos/Networking/Requests/Messages/DownloadItemTemplatesMessage.hs
new file mode 100644
--- /dev/null
+++ b/src/Proto/POGOProtos/Networking/Requests/Messages/DownloadItemTemplatesMessage.hs
@@ -0,0 +1,30 @@
+{- This file was auto-generated from POGOProtos/Networking/Requests/Messages/DownloadItemTemplatesMessage.proto by the proto-lens-protoc program. -}
+{-# LANGUAGE ScopedTypeVariables, DataKinds, TypeFamilies,
+  MultiParamTypeClasses, FlexibleContexts, FlexibleInstances #-}
+{-# OPTIONS_GHC -fno-warn-unused-imports#-}
+module Proto.POGOProtos.Networking.Requests.Messages.DownloadItemTemplatesMessage
+       where
+import qualified Prelude
+import qualified Data.ProtoLens
+import qualified Data.ProtoLens.Message.Enum
+import qualified Lens.Family2
+import qualified Lens.Family2.Unchecked
+import qualified Data.Default.Class
+import qualified Data.Text
+import qualified Data.Int
+import qualified Data.Word
+import qualified Data.Map
+import qualified Data.ByteString
+
+data DownloadItemTemplatesMessage = DownloadItemTemplatesMessage{}
+                                  deriving (Prelude.Show, Prelude.Eq)
+
+instance Data.Default.Class.Default DownloadItemTemplatesMessage
+         where
+        def = DownloadItemTemplatesMessage{}
+
+instance Data.ProtoLens.Message DownloadItemTemplatesMessage where
+        descriptor
+          = let in
+              Data.ProtoLens.MessageDescriptor (Data.Map.fromList [])
+                (Data.Map.fromList [])
diff --git a/src/Proto/POGOProtos/Networking/Requests/Messages/DownloadRemoteConfigVersionMessage.hs b/src/Proto/POGOProtos/Networking/Requests/Messages/DownloadRemoteConfigVersionMessage.hs
new file mode 100644
--- /dev/null
+++ b/src/Proto/POGOProtos/Networking/Requests/Messages/DownloadRemoteConfigVersionMessage.hs
@@ -0,0 +1,201 @@
+{- This file was auto-generated from POGOProtos/Networking/Requests/Messages/DownloadRemoteConfigVersionMessage.proto by the proto-lens-protoc program. -}
+{-# LANGUAGE ScopedTypeVariables, DataKinds, TypeFamilies,
+  MultiParamTypeClasses, FlexibleContexts, FlexibleInstances #-}
+{-# OPTIONS_GHC -fno-warn-unused-imports#-}
+module Proto.POGOProtos.Networking.Requests.Messages.DownloadRemoteConfigVersionMessage
+       where
+import qualified Prelude
+import qualified Data.ProtoLens
+import qualified Data.ProtoLens.Message.Enum
+import qualified Lens.Family2
+import qualified Lens.Family2.Unchecked
+import qualified Data.Default.Class
+import qualified Data.Text
+import qualified Data.Int
+import qualified Data.Word
+import qualified Data.Map
+import qualified Data.ByteString
+import qualified Proto.POGOProtos.Enums.Platform
+
+data DownloadRemoteConfigVersionMessage = DownloadRemoteConfigVersionMessage{_DownloadRemoteConfigVersionMessage'platform
+                                                                             ::
+                                                                             Proto.POGOProtos.Enums.Platform.Platform,
+                                                                             _DownloadRemoteConfigVersionMessage'deviceManufacturer
+                                                                             :: Data.Text.Text,
+                                                                             _DownloadRemoteConfigVersionMessage'deviceModel
+                                                                             :: Data.Text.Text,
+                                                                             _DownloadRemoteConfigVersionMessage'locale
+                                                                             :: Data.Text.Text,
+                                                                             _DownloadRemoteConfigVersionMessage'appVersion
+                                                                             :: Data.Word.Word32}
+                                        deriving (Prelude.Show, Prelude.Eq)
+
+type instance
+     Data.ProtoLens.Field "platform" DownloadRemoteConfigVersionMessage
+     = Proto.POGOProtos.Enums.Platform.Platform
+
+instance Data.ProtoLens.HasField "platform"
+         DownloadRemoteConfigVersionMessage
+         DownloadRemoteConfigVersionMessage where
+        field _
+          = Lens.Family2.Unchecked.lens
+              _DownloadRemoteConfigVersionMessage'platform
+              (\ x__ y__ ->
+                 x__{_DownloadRemoteConfigVersionMessage'platform = y__})
+
+type instance
+     Data.ProtoLens.Field "deviceManufacturer"
+       DownloadRemoteConfigVersionMessage
+     = Data.Text.Text
+
+instance Data.ProtoLens.HasField "deviceManufacturer"
+         DownloadRemoteConfigVersionMessage
+         DownloadRemoteConfigVersionMessage where
+        field _
+          = Lens.Family2.Unchecked.lens
+              _DownloadRemoteConfigVersionMessage'deviceManufacturer
+              (\ x__ y__ ->
+                 x__{_DownloadRemoteConfigVersionMessage'deviceManufacturer = y__})
+
+type instance
+     Data.ProtoLens.Field "deviceModel"
+       DownloadRemoteConfigVersionMessage
+     = Data.Text.Text
+
+instance Data.ProtoLens.HasField "deviceModel"
+         DownloadRemoteConfigVersionMessage
+         DownloadRemoteConfigVersionMessage where
+        field _
+          = Lens.Family2.Unchecked.lens
+              _DownloadRemoteConfigVersionMessage'deviceModel
+              (\ x__ y__ ->
+                 x__{_DownloadRemoteConfigVersionMessage'deviceModel = y__})
+
+type instance
+     Data.ProtoLens.Field "locale" DownloadRemoteConfigVersionMessage =
+     Data.Text.Text
+
+instance Data.ProtoLens.HasField "locale"
+         DownloadRemoteConfigVersionMessage
+         DownloadRemoteConfigVersionMessage where
+        field _
+          = Lens.Family2.Unchecked.lens
+              _DownloadRemoteConfigVersionMessage'locale
+              (\ x__ y__ ->
+                 x__{_DownloadRemoteConfigVersionMessage'locale = y__})
+
+type instance
+     Data.ProtoLens.Field "appVersion"
+       DownloadRemoteConfigVersionMessage
+     = Data.Word.Word32
+
+instance Data.ProtoLens.HasField "appVersion"
+         DownloadRemoteConfigVersionMessage
+         DownloadRemoteConfigVersionMessage where
+        field _
+          = Lens.Family2.Unchecked.lens
+              _DownloadRemoteConfigVersionMessage'appVersion
+              (\ x__ y__ ->
+                 x__{_DownloadRemoteConfigVersionMessage'appVersion = y__})
+
+instance Data.Default.Class.Default
+         DownloadRemoteConfigVersionMessage where
+        def
+          = DownloadRemoteConfigVersionMessage{_DownloadRemoteConfigVersionMessage'platform
+                                                 = Data.Default.Class.def,
+                                               _DownloadRemoteConfigVersionMessage'deviceManufacturer
+                                                 = Data.ProtoLens.fieldDefault,
+                                               _DownloadRemoteConfigVersionMessage'deviceModel =
+                                                 Data.ProtoLens.fieldDefault,
+                                               _DownloadRemoteConfigVersionMessage'locale =
+                                                 Data.ProtoLens.fieldDefault,
+                                               _DownloadRemoteConfigVersionMessage'appVersion =
+                                                 Data.ProtoLens.fieldDefault}
+
+instance Data.ProtoLens.Message DownloadRemoteConfigVersionMessage
+         where
+        descriptor
+          = let platform__field_descriptor
+                  = Data.ProtoLens.FieldDescriptor "platform"
+                      (Data.ProtoLens.EnumField ::
+                         Data.ProtoLens.FieldTypeDescriptor
+                           Proto.POGOProtos.Enums.Platform.Platform)
+                      (Data.ProtoLens.PlainField Data.ProtoLens.Optional platform)
+                deviceManufacturer__field_descriptor
+                  = Data.ProtoLens.FieldDescriptor "device_manufacturer"
+                      (Data.ProtoLens.StringField ::
+                         Data.ProtoLens.FieldTypeDescriptor Data.Text.Text)
+                      (Data.ProtoLens.PlainField Data.ProtoLens.Optional
+                         deviceManufacturer)
+                deviceModel__field_descriptor
+                  = Data.ProtoLens.FieldDescriptor "device_model"
+                      (Data.ProtoLens.StringField ::
+                         Data.ProtoLens.FieldTypeDescriptor Data.Text.Text)
+                      (Data.ProtoLens.PlainField Data.ProtoLens.Optional deviceModel)
+                locale__field_descriptor
+                  = Data.ProtoLens.FieldDescriptor "locale"
+                      (Data.ProtoLens.StringField ::
+                         Data.ProtoLens.FieldTypeDescriptor Data.Text.Text)
+                      (Data.ProtoLens.PlainField Data.ProtoLens.Optional locale)
+                appVersion__field_descriptor
+                  = Data.ProtoLens.FieldDescriptor "app_version"
+                      (Data.ProtoLens.UInt32Field ::
+                         Data.ProtoLens.FieldTypeDescriptor Data.Word.Word32)
+                      (Data.ProtoLens.PlainField Data.ProtoLens.Optional appVersion)
+              in
+              Data.ProtoLens.MessageDescriptor
+                (Data.Map.fromList
+                   [(Data.ProtoLens.Tag 1, platform__field_descriptor),
+                    (Data.ProtoLens.Tag 2, deviceManufacturer__field_descriptor),
+                    (Data.ProtoLens.Tag 3, deviceModel__field_descriptor),
+                    (Data.ProtoLens.Tag 4, locale__field_descriptor),
+                    (Data.ProtoLens.Tag 5, appVersion__field_descriptor)])
+                (Data.Map.fromList
+                   [("platform", platform__field_descriptor),
+                    ("device_manufacturer", deviceManufacturer__field_descriptor),
+                    ("device_model", deviceModel__field_descriptor),
+                    ("locale", locale__field_descriptor),
+                    ("app_version", appVersion__field_descriptor)])
+
+appVersion ::
+           forall msg msg' . Data.ProtoLens.HasField "appVersion" msg msg' =>
+             Lens.Family2.Lens msg msg' (Data.ProtoLens.Field "appVersion" msg)
+               (Data.ProtoLens.Field "appVersion" msg')
+appVersion
+  = Data.ProtoLens.field
+      (Data.ProtoLens.ProxySym :: Data.ProtoLens.ProxySym "appVersion")
+
+deviceManufacturer ::
+                   forall msg msg' .
+                     Data.ProtoLens.HasField "deviceManufacturer" msg msg' =>
+                     Lens.Family2.Lens msg msg'
+                       (Data.ProtoLens.Field "deviceManufacturer" msg)
+                       (Data.ProtoLens.Field "deviceManufacturer" msg')
+deviceManufacturer
+  = Data.ProtoLens.field
+      (Data.ProtoLens.ProxySym ::
+         Data.ProtoLens.ProxySym "deviceManufacturer")
+
+deviceModel ::
+            forall msg msg' . Data.ProtoLens.HasField "deviceModel" msg msg' =>
+              Lens.Family2.Lens msg msg' (Data.ProtoLens.Field "deviceModel" msg)
+                (Data.ProtoLens.Field "deviceModel" msg')
+deviceModel
+  = Data.ProtoLens.field
+      (Data.ProtoLens.ProxySym :: Data.ProtoLens.ProxySym "deviceModel")
+
+locale ::
+       forall msg msg' . Data.ProtoLens.HasField "locale" msg msg' =>
+         Lens.Family2.Lens msg msg' (Data.ProtoLens.Field "locale" msg)
+           (Data.ProtoLens.Field "locale" msg')
+locale
+  = Data.ProtoLens.field
+      (Data.ProtoLens.ProxySym :: Data.ProtoLens.ProxySym "locale")
+
+platform ::
+         forall msg msg' . Data.ProtoLens.HasField "platform" msg msg' =>
+           Lens.Family2.Lens msg msg' (Data.ProtoLens.Field "platform" msg)
+             (Data.ProtoLens.Field "platform" msg')
+platform
+  = Data.ProtoLens.field
+      (Data.ProtoLens.ProxySym :: Data.ProtoLens.ProxySym "platform")
diff --git a/src/Proto/POGOProtos/Networking/Requests/Messages/DownloadSettingsMessage.hs b/src/Proto/POGOProtos/Networking/Requests/Messages/DownloadSettingsMessage.hs
new file mode 100644
--- /dev/null
+++ b/src/Proto/POGOProtos/Networking/Requests/Messages/DownloadSettingsMessage.hs
@@ -0,0 +1,56 @@
+{- This file was auto-generated from POGOProtos/Networking/Requests/Messages/DownloadSettingsMessage.proto by the proto-lens-protoc program. -}
+{-# LANGUAGE ScopedTypeVariables, DataKinds, TypeFamilies,
+  MultiParamTypeClasses, FlexibleContexts, FlexibleInstances #-}
+{-# OPTIONS_GHC -fno-warn-unused-imports#-}
+module Proto.POGOProtos.Networking.Requests.Messages.DownloadSettingsMessage
+       where
+import qualified Prelude
+import qualified Data.ProtoLens
+import qualified Data.ProtoLens.Message.Enum
+import qualified Lens.Family2
+import qualified Lens.Family2.Unchecked
+import qualified Data.Default.Class
+import qualified Data.Text
+import qualified Data.Int
+import qualified Data.Word
+import qualified Data.Map
+import qualified Data.ByteString
+
+data DownloadSettingsMessage = DownloadSettingsMessage{_DownloadSettingsMessage'hash
+                                                       :: Data.Text.Text}
+                             deriving (Prelude.Show, Prelude.Eq)
+
+type instance Data.ProtoLens.Field "hash" DownloadSettingsMessage =
+     Data.Text.Text
+
+instance Data.ProtoLens.HasField "hash" DownloadSettingsMessage
+         DownloadSettingsMessage where
+        field _
+          = Lens.Family2.Unchecked.lens _DownloadSettingsMessage'hash
+              (\ x__ y__ -> x__{_DownloadSettingsMessage'hash = y__})
+
+instance Data.Default.Class.Default DownloadSettingsMessage where
+        def
+          = DownloadSettingsMessage{_DownloadSettingsMessage'hash =
+                                      Data.ProtoLens.fieldDefault}
+
+instance Data.ProtoLens.Message DownloadSettingsMessage where
+        descriptor
+          = let hash__field_descriptor
+                  = Data.ProtoLens.FieldDescriptor "hash"
+                      (Data.ProtoLens.StringField ::
+                         Data.ProtoLens.FieldTypeDescriptor Data.Text.Text)
+                      (Data.ProtoLens.PlainField Data.ProtoLens.Optional hash)
+              in
+              Data.ProtoLens.MessageDescriptor
+                (Data.Map.fromList
+                   [(Data.ProtoLens.Tag 1, hash__field_descriptor)])
+                (Data.Map.fromList [("hash", hash__field_descriptor)])
+
+hash ::
+     forall msg msg' . Data.ProtoLens.HasField "hash" msg msg' =>
+       Lens.Family2.Lens msg msg' (Data.ProtoLens.Field "hash" msg)
+         (Data.ProtoLens.Field "hash" msg')
+hash
+  = Data.ProtoLens.field
+      (Data.ProtoLens.ProxySym :: Data.ProtoLens.ProxySym "hash")
diff --git a/src/Proto/POGOProtos/Networking/Requests/Messages/EchoMessage.hs b/src/Proto/POGOProtos/Networking/Requests/Messages/EchoMessage.hs
new file mode 100644
--- /dev/null
+++ b/src/Proto/POGOProtos/Networking/Requests/Messages/EchoMessage.hs
@@ -0,0 +1,29 @@
+{- This file was auto-generated from POGOProtos/Networking/Requests/Messages/EchoMessage.proto by the proto-lens-protoc program. -}
+{-# LANGUAGE ScopedTypeVariables, DataKinds, TypeFamilies,
+  MultiParamTypeClasses, FlexibleContexts, FlexibleInstances #-}
+{-# OPTIONS_GHC -fno-warn-unused-imports#-}
+module Proto.POGOProtos.Networking.Requests.Messages.EchoMessage
+       where
+import qualified Prelude
+import qualified Data.ProtoLens
+import qualified Data.ProtoLens.Message.Enum
+import qualified Lens.Family2
+import qualified Lens.Family2.Unchecked
+import qualified Data.Default.Class
+import qualified Data.Text
+import qualified Data.Int
+import qualified Data.Word
+import qualified Data.Map
+import qualified Data.ByteString
+
+data EchoMessage = EchoMessage{}
+                 deriving (Prelude.Show, Prelude.Eq)
+
+instance Data.Default.Class.Default EchoMessage where
+        def = EchoMessage{}
+
+instance Data.ProtoLens.Message EchoMessage where
+        descriptor
+          = let in
+              Data.ProtoLens.MessageDescriptor (Data.Map.fromList [])
+                (Data.Map.fromList [])
diff --git a/src/Proto/POGOProtos/Networking/Requests/Messages/EncounterMessage.hs b/src/Proto/POGOProtos/Networking/Requests/Messages/EncounterMessage.hs
new file mode 100644
--- /dev/null
+++ b/src/Proto/POGOProtos/Networking/Requests/Messages/EncounterMessage.hs
@@ -0,0 +1,145 @@
+{- This file was auto-generated from POGOProtos/Networking/Requests/Messages/EncounterMessage.proto by the proto-lens-protoc program. -}
+{-# LANGUAGE ScopedTypeVariables, DataKinds, TypeFamilies,
+  MultiParamTypeClasses, FlexibleContexts, FlexibleInstances #-}
+{-# OPTIONS_GHC -fno-warn-unused-imports#-}
+module Proto.POGOProtos.Networking.Requests.Messages.EncounterMessage
+       where
+import qualified Prelude
+import qualified Data.ProtoLens
+import qualified Data.ProtoLens.Message.Enum
+import qualified Lens.Family2
+import qualified Lens.Family2.Unchecked
+import qualified Data.Default.Class
+import qualified Data.Text
+import qualified Data.Int
+import qualified Data.Word
+import qualified Data.Map
+import qualified Data.ByteString
+
+data EncounterMessage = EncounterMessage{_EncounterMessage'encounterId
+                                         :: Data.Word.Word64,
+                                         _EncounterMessage'spawnPointId :: Data.Text.Text,
+                                         _EncounterMessage'playerLatitude :: Prelude.Double,
+                                         _EncounterMessage'playerLongitude :: Prelude.Double}
+                      deriving (Prelude.Show, Prelude.Eq)
+
+type instance Data.ProtoLens.Field "encounterId" EncounterMessage =
+     Data.Word.Word64
+
+instance Data.ProtoLens.HasField "encounterId" EncounterMessage
+         EncounterMessage where
+        field _
+          = Lens.Family2.Unchecked.lens _EncounterMessage'encounterId
+              (\ x__ y__ -> x__{_EncounterMessage'encounterId = y__})
+
+type instance Data.ProtoLens.Field "spawnPointId" EncounterMessage
+     = Data.Text.Text
+
+instance Data.ProtoLens.HasField "spawnPointId" EncounterMessage
+         EncounterMessage where
+        field _
+          = Lens.Family2.Unchecked.lens _EncounterMessage'spawnPointId
+              (\ x__ y__ -> x__{_EncounterMessage'spawnPointId = y__})
+
+type instance
+     Data.ProtoLens.Field "playerLatitude" EncounterMessage =
+     Prelude.Double
+
+instance Data.ProtoLens.HasField "playerLatitude" EncounterMessage
+         EncounterMessage where
+        field _
+          = Lens.Family2.Unchecked.lens _EncounterMessage'playerLatitude
+              (\ x__ y__ -> x__{_EncounterMessage'playerLatitude = y__})
+
+type instance
+     Data.ProtoLens.Field "playerLongitude" EncounterMessage =
+     Prelude.Double
+
+instance Data.ProtoLens.HasField "playerLongitude" EncounterMessage
+         EncounterMessage where
+        field _
+          = Lens.Family2.Unchecked.lens _EncounterMessage'playerLongitude
+              (\ x__ y__ -> x__{_EncounterMessage'playerLongitude = y__})
+
+instance Data.Default.Class.Default EncounterMessage where
+        def
+          = EncounterMessage{_EncounterMessage'encounterId =
+                               Data.ProtoLens.fieldDefault,
+                             _EncounterMessage'spawnPointId = Data.ProtoLens.fieldDefault,
+                             _EncounterMessage'playerLatitude = Data.ProtoLens.fieldDefault,
+                             _EncounterMessage'playerLongitude = Data.ProtoLens.fieldDefault}
+
+instance Data.ProtoLens.Message EncounterMessage where
+        descriptor
+          = let encounterId__field_descriptor
+                  = Data.ProtoLens.FieldDescriptor "encounter_id"
+                      (Data.ProtoLens.Fixed64Field ::
+                         Data.ProtoLens.FieldTypeDescriptor Data.Word.Word64)
+                      (Data.ProtoLens.PlainField Data.ProtoLens.Optional encounterId)
+                spawnPointId__field_descriptor
+                  = Data.ProtoLens.FieldDescriptor "spawn_point_id"
+                      (Data.ProtoLens.StringField ::
+                         Data.ProtoLens.FieldTypeDescriptor Data.Text.Text)
+                      (Data.ProtoLens.PlainField Data.ProtoLens.Optional spawnPointId)
+                playerLatitude__field_descriptor
+                  = Data.ProtoLens.FieldDescriptor "player_latitude"
+                      (Data.ProtoLens.DoubleField ::
+                         Data.ProtoLens.FieldTypeDescriptor Prelude.Double)
+                      (Data.ProtoLens.PlainField Data.ProtoLens.Optional playerLatitude)
+                playerLongitude__field_descriptor
+                  = Data.ProtoLens.FieldDescriptor "player_longitude"
+                      (Data.ProtoLens.DoubleField ::
+                         Data.ProtoLens.FieldTypeDescriptor Prelude.Double)
+                      (Data.ProtoLens.PlainField Data.ProtoLens.Optional playerLongitude)
+              in
+              Data.ProtoLens.MessageDescriptor
+                (Data.Map.fromList
+                   [(Data.ProtoLens.Tag 1, encounterId__field_descriptor),
+                    (Data.ProtoLens.Tag 2, spawnPointId__field_descriptor),
+                    (Data.ProtoLens.Tag 3, playerLatitude__field_descriptor),
+                    (Data.ProtoLens.Tag 4, playerLongitude__field_descriptor)])
+                (Data.Map.fromList
+                   [("encounter_id", encounterId__field_descriptor),
+                    ("spawn_point_id", spawnPointId__field_descriptor),
+                    ("player_latitude", playerLatitude__field_descriptor),
+                    ("player_longitude", playerLongitude__field_descriptor)])
+
+encounterId ::
+            forall msg msg' . Data.ProtoLens.HasField "encounterId" msg msg' =>
+              Lens.Family2.Lens msg msg' (Data.ProtoLens.Field "encounterId" msg)
+                (Data.ProtoLens.Field "encounterId" msg')
+encounterId
+  = Data.ProtoLens.field
+      (Data.ProtoLens.ProxySym :: Data.ProtoLens.ProxySym "encounterId")
+
+playerLatitude ::
+               forall msg msg' .
+                 Data.ProtoLens.HasField "playerLatitude" msg msg' =>
+                 Lens.Family2.Lens msg msg'
+                   (Data.ProtoLens.Field "playerLatitude" msg)
+                   (Data.ProtoLens.Field "playerLatitude" msg')
+playerLatitude
+  = Data.ProtoLens.field
+      (Data.ProtoLens.ProxySym ::
+         Data.ProtoLens.ProxySym "playerLatitude")
+
+playerLongitude ::
+                forall msg msg' .
+                  Data.ProtoLens.HasField "playerLongitude" msg msg' =>
+                  Lens.Family2.Lens msg msg'
+                    (Data.ProtoLens.Field "playerLongitude" msg)
+                    (Data.ProtoLens.Field "playerLongitude" msg')
+playerLongitude
+  = Data.ProtoLens.field
+      (Data.ProtoLens.ProxySym ::
+         Data.ProtoLens.ProxySym "playerLongitude")
+
+spawnPointId ::
+             forall msg msg' .
+               Data.ProtoLens.HasField "spawnPointId" msg msg' =>
+               Lens.Family2.Lens msg msg'
+                 (Data.ProtoLens.Field "spawnPointId" msg)
+                 (Data.ProtoLens.Field "spawnPointId" msg')
+spawnPointId
+  = Data.ProtoLens.field
+      (Data.ProtoLens.ProxySym :: Data.ProtoLens.ProxySym "spawnPointId")
diff --git a/src/Proto/POGOProtos/Networking/Requests/Messages/EncounterTutorialCompleteMessage.hs b/src/Proto/POGOProtos/Networking/Requests/Messages/EncounterTutorialCompleteMessage.hs
new file mode 100644
--- /dev/null
+++ b/src/Proto/POGOProtos/Networking/Requests/Messages/EncounterTutorialCompleteMessage.hs
@@ -0,0 +1,65 @@
+{- This file was auto-generated from POGOProtos/Networking/Requests/Messages/EncounterTutorialCompleteMessage.proto by the proto-lens-protoc program. -}
+{-# LANGUAGE ScopedTypeVariables, DataKinds, TypeFamilies,
+  MultiParamTypeClasses, FlexibleContexts, FlexibleInstances #-}
+{-# OPTIONS_GHC -fno-warn-unused-imports#-}
+module Proto.POGOProtos.Networking.Requests.Messages.EncounterTutorialCompleteMessage
+       where
+import qualified Prelude
+import qualified Data.ProtoLens
+import qualified Data.ProtoLens.Message.Enum
+import qualified Lens.Family2
+import qualified Lens.Family2.Unchecked
+import qualified Data.Default.Class
+import qualified Data.Text
+import qualified Data.Int
+import qualified Data.Word
+import qualified Data.Map
+import qualified Data.ByteString
+import qualified Proto.POGOProtos.Enums.PokemonId
+
+data EncounterTutorialCompleteMessage = EncounterTutorialCompleteMessage{_EncounterTutorialCompleteMessage'pokemonId
+                                                                         ::
+                                                                         Proto.POGOProtos.Enums.PokemonId.PokemonId}
+                                      deriving (Prelude.Show, Prelude.Eq)
+
+type instance
+     Data.ProtoLens.Field "pokemonId" EncounterTutorialCompleteMessage =
+     Proto.POGOProtos.Enums.PokemonId.PokemonId
+
+instance Data.ProtoLens.HasField "pokemonId"
+         EncounterTutorialCompleteMessage EncounterTutorialCompleteMessage
+         where
+        field _
+          = Lens.Family2.Unchecked.lens
+              _EncounterTutorialCompleteMessage'pokemonId
+              (\ x__ y__ ->
+                 x__{_EncounterTutorialCompleteMessage'pokemonId = y__})
+
+instance Data.Default.Class.Default
+         EncounterTutorialCompleteMessage where
+        def
+          = EncounterTutorialCompleteMessage{_EncounterTutorialCompleteMessage'pokemonId
+                                               = Data.Default.Class.def}
+
+instance Data.ProtoLens.Message EncounterTutorialCompleteMessage
+         where
+        descriptor
+          = let pokemonId__field_descriptor
+                  = Data.ProtoLens.FieldDescriptor "pokemon_id"
+                      (Data.ProtoLens.EnumField ::
+                         Data.ProtoLens.FieldTypeDescriptor
+                           Proto.POGOProtos.Enums.PokemonId.PokemonId)
+                      (Data.ProtoLens.PlainField Data.ProtoLens.Optional pokemonId)
+              in
+              Data.ProtoLens.MessageDescriptor
+                (Data.Map.fromList
+                   [(Data.ProtoLens.Tag 1, pokemonId__field_descriptor)])
+                (Data.Map.fromList [("pokemon_id", pokemonId__field_descriptor)])
+
+pokemonId ::
+          forall msg msg' . Data.ProtoLens.HasField "pokemonId" msg msg' =>
+            Lens.Family2.Lens msg msg' (Data.ProtoLens.Field "pokemonId" msg)
+              (Data.ProtoLens.Field "pokemonId" msg')
+pokemonId
+  = Data.ProtoLens.field
+      (Data.ProtoLens.ProxySym :: Data.ProtoLens.ProxySym "pokemonId")
diff --git a/src/Proto/POGOProtos/Networking/Requests/Messages/EquipBadgeMessage.hs b/src/Proto/POGOProtos/Networking/Requests/Messages/EquipBadgeMessage.hs
new file mode 100644
--- /dev/null
+++ b/src/Proto/POGOProtos/Networking/Requests/Messages/EquipBadgeMessage.hs
@@ -0,0 +1,58 @@
+{- This file was auto-generated from POGOProtos/Networking/Requests/Messages/EquipBadgeMessage.proto by the proto-lens-protoc program. -}
+{-# LANGUAGE ScopedTypeVariables, DataKinds, TypeFamilies,
+  MultiParamTypeClasses, FlexibleContexts, FlexibleInstances #-}
+{-# OPTIONS_GHC -fno-warn-unused-imports#-}
+module Proto.POGOProtos.Networking.Requests.Messages.EquipBadgeMessage
+       where
+import qualified Prelude
+import qualified Data.ProtoLens
+import qualified Data.ProtoLens.Message.Enum
+import qualified Lens.Family2
+import qualified Lens.Family2.Unchecked
+import qualified Data.Default.Class
+import qualified Data.Text
+import qualified Data.Int
+import qualified Data.Word
+import qualified Data.Map
+import qualified Data.ByteString
+import qualified Proto.POGOProtos.Enums.BadgeType
+
+data EquipBadgeMessage = EquipBadgeMessage{_EquipBadgeMessage'badgeType
+                                           :: Proto.POGOProtos.Enums.BadgeType.BadgeType}
+                       deriving (Prelude.Show, Prelude.Eq)
+
+type instance Data.ProtoLens.Field "badgeType" EquipBadgeMessage =
+     Proto.POGOProtos.Enums.BadgeType.BadgeType
+
+instance Data.ProtoLens.HasField "badgeType" EquipBadgeMessage
+         EquipBadgeMessage where
+        field _
+          = Lens.Family2.Unchecked.lens _EquipBadgeMessage'badgeType
+              (\ x__ y__ -> x__{_EquipBadgeMessage'badgeType = y__})
+
+instance Data.Default.Class.Default EquipBadgeMessage where
+        def
+          = EquipBadgeMessage{_EquipBadgeMessage'badgeType =
+                                Data.Default.Class.def}
+
+instance Data.ProtoLens.Message EquipBadgeMessage where
+        descriptor
+          = let badgeType__field_descriptor
+                  = Data.ProtoLens.FieldDescriptor "badge_type"
+                      (Data.ProtoLens.EnumField ::
+                         Data.ProtoLens.FieldTypeDescriptor
+                           Proto.POGOProtos.Enums.BadgeType.BadgeType)
+                      (Data.ProtoLens.PlainField Data.ProtoLens.Optional badgeType)
+              in
+              Data.ProtoLens.MessageDescriptor
+                (Data.Map.fromList
+                   [(Data.ProtoLens.Tag 1, badgeType__field_descriptor)])
+                (Data.Map.fromList [("badge_type", badgeType__field_descriptor)])
+
+badgeType ::
+          forall msg msg' . Data.ProtoLens.HasField "badgeType" msg msg' =>
+            Lens.Family2.Lens msg msg' (Data.ProtoLens.Field "badgeType" msg)
+              (Data.ProtoLens.Field "badgeType" msg')
+badgeType
+  = Data.ProtoLens.field
+      (Data.ProtoLens.ProxySym :: Data.ProtoLens.ProxySym "badgeType")
diff --git a/src/Proto/POGOProtos/Networking/Requests/Messages/EvolvePokemonMessage.hs b/src/Proto/POGOProtos/Networking/Requests/Messages/EvolvePokemonMessage.hs
new file mode 100644
--- /dev/null
+++ b/src/Proto/POGOProtos/Networking/Requests/Messages/EvolvePokemonMessage.hs
@@ -0,0 +1,56 @@
+{- This file was auto-generated from POGOProtos/Networking/Requests/Messages/EvolvePokemonMessage.proto by the proto-lens-protoc program. -}
+{-# LANGUAGE ScopedTypeVariables, DataKinds, TypeFamilies,
+  MultiParamTypeClasses, FlexibleContexts, FlexibleInstances #-}
+{-# OPTIONS_GHC -fno-warn-unused-imports#-}
+module Proto.POGOProtos.Networking.Requests.Messages.EvolvePokemonMessage
+       where
+import qualified Prelude
+import qualified Data.ProtoLens
+import qualified Data.ProtoLens.Message.Enum
+import qualified Lens.Family2
+import qualified Lens.Family2.Unchecked
+import qualified Data.Default.Class
+import qualified Data.Text
+import qualified Data.Int
+import qualified Data.Word
+import qualified Data.Map
+import qualified Data.ByteString
+
+data EvolvePokemonMessage = EvolvePokemonMessage{_EvolvePokemonMessage'pokemonId
+                                                 :: Data.Word.Word64}
+                          deriving (Prelude.Show, Prelude.Eq)
+
+type instance Data.ProtoLens.Field "pokemonId" EvolvePokemonMessage
+     = Data.Word.Word64
+
+instance Data.ProtoLens.HasField "pokemonId" EvolvePokemonMessage
+         EvolvePokemonMessage where
+        field _
+          = Lens.Family2.Unchecked.lens _EvolvePokemonMessage'pokemonId
+              (\ x__ y__ -> x__{_EvolvePokemonMessage'pokemonId = y__})
+
+instance Data.Default.Class.Default EvolvePokemonMessage where
+        def
+          = EvolvePokemonMessage{_EvolvePokemonMessage'pokemonId =
+                                   Data.ProtoLens.fieldDefault}
+
+instance Data.ProtoLens.Message EvolvePokemonMessage where
+        descriptor
+          = let pokemonId__field_descriptor
+                  = Data.ProtoLens.FieldDescriptor "pokemon_id"
+                      (Data.ProtoLens.Fixed64Field ::
+                         Data.ProtoLens.FieldTypeDescriptor Data.Word.Word64)
+                      (Data.ProtoLens.PlainField Data.ProtoLens.Optional pokemonId)
+              in
+              Data.ProtoLens.MessageDescriptor
+                (Data.Map.fromList
+                   [(Data.ProtoLens.Tag 1, pokemonId__field_descriptor)])
+                (Data.Map.fromList [("pokemon_id", pokemonId__field_descriptor)])
+
+pokemonId ::
+          forall msg msg' . Data.ProtoLens.HasField "pokemonId" msg msg' =>
+            Lens.Family2.Lens msg msg' (Data.ProtoLens.Field "pokemonId" msg)
+              (Data.ProtoLens.Field "pokemonId" msg')
+pokemonId
+  = Data.ProtoLens.field
+      (Data.ProtoLens.ProxySym :: Data.ProtoLens.ProxySym "pokemonId")
diff --git a/src/Proto/POGOProtos/Networking/Requests/Messages/FortDeployPokemonMessage.hs b/src/Proto/POGOProtos/Networking/Requests/Messages/FortDeployPokemonMessage.hs
new file mode 100644
--- /dev/null
+++ b/src/Proto/POGOProtos/Networking/Requests/Messages/FortDeployPokemonMessage.hs
@@ -0,0 +1,153 @@
+{- This file was auto-generated from POGOProtos/Networking/Requests/Messages/FortDeployPokemonMessage.proto by the proto-lens-protoc program. -}
+{-# LANGUAGE ScopedTypeVariables, DataKinds, TypeFamilies,
+  MultiParamTypeClasses, FlexibleContexts, FlexibleInstances #-}
+{-# OPTIONS_GHC -fno-warn-unused-imports#-}
+module Proto.POGOProtos.Networking.Requests.Messages.FortDeployPokemonMessage
+       where
+import qualified Prelude
+import qualified Data.ProtoLens
+import qualified Data.ProtoLens.Message.Enum
+import qualified Lens.Family2
+import qualified Lens.Family2.Unchecked
+import qualified Data.Default.Class
+import qualified Data.Text
+import qualified Data.Int
+import qualified Data.Word
+import qualified Data.Map
+import qualified Data.ByteString
+
+data FortDeployPokemonMessage = FortDeployPokemonMessage{_FortDeployPokemonMessage'fortId
+                                                         :: Data.Text.Text,
+                                                         _FortDeployPokemonMessage'pokemonId ::
+                                                         Data.Word.Word64,
+                                                         _FortDeployPokemonMessage'playerLatitude ::
+                                                         Prelude.Double,
+                                                         _FortDeployPokemonMessage'playerLongitude
+                                                         :: Prelude.Double}
+                              deriving (Prelude.Show, Prelude.Eq)
+
+type instance
+     Data.ProtoLens.Field "fortId" FortDeployPokemonMessage =
+     Data.Text.Text
+
+instance Data.ProtoLens.HasField "fortId" FortDeployPokemonMessage
+         FortDeployPokemonMessage where
+        field _
+          = Lens.Family2.Unchecked.lens _FortDeployPokemonMessage'fortId
+              (\ x__ y__ -> x__{_FortDeployPokemonMessage'fortId = y__})
+
+type instance
+     Data.ProtoLens.Field "pokemonId" FortDeployPokemonMessage =
+     Data.Word.Word64
+
+instance Data.ProtoLens.HasField "pokemonId"
+         FortDeployPokemonMessage FortDeployPokemonMessage where
+        field _
+          = Lens.Family2.Unchecked.lens _FortDeployPokemonMessage'pokemonId
+              (\ x__ y__ -> x__{_FortDeployPokemonMessage'pokemonId = y__})
+
+type instance
+     Data.ProtoLens.Field "playerLatitude" FortDeployPokemonMessage =
+     Prelude.Double
+
+instance Data.ProtoLens.HasField "playerLatitude"
+         FortDeployPokemonMessage FortDeployPokemonMessage where
+        field _
+          = Lens.Family2.Unchecked.lens
+              _FortDeployPokemonMessage'playerLatitude
+              (\ x__ y__ -> x__{_FortDeployPokemonMessage'playerLatitude = y__})
+
+type instance
+     Data.ProtoLens.Field "playerLongitude" FortDeployPokemonMessage =
+     Prelude.Double
+
+instance Data.ProtoLens.HasField "playerLongitude"
+         FortDeployPokemonMessage FortDeployPokemonMessage where
+        field _
+          = Lens.Family2.Unchecked.lens
+              _FortDeployPokemonMessage'playerLongitude
+              (\ x__ y__ -> x__{_FortDeployPokemonMessage'playerLongitude = y__})
+
+instance Data.Default.Class.Default FortDeployPokemonMessage where
+        def
+          = FortDeployPokemonMessage{_FortDeployPokemonMessage'fortId =
+                                       Data.ProtoLens.fieldDefault,
+                                     _FortDeployPokemonMessage'pokemonId =
+                                       Data.ProtoLens.fieldDefault,
+                                     _FortDeployPokemonMessage'playerLatitude =
+                                       Data.ProtoLens.fieldDefault,
+                                     _FortDeployPokemonMessage'playerLongitude =
+                                       Data.ProtoLens.fieldDefault}
+
+instance Data.ProtoLens.Message FortDeployPokemonMessage where
+        descriptor
+          = let fortId__field_descriptor
+                  = Data.ProtoLens.FieldDescriptor "fort_id"
+                      (Data.ProtoLens.StringField ::
+                         Data.ProtoLens.FieldTypeDescriptor Data.Text.Text)
+                      (Data.ProtoLens.PlainField Data.ProtoLens.Optional fortId)
+                pokemonId__field_descriptor
+                  = Data.ProtoLens.FieldDescriptor "pokemon_id"
+                      (Data.ProtoLens.Fixed64Field ::
+                         Data.ProtoLens.FieldTypeDescriptor Data.Word.Word64)
+                      (Data.ProtoLens.PlainField Data.ProtoLens.Optional pokemonId)
+                playerLatitude__field_descriptor
+                  = Data.ProtoLens.FieldDescriptor "player_latitude"
+                      (Data.ProtoLens.DoubleField ::
+                         Data.ProtoLens.FieldTypeDescriptor Prelude.Double)
+                      (Data.ProtoLens.PlainField Data.ProtoLens.Optional playerLatitude)
+                playerLongitude__field_descriptor
+                  = Data.ProtoLens.FieldDescriptor "player_longitude"
+                      (Data.ProtoLens.DoubleField ::
+                         Data.ProtoLens.FieldTypeDescriptor Prelude.Double)
+                      (Data.ProtoLens.PlainField Data.ProtoLens.Optional playerLongitude)
+              in
+              Data.ProtoLens.MessageDescriptor
+                (Data.Map.fromList
+                   [(Data.ProtoLens.Tag 1, fortId__field_descriptor),
+                    (Data.ProtoLens.Tag 2, pokemonId__field_descriptor),
+                    (Data.ProtoLens.Tag 3, playerLatitude__field_descriptor),
+                    (Data.ProtoLens.Tag 4, playerLongitude__field_descriptor)])
+                (Data.Map.fromList
+                   [("fort_id", fortId__field_descriptor),
+                    ("pokemon_id", pokemonId__field_descriptor),
+                    ("player_latitude", playerLatitude__field_descriptor),
+                    ("player_longitude", playerLongitude__field_descriptor)])
+
+fortId ::
+       forall msg msg' . Data.ProtoLens.HasField "fortId" msg msg' =>
+         Lens.Family2.Lens msg msg' (Data.ProtoLens.Field "fortId" msg)
+           (Data.ProtoLens.Field "fortId" msg')
+fortId
+  = Data.ProtoLens.field
+      (Data.ProtoLens.ProxySym :: Data.ProtoLens.ProxySym "fortId")
+
+playerLatitude ::
+               forall msg msg' .
+                 Data.ProtoLens.HasField "playerLatitude" msg msg' =>
+                 Lens.Family2.Lens msg msg'
+                   (Data.ProtoLens.Field "playerLatitude" msg)
+                   (Data.ProtoLens.Field "playerLatitude" msg')
+playerLatitude
+  = Data.ProtoLens.field
+      (Data.ProtoLens.ProxySym ::
+         Data.ProtoLens.ProxySym "playerLatitude")
+
+playerLongitude ::
+                forall msg msg' .
+                  Data.ProtoLens.HasField "playerLongitude" msg msg' =>
+                  Lens.Family2.Lens msg msg'
+                    (Data.ProtoLens.Field "playerLongitude" msg)
+                    (Data.ProtoLens.Field "playerLongitude" msg')
+playerLongitude
+  = Data.ProtoLens.field
+      (Data.ProtoLens.ProxySym ::
+         Data.ProtoLens.ProxySym "playerLongitude")
+
+pokemonId ::
+          forall msg msg' . Data.ProtoLens.HasField "pokemonId" msg msg' =>
+            Lens.Family2.Lens msg msg' (Data.ProtoLens.Field "pokemonId" msg)
+              (Data.ProtoLens.Field "pokemonId" msg')
+pokemonId
+  = Data.ProtoLens.field
+      (Data.ProtoLens.ProxySym :: Data.ProtoLens.ProxySym "pokemonId")
diff --git a/src/Proto/POGOProtos/Networking/Requests/Messages/FortDetailsMessage.hs b/src/Proto/POGOProtos/Networking/Requests/Messages/FortDetailsMessage.hs
new file mode 100644
--- /dev/null
+++ b/src/Proto/POGOProtos/Networking/Requests/Messages/FortDetailsMessage.hs
@@ -0,0 +1,109 @@
+{- This file was auto-generated from POGOProtos/Networking/Requests/Messages/FortDetailsMessage.proto by the proto-lens-protoc program. -}
+{-# LANGUAGE ScopedTypeVariables, DataKinds, TypeFamilies,
+  MultiParamTypeClasses, FlexibleContexts, FlexibleInstances #-}
+{-# OPTIONS_GHC -fno-warn-unused-imports#-}
+module Proto.POGOProtos.Networking.Requests.Messages.FortDetailsMessage
+       where
+import qualified Prelude
+import qualified Data.ProtoLens
+import qualified Data.ProtoLens.Message.Enum
+import qualified Lens.Family2
+import qualified Lens.Family2.Unchecked
+import qualified Data.Default.Class
+import qualified Data.Text
+import qualified Data.Int
+import qualified Data.Word
+import qualified Data.Map
+import qualified Data.ByteString
+
+data FortDetailsMessage = FortDetailsMessage{_FortDetailsMessage'fortId
+                                             :: Data.Text.Text,
+                                             _FortDetailsMessage'latitude :: Prelude.Double,
+                                             _FortDetailsMessage'longitude :: Prelude.Double}
+                        deriving (Prelude.Show, Prelude.Eq)
+
+type instance Data.ProtoLens.Field "fortId" FortDetailsMessage =
+     Data.Text.Text
+
+instance Data.ProtoLens.HasField "fortId" FortDetailsMessage
+         FortDetailsMessage where
+        field _
+          = Lens.Family2.Unchecked.lens _FortDetailsMessage'fortId
+              (\ x__ y__ -> x__{_FortDetailsMessage'fortId = y__})
+
+type instance Data.ProtoLens.Field "latitude" FortDetailsMessage =
+     Prelude.Double
+
+instance Data.ProtoLens.HasField "latitude" FortDetailsMessage
+         FortDetailsMessage where
+        field _
+          = Lens.Family2.Unchecked.lens _FortDetailsMessage'latitude
+              (\ x__ y__ -> x__{_FortDetailsMessage'latitude = y__})
+
+type instance Data.ProtoLens.Field "longitude" FortDetailsMessage =
+     Prelude.Double
+
+instance Data.ProtoLens.HasField "longitude" FortDetailsMessage
+         FortDetailsMessage where
+        field _
+          = Lens.Family2.Unchecked.lens _FortDetailsMessage'longitude
+              (\ x__ y__ -> x__{_FortDetailsMessage'longitude = y__})
+
+instance Data.Default.Class.Default FortDetailsMessage where
+        def
+          = FortDetailsMessage{_FortDetailsMessage'fortId =
+                                 Data.ProtoLens.fieldDefault,
+                               _FortDetailsMessage'latitude = Data.ProtoLens.fieldDefault,
+                               _FortDetailsMessage'longitude = Data.ProtoLens.fieldDefault}
+
+instance Data.ProtoLens.Message FortDetailsMessage where
+        descriptor
+          = let fortId__field_descriptor
+                  = Data.ProtoLens.FieldDescriptor "fort_id"
+                      (Data.ProtoLens.StringField ::
+                         Data.ProtoLens.FieldTypeDescriptor Data.Text.Text)
+                      (Data.ProtoLens.PlainField Data.ProtoLens.Optional fortId)
+                latitude__field_descriptor
+                  = Data.ProtoLens.FieldDescriptor "latitude"
+                      (Data.ProtoLens.DoubleField ::
+                         Data.ProtoLens.FieldTypeDescriptor Prelude.Double)
+                      (Data.ProtoLens.PlainField Data.ProtoLens.Optional latitude)
+                longitude__field_descriptor
+                  = Data.ProtoLens.FieldDescriptor "longitude"
+                      (Data.ProtoLens.DoubleField ::
+                         Data.ProtoLens.FieldTypeDescriptor Prelude.Double)
+                      (Data.ProtoLens.PlainField Data.ProtoLens.Optional longitude)
+              in
+              Data.ProtoLens.MessageDescriptor
+                (Data.Map.fromList
+                   [(Data.ProtoLens.Tag 1, fortId__field_descriptor),
+                    (Data.ProtoLens.Tag 2, latitude__field_descriptor),
+                    (Data.ProtoLens.Tag 3, longitude__field_descriptor)])
+                (Data.Map.fromList
+                   [("fort_id", fortId__field_descriptor),
+                    ("latitude", latitude__field_descriptor),
+                    ("longitude", longitude__field_descriptor)])
+
+fortId ::
+       forall msg msg' . Data.ProtoLens.HasField "fortId" msg msg' =>
+         Lens.Family2.Lens msg msg' (Data.ProtoLens.Field "fortId" msg)
+           (Data.ProtoLens.Field "fortId" msg')
+fortId
+  = Data.ProtoLens.field
+      (Data.ProtoLens.ProxySym :: Data.ProtoLens.ProxySym "fortId")
+
+latitude ::
+         forall msg msg' . Data.ProtoLens.HasField "latitude" msg msg' =>
+           Lens.Family2.Lens msg msg' (Data.ProtoLens.Field "latitude" msg)
+             (Data.ProtoLens.Field "latitude" msg')
+latitude
+  = Data.ProtoLens.field
+      (Data.ProtoLens.ProxySym :: Data.ProtoLens.ProxySym "latitude")
+
+longitude ::
+          forall msg msg' . Data.ProtoLens.HasField "longitude" msg msg' =>
+            Lens.Family2.Lens msg msg' (Data.ProtoLens.Field "longitude" msg)
+              (Data.ProtoLens.Field "longitude" msg')
+longitude
+  = Data.ProtoLens.field
+      (Data.ProtoLens.ProxySym :: Data.ProtoLens.ProxySym "longitude")
diff --git a/src/Proto/POGOProtos/Networking/Requests/Messages/FortRecallPokemonMessage.hs b/src/Proto/POGOProtos/Networking/Requests/Messages/FortRecallPokemonMessage.hs
new file mode 100644
--- /dev/null
+++ b/src/Proto/POGOProtos/Networking/Requests/Messages/FortRecallPokemonMessage.hs
@@ -0,0 +1,153 @@
+{- This file was auto-generated from POGOProtos/Networking/Requests/Messages/FortRecallPokemonMessage.proto by the proto-lens-protoc program. -}
+{-# LANGUAGE ScopedTypeVariables, DataKinds, TypeFamilies,
+  MultiParamTypeClasses, FlexibleContexts, FlexibleInstances #-}
+{-# OPTIONS_GHC -fno-warn-unused-imports#-}
+module Proto.POGOProtos.Networking.Requests.Messages.FortRecallPokemonMessage
+       where
+import qualified Prelude
+import qualified Data.ProtoLens
+import qualified Data.ProtoLens.Message.Enum
+import qualified Lens.Family2
+import qualified Lens.Family2.Unchecked
+import qualified Data.Default.Class
+import qualified Data.Text
+import qualified Data.Int
+import qualified Data.Word
+import qualified Data.Map
+import qualified Data.ByteString
+
+data FortRecallPokemonMessage = FortRecallPokemonMessage{_FortRecallPokemonMessage'fortId
+                                                         :: Data.Text.Text,
+                                                         _FortRecallPokemonMessage'pokemonId ::
+                                                         Data.Word.Word64,
+                                                         _FortRecallPokemonMessage'playerLatitude ::
+                                                         Prelude.Double,
+                                                         _FortRecallPokemonMessage'playerLongitude
+                                                         :: Prelude.Double}
+                              deriving (Prelude.Show, Prelude.Eq)
+
+type instance
+     Data.ProtoLens.Field "fortId" FortRecallPokemonMessage =
+     Data.Text.Text
+
+instance Data.ProtoLens.HasField "fortId" FortRecallPokemonMessage
+         FortRecallPokemonMessage where
+        field _
+          = Lens.Family2.Unchecked.lens _FortRecallPokemonMessage'fortId
+              (\ x__ y__ -> x__{_FortRecallPokemonMessage'fortId = y__})
+
+type instance
+     Data.ProtoLens.Field "pokemonId" FortRecallPokemonMessage =
+     Data.Word.Word64
+
+instance Data.ProtoLens.HasField "pokemonId"
+         FortRecallPokemonMessage FortRecallPokemonMessage where
+        field _
+          = Lens.Family2.Unchecked.lens _FortRecallPokemonMessage'pokemonId
+              (\ x__ y__ -> x__{_FortRecallPokemonMessage'pokemonId = y__})
+
+type instance
+     Data.ProtoLens.Field "playerLatitude" FortRecallPokemonMessage =
+     Prelude.Double
+
+instance Data.ProtoLens.HasField "playerLatitude"
+         FortRecallPokemonMessage FortRecallPokemonMessage where
+        field _
+          = Lens.Family2.Unchecked.lens
+              _FortRecallPokemonMessage'playerLatitude
+              (\ x__ y__ -> x__{_FortRecallPokemonMessage'playerLatitude = y__})
+
+type instance
+     Data.ProtoLens.Field "playerLongitude" FortRecallPokemonMessage =
+     Prelude.Double
+
+instance Data.ProtoLens.HasField "playerLongitude"
+         FortRecallPokemonMessage FortRecallPokemonMessage where
+        field _
+          = Lens.Family2.Unchecked.lens
+              _FortRecallPokemonMessage'playerLongitude
+              (\ x__ y__ -> x__{_FortRecallPokemonMessage'playerLongitude = y__})
+
+instance Data.Default.Class.Default FortRecallPokemonMessage where
+        def
+          = FortRecallPokemonMessage{_FortRecallPokemonMessage'fortId =
+                                       Data.ProtoLens.fieldDefault,
+                                     _FortRecallPokemonMessage'pokemonId =
+                                       Data.ProtoLens.fieldDefault,
+                                     _FortRecallPokemonMessage'playerLatitude =
+                                       Data.ProtoLens.fieldDefault,
+                                     _FortRecallPokemonMessage'playerLongitude =
+                                       Data.ProtoLens.fieldDefault}
+
+instance Data.ProtoLens.Message FortRecallPokemonMessage where
+        descriptor
+          = let fortId__field_descriptor
+                  = Data.ProtoLens.FieldDescriptor "fort_id"
+                      (Data.ProtoLens.StringField ::
+                         Data.ProtoLens.FieldTypeDescriptor Data.Text.Text)
+                      (Data.ProtoLens.PlainField Data.ProtoLens.Optional fortId)
+                pokemonId__field_descriptor
+                  = Data.ProtoLens.FieldDescriptor "pokemon_id"
+                      (Data.ProtoLens.Fixed64Field ::
+                         Data.ProtoLens.FieldTypeDescriptor Data.Word.Word64)
+                      (Data.ProtoLens.PlainField Data.ProtoLens.Optional pokemonId)
+                playerLatitude__field_descriptor
+                  = Data.ProtoLens.FieldDescriptor "player_latitude"
+                      (Data.ProtoLens.DoubleField ::
+                         Data.ProtoLens.FieldTypeDescriptor Prelude.Double)
+                      (Data.ProtoLens.PlainField Data.ProtoLens.Optional playerLatitude)
+                playerLongitude__field_descriptor
+                  = Data.ProtoLens.FieldDescriptor "player_longitude"
+                      (Data.ProtoLens.DoubleField ::
+                         Data.ProtoLens.FieldTypeDescriptor Prelude.Double)
+                      (Data.ProtoLens.PlainField Data.ProtoLens.Optional playerLongitude)
+              in
+              Data.ProtoLens.MessageDescriptor
+                (Data.Map.fromList
+                   [(Data.ProtoLens.Tag 1, fortId__field_descriptor),
+                    (Data.ProtoLens.Tag 2, pokemonId__field_descriptor),
+                    (Data.ProtoLens.Tag 3, playerLatitude__field_descriptor),
+                    (Data.ProtoLens.Tag 4, playerLongitude__field_descriptor)])
+                (Data.Map.fromList
+                   [("fort_id", fortId__field_descriptor),
+                    ("pokemon_id", pokemonId__field_descriptor),
+                    ("player_latitude", playerLatitude__field_descriptor),
+                    ("player_longitude", playerLongitude__field_descriptor)])
+
+fortId ::
+       forall msg msg' . Data.ProtoLens.HasField "fortId" msg msg' =>
+         Lens.Family2.Lens msg msg' (Data.ProtoLens.Field "fortId" msg)
+           (Data.ProtoLens.Field "fortId" msg')
+fortId
+  = Data.ProtoLens.field
+      (Data.ProtoLens.ProxySym :: Data.ProtoLens.ProxySym "fortId")
+
+playerLatitude ::
+               forall msg msg' .
+                 Data.ProtoLens.HasField "playerLatitude" msg msg' =>
+                 Lens.Family2.Lens msg msg'
+                   (Data.ProtoLens.Field "playerLatitude" msg)
+                   (Data.ProtoLens.Field "playerLatitude" msg')
+playerLatitude
+  = Data.ProtoLens.field
+      (Data.ProtoLens.ProxySym ::
+         Data.ProtoLens.ProxySym "playerLatitude")
+
+playerLongitude ::
+                forall msg msg' .
+                  Data.ProtoLens.HasField "playerLongitude" msg msg' =>
+                  Lens.Family2.Lens msg msg'
+                    (Data.ProtoLens.Field "playerLongitude" msg)
+                    (Data.ProtoLens.Field "playerLongitude" msg')
+playerLongitude
+  = Data.ProtoLens.field
+      (Data.ProtoLens.ProxySym ::
+         Data.ProtoLens.ProxySym "playerLongitude")
+
+pokemonId ::
+          forall msg msg' . Data.ProtoLens.HasField "pokemonId" msg msg' =>
+            Lens.Family2.Lens msg msg' (Data.ProtoLens.Field "pokemonId" msg)
+              (Data.ProtoLens.Field "pokemonId" msg')
+pokemonId
+  = Data.ProtoLens.field
+      (Data.ProtoLens.ProxySym :: Data.ProtoLens.ProxySym "pokemonId")
diff --git a/src/Proto/POGOProtos/Networking/Requests/Messages/FortSearchMessage.hs b/src/Proto/POGOProtos/Networking/Requests/Messages/FortSearchMessage.hs
new file mode 100644
--- /dev/null
+++ b/src/Proto/POGOProtos/Networking/Requests/Messages/FortSearchMessage.hs
@@ -0,0 +1,175 @@
+{- This file was auto-generated from POGOProtos/Networking/Requests/Messages/FortSearchMessage.proto by the proto-lens-protoc program. -}
+{-# LANGUAGE ScopedTypeVariables, DataKinds, TypeFamilies,
+  MultiParamTypeClasses, FlexibleContexts, FlexibleInstances #-}
+{-# OPTIONS_GHC -fno-warn-unused-imports#-}
+module Proto.POGOProtos.Networking.Requests.Messages.FortSearchMessage
+       where
+import qualified Prelude
+import qualified Data.ProtoLens
+import qualified Data.ProtoLens.Message.Enum
+import qualified Lens.Family2
+import qualified Lens.Family2.Unchecked
+import qualified Data.Default.Class
+import qualified Data.Text
+import qualified Data.Int
+import qualified Data.Word
+import qualified Data.Map
+import qualified Data.ByteString
+
+data FortSearchMessage = FortSearchMessage{_FortSearchMessage'fortId
+                                           :: Data.Text.Text,
+                                           _FortSearchMessage'playerLatitude :: Prelude.Double,
+                                           _FortSearchMessage'playerLongitude :: Prelude.Double,
+                                           _FortSearchMessage'fortLatitude :: Prelude.Double,
+                                           _FortSearchMessage'fortLongitude :: Prelude.Double}
+                       deriving (Prelude.Show, Prelude.Eq)
+
+type instance Data.ProtoLens.Field "fortId" FortSearchMessage =
+     Data.Text.Text
+
+instance Data.ProtoLens.HasField "fortId" FortSearchMessage
+         FortSearchMessage where
+        field _
+          = Lens.Family2.Unchecked.lens _FortSearchMessage'fortId
+              (\ x__ y__ -> x__{_FortSearchMessage'fortId = y__})
+
+type instance
+     Data.ProtoLens.Field "playerLatitude" FortSearchMessage =
+     Prelude.Double
+
+instance Data.ProtoLens.HasField "playerLatitude" FortSearchMessage
+         FortSearchMessage where
+        field _
+          = Lens.Family2.Unchecked.lens _FortSearchMessage'playerLatitude
+              (\ x__ y__ -> x__{_FortSearchMessage'playerLatitude = y__})
+
+type instance
+     Data.ProtoLens.Field "playerLongitude" FortSearchMessage =
+     Prelude.Double
+
+instance Data.ProtoLens.HasField "playerLongitude"
+         FortSearchMessage FortSearchMessage where
+        field _
+          = Lens.Family2.Unchecked.lens _FortSearchMessage'playerLongitude
+              (\ x__ y__ -> x__{_FortSearchMessage'playerLongitude = y__})
+
+type instance Data.ProtoLens.Field "fortLatitude" FortSearchMessage
+     = Prelude.Double
+
+instance Data.ProtoLens.HasField "fortLatitude" FortSearchMessage
+         FortSearchMessage where
+        field _
+          = Lens.Family2.Unchecked.lens _FortSearchMessage'fortLatitude
+              (\ x__ y__ -> x__{_FortSearchMessage'fortLatitude = y__})
+
+type instance
+     Data.ProtoLens.Field "fortLongitude" FortSearchMessage =
+     Prelude.Double
+
+instance Data.ProtoLens.HasField "fortLongitude" FortSearchMessage
+         FortSearchMessage where
+        field _
+          = Lens.Family2.Unchecked.lens _FortSearchMessage'fortLongitude
+              (\ x__ y__ -> x__{_FortSearchMessage'fortLongitude = y__})
+
+instance Data.Default.Class.Default FortSearchMessage where
+        def
+          = FortSearchMessage{_FortSearchMessage'fortId =
+                                Data.ProtoLens.fieldDefault,
+                              _FortSearchMessage'playerLatitude = Data.ProtoLens.fieldDefault,
+                              _FortSearchMessage'playerLongitude = Data.ProtoLens.fieldDefault,
+                              _FortSearchMessage'fortLatitude = Data.ProtoLens.fieldDefault,
+                              _FortSearchMessage'fortLongitude = Data.ProtoLens.fieldDefault}
+
+instance Data.ProtoLens.Message FortSearchMessage where
+        descriptor
+          = let fortId__field_descriptor
+                  = Data.ProtoLens.FieldDescriptor "fort_id"
+                      (Data.ProtoLens.StringField ::
+                         Data.ProtoLens.FieldTypeDescriptor Data.Text.Text)
+                      (Data.ProtoLens.PlainField Data.ProtoLens.Optional fortId)
+                playerLatitude__field_descriptor
+                  = Data.ProtoLens.FieldDescriptor "player_latitude"
+                      (Data.ProtoLens.DoubleField ::
+                         Data.ProtoLens.FieldTypeDescriptor Prelude.Double)
+                      (Data.ProtoLens.PlainField Data.ProtoLens.Optional playerLatitude)
+                playerLongitude__field_descriptor
+                  = Data.ProtoLens.FieldDescriptor "player_longitude"
+                      (Data.ProtoLens.DoubleField ::
+                         Data.ProtoLens.FieldTypeDescriptor Prelude.Double)
+                      (Data.ProtoLens.PlainField Data.ProtoLens.Optional playerLongitude)
+                fortLatitude__field_descriptor
+                  = Data.ProtoLens.FieldDescriptor "fort_latitude"
+                      (Data.ProtoLens.DoubleField ::
+                         Data.ProtoLens.FieldTypeDescriptor Prelude.Double)
+                      (Data.ProtoLens.PlainField Data.ProtoLens.Optional fortLatitude)
+                fortLongitude__field_descriptor
+                  = Data.ProtoLens.FieldDescriptor "fort_longitude"
+                      (Data.ProtoLens.DoubleField ::
+                         Data.ProtoLens.FieldTypeDescriptor Prelude.Double)
+                      (Data.ProtoLens.PlainField Data.ProtoLens.Optional fortLongitude)
+              in
+              Data.ProtoLens.MessageDescriptor
+                (Data.Map.fromList
+                   [(Data.ProtoLens.Tag 1, fortId__field_descriptor),
+                    (Data.ProtoLens.Tag 2, playerLatitude__field_descriptor),
+                    (Data.ProtoLens.Tag 3, playerLongitude__field_descriptor),
+                    (Data.ProtoLens.Tag 4, fortLatitude__field_descriptor),
+                    (Data.ProtoLens.Tag 5, fortLongitude__field_descriptor)])
+                (Data.Map.fromList
+                   [("fort_id", fortId__field_descriptor),
+                    ("player_latitude", playerLatitude__field_descriptor),
+                    ("player_longitude", playerLongitude__field_descriptor),
+                    ("fort_latitude", fortLatitude__field_descriptor),
+                    ("fort_longitude", fortLongitude__field_descriptor)])
+
+fortId ::
+       forall msg msg' . Data.ProtoLens.HasField "fortId" msg msg' =>
+         Lens.Family2.Lens msg msg' (Data.ProtoLens.Field "fortId" msg)
+           (Data.ProtoLens.Field "fortId" msg')
+fortId
+  = Data.ProtoLens.field
+      (Data.ProtoLens.ProxySym :: Data.ProtoLens.ProxySym "fortId")
+
+fortLatitude ::
+             forall msg msg' .
+               Data.ProtoLens.HasField "fortLatitude" msg msg' =>
+               Lens.Family2.Lens msg msg'
+                 (Data.ProtoLens.Field "fortLatitude" msg)
+                 (Data.ProtoLens.Field "fortLatitude" msg')
+fortLatitude
+  = Data.ProtoLens.field
+      (Data.ProtoLens.ProxySym :: Data.ProtoLens.ProxySym "fortLatitude")
+
+fortLongitude ::
+              forall msg msg' .
+                Data.ProtoLens.HasField "fortLongitude" msg msg' =>
+                Lens.Family2.Lens msg msg'
+                  (Data.ProtoLens.Field "fortLongitude" msg)
+                  (Data.ProtoLens.Field "fortLongitude" msg')
+fortLongitude
+  = Data.ProtoLens.field
+      (Data.ProtoLens.ProxySym ::
+         Data.ProtoLens.ProxySym "fortLongitude")
+
+playerLatitude ::
+               forall msg msg' .
+                 Data.ProtoLens.HasField "playerLatitude" msg msg' =>
+                 Lens.Family2.Lens msg msg'
+                   (Data.ProtoLens.Field "playerLatitude" msg)
+                   (Data.ProtoLens.Field "playerLatitude" msg')
+playerLatitude
+  = Data.ProtoLens.field
+      (Data.ProtoLens.ProxySym ::
+         Data.ProtoLens.ProxySym "playerLatitude")
+
+playerLongitude ::
+                forall msg msg' .
+                  Data.ProtoLens.HasField "playerLongitude" msg msg' =>
+                  Lens.Family2.Lens msg msg'
+                    (Data.ProtoLens.Field "playerLongitude" msg)
+                    (Data.ProtoLens.Field "playerLongitude" msg')
+playerLongitude
+  = Data.ProtoLens.field
+      (Data.ProtoLens.ProxySym ::
+         Data.ProtoLens.ProxySym "playerLongitude")
diff --git a/src/Proto/POGOProtos/Networking/Requests/Messages/GetAssetDigestMessage.hs b/src/Proto/POGOProtos/Networking/Requests/Messages/GetAssetDigestMessage.hs
new file mode 100644
--- /dev/null
+++ b/src/Proto/POGOProtos/Networking/Requests/Messages/GetAssetDigestMessage.hs
@@ -0,0 +1,175 @@
+{- This file was auto-generated from POGOProtos/Networking/Requests/Messages/GetAssetDigestMessage.proto by the proto-lens-protoc program. -}
+{-# LANGUAGE ScopedTypeVariables, DataKinds, TypeFamilies,
+  MultiParamTypeClasses, FlexibleContexts, FlexibleInstances #-}
+{-# OPTIONS_GHC -fno-warn-unused-imports#-}
+module Proto.POGOProtos.Networking.Requests.Messages.GetAssetDigestMessage
+       where
+import qualified Prelude
+import qualified Data.ProtoLens
+import qualified Data.ProtoLens.Message.Enum
+import qualified Lens.Family2
+import qualified Lens.Family2.Unchecked
+import qualified Data.Default.Class
+import qualified Data.Text
+import qualified Data.Int
+import qualified Data.Word
+import qualified Data.Map
+import qualified Data.ByteString
+import qualified Proto.POGOProtos.Enums.Platform
+
+data GetAssetDigestMessage = GetAssetDigestMessage{_GetAssetDigestMessage'platform
+                                                   :: Proto.POGOProtos.Enums.Platform.Platform,
+                                                   _GetAssetDigestMessage'deviceManufacturer ::
+                                                   Data.Text.Text,
+                                                   _GetAssetDigestMessage'deviceModel ::
+                                                   Data.Text.Text,
+                                                   _GetAssetDigestMessage'locale :: Data.Text.Text,
+                                                   _GetAssetDigestMessage'appVersion ::
+                                                   Data.Word.Word32}
+                           deriving (Prelude.Show, Prelude.Eq)
+
+type instance Data.ProtoLens.Field "platform" GetAssetDigestMessage
+     = Proto.POGOProtos.Enums.Platform.Platform
+
+instance Data.ProtoLens.HasField "platform" GetAssetDigestMessage
+         GetAssetDigestMessage where
+        field _
+          = Lens.Family2.Unchecked.lens _GetAssetDigestMessage'platform
+              (\ x__ y__ -> x__{_GetAssetDigestMessage'platform = y__})
+
+type instance
+     Data.ProtoLens.Field "deviceManufacturer" GetAssetDigestMessage =
+     Data.Text.Text
+
+instance Data.ProtoLens.HasField "deviceManufacturer"
+         GetAssetDigestMessage GetAssetDigestMessage where
+        field _
+          = Lens.Family2.Unchecked.lens
+              _GetAssetDigestMessage'deviceManufacturer
+              (\ x__ y__ -> x__{_GetAssetDigestMessage'deviceManufacturer = y__})
+
+type instance
+     Data.ProtoLens.Field "deviceModel" GetAssetDigestMessage =
+     Data.Text.Text
+
+instance Data.ProtoLens.HasField "deviceModel"
+         GetAssetDigestMessage GetAssetDigestMessage where
+        field _
+          = Lens.Family2.Unchecked.lens _GetAssetDigestMessage'deviceModel
+              (\ x__ y__ -> x__{_GetAssetDigestMessage'deviceModel = y__})
+
+type instance Data.ProtoLens.Field "locale" GetAssetDigestMessage =
+     Data.Text.Text
+
+instance Data.ProtoLens.HasField "locale" GetAssetDigestMessage
+         GetAssetDigestMessage where
+        field _
+          = Lens.Family2.Unchecked.lens _GetAssetDigestMessage'locale
+              (\ x__ y__ -> x__{_GetAssetDigestMessage'locale = y__})
+
+type instance
+     Data.ProtoLens.Field "appVersion" GetAssetDigestMessage =
+     Data.Word.Word32
+
+instance Data.ProtoLens.HasField "appVersion" GetAssetDigestMessage
+         GetAssetDigestMessage where
+        field _
+          = Lens.Family2.Unchecked.lens _GetAssetDigestMessage'appVersion
+              (\ x__ y__ -> x__{_GetAssetDigestMessage'appVersion = y__})
+
+instance Data.Default.Class.Default GetAssetDigestMessage where
+        def
+          = GetAssetDigestMessage{_GetAssetDigestMessage'platform =
+                                    Data.Default.Class.def,
+                                  _GetAssetDigestMessage'deviceManufacturer =
+                                    Data.ProtoLens.fieldDefault,
+                                  _GetAssetDigestMessage'deviceModel = Data.ProtoLens.fieldDefault,
+                                  _GetAssetDigestMessage'locale = Data.ProtoLens.fieldDefault,
+                                  _GetAssetDigestMessage'appVersion = Data.ProtoLens.fieldDefault}
+
+instance Data.ProtoLens.Message GetAssetDigestMessage where
+        descriptor
+          = let platform__field_descriptor
+                  = Data.ProtoLens.FieldDescriptor "platform"
+                      (Data.ProtoLens.EnumField ::
+                         Data.ProtoLens.FieldTypeDescriptor
+                           Proto.POGOProtos.Enums.Platform.Platform)
+                      (Data.ProtoLens.PlainField Data.ProtoLens.Optional platform)
+                deviceManufacturer__field_descriptor
+                  = Data.ProtoLens.FieldDescriptor "device_manufacturer"
+                      (Data.ProtoLens.StringField ::
+                         Data.ProtoLens.FieldTypeDescriptor Data.Text.Text)
+                      (Data.ProtoLens.PlainField Data.ProtoLens.Optional
+                         deviceManufacturer)
+                deviceModel__field_descriptor
+                  = Data.ProtoLens.FieldDescriptor "device_model"
+                      (Data.ProtoLens.StringField ::
+                         Data.ProtoLens.FieldTypeDescriptor Data.Text.Text)
+                      (Data.ProtoLens.PlainField Data.ProtoLens.Optional deviceModel)
+                locale__field_descriptor
+                  = Data.ProtoLens.FieldDescriptor "locale"
+                      (Data.ProtoLens.StringField ::
+                         Data.ProtoLens.FieldTypeDescriptor Data.Text.Text)
+                      (Data.ProtoLens.PlainField Data.ProtoLens.Optional locale)
+                appVersion__field_descriptor
+                  = Data.ProtoLens.FieldDescriptor "app_version"
+                      (Data.ProtoLens.UInt32Field ::
+                         Data.ProtoLens.FieldTypeDescriptor Data.Word.Word32)
+                      (Data.ProtoLens.PlainField Data.ProtoLens.Optional appVersion)
+              in
+              Data.ProtoLens.MessageDescriptor
+                (Data.Map.fromList
+                   [(Data.ProtoLens.Tag 1, platform__field_descriptor),
+                    (Data.ProtoLens.Tag 2, deviceManufacturer__field_descriptor),
+                    (Data.ProtoLens.Tag 3, deviceModel__field_descriptor),
+                    (Data.ProtoLens.Tag 4, locale__field_descriptor),
+                    (Data.ProtoLens.Tag 5, appVersion__field_descriptor)])
+                (Data.Map.fromList
+                   [("platform", platform__field_descriptor),
+                    ("device_manufacturer", deviceManufacturer__field_descriptor),
+                    ("device_model", deviceModel__field_descriptor),
+                    ("locale", locale__field_descriptor),
+                    ("app_version", appVersion__field_descriptor)])
+
+appVersion ::
+           forall msg msg' . Data.ProtoLens.HasField "appVersion" msg msg' =>
+             Lens.Family2.Lens msg msg' (Data.ProtoLens.Field "appVersion" msg)
+               (Data.ProtoLens.Field "appVersion" msg')
+appVersion
+  = Data.ProtoLens.field
+      (Data.ProtoLens.ProxySym :: Data.ProtoLens.ProxySym "appVersion")
+
+deviceManufacturer ::
+                   forall msg msg' .
+                     Data.ProtoLens.HasField "deviceManufacturer" msg msg' =>
+                     Lens.Family2.Lens msg msg'
+                       (Data.ProtoLens.Field "deviceManufacturer" msg)
+                       (Data.ProtoLens.Field "deviceManufacturer" msg')
+deviceManufacturer
+  = Data.ProtoLens.field
+      (Data.ProtoLens.ProxySym ::
+         Data.ProtoLens.ProxySym "deviceManufacturer")
+
+deviceModel ::
+            forall msg msg' . Data.ProtoLens.HasField "deviceModel" msg msg' =>
+              Lens.Family2.Lens msg msg' (Data.ProtoLens.Field "deviceModel" msg)
+                (Data.ProtoLens.Field "deviceModel" msg')
+deviceModel
+  = Data.ProtoLens.field
+      (Data.ProtoLens.ProxySym :: Data.ProtoLens.ProxySym "deviceModel")
+
+locale ::
+       forall msg msg' . Data.ProtoLens.HasField "locale" msg msg' =>
+         Lens.Family2.Lens msg msg' (Data.ProtoLens.Field "locale" msg)
+           (Data.ProtoLens.Field "locale" msg')
+locale
+  = Data.ProtoLens.field
+      (Data.ProtoLens.ProxySym :: Data.ProtoLens.ProxySym "locale")
+
+platform ::
+         forall msg msg' . Data.ProtoLens.HasField "platform" msg msg' =>
+           Lens.Family2.Lens msg msg' (Data.ProtoLens.Field "platform" msg)
+             (Data.ProtoLens.Field "platform" msg')
+platform
+  = Data.ProtoLens.field
+      (Data.ProtoLens.ProxySym :: Data.ProtoLens.ProxySym "platform")
diff --git a/src/Proto/POGOProtos/Networking/Requests/Messages/GetDownloadUrlsMessage.hs b/src/Proto/POGOProtos/Networking/Requests/Messages/GetDownloadUrlsMessage.hs
new file mode 100644
--- /dev/null
+++ b/src/Proto/POGOProtos/Networking/Requests/Messages/GetDownloadUrlsMessage.hs
@@ -0,0 +1,54 @@
+{- This file was auto-generated from POGOProtos/Networking/Requests/Messages/GetDownloadUrlsMessage.proto by the proto-lens-protoc program. -}
+{-# LANGUAGE ScopedTypeVariables, DataKinds, TypeFamilies,
+  MultiParamTypeClasses, FlexibleContexts, FlexibleInstances #-}
+{-# OPTIONS_GHC -fno-warn-unused-imports#-}
+module Proto.POGOProtos.Networking.Requests.Messages.GetDownloadUrlsMessage
+       where
+import qualified Prelude
+import qualified Data.ProtoLens
+import qualified Data.ProtoLens.Message.Enum
+import qualified Lens.Family2
+import qualified Lens.Family2.Unchecked
+import qualified Data.Default.Class
+import qualified Data.Text
+import qualified Data.Int
+import qualified Data.Word
+import qualified Data.Map
+import qualified Data.ByteString
+
+data GetDownloadUrlsMessage = GetDownloadUrlsMessage{_GetDownloadUrlsMessage'assetId
+                                                     :: [Data.Text.Text]}
+                            deriving (Prelude.Show, Prelude.Eq)
+
+type instance Data.ProtoLens.Field "assetId" GetDownloadUrlsMessage
+     = [Data.Text.Text]
+
+instance Data.ProtoLens.HasField "assetId" GetDownloadUrlsMessage
+         GetDownloadUrlsMessage where
+        field _
+          = Lens.Family2.Unchecked.lens _GetDownloadUrlsMessage'assetId
+              (\ x__ y__ -> x__{_GetDownloadUrlsMessage'assetId = y__})
+
+instance Data.Default.Class.Default GetDownloadUrlsMessage where
+        def = GetDownloadUrlsMessage{_GetDownloadUrlsMessage'assetId = []}
+
+instance Data.ProtoLens.Message GetDownloadUrlsMessage where
+        descriptor
+          = let assetId__field_descriptor
+                  = Data.ProtoLens.FieldDescriptor "asset_id"
+                      (Data.ProtoLens.StringField ::
+                         Data.ProtoLens.FieldTypeDescriptor Data.Text.Text)
+                      (Data.ProtoLens.RepeatedField Data.ProtoLens.Unpacked assetId)
+              in
+              Data.ProtoLens.MessageDescriptor
+                (Data.Map.fromList
+                   [(Data.ProtoLens.Tag 1, assetId__field_descriptor)])
+                (Data.Map.fromList [("asset_id", assetId__field_descriptor)])
+
+assetId ::
+        forall msg msg' . Data.ProtoLens.HasField "assetId" msg msg' =>
+          Lens.Family2.Lens msg msg' (Data.ProtoLens.Field "assetId" msg)
+            (Data.ProtoLens.Field "assetId" msg')
+assetId
+  = Data.ProtoLens.field
+      (Data.ProtoLens.ProxySym :: Data.ProtoLens.ProxySym "assetId")
diff --git a/src/Proto/POGOProtos/Networking/Requests/Messages/GetGymDetailsMessage.hs b/src/Proto/POGOProtos/Networking/Requests/Messages/GetGymDetailsMessage.hs
new file mode 100644
--- /dev/null
+++ b/src/Proto/POGOProtos/Networking/Requests/Messages/GetGymDetailsMessage.hs
@@ -0,0 +1,178 @@
+{- This file was auto-generated from POGOProtos/Networking/Requests/Messages/GetGymDetailsMessage.proto by the proto-lens-protoc program. -}
+{-# LANGUAGE ScopedTypeVariables, DataKinds, TypeFamilies,
+  MultiParamTypeClasses, FlexibleContexts, FlexibleInstances #-}
+{-# OPTIONS_GHC -fno-warn-unused-imports#-}
+module Proto.POGOProtos.Networking.Requests.Messages.GetGymDetailsMessage
+       where
+import qualified Prelude
+import qualified Data.ProtoLens
+import qualified Data.ProtoLens.Message.Enum
+import qualified Lens.Family2
+import qualified Lens.Family2.Unchecked
+import qualified Data.Default.Class
+import qualified Data.Text
+import qualified Data.Int
+import qualified Data.Word
+import qualified Data.Map
+import qualified Data.ByteString
+
+data GetGymDetailsMessage = GetGymDetailsMessage{_GetGymDetailsMessage'gymId
+                                                 :: Data.Text.Text,
+                                                 _GetGymDetailsMessage'playerLatitude ::
+                                                 Prelude.Double,
+                                                 _GetGymDetailsMessage'playerLongitude ::
+                                                 Prelude.Double,
+                                                 _GetGymDetailsMessage'gymLatitude ::
+                                                 Prelude.Double,
+                                                 _GetGymDetailsMessage'gymLongitude ::
+                                                 Prelude.Double}
+                          deriving (Prelude.Show, Prelude.Eq)
+
+type instance Data.ProtoLens.Field "gymId" GetGymDetailsMessage =
+     Data.Text.Text
+
+instance Data.ProtoLens.HasField "gymId" GetGymDetailsMessage
+         GetGymDetailsMessage where
+        field _
+          = Lens.Family2.Unchecked.lens _GetGymDetailsMessage'gymId
+              (\ x__ y__ -> x__{_GetGymDetailsMessage'gymId = y__})
+
+type instance
+     Data.ProtoLens.Field "playerLatitude" GetGymDetailsMessage =
+     Prelude.Double
+
+instance Data.ProtoLens.HasField "playerLatitude"
+         GetGymDetailsMessage GetGymDetailsMessage where
+        field _
+          = Lens.Family2.Unchecked.lens _GetGymDetailsMessage'playerLatitude
+              (\ x__ y__ -> x__{_GetGymDetailsMessage'playerLatitude = y__})
+
+type instance
+     Data.ProtoLens.Field "playerLongitude" GetGymDetailsMessage =
+     Prelude.Double
+
+instance Data.ProtoLens.HasField "playerLongitude"
+         GetGymDetailsMessage GetGymDetailsMessage where
+        field _
+          = Lens.Family2.Unchecked.lens _GetGymDetailsMessage'playerLongitude
+              (\ x__ y__ -> x__{_GetGymDetailsMessage'playerLongitude = y__})
+
+type instance
+     Data.ProtoLens.Field "gymLatitude" GetGymDetailsMessage =
+     Prelude.Double
+
+instance Data.ProtoLens.HasField "gymLatitude" GetGymDetailsMessage
+         GetGymDetailsMessage where
+        field _
+          = Lens.Family2.Unchecked.lens _GetGymDetailsMessage'gymLatitude
+              (\ x__ y__ -> x__{_GetGymDetailsMessage'gymLatitude = y__})
+
+type instance
+     Data.ProtoLens.Field "gymLongitude" GetGymDetailsMessage =
+     Prelude.Double
+
+instance Data.ProtoLens.HasField "gymLongitude"
+         GetGymDetailsMessage GetGymDetailsMessage where
+        field _
+          = Lens.Family2.Unchecked.lens _GetGymDetailsMessage'gymLongitude
+              (\ x__ y__ -> x__{_GetGymDetailsMessage'gymLongitude = y__})
+
+instance Data.Default.Class.Default GetGymDetailsMessage where
+        def
+          = GetGymDetailsMessage{_GetGymDetailsMessage'gymId =
+                                   Data.ProtoLens.fieldDefault,
+                                 _GetGymDetailsMessage'playerLatitude = Data.ProtoLens.fieldDefault,
+                                 _GetGymDetailsMessage'playerLongitude =
+                                   Data.ProtoLens.fieldDefault,
+                                 _GetGymDetailsMessage'gymLatitude = Data.ProtoLens.fieldDefault,
+                                 _GetGymDetailsMessage'gymLongitude = Data.ProtoLens.fieldDefault}
+
+instance Data.ProtoLens.Message GetGymDetailsMessage where
+        descriptor
+          = let gymId__field_descriptor
+                  = Data.ProtoLens.FieldDescriptor "gym_id"
+                      (Data.ProtoLens.StringField ::
+                         Data.ProtoLens.FieldTypeDescriptor Data.Text.Text)
+                      (Data.ProtoLens.PlainField Data.ProtoLens.Optional gymId)
+                playerLatitude__field_descriptor
+                  = Data.ProtoLens.FieldDescriptor "player_latitude"
+                      (Data.ProtoLens.DoubleField ::
+                         Data.ProtoLens.FieldTypeDescriptor Prelude.Double)
+                      (Data.ProtoLens.PlainField Data.ProtoLens.Optional playerLatitude)
+                playerLongitude__field_descriptor
+                  = Data.ProtoLens.FieldDescriptor "player_longitude"
+                      (Data.ProtoLens.DoubleField ::
+                         Data.ProtoLens.FieldTypeDescriptor Prelude.Double)
+                      (Data.ProtoLens.PlainField Data.ProtoLens.Optional playerLongitude)
+                gymLatitude__field_descriptor
+                  = Data.ProtoLens.FieldDescriptor "gym_latitude"
+                      (Data.ProtoLens.DoubleField ::
+                         Data.ProtoLens.FieldTypeDescriptor Prelude.Double)
+                      (Data.ProtoLens.PlainField Data.ProtoLens.Optional gymLatitude)
+                gymLongitude__field_descriptor
+                  = Data.ProtoLens.FieldDescriptor "gym_longitude"
+                      (Data.ProtoLens.DoubleField ::
+                         Data.ProtoLens.FieldTypeDescriptor Prelude.Double)
+                      (Data.ProtoLens.PlainField Data.ProtoLens.Optional gymLongitude)
+              in
+              Data.ProtoLens.MessageDescriptor
+                (Data.Map.fromList
+                   [(Data.ProtoLens.Tag 1, gymId__field_descriptor),
+                    (Data.ProtoLens.Tag 2, playerLatitude__field_descriptor),
+                    (Data.ProtoLens.Tag 3, playerLongitude__field_descriptor),
+                    (Data.ProtoLens.Tag 4, gymLatitude__field_descriptor),
+                    (Data.ProtoLens.Tag 5, gymLongitude__field_descriptor)])
+                (Data.Map.fromList
+                   [("gym_id", gymId__field_descriptor),
+                    ("player_latitude", playerLatitude__field_descriptor),
+                    ("player_longitude", playerLongitude__field_descriptor),
+                    ("gym_latitude", gymLatitude__field_descriptor),
+                    ("gym_longitude", gymLongitude__field_descriptor)])
+
+gymId ::
+      forall msg msg' . Data.ProtoLens.HasField "gymId" msg msg' =>
+        Lens.Family2.Lens msg msg' (Data.ProtoLens.Field "gymId" msg)
+          (Data.ProtoLens.Field "gymId" msg')
+gymId
+  = Data.ProtoLens.field
+      (Data.ProtoLens.ProxySym :: Data.ProtoLens.ProxySym "gymId")
+
+gymLatitude ::
+            forall msg msg' . Data.ProtoLens.HasField "gymLatitude" msg msg' =>
+              Lens.Family2.Lens msg msg' (Data.ProtoLens.Field "gymLatitude" msg)
+                (Data.ProtoLens.Field "gymLatitude" msg')
+gymLatitude
+  = Data.ProtoLens.field
+      (Data.ProtoLens.ProxySym :: Data.ProtoLens.ProxySym "gymLatitude")
+
+gymLongitude ::
+             forall msg msg' .
+               Data.ProtoLens.HasField "gymLongitude" msg msg' =>
+               Lens.Family2.Lens msg msg'
+                 (Data.ProtoLens.Field "gymLongitude" msg)
+                 (Data.ProtoLens.Field "gymLongitude" msg')
+gymLongitude
+  = Data.ProtoLens.field
+      (Data.ProtoLens.ProxySym :: Data.ProtoLens.ProxySym "gymLongitude")
+
+playerLatitude ::
+               forall msg msg' .
+                 Data.ProtoLens.HasField "playerLatitude" msg msg' =>
+                 Lens.Family2.Lens msg msg'
+                   (Data.ProtoLens.Field "playerLatitude" msg)
+                   (Data.ProtoLens.Field "playerLatitude" msg')
+playerLatitude
+  = Data.ProtoLens.field
+      (Data.ProtoLens.ProxySym ::
+         Data.ProtoLens.ProxySym "playerLatitude")
+
+playerLongitude ::
+                forall msg msg' .
+                  Data.ProtoLens.HasField "playerLongitude" msg msg' =>
+                  Lens.Family2.Lens msg msg'
+                    (Data.ProtoLens.Field "playerLongitude" msg)
+                    (Data.ProtoLens.Field "playerLongitude" msg')
+playerLongitude
+  = Data.ProtoLens.field
+      (Data.ProtoLens.ProxySym ::
+         Data.ProtoLens.ProxySym "playerLongitude")
diff --git a/src/Proto/POGOProtos/Networking/Requests/Messages/GetHatchedEggsMessage.hs b/src/Proto/POGOProtos/Networking/Requests/Messages/GetHatchedEggsMessage.hs
new file mode 100644
--- /dev/null
+++ b/src/Proto/POGOProtos/Networking/Requests/Messages/GetHatchedEggsMessage.hs
@@ -0,0 +1,29 @@
+{- This file was auto-generated from POGOProtos/Networking/Requests/Messages/GetHatchedEggsMessage.proto by the proto-lens-protoc program. -}
+{-# LANGUAGE ScopedTypeVariables, DataKinds, TypeFamilies,
+  MultiParamTypeClasses, FlexibleContexts, FlexibleInstances #-}
+{-# OPTIONS_GHC -fno-warn-unused-imports#-}
+module Proto.POGOProtos.Networking.Requests.Messages.GetHatchedEggsMessage
+       where
+import qualified Prelude
+import qualified Data.ProtoLens
+import qualified Data.ProtoLens.Message.Enum
+import qualified Lens.Family2
+import qualified Lens.Family2.Unchecked
+import qualified Data.Default.Class
+import qualified Data.Text
+import qualified Data.Int
+import qualified Data.Word
+import qualified Data.Map
+import qualified Data.ByteString
+
+data GetHatchedEggsMessage = GetHatchedEggsMessage{}
+                           deriving (Prelude.Show, Prelude.Eq)
+
+instance Data.Default.Class.Default GetHatchedEggsMessage where
+        def = GetHatchedEggsMessage{}
+
+instance Data.ProtoLens.Message GetHatchedEggsMessage where
+        descriptor
+          = let in
+              Data.ProtoLens.MessageDescriptor (Data.Map.fromList [])
+                (Data.Map.fromList [])
diff --git a/src/Proto/POGOProtos/Networking/Requests/Messages/GetIncensePokemonMessage.hs b/src/Proto/POGOProtos/Networking/Requests/Messages/GetIncensePokemonMessage.hs
new file mode 100644
--- /dev/null
+++ b/src/Proto/POGOProtos/Networking/Requests/Messages/GetIncensePokemonMessage.hs
@@ -0,0 +1,95 @@
+{- This file was auto-generated from POGOProtos/Networking/Requests/Messages/GetIncensePokemonMessage.proto by the proto-lens-protoc program. -}
+{-# LANGUAGE ScopedTypeVariables, DataKinds, TypeFamilies,
+  MultiParamTypeClasses, FlexibleContexts, FlexibleInstances #-}
+{-# OPTIONS_GHC -fno-warn-unused-imports#-}
+module Proto.POGOProtos.Networking.Requests.Messages.GetIncensePokemonMessage
+       where
+import qualified Prelude
+import qualified Data.ProtoLens
+import qualified Data.ProtoLens.Message.Enum
+import qualified Lens.Family2
+import qualified Lens.Family2.Unchecked
+import qualified Data.Default.Class
+import qualified Data.Text
+import qualified Data.Int
+import qualified Data.Word
+import qualified Data.Map
+import qualified Data.ByteString
+
+data GetIncensePokemonMessage = GetIncensePokemonMessage{_GetIncensePokemonMessage'playerLatitude
+                                                         :: Prelude.Double,
+                                                         _GetIncensePokemonMessage'playerLongitude
+                                                         :: Prelude.Double}
+                              deriving (Prelude.Show, Prelude.Eq)
+
+type instance
+     Data.ProtoLens.Field "playerLatitude" GetIncensePokemonMessage =
+     Prelude.Double
+
+instance Data.ProtoLens.HasField "playerLatitude"
+         GetIncensePokemonMessage GetIncensePokemonMessage where
+        field _
+          = Lens.Family2.Unchecked.lens
+              _GetIncensePokemonMessage'playerLatitude
+              (\ x__ y__ -> x__{_GetIncensePokemonMessage'playerLatitude = y__})
+
+type instance
+     Data.ProtoLens.Field "playerLongitude" GetIncensePokemonMessage =
+     Prelude.Double
+
+instance Data.ProtoLens.HasField "playerLongitude"
+         GetIncensePokemonMessage GetIncensePokemonMessage where
+        field _
+          = Lens.Family2.Unchecked.lens
+              _GetIncensePokemonMessage'playerLongitude
+              (\ x__ y__ -> x__{_GetIncensePokemonMessage'playerLongitude = y__})
+
+instance Data.Default.Class.Default GetIncensePokemonMessage where
+        def
+          = GetIncensePokemonMessage{_GetIncensePokemonMessage'playerLatitude
+                                       = Data.ProtoLens.fieldDefault,
+                                     _GetIncensePokemonMessage'playerLongitude =
+                                       Data.ProtoLens.fieldDefault}
+
+instance Data.ProtoLens.Message GetIncensePokemonMessage where
+        descriptor
+          = let playerLatitude__field_descriptor
+                  = Data.ProtoLens.FieldDescriptor "player_latitude"
+                      (Data.ProtoLens.DoubleField ::
+                         Data.ProtoLens.FieldTypeDescriptor Prelude.Double)
+                      (Data.ProtoLens.PlainField Data.ProtoLens.Optional playerLatitude)
+                playerLongitude__field_descriptor
+                  = Data.ProtoLens.FieldDescriptor "player_longitude"
+                      (Data.ProtoLens.DoubleField ::
+                         Data.ProtoLens.FieldTypeDescriptor Prelude.Double)
+                      (Data.ProtoLens.PlainField Data.ProtoLens.Optional playerLongitude)
+              in
+              Data.ProtoLens.MessageDescriptor
+                (Data.Map.fromList
+                   [(Data.ProtoLens.Tag 1, playerLatitude__field_descriptor),
+                    (Data.ProtoLens.Tag 2, playerLongitude__field_descriptor)])
+                (Data.Map.fromList
+                   [("player_latitude", playerLatitude__field_descriptor),
+                    ("player_longitude", playerLongitude__field_descriptor)])
+
+playerLatitude ::
+               forall msg msg' .
+                 Data.ProtoLens.HasField "playerLatitude" msg msg' =>
+                 Lens.Family2.Lens msg msg'
+                   (Data.ProtoLens.Field "playerLatitude" msg)
+                   (Data.ProtoLens.Field "playerLatitude" msg')
+playerLatitude
+  = Data.ProtoLens.field
+      (Data.ProtoLens.ProxySym ::
+         Data.ProtoLens.ProxySym "playerLatitude")
+
+playerLongitude ::
+                forall msg msg' .
+                  Data.ProtoLens.HasField "playerLongitude" msg msg' =>
+                  Lens.Family2.Lens msg msg'
+                    (Data.ProtoLens.Field "playerLongitude" msg)
+                    (Data.ProtoLens.Field "playerLongitude" msg')
+playerLongitude
+  = Data.ProtoLens.field
+      (Data.ProtoLens.ProxySym ::
+         Data.ProtoLens.ProxySym "playerLongitude")
diff --git a/src/Proto/POGOProtos/Networking/Requests/Messages/GetInventoryMessage.hs b/src/Proto/POGOProtos/Networking/Requests/Messages/GetInventoryMessage.hs
new file mode 100644
--- /dev/null
+++ b/src/Proto/POGOProtos/Networking/Requests/Messages/GetInventoryMessage.hs
@@ -0,0 +1,90 @@
+{- This file was auto-generated from POGOProtos/Networking/Requests/Messages/GetInventoryMessage.proto by the proto-lens-protoc program. -}
+{-# LANGUAGE ScopedTypeVariables, DataKinds, TypeFamilies,
+  MultiParamTypeClasses, FlexibleContexts, FlexibleInstances #-}
+{-# OPTIONS_GHC -fno-warn-unused-imports#-}
+module Proto.POGOProtos.Networking.Requests.Messages.GetInventoryMessage
+       where
+import qualified Prelude
+import qualified Data.ProtoLens
+import qualified Data.ProtoLens.Message.Enum
+import qualified Lens.Family2
+import qualified Lens.Family2.Unchecked
+import qualified Data.Default.Class
+import qualified Data.Text
+import qualified Data.Int
+import qualified Data.Word
+import qualified Data.Map
+import qualified Data.ByteString
+
+data GetInventoryMessage = GetInventoryMessage{_GetInventoryMessage'lastTimestampMs
+                                               :: Data.Int.Int64,
+                                               _GetInventoryMessage'itemBeenSeen :: Data.Int.Int32}
+                         deriving (Prelude.Show, Prelude.Eq)
+
+type instance
+     Data.ProtoLens.Field "lastTimestampMs" GetInventoryMessage =
+     Data.Int.Int64
+
+instance Data.ProtoLens.HasField "lastTimestampMs"
+         GetInventoryMessage GetInventoryMessage where
+        field _
+          = Lens.Family2.Unchecked.lens _GetInventoryMessage'lastTimestampMs
+              (\ x__ y__ -> x__{_GetInventoryMessage'lastTimestampMs = y__})
+
+type instance
+     Data.ProtoLens.Field "itemBeenSeen" GetInventoryMessage =
+     Data.Int.Int32
+
+instance Data.ProtoLens.HasField "itemBeenSeen" GetInventoryMessage
+         GetInventoryMessage where
+        field _
+          = Lens.Family2.Unchecked.lens _GetInventoryMessage'itemBeenSeen
+              (\ x__ y__ -> x__{_GetInventoryMessage'itemBeenSeen = y__})
+
+instance Data.Default.Class.Default GetInventoryMessage where
+        def
+          = GetInventoryMessage{_GetInventoryMessage'lastTimestampMs =
+                                  Data.ProtoLens.fieldDefault,
+                                _GetInventoryMessage'itemBeenSeen = Data.ProtoLens.fieldDefault}
+
+instance Data.ProtoLens.Message GetInventoryMessage where
+        descriptor
+          = let lastTimestampMs__field_descriptor
+                  = Data.ProtoLens.FieldDescriptor "last_timestamp_ms"
+                      (Data.ProtoLens.Int64Field ::
+                         Data.ProtoLens.FieldTypeDescriptor Data.Int.Int64)
+                      (Data.ProtoLens.PlainField Data.ProtoLens.Optional lastTimestampMs)
+                itemBeenSeen__field_descriptor
+                  = Data.ProtoLens.FieldDescriptor "item_been_seen"
+                      (Data.ProtoLens.Int32Field ::
+                         Data.ProtoLens.FieldTypeDescriptor Data.Int.Int32)
+                      (Data.ProtoLens.PlainField Data.ProtoLens.Optional itemBeenSeen)
+              in
+              Data.ProtoLens.MessageDescriptor
+                (Data.Map.fromList
+                   [(Data.ProtoLens.Tag 1, lastTimestampMs__field_descriptor),
+                    (Data.ProtoLens.Tag 2, itemBeenSeen__field_descriptor)])
+                (Data.Map.fromList
+                   [("last_timestamp_ms", lastTimestampMs__field_descriptor),
+                    ("item_been_seen", itemBeenSeen__field_descriptor)])
+
+itemBeenSeen ::
+             forall msg msg' .
+               Data.ProtoLens.HasField "itemBeenSeen" msg msg' =>
+               Lens.Family2.Lens msg msg'
+                 (Data.ProtoLens.Field "itemBeenSeen" msg)
+                 (Data.ProtoLens.Field "itemBeenSeen" msg')
+itemBeenSeen
+  = Data.ProtoLens.field
+      (Data.ProtoLens.ProxySym :: Data.ProtoLens.ProxySym "itemBeenSeen")
+
+lastTimestampMs ::
+                forall msg msg' .
+                  Data.ProtoLens.HasField "lastTimestampMs" msg msg' =>
+                  Lens.Family2.Lens msg msg'
+                    (Data.ProtoLens.Field "lastTimestampMs" msg)
+                    (Data.ProtoLens.Field "lastTimestampMs" msg')
+lastTimestampMs
+  = Data.ProtoLens.field
+      (Data.ProtoLens.ProxySym ::
+         Data.ProtoLens.ProxySym "lastTimestampMs")
diff --git a/src/Proto/POGOProtos/Networking/Requests/Messages/GetMapObjectsMessage.hs b/src/Proto/POGOProtos/Networking/Requests/Messages/GetMapObjectsMessage.hs
new file mode 100644
--- /dev/null
+++ b/src/Proto/POGOProtos/Networking/Requests/Messages/GetMapObjectsMessage.hs
@@ -0,0 +1,141 @@
+{- This file was auto-generated from POGOProtos/Networking/Requests/Messages/GetMapObjectsMessage.proto by the proto-lens-protoc program. -}
+{-# LANGUAGE ScopedTypeVariables, DataKinds, TypeFamilies,
+  MultiParamTypeClasses, FlexibleContexts, FlexibleInstances #-}
+{-# OPTIONS_GHC -fno-warn-unused-imports#-}
+module Proto.POGOProtos.Networking.Requests.Messages.GetMapObjectsMessage
+       where
+import qualified Prelude
+import qualified Data.ProtoLens
+import qualified Data.ProtoLens.Message.Enum
+import qualified Lens.Family2
+import qualified Lens.Family2.Unchecked
+import qualified Data.Default.Class
+import qualified Data.Text
+import qualified Data.Int
+import qualified Data.Word
+import qualified Data.Map
+import qualified Data.ByteString
+
+data GetMapObjectsMessage = GetMapObjectsMessage{_GetMapObjectsMessage'cellId
+                                                 :: [Data.Word.Word64],
+                                                 _GetMapObjectsMessage'sinceTimestampMs ::
+                                                 [Data.Int.Int64],
+                                                 _GetMapObjectsMessage'latitude :: Prelude.Double,
+                                                 _GetMapObjectsMessage'longitude :: Prelude.Double}
+                          deriving (Prelude.Show, Prelude.Eq)
+
+type instance Data.ProtoLens.Field "cellId" GetMapObjectsMessage =
+     [Data.Word.Word64]
+
+instance Data.ProtoLens.HasField "cellId" GetMapObjectsMessage
+         GetMapObjectsMessage where
+        field _
+          = Lens.Family2.Unchecked.lens _GetMapObjectsMessage'cellId
+              (\ x__ y__ -> x__{_GetMapObjectsMessage'cellId = y__})
+
+type instance
+     Data.ProtoLens.Field "sinceTimestampMs" GetMapObjectsMessage =
+     [Data.Int.Int64]
+
+instance Data.ProtoLens.HasField "sinceTimestampMs"
+         GetMapObjectsMessage GetMapObjectsMessage where
+        field _
+          = Lens.Family2.Unchecked.lens
+              _GetMapObjectsMessage'sinceTimestampMs
+              (\ x__ y__ -> x__{_GetMapObjectsMessage'sinceTimestampMs = y__})
+
+type instance Data.ProtoLens.Field "latitude" GetMapObjectsMessage
+     = Prelude.Double
+
+instance Data.ProtoLens.HasField "latitude" GetMapObjectsMessage
+         GetMapObjectsMessage where
+        field _
+          = Lens.Family2.Unchecked.lens _GetMapObjectsMessage'latitude
+              (\ x__ y__ -> x__{_GetMapObjectsMessage'latitude = y__})
+
+type instance Data.ProtoLens.Field "longitude" GetMapObjectsMessage
+     = Prelude.Double
+
+instance Data.ProtoLens.HasField "longitude" GetMapObjectsMessage
+         GetMapObjectsMessage where
+        field _
+          = Lens.Family2.Unchecked.lens _GetMapObjectsMessage'longitude
+              (\ x__ y__ -> x__{_GetMapObjectsMessage'longitude = y__})
+
+instance Data.Default.Class.Default GetMapObjectsMessage where
+        def
+          = GetMapObjectsMessage{_GetMapObjectsMessage'cellId = [],
+                                 _GetMapObjectsMessage'sinceTimestampMs = [],
+                                 _GetMapObjectsMessage'latitude = Data.ProtoLens.fieldDefault,
+                                 _GetMapObjectsMessage'longitude = Data.ProtoLens.fieldDefault}
+
+instance Data.ProtoLens.Message GetMapObjectsMessage where
+        descriptor
+          = let cellId__field_descriptor
+                  = Data.ProtoLens.FieldDescriptor "cell_id"
+                      (Data.ProtoLens.UInt64Field ::
+                         Data.ProtoLens.FieldTypeDescriptor Data.Word.Word64)
+                      (Data.ProtoLens.RepeatedField Data.ProtoLens.Packed cellId)
+                sinceTimestampMs__field_descriptor
+                  = Data.ProtoLens.FieldDescriptor "since_timestamp_ms"
+                      (Data.ProtoLens.Int64Field ::
+                         Data.ProtoLens.FieldTypeDescriptor Data.Int.Int64)
+                      (Data.ProtoLens.RepeatedField Data.ProtoLens.Packed
+                         sinceTimestampMs)
+                latitude__field_descriptor
+                  = Data.ProtoLens.FieldDescriptor "latitude"
+                      (Data.ProtoLens.DoubleField ::
+                         Data.ProtoLens.FieldTypeDescriptor Prelude.Double)
+                      (Data.ProtoLens.PlainField Data.ProtoLens.Optional latitude)
+                longitude__field_descriptor
+                  = Data.ProtoLens.FieldDescriptor "longitude"
+                      (Data.ProtoLens.DoubleField ::
+                         Data.ProtoLens.FieldTypeDescriptor Prelude.Double)
+                      (Data.ProtoLens.PlainField Data.ProtoLens.Optional longitude)
+              in
+              Data.ProtoLens.MessageDescriptor
+                (Data.Map.fromList
+                   [(Data.ProtoLens.Tag 1, cellId__field_descriptor),
+                    (Data.ProtoLens.Tag 2, sinceTimestampMs__field_descriptor),
+                    (Data.ProtoLens.Tag 3, latitude__field_descriptor),
+                    (Data.ProtoLens.Tag 4, longitude__field_descriptor)])
+                (Data.Map.fromList
+                   [("cell_id", cellId__field_descriptor),
+                    ("since_timestamp_ms", sinceTimestampMs__field_descriptor),
+                    ("latitude", latitude__field_descriptor),
+                    ("longitude", longitude__field_descriptor)])
+
+cellId ::
+       forall msg msg' . Data.ProtoLens.HasField "cellId" msg msg' =>
+         Lens.Family2.Lens msg msg' (Data.ProtoLens.Field "cellId" msg)
+           (Data.ProtoLens.Field "cellId" msg')
+cellId
+  = Data.ProtoLens.field
+      (Data.ProtoLens.ProxySym :: Data.ProtoLens.ProxySym "cellId")
+
+latitude ::
+         forall msg msg' . Data.ProtoLens.HasField "latitude" msg msg' =>
+           Lens.Family2.Lens msg msg' (Data.ProtoLens.Field "latitude" msg)
+             (Data.ProtoLens.Field "latitude" msg')
+latitude
+  = Data.ProtoLens.field
+      (Data.ProtoLens.ProxySym :: Data.ProtoLens.ProxySym "latitude")
+
+longitude ::
+          forall msg msg' . Data.ProtoLens.HasField "longitude" msg msg' =>
+            Lens.Family2.Lens msg msg' (Data.ProtoLens.Field "longitude" msg)
+              (Data.ProtoLens.Field "longitude" msg')
+longitude
+  = Data.ProtoLens.field
+      (Data.ProtoLens.ProxySym :: Data.ProtoLens.ProxySym "longitude")
+
+sinceTimestampMs ::
+                 forall msg msg' .
+                   Data.ProtoLens.HasField "sinceTimestampMs" msg msg' =>
+                   Lens.Family2.Lens msg msg'
+                     (Data.ProtoLens.Field "sinceTimestampMs" msg)
+                     (Data.ProtoLens.Field "sinceTimestampMs" msg')
+sinceTimestampMs
+  = Data.ProtoLens.field
+      (Data.ProtoLens.ProxySym ::
+         Data.ProtoLens.ProxySym "sinceTimestampMs")
diff --git a/src/Proto/POGOProtos/Networking/Requests/Messages/GetPlayerMessage.hs b/src/Proto/POGOProtos/Networking/Requests/Messages/GetPlayerMessage.hs
new file mode 100644
--- /dev/null
+++ b/src/Proto/POGOProtos/Networking/Requests/Messages/GetPlayerMessage.hs
@@ -0,0 +1,29 @@
+{- This file was auto-generated from POGOProtos/Networking/Requests/Messages/GetPlayerMessage.proto by the proto-lens-protoc program. -}
+{-# LANGUAGE ScopedTypeVariables, DataKinds, TypeFamilies,
+  MultiParamTypeClasses, FlexibleContexts, FlexibleInstances #-}
+{-# OPTIONS_GHC -fno-warn-unused-imports#-}
+module Proto.POGOProtos.Networking.Requests.Messages.GetPlayerMessage
+       where
+import qualified Prelude
+import qualified Data.ProtoLens
+import qualified Data.ProtoLens.Message.Enum
+import qualified Lens.Family2
+import qualified Lens.Family2.Unchecked
+import qualified Data.Default.Class
+import qualified Data.Text
+import qualified Data.Int
+import qualified Data.Word
+import qualified Data.Map
+import qualified Data.ByteString
+
+data GetPlayerMessage = GetPlayerMessage{}
+                      deriving (Prelude.Show, Prelude.Eq)
+
+instance Data.Default.Class.Default GetPlayerMessage where
+        def = GetPlayerMessage{}
+
+instance Data.ProtoLens.Message GetPlayerMessage where
+        descriptor
+          = let in
+              Data.ProtoLens.MessageDescriptor (Data.Map.fromList [])
+                (Data.Map.fromList [])
diff --git a/src/Proto/POGOProtos/Networking/Requests/Messages/GetPlayerProfileMessage.hs b/src/Proto/POGOProtos/Networking/Requests/Messages/GetPlayerProfileMessage.hs
new file mode 100644
--- /dev/null
+++ b/src/Proto/POGOProtos/Networking/Requests/Messages/GetPlayerProfileMessage.hs
@@ -0,0 +1,57 @@
+{- This file was auto-generated from POGOProtos/Networking/Requests/Messages/GetPlayerProfileMessage.proto by the proto-lens-protoc program. -}
+{-# LANGUAGE ScopedTypeVariables, DataKinds, TypeFamilies,
+  MultiParamTypeClasses, FlexibleContexts, FlexibleInstances #-}
+{-# OPTIONS_GHC -fno-warn-unused-imports#-}
+module Proto.POGOProtos.Networking.Requests.Messages.GetPlayerProfileMessage
+       where
+import qualified Prelude
+import qualified Data.ProtoLens
+import qualified Data.ProtoLens.Message.Enum
+import qualified Lens.Family2
+import qualified Lens.Family2.Unchecked
+import qualified Data.Default.Class
+import qualified Data.Text
+import qualified Data.Int
+import qualified Data.Word
+import qualified Data.Map
+import qualified Data.ByteString
+
+data GetPlayerProfileMessage = GetPlayerProfileMessage{_GetPlayerProfileMessage'playerName
+                                                       :: Data.Text.Text}
+                             deriving (Prelude.Show, Prelude.Eq)
+
+type instance
+     Data.ProtoLens.Field "playerName" GetPlayerProfileMessage =
+     Data.Text.Text
+
+instance Data.ProtoLens.HasField "playerName"
+         GetPlayerProfileMessage GetPlayerProfileMessage where
+        field _
+          = Lens.Family2.Unchecked.lens _GetPlayerProfileMessage'playerName
+              (\ x__ y__ -> x__{_GetPlayerProfileMessage'playerName = y__})
+
+instance Data.Default.Class.Default GetPlayerProfileMessage where
+        def
+          = GetPlayerProfileMessage{_GetPlayerProfileMessage'playerName =
+                                      Data.ProtoLens.fieldDefault}
+
+instance Data.ProtoLens.Message GetPlayerProfileMessage where
+        descriptor
+          = let playerName__field_descriptor
+                  = Data.ProtoLens.FieldDescriptor "player_name"
+                      (Data.ProtoLens.StringField ::
+                         Data.ProtoLens.FieldTypeDescriptor Data.Text.Text)
+                      (Data.ProtoLens.PlainField Data.ProtoLens.Optional playerName)
+              in
+              Data.ProtoLens.MessageDescriptor
+                (Data.Map.fromList
+                   [(Data.ProtoLens.Tag 1, playerName__field_descriptor)])
+                (Data.Map.fromList [("player_name", playerName__field_descriptor)])
+
+playerName ::
+           forall msg msg' . Data.ProtoLens.HasField "playerName" msg msg' =>
+             Lens.Family2.Lens msg msg' (Data.ProtoLens.Field "playerName" msg)
+               (Data.ProtoLens.Field "playerName" msg')
+playerName
+  = Data.ProtoLens.field
+      (Data.ProtoLens.ProxySym :: Data.ProtoLens.ProxySym "playerName")
diff --git a/src/Proto/POGOProtos/Networking/Requests/Messages/GetSuggestedCodenamesMessage.hs b/src/Proto/POGOProtos/Networking/Requests/Messages/GetSuggestedCodenamesMessage.hs
new file mode 100644
--- /dev/null
+++ b/src/Proto/POGOProtos/Networking/Requests/Messages/GetSuggestedCodenamesMessage.hs
@@ -0,0 +1,30 @@
+{- This file was auto-generated from POGOProtos/Networking/Requests/Messages/GetSuggestedCodenamesMessage.proto by the proto-lens-protoc program. -}
+{-# LANGUAGE ScopedTypeVariables, DataKinds, TypeFamilies,
+  MultiParamTypeClasses, FlexibleContexts, FlexibleInstances #-}
+{-# OPTIONS_GHC -fno-warn-unused-imports#-}
+module Proto.POGOProtos.Networking.Requests.Messages.GetSuggestedCodenamesMessage
+       where
+import qualified Prelude
+import qualified Data.ProtoLens
+import qualified Data.ProtoLens.Message.Enum
+import qualified Lens.Family2
+import qualified Lens.Family2.Unchecked
+import qualified Data.Default.Class
+import qualified Data.Text
+import qualified Data.Int
+import qualified Data.Word
+import qualified Data.Map
+import qualified Data.ByteString
+
+data GetSuggestedCodenamesMessage = GetSuggestedCodenamesMessage{}
+                                  deriving (Prelude.Show, Prelude.Eq)
+
+instance Data.Default.Class.Default GetSuggestedCodenamesMessage
+         where
+        def = GetSuggestedCodenamesMessage{}
+
+instance Data.ProtoLens.Message GetSuggestedCodenamesMessage where
+        descriptor
+          = let in
+              Data.ProtoLens.MessageDescriptor (Data.Map.fromList [])
+                (Data.Map.fromList [])
diff --git a/src/Proto/POGOProtos/Networking/Requests/Messages/IncenseEncounterMessage.hs b/src/Proto/POGOProtos/Networking/Requests/Messages/IncenseEncounterMessage.hs
new file mode 100644
--- /dev/null
+++ b/src/Proto/POGOProtos/Networking/Requests/Messages/IncenseEncounterMessage.hs
@@ -0,0 +1,93 @@
+{- This file was auto-generated from POGOProtos/Networking/Requests/Messages/IncenseEncounterMessage.proto by the proto-lens-protoc program. -}
+{-# LANGUAGE ScopedTypeVariables, DataKinds, TypeFamilies,
+  MultiParamTypeClasses, FlexibleContexts, FlexibleInstances #-}
+{-# OPTIONS_GHC -fno-warn-unused-imports#-}
+module Proto.POGOProtos.Networking.Requests.Messages.IncenseEncounterMessage
+       where
+import qualified Prelude
+import qualified Data.ProtoLens
+import qualified Data.ProtoLens.Message.Enum
+import qualified Lens.Family2
+import qualified Lens.Family2.Unchecked
+import qualified Data.Default.Class
+import qualified Data.Text
+import qualified Data.Int
+import qualified Data.Word
+import qualified Data.Map
+import qualified Data.ByteString
+
+data IncenseEncounterMessage = IncenseEncounterMessage{_IncenseEncounterMessage'encounterId
+                                                       :: Data.Int.Int64,
+                                                       _IncenseEncounterMessage'encounterLocation ::
+                                                       Data.Text.Text}
+                             deriving (Prelude.Show, Prelude.Eq)
+
+type instance
+     Data.ProtoLens.Field "encounterId" IncenseEncounterMessage =
+     Data.Int.Int64
+
+instance Data.ProtoLens.HasField "encounterId"
+         IncenseEncounterMessage IncenseEncounterMessage where
+        field _
+          = Lens.Family2.Unchecked.lens _IncenseEncounterMessage'encounterId
+              (\ x__ y__ -> x__{_IncenseEncounterMessage'encounterId = y__})
+
+type instance
+     Data.ProtoLens.Field "encounterLocation" IncenseEncounterMessage =
+     Data.Text.Text
+
+instance Data.ProtoLens.HasField "encounterLocation"
+         IncenseEncounterMessage IncenseEncounterMessage where
+        field _
+          = Lens.Family2.Unchecked.lens
+              _IncenseEncounterMessage'encounterLocation
+              (\ x__ y__ ->
+                 x__{_IncenseEncounterMessage'encounterLocation = y__})
+
+instance Data.Default.Class.Default IncenseEncounterMessage where
+        def
+          = IncenseEncounterMessage{_IncenseEncounterMessage'encounterId =
+                                      Data.ProtoLens.fieldDefault,
+                                    _IncenseEncounterMessage'encounterLocation =
+                                      Data.ProtoLens.fieldDefault}
+
+instance Data.ProtoLens.Message IncenseEncounterMessage where
+        descriptor
+          = let encounterId__field_descriptor
+                  = Data.ProtoLens.FieldDescriptor "encounter_id"
+                      (Data.ProtoLens.Int64Field ::
+                         Data.ProtoLens.FieldTypeDescriptor Data.Int.Int64)
+                      (Data.ProtoLens.PlainField Data.ProtoLens.Optional encounterId)
+                encounterLocation__field_descriptor
+                  = Data.ProtoLens.FieldDescriptor "encounter_location"
+                      (Data.ProtoLens.StringField ::
+                         Data.ProtoLens.FieldTypeDescriptor Data.Text.Text)
+                      (Data.ProtoLens.PlainField Data.ProtoLens.Optional
+                         encounterLocation)
+              in
+              Data.ProtoLens.MessageDescriptor
+                (Data.Map.fromList
+                   [(Data.ProtoLens.Tag 1, encounterId__field_descriptor),
+                    (Data.ProtoLens.Tag 2, encounterLocation__field_descriptor)])
+                (Data.Map.fromList
+                   [("encounter_id", encounterId__field_descriptor),
+                    ("encounter_location", encounterLocation__field_descriptor)])
+
+encounterId ::
+            forall msg msg' . Data.ProtoLens.HasField "encounterId" msg msg' =>
+              Lens.Family2.Lens msg msg' (Data.ProtoLens.Field "encounterId" msg)
+                (Data.ProtoLens.Field "encounterId" msg')
+encounterId
+  = Data.ProtoLens.field
+      (Data.ProtoLens.ProxySym :: Data.ProtoLens.ProxySym "encounterId")
+
+encounterLocation ::
+                  forall msg msg' .
+                    Data.ProtoLens.HasField "encounterLocation" msg msg' =>
+                    Lens.Family2.Lens msg msg'
+                      (Data.ProtoLens.Field "encounterLocation" msg)
+                      (Data.ProtoLens.Field "encounterLocation" msg')
+encounterLocation
+  = Data.ProtoLens.field
+      (Data.ProtoLens.ProxySym ::
+         Data.ProtoLens.ProxySym "encounterLocation")
diff --git a/src/Proto/POGOProtos/Networking/Requests/Messages/LevelUpRewardsMessage.hs b/src/Proto/POGOProtos/Networking/Requests/Messages/LevelUpRewardsMessage.hs
new file mode 100644
--- /dev/null
+++ b/src/Proto/POGOProtos/Networking/Requests/Messages/LevelUpRewardsMessage.hs
@@ -0,0 +1,56 @@
+{- This file was auto-generated from POGOProtos/Networking/Requests/Messages/LevelUpRewardsMessage.proto by the proto-lens-protoc program. -}
+{-# LANGUAGE ScopedTypeVariables, DataKinds, TypeFamilies,
+  MultiParamTypeClasses, FlexibleContexts, FlexibleInstances #-}
+{-# OPTIONS_GHC -fno-warn-unused-imports#-}
+module Proto.POGOProtos.Networking.Requests.Messages.LevelUpRewardsMessage
+       where
+import qualified Prelude
+import qualified Data.ProtoLens
+import qualified Data.ProtoLens.Message.Enum
+import qualified Lens.Family2
+import qualified Lens.Family2.Unchecked
+import qualified Data.Default.Class
+import qualified Data.Text
+import qualified Data.Int
+import qualified Data.Word
+import qualified Data.Map
+import qualified Data.ByteString
+
+data LevelUpRewardsMessage = LevelUpRewardsMessage{_LevelUpRewardsMessage'level
+                                                   :: Data.Int.Int32}
+                           deriving (Prelude.Show, Prelude.Eq)
+
+type instance Data.ProtoLens.Field "level" LevelUpRewardsMessage =
+     Data.Int.Int32
+
+instance Data.ProtoLens.HasField "level" LevelUpRewardsMessage
+         LevelUpRewardsMessage where
+        field _
+          = Lens.Family2.Unchecked.lens _LevelUpRewardsMessage'level
+              (\ x__ y__ -> x__{_LevelUpRewardsMessage'level = y__})
+
+instance Data.Default.Class.Default LevelUpRewardsMessage where
+        def
+          = LevelUpRewardsMessage{_LevelUpRewardsMessage'level =
+                                    Data.ProtoLens.fieldDefault}
+
+instance Data.ProtoLens.Message LevelUpRewardsMessage where
+        descriptor
+          = let level__field_descriptor
+                  = Data.ProtoLens.FieldDescriptor "level"
+                      (Data.ProtoLens.Int32Field ::
+                         Data.ProtoLens.FieldTypeDescriptor Data.Int.Int32)
+                      (Data.ProtoLens.PlainField Data.ProtoLens.Optional level)
+              in
+              Data.ProtoLens.MessageDescriptor
+                (Data.Map.fromList
+                   [(Data.ProtoLens.Tag 1, level__field_descriptor)])
+                (Data.Map.fromList [("level", level__field_descriptor)])
+
+level ::
+      forall msg msg' . Data.ProtoLens.HasField "level" msg msg' =>
+        Lens.Family2.Lens msg msg' (Data.ProtoLens.Field "level" msg)
+          (Data.ProtoLens.Field "level" msg')
+level
+  = Data.ProtoLens.field
+      (Data.ProtoLens.ProxySym :: Data.ProtoLens.ProxySym "level")
diff --git a/src/Proto/POGOProtos/Networking/Requests/Messages/MarkTutorialCompleteMessage.hs b/src/Proto/POGOProtos/Networking/Requests/Messages/MarkTutorialCompleteMessage.hs
new file mode 100644
--- /dev/null
+++ b/src/Proto/POGOProtos/Networking/Requests/Messages/MarkTutorialCompleteMessage.hs
@@ -0,0 +1,142 @@
+{- This file was auto-generated from POGOProtos/Networking/Requests/Messages/MarkTutorialCompleteMessage.proto by the proto-lens-protoc program. -}
+{-# LANGUAGE ScopedTypeVariables, DataKinds, TypeFamilies,
+  MultiParamTypeClasses, FlexibleContexts, FlexibleInstances #-}
+{-# OPTIONS_GHC -fno-warn-unused-imports#-}
+module Proto.POGOProtos.Networking.Requests.Messages.MarkTutorialCompleteMessage
+       where
+import qualified Prelude
+import qualified Data.ProtoLens
+import qualified Data.ProtoLens.Message.Enum
+import qualified Lens.Family2
+import qualified Lens.Family2.Unchecked
+import qualified Data.Default.Class
+import qualified Data.Text
+import qualified Data.Int
+import qualified Data.Word
+import qualified Data.Map
+import qualified Data.ByteString
+import qualified Proto.POGOProtos.Enums.TutorialState
+
+data MarkTutorialCompleteMessage = MarkTutorialCompleteMessage{_MarkTutorialCompleteMessage'tutorialsCompleted
+                                                               ::
+                                                               [Proto.POGOProtos.Enums.TutorialState.TutorialState],
+                                                               _MarkTutorialCompleteMessage'sendMarketingEmails
+                                                               :: Prelude.Bool,
+                                                               _MarkTutorialCompleteMessage'sendPushNotifications
+                                                               :: Prelude.Bool}
+                                 deriving (Prelude.Show, Prelude.Eq)
+
+type instance
+     Data.ProtoLens.Field "tutorialsCompleted"
+       MarkTutorialCompleteMessage
+     = [Proto.POGOProtos.Enums.TutorialState.TutorialState]
+
+instance Data.ProtoLens.HasField "tutorialsCompleted"
+         MarkTutorialCompleteMessage MarkTutorialCompleteMessage where
+        field _
+          = Lens.Family2.Unchecked.lens
+              _MarkTutorialCompleteMessage'tutorialsCompleted
+              (\ x__ y__ ->
+                 x__{_MarkTutorialCompleteMessage'tutorialsCompleted = y__})
+
+type instance
+     Data.ProtoLens.Field "sendMarketingEmails"
+       MarkTutorialCompleteMessage
+     = Prelude.Bool
+
+instance Data.ProtoLens.HasField "sendMarketingEmails"
+         MarkTutorialCompleteMessage MarkTutorialCompleteMessage where
+        field _
+          = Lens.Family2.Unchecked.lens
+              _MarkTutorialCompleteMessage'sendMarketingEmails
+              (\ x__ y__ ->
+                 x__{_MarkTutorialCompleteMessage'sendMarketingEmails = y__})
+
+type instance
+     Data.ProtoLens.Field "sendPushNotifications"
+       MarkTutorialCompleteMessage
+     = Prelude.Bool
+
+instance Data.ProtoLens.HasField "sendPushNotifications"
+         MarkTutorialCompleteMessage MarkTutorialCompleteMessage where
+        field _
+          = Lens.Family2.Unchecked.lens
+              _MarkTutorialCompleteMessage'sendPushNotifications
+              (\ x__ y__ ->
+                 x__{_MarkTutorialCompleteMessage'sendPushNotifications = y__})
+
+instance Data.Default.Class.Default MarkTutorialCompleteMessage
+         where
+        def
+          = MarkTutorialCompleteMessage{_MarkTutorialCompleteMessage'tutorialsCompleted
+                                          = [],
+                                        _MarkTutorialCompleteMessage'sendMarketingEmails =
+                                          Data.ProtoLens.fieldDefault,
+                                        _MarkTutorialCompleteMessage'sendPushNotifications =
+                                          Data.ProtoLens.fieldDefault}
+
+instance Data.ProtoLens.Message MarkTutorialCompleteMessage where
+        descriptor
+          = let tutorialsCompleted__field_descriptor
+                  = Data.ProtoLens.FieldDescriptor "tutorials_completed"
+                      (Data.ProtoLens.EnumField ::
+                         Data.ProtoLens.FieldTypeDescriptor
+                           Proto.POGOProtos.Enums.TutorialState.TutorialState)
+                      (Data.ProtoLens.RepeatedField Data.ProtoLens.Unpacked
+                         tutorialsCompleted)
+                sendMarketingEmails__field_descriptor
+                  = Data.ProtoLens.FieldDescriptor "send_marketing_emails"
+                      (Data.ProtoLens.BoolField ::
+                         Data.ProtoLens.FieldTypeDescriptor Prelude.Bool)
+                      (Data.ProtoLens.PlainField Data.ProtoLens.Optional
+                         sendMarketingEmails)
+                sendPushNotifications__field_descriptor
+                  = Data.ProtoLens.FieldDescriptor "send_push_notifications"
+                      (Data.ProtoLens.BoolField ::
+                         Data.ProtoLens.FieldTypeDescriptor Prelude.Bool)
+                      (Data.ProtoLens.PlainField Data.ProtoLens.Optional
+                         sendPushNotifications)
+              in
+              Data.ProtoLens.MessageDescriptor
+                (Data.Map.fromList
+                   [(Data.ProtoLens.Tag 1, tutorialsCompleted__field_descriptor),
+                    (Data.ProtoLens.Tag 2, sendMarketingEmails__field_descriptor),
+                    (Data.ProtoLens.Tag 3, sendPushNotifications__field_descriptor)])
+                (Data.Map.fromList
+                   [("tutorials_completed", tutorialsCompleted__field_descriptor),
+                    ("send_marketing_emails", sendMarketingEmails__field_descriptor),
+                    ("send_push_notifications",
+                     sendPushNotifications__field_descriptor)])
+
+sendMarketingEmails ::
+                    forall msg msg' .
+                      Data.ProtoLens.HasField "sendMarketingEmails" msg msg' =>
+                      Lens.Family2.Lens msg msg'
+                        (Data.ProtoLens.Field "sendMarketingEmails" msg)
+                        (Data.ProtoLens.Field "sendMarketingEmails" msg')
+sendMarketingEmails
+  = Data.ProtoLens.field
+      (Data.ProtoLens.ProxySym ::
+         Data.ProtoLens.ProxySym "sendMarketingEmails")
+
+sendPushNotifications ::
+                      forall msg msg' .
+                        Data.ProtoLens.HasField "sendPushNotifications" msg msg' =>
+                        Lens.Family2.Lens msg msg'
+                          (Data.ProtoLens.Field "sendPushNotifications" msg)
+                          (Data.ProtoLens.Field "sendPushNotifications" msg')
+sendPushNotifications
+  = Data.ProtoLens.field
+      (Data.ProtoLens.ProxySym ::
+         Data.ProtoLens.ProxySym "sendPushNotifications")
+
+tutorialsCompleted ::
+                   forall msg msg' .
+                     Data.ProtoLens.HasField "tutorialsCompleted" msg msg' =>
+                     Lens.Family2.Lens msg msg'
+                       (Data.ProtoLens.Field "tutorialsCompleted" msg)
+                       (Data.ProtoLens.Field "tutorialsCompleted" msg')
+tutorialsCompleted
+  = Data.ProtoLens.field
+      (Data.ProtoLens.ProxySym ::
+         Data.ProtoLens.ProxySym "tutorialsCompleted")
diff --git a/src/Proto/POGOProtos/Networking/Requests/Messages/NicknamePokemonMessage.hs b/src/Proto/POGOProtos/Networking/Requests/Messages/NicknamePokemonMessage.hs
new file mode 100644
--- /dev/null
+++ b/src/Proto/POGOProtos/Networking/Requests/Messages/NicknamePokemonMessage.hs
@@ -0,0 +1,86 @@
+{- This file was auto-generated from POGOProtos/Networking/Requests/Messages/NicknamePokemonMessage.proto by the proto-lens-protoc program. -}
+{-# LANGUAGE ScopedTypeVariables, DataKinds, TypeFamilies,
+  MultiParamTypeClasses, FlexibleContexts, FlexibleInstances #-}
+{-# OPTIONS_GHC -fno-warn-unused-imports#-}
+module Proto.POGOProtos.Networking.Requests.Messages.NicknamePokemonMessage
+       where
+import qualified Prelude
+import qualified Data.ProtoLens
+import qualified Data.ProtoLens.Message.Enum
+import qualified Lens.Family2
+import qualified Lens.Family2.Unchecked
+import qualified Data.Default.Class
+import qualified Data.Text
+import qualified Data.Int
+import qualified Data.Word
+import qualified Data.Map
+import qualified Data.ByteString
+
+data NicknamePokemonMessage = NicknamePokemonMessage{_NicknamePokemonMessage'pokemonId
+                                                     :: Data.Word.Word64,
+                                                     _NicknamePokemonMessage'nickname ::
+                                                     Data.Text.Text}
+                            deriving (Prelude.Show, Prelude.Eq)
+
+type instance
+     Data.ProtoLens.Field "pokemonId" NicknamePokemonMessage =
+     Data.Word.Word64
+
+instance Data.ProtoLens.HasField "pokemonId" NicknamePokemonMessage
+         NicknamePokemonMessage where
+        field _
+          = Lens.Family2.Unchecked.lens _NicknamePokemonMessage'pokemonId
+              (\ x__ y__ -> x__{_NicknamePokemonMessage'pokemonId = y__})
+
+type instance
+     Data.ProtoLens.Field "nickname" NicknamePokemonMessage =
+     Data.Text.Text
+
+instance Data.ProtoLens.HasField "nickname" NicknamePokemonMessage
+         NicknamePokemonMessage where
+        field _
+          = Lens.Family2.Unchecked.lens _NicknamePokemonMessage'nickname
+              (\ x__ y__ -> x__{_NicknamePokemonMessage'nickname = y__})
+
+instance Data.Default.Class.Default NicknamePokemonMessage where
+        def
+          = NicknamePokemonMessage{_NicknamePokemonMessage'pokemonId =
+                                     Data.ProtoLens.fieldDefault,
+                                   _NicknamePokemonMessage'nickname = Data.ProtoLens.fieldDefault}
+
+instance Data.ProtoLens.Message NicknamePokemonMessage where
+        descriptor
+          = let pokemonId__field_descriptor
+                  = Data.ProtoLens.FieldDescriptor "pokemon_id"
+                      (Data.ProtoLens.Fixed64Field ::
+                         Data.ProtoLens.FieldTypeDescriptor Data.Word.Word64)
+                      (Data.ProtoLens.PlainField Data.ProtoLens.Optional pokemonId)
+                nickname__field_descriptor
+                  = Data.ProtoLens.FieldDescriptor "nickname"
+                      (Data.ProtoLens.StringField ::
+                         Data.ProtoLens.FieldTypeDescriptor Data.Text.Text)
+                      (Data.ProtoLens.PlainField Data.ProtoLens.Optional nickname)
+              in
+              Data.ProtoLens.MessageDescriptor
+                (Data.Map.fromList
+                   [(Data.ProtoLens.Tag 1, pokemonId__field_descriptor),
+                    (Data.ProtoLens.Tag 2, nickname__field_descriptor)])
+                (Data.Map.fromList
+                   [("pokemon_id", pokemonId__field_descriptor),
+                    ("nickname", nickname__field_descriptor)])
+
+nickname ::
+         forall msg msg' . Data.ProtoLens.HasField "nickname" msg msg' =>
+           Lens.Family2.Lens msg msg' (Data.ProtoLens.Field "nickname" msg)
+             (Data.ProtoLens.Field "nickname" msg')
+nickname
+  = Data.ProtoLens.field
+      (Data.ProtoLens.ProxySym :: Data.ProtoLens.ProxySym "nickname")
+
+pokemonId ::
+          forall msg msg' . Data.ProtoLens.HasField "pokemonId" msg msg' =>
+            Lens.Family2.Lens msg msg' (Data.ProtoLens.Field "pokemonId" msg)
+              (Data.ProtoLens.Field "pokemonId" msg')
+pokemonId
+  = Data.ProtoLens.field
+      (Data.ProtoLens.ProxySym :: Data.ProtoLens.ProxySym "pokemonId")
diff --git a/src/Proto/POGOProtos/Networking/Requests/Messages/PlayerUpdateMessage.hs b/src/Proto/POGOProtos/Networking/Requests/Messages/PlayerUpdateMessage.hs
new file mode 100644
--- /dev/null
+++ b/src/Proto/POGOProtos/Networking/Requests/Messages/PlayerUpdateMessage.hs
@@ -0,0 +1,83 @@
+{- This file was auto-generated from POGOProtos/Networking/Requests/Messages/PlayerUpdateMessage.proto by the proto-lens-protoc program. -}
+{-# LANGUAGE ScopedTypeVariables, DataKinds, TypeFamilies,
+  MultiParamTypeClasses, FlexibleContexts, FlexibleInstances #-}
+{-# OPTIONS_GHC -fno-warn-unused-imports#-}
+module Proto.POGOProtos.Networking.Requests.Messages.PlayerUpdateMessage
+       where
+import qualified Prelude
+import qualified Data.ProtoLens
+import qualified Data.ProtoLens.Message.Enum
+import qualified Lens.Family2
+import qualified Lens.Family2.Unchecked
+import qualified Data.Default.Class
+import qualified Data.Text
+import qualified Data.Int
+import qualified Data.Word
+import qualified Data.Map
+import qualified Data.ByteString
+
+data PlayerUpdateMessage = PlayerUpdateMessage{_PlayerUpdateMessage'latitude
+                                               :: Prelude.Double,
+                                               _PlayerUpdateMessage'longitude :: Prelude.Double}
+                         deriving (Prelude.Show, Prelude.Eq)
+
+type instance Data.ProtoLens.Field "latitude" PlayerUpdateMessage =
+     Prelude.Double
+
+instance Data.ProtoLens.HasField "latitude" PlayerUpdateMessage
+         PlayerUpdateMessage where
+        field _
+          = Lens.Family2.Unchecked.lens _PlayerUpdateMessage'latitude
+              (\ x__ y__ -> x__{_PlayerUpdateMessage'latitude = y__})
+
+type instance Data.ProtoLens.Field "longitude" PlayerUpdateMessage
+     = Prelude.Double
+
+instance Data.ProtoLens.HasField "longitude" PlayerUpdateMessage
+         PlayerUpdateMessage where
+        field _
+          = Lens.Family2.Unchecked.lens _PlayerUpdateMessage'longitude
+              (\ x__ y__ -> x__{_PlayerUpdateMessage'longitude = y__})
+
+instance Data.Default.Class.Default PlayerUpdateMessage where
+        def
+          = PlayerUpdateMessage{_PlayerUpdateMessage'latitude =
+                                  Data.ProtoLens.fieldDefault,
+                                _PlayerUpdateMessage'longitude = Data.ProtoLens.fieldDefault}
+
+instance Data.ProtoLens.Message PlayerUpdateMessage where
+        descriptor
+          = let latitude__field_descriptor
+                  = Data.ProtoLens.FieldDescriptor "latitude"
+                      (Data.ProtoLens.DoubleField ::
+                         Data.ProtoLens.FieldTypeDescriptor Prelude.Double)
+                      (Data.ProtoLens.PlainField Data.ProtoLens.Optional latitude)
+                longitude__field_descriptor
+                  = Data.ProtoLens.FieldDescriptor "longitude"
+                      (Data.ProtoLens.DoubleField ::
+                         Data.ProtoLens.FieldTypeDescriptor Prelude.Double)
+                      (Data.ProtoLens.PlainField Data.ProtoLens.Optional longitude)
+              in
+              Data.ProtoLens.MessageDescriptor
+                (Data.Map.fromList
+                   [(Data.ProtoLens.Tag 1, latitude__field_descriptor),
+                    (Data.ProtoLens.Tag 2, longitude__field_descriptor)])
+                (Data.Map.fromList
+                   [("latitude", latitude__field_descriptor),
+                    ("longitude", longitude__field_descriptor)])
+
+latitude ::
+         forall msg msg' . Data.ProtoLens.HasField "latitude" msg msg' =>
+           Lens.Family2.Lens msg msg' (Data.ProtoLens.Field "latitude" msg)
+             (Data.ProtoLens.Field "latitude" msg')
+latitude
+  = Data.ProtoLens.field
+      (Data.ProtoLens.ProxySym :: Data.ProtoLens.ProxySym "latitude")
+
+longitude ::
+          forall msg msg' . Data.ProtoLens.HasField "longitude" msg msg' =>
+            Lens.Family2.Lens msg msg' (Data.ProtoLens.Field "longitude" msg)
+              (Data.ProtoLens.Field "longitude" msg')
+longitude
+  = Data.ProtoLens.field
+      (Data.ProtoLens.ProxySym :: Data.ProtoLens.ProxySym "longitude")
diff --git a/src/Proto/POGOProtos/Networking/Requests/Messages/RecycleInventoryItemMessage.hs b/src/Proto/POGOProtos/Networking/Requests/Messages/RecycleInventoryItemMessage.hs
new file mode 100644
--- /dev/null
+++ b/src/Proto/POGOProtos/Networking/Requests/Messages/RecycleInventoryItemMessage.hs
@@ -0,0 +1,91 @@
+{- This file was auto-generated from POGOProtos/Networking/Requests/Messages/RecycleInventoryItemMessage.proto by the proto-lens-protoc program. -}
+{-# LANGUAGE ScopedTypeVariables, DataKinds, TypeFamilies,
+  MultiParamTypeClasses, FlexibleContexts, FlexibleInstances #-}
+{-# OPTIONS_GHC -fno-warn-unused-imports#-}
+module Proto.POGOProtos.Networking.Requests.Messages.RecycleInventoryItemMessage
+       where
+import qualified Prelude
+import qualified Data.ProtoLens
+import qualified Data.ProtoLens.Message.Enum
+import qualified Lens.Family2
+import qualified Lens.Family2.Unchecked
+import qualified Data.Default.Class
+import qualified Data.Text
+import qualified Data.Int
+import qualified Data.Word
+import qualified Data.Map
+import qualified Data.ByteString
+import qualified Proto.POGOProtos.Inventory.Item.ItemId
+
+data RecycleInventoryItemMessage = RecycleInventoryItemMessage{_RecycleInventoryItemMessage'itemId
+                                                               ::
+                                                               Proto.POGOProtos.Inventory.Item.ItemId.ItemId,
+                                                               _RecycleInventoryItemMessage'count ::
+                                                               Data.Int.Int32}
+                                 deriving (Prelude.Show, Prelude.Eq)
+
+type instance
+     Data.ProtoLens.Field "itemId" RecycleInventoryItemMessage =
+     Proto.POGOProtos.Inventory.Item.ItemId.ItemId
+
+instance Data.ProtoLens.HasField "itemId"
+         RecycleInventoryItemMessage RecycleInventoryItemMessage where
+        field _
+          = Lens.Family2.Unchecked.lens _RecycleInventoryItemMessage'itemId
+              (\ x__ y__ -> x__{_RecycleInventoryItemMessage'itemId = y__})
+
+type instance
+     Data.ProtoLens.Field "count" RecycleInventoryItemMessage =
+     Data.Int.Int32
+
+instance Data.ProtoLens.HasField "count"
+         RecycleInventoryItemMessage RecycleInventoryItemMessage where
+        field _
+          = Lens.Family2.Unchecked.lens _RecycleInventoryItemMessage'count
+              (\ x__ y__ -> x__{_RecycleInventoryItemMessage'count = y__})
+
+instance Data.Default.Class.Default RecycleInventoryItemMessage
+         where
+        def
+          = RecycleInventoryItemMessage{_RecycleInventoryItemMessage'itemId =
+                                          Data.Default.Class.def,
+                                        _RecycleInventoryItemMessage'count =
+                                          Data.ProtoLens.fieldDefault}
+
+instance Data.ProtoLens.Message RecycleInventoryItemMessage where
+        descriptor
+          = let itemId__field_descriptor
+                  = Data.ProtoLens.FieldDescriptor "item_id"
+                      (Data.ProtoLens.EnumField ::
+                         Data.ProtoLens.FieldTypeDescriptor
+                           Proto.POGOProtos.Inventory.Item.ItemId.ItemId)
+                      (Data.ProtoLens.PlainField Data.ProtoLens.Optional itemId)
+                count__field_descriptor
+                  = Data.ProtoLens.FieldDescriptor "count"
+                      (Data.ProtoLens.Int32Field ::
+                         Data.ProtoLens.FieldTypeDescriptor Data.Int.Int32)
+                      (Data.ProtoLens.PlainField Data.ProtoLens.Optional count)
+              in
+              Data.ProtoLens.MessageDescriptor
+                (Data.Map.fromList
+                   [(Data.ProtoLens.Tag 1, itemId__field_descriptor),
+                    (Data.ProtoLens.Tag 2, count__field_descriptor)])
+                (Data.Map.fromList
+                   [("item_id", itemId__field_descriptor),
+                    ("count", count__field_descriptor)])
+
+count ::
+      forall msg msg' . Data.ProtoLens.HasField "count" msg msg' =>
+        Lens.Family2.Lens msg msg' (Data.ProtoLens.Field "count" msg)
+          (Data.ProtoLens.Field "count" msg')
+count
+  = Data.ProtoLens.field
+      (Data.ProtoLens.ProxySym :: Data.ProtoLens.ProxySym "count")
+
+itemId ::
+       forall msg msg' . Data.ProtoLens.HasField "itemId" msg msg' =>
+         Lens.Family2.Lens msg msg' (Data.ProtoLens.Field "itemId" msg)
+           (Data.ProtoLens.Field "itemId" msg')
+itemId
+  = Data.ProtoLens.field
+      (Data.ProtoLens.ProxySym :: Data.ProtoLens.ProxySym "itemId")
diff --git a/src/Proto/POGOProtos/Networking/Requests/Messages/ReleasePokemonMessage.hs b/src/Proto/POGOProtos/Networking/Requests/Messages/ReleasePokemonMessage.hs
new file mode 100644
--- /dev/null
+++ b/src/Proto/POGOProtos/Networking/Requests/Messages/ReleasePokemonMessage.hs
@@ -0,0 +1,57 @@
+{- This file was auto-generated from POGOProtos/Networking/Requests/Messages/ReleasePokemonMessage.proto by the proto-lens-protoc program. -}
+{-# LANGUAGE ScopedTypeVariables, DataKinds, TypeFamilies,
+  MultiParamTypeClasses, FlexibleContexts, FlexibleInstances #-}
+{-# OPTIONS_GHC -fno-warn-unused-imports#-}
+module Proto.POGOProtos.Networking.Requests.Messages.ReleasePokemonMessage
+       where
+import qualified Prelude
+import qualified Data.ProtoLens
+import qualified Data.ProtoLens.Message.Enum
+import qualified Lens.Family2
+import qualified Lens.Family2.Unchecked
+import qualified Data.Default.Class
+import qualified Data.Text
+import qualified Data.Int
+import qualified Data.Word
+import qualified Data.Map
+import qualified Data.ByteString
+
+data ReleasePokemonMessage = ReleasePokemonMessage{_ReleasePokemonMessage'pokemonId
+                                                   :: Data.Word.Word64}
+                           deriving (Prelude.Show, Prelude.Eq)
+
+type instance
+     Data.ProtoLens.Field "pokemonId" ReleasePokemonMessage =
+     Data.Word.Word64
+
+instance Data.ProtoLens.HasField "pokemonId" ReleasePokemonMessage
+         ReleasePokemonMessage where
+        field _
+          = Lens.Family2.Unchecked.lens _ReleasePokemonMessage'pokemonId
+              (\ x__ y__ -> x__{_ReleasePokemonMessage'pokemonId = y__})
+
+instance Data.Default.Class.Default ReleasePokemonMessage where
+        def
+          = ReleasePokemonMessage{_ReleasePokemonMessage'pokemonId =
+                                    Data.ProtoLens.fieldDefault}
+
+instance Data.ProtoLens.Message ReleasePokemonMessage where
+        descriptor
+          = let pokemonId__field_descriptor
+                  = Data.ProtoLens.FieldDescriptor "pokemon_id"
+                      (Data.ProtoLens.Fixed64Field ::
+                         Data.ProtoLens.FieldTypeDescriptor Data.Word.Word64)
+                      (Data.ProtoLens.PlainField Data.ProtoLens.Optional pokemonId)
+              in
+              Data.ProtoLens.MessageDescriptor
+                (Data.Map.fromList
+                   [(Data.ProtoLens.Tag 1, pokemonId__field_descriptor)])
+                (Data.Map.fromList [("pokemon_id", pokemonId__field_descriptor)])
+
+pokemonId ::
+          forall msg msg' . Data.ProtoLens.HasField "pokemonId" msg msg' =>
+            Lens.Family2.Lens msg msg' (Data.ProtoLens.Field "pokemonId" msg)
+              (Data.ProtoLens.Field "pokemonId" msg')
+pokemonId
+  = Data.ProtoLens.field
+      (Data.ProtoLens.ProxySym :: Data.ProtoLens.ProxySym "pokemonId")
diff --git a/src/Proto/POGOProtos/Networking/Requests/Messages/SetAvatarMessage.hs b/src/Proto/POGOProtos/Networking/Requests/Messages/SetAvatarMessage.hs
new file mode 100644
--- /dev/null
+++ b/src/Proto/POGOProtos/Networking/Requests/Messages/SetAvatarMessage.hs
@@ -0,0 +1,85 @@
+{- This file was auto-generated from POGOProtos/Networking/Requests/Messages/SetAvatarMessage.proto by the proto-lens-protoc program. -}
+{-# LANGUAGE ScopedTypeVariables, DataKinds, TypeFamilies,
+  MultiParamTypeClasses, FlexibleContexts, FlexibleInstances #-}
+{-# OPTIONS_GHC -fno-warn-unused-imports#-}
+module Proto.POGOProtos.Networking.Requests.Messages.SetAvatarMessage
+       where
+import qualified Prelude
+import qualified Data.ProtoLens
+import qualified Data.ProtoLens.Message.Enum
+import qualified Lens.Family2
+import qualified Lens.Family2.Unchecked
+import qualified Data.Default.Class
+import qualified Data.Text
+import qualified Data.Int
+import qualified Data.Word
+import qualified Data.Map
+import qualified Data.ByteString
+import qualified Proto.POGOProtos.Data.Player.PlayerAvatar
+
+data SetAvatarMessage = SetAvatarMessage{_SetAvatarMessage'playerAvatar
+                                         ::
+                                         Prelude.Maybe
+                                           Proto.POGOProtos.Data.Player.PlayerAvatar.PlayerAvatar}
+                      deriving (Prelude.Show, Prelude.Eq)
+
+type instance Data.ProtoLens.Field "playerAvatar" SetAvatarMessage
+     = Proto.POGOProtos.Data.Player.PlayerAvatar.PlayerAvatar
+
+instance Data.ProtoLens.HasField "playerAvatar" SetAvatarMessage
+         SetAvatarMessage where
+        field _
+          = (Prelude..) maybe'playerAvatar
+              (Data.ProtoLens.maybeLens Data.Default.Class.def)
+
+type instance
+     Data.ProtoLens.Field "maybe'playerAvatar" SetAvatarMessage =
+     Prelude.Maybe
+       Proto.POGOProtos.Data.Player.PlayerAvatar.PlayerAvatar
+
+instance Data.ProtoLens.HasField "maybe'playerAvatar"
+         SetAvatarMessage SetAvatarMessage where
+        field _
+          = Lens.Family2.Unchecked.lens _SetAvatarMessage'playerAvatar
+              (\ x__ y__ -> x__{_SetAvatarMessage'playerAvatar = y__})
+
+instance Data.Default.Class.Default SetAvatarMessage where
+        def
+          = SetAvatarMessage{_SetAvatarMessage'playerAvatar =
+                               Prelude.Nothing}
+
+instance Data.ProtoLens.Message SetAvatarMessage where
+        descriptor
+          = let playerAvatar__field_descriptor
+                  = Data.ProtoLens.FieldDescriptor "player_avatar"
+                      (Data.ProtoLens.MessageField ::
+                         Data.ProtoLens.FieldTypeDescriptor
+                           Proto.POGOProtos.Data.Player.PlayerAvatar.PlayerAvatar)
+                      (Data.ProtoLens.OptionalField maybe'playerAvatar)
+              in
+              Data.ProtoLens.MessageDescriptor
+                (Data.Map.fromList
+                   [(Data.ProtoLens.Tag 2, playerAvatar__field_descriptor)])
+                (Data.Map.fromList
+                   [("player_avatar", playerAvatar__field_descriptor)])
+
+maybe'playerAvatar ::
+                   forall msg msg' .
+                     Data.ProtoLens.HasField "maybe'playerAvatar" msg msg' =>
+                     Lens.Family2.Lens msg msg'
+                       (Data.ProtoLens.Field "maybe'playerAvatar" msg)
+                       (Data.ProtoLens.Field "maybe'playerAvatar" msg')
+maybe'playerAvatar
+  = Data.ProtoLens.field
+      (Data.ProtoLens.ProxySym ::
+         Data.ProtoLens.ProxySym "maybe'playerAvatar")
+
+playerAvatar ::
+             forall msg msg' .
+               Data.ProtoLens.HasField "playerAvatar" msg msg' =>
+               Lens.Family2.Lens msg msg'
+                 (Data.ProtoLens.Field "playerAvatar" msg)
+                 (Data.ProtoLens.Field "playerAvatar" msg')
+playerAvatar
+  = Data.ProtoLens.field
+      (Data.ProtoLens.ProxySym :: Data.ProtoLens.ProxySym "playerAvatar")
diff --git a/src/Proto/POGOProtos/Networking/Requests/Messages/SetContactSettingsMessage.hs b/src/Proto/POGOProtos/Networking/Requests/Messages/SetContactSettingsMessage.hs
new file mode 100644
--- /dev/null
+++ b/src/Proto/POGOProtos/Networking/Requests/Messages/SetContactSettingsMessage.hs
@@ -0,0 +1,91 @@
+{- This file was auto-generated from POGOProtos/Networking/Requests/Messages/SetContactSettingsMessage.proto by the proto-lens-protoc program. -}
+{-# LANGUAGE ScopedTypeVariables, DataKinds, TypeFamilies,
+  MultiParamTypeClasses, FlexibleContexts, FlexibleInstances #-}
+{-# OPTIONS_GHC -fno-warn-unused-imports#-}
+module Proto.POGOProtos.Networking.Requests.Messages.SetContactSettingsMessage
+       where
+import qualified Prelude
+import qualified Data.ProtoLens
+import qualified Data.ProtoLens.Message.Enum
+import qualified Lens.Family2
+import qualified Lens.Family2.Unchecked
+import qualified Data.Default.Class
+import qualified Data.Text
+import qualified Data.Int
+import qualified Data.Word
+import qualified Data.Map
+import qualified Data.ByteString
+import qualified Proto.POGOProtos.Data.Player.ContactSettings
+
+data SetContactSettingsMessage = SetContactSettingsMessage{_SetContactSettingsMessage'contactSettings
+                                                           ::
+                                                           Prelude.Maybe
+                                                             Proto.POGOProtos.Data.Player.ContactSettings.ContactSettings}
+                               deriving (Prelude.Show, Prelude.Eq)
+
+type instance
+     Data.ProtoLens.Field "contactSettings" SetContactSettingsMessage =
+     Proto.POGOProtos.Data.Player.ContactSettings.ContactSettings
+
+instance Data.ProtoLens.HasField "contactSettings"
+         SetContactSettingsMessage SetContactSettingsMessage where
+        field _
+          = (Prelude..) maybe'contactSettings
+              (Data.ProtoLens.maybeLens Data.Default.Class.def)
+
+type instance
+     Data.ProtoLens.Field "maybe'contactSettings"
+       SetContactSettingsMessage
+     =
+     Prelude.Maybe
+       Proto.POGOProtos.Data.Player.ContactSettings.ContactSettings
+
+instance Data.ProtoLens.HasField "maybe'contactSettings"
+         SetContactSettingsMessage SetContactSettingsMessage where
+        field _
+          = Lens.Family2.Unchecked.lens
+              _SetContactSettingsMessage'contactSettings
+              (\ x__ y__ ->
+                 x__{_SetContactSettingsMessage'contactSettings = y__})
+
+instance Data.Default.Class.Default SetContactSettingsMessage where
+        def
+          = SetContactSettingsMessage{_SetContactSettingsMessage'contactSettings
+                                        = Prelude.Nothing}
+
+instance Data.ProtoLens.Message SetContactSettingsMessage where
+        descriptor
+          = let contactSettings__field_descriptor
+                  = Data.ProtoLens.FieldDescriptor "contact_settings"
+                      (Data.ProtoLens.MessageField ::
+                         Data.ProtoLens.FieldTypeDescriptor
+                           Proto.POGOProtos.Data.Player.ContactSettings.ContactSettings)
+                      (Data.ProtoLens.OptionalField maybe'contactSettings)
+              in
+              Data.ProtoLens.MessageDescriptor
+                (Data.Map.fromList
+                   [(Data.ProtoLens.Tag 1, contactSettings__field_descriptor)])
+                (Data.Map.fromList
+                   [("contact_settings", contactSettings__field_descriptor)])
+
+contactSettings ::
+                forall msg msg' .
+                  Data.ProtoLens.HasField "contactSettings" msg msg' =>
+                  Lens.Family2.Lens msg msg'
+                    (Data.ProtoLens.Field "contactSettings" msg)
+                    (Data.ProtoLens.Field "contactSettings" msg')
+contactSettings
+  = Data.ProtoLens.field
+      (Data.ProtoLens.ProxySym ::
+         Data.ProtoLens.ProxySym "contactSettings")
+
+maybe'contactSettings ::
+                      forall msg msg' .
+                        Data.ProtoLens.HasField "maybe'contactSettings" msg msg' =>
+                        Lens.Family2.Lens msg msg'
+                          (Data.ProtoLens.Field "maybe'contactSettings" msg)
+                          (Data.ProtoLens.Field "maybe'contactSettings" msg')
+maybe'contactSettings
+  = Data.ProtoLens.field
+      (Data.ProtoLens.ProxySym ::
+         Data.ProtoLens.ProxySym "maybe'contactSettings")
diff --git a/src/Proto/POGOProtos/Networking/Requests/Messages/SetFavoritePokemonMessage.hs b/src/Proto/POGOProtos/Networking/Requests/Messages/SetFavoritePokemonMessage.hs
new file mode 100644
--- /dev/null
+++ b/src/Proto/POGOProtos/Networking/Requests/Messages/SetFavoritePokemonMessage.hs
@@ -0,0 +1,87 @@
+{- This file was auto-generated from POGOProtos/Networking/Requests/Messages/SetFavoritePokemonMessage.proto by the proto-lens-protoc program. -}
+{-# LANGUAGE ScopedTypeVariables, DataKinds, TypeFamilies,
+  MultiParamTypeClasses, FlexibleContexts, FlexibleInstances #-}
+{-# OPTIONS_GHC -fno-warn-unused-imports#-}
+module Proto.POGOProtos.Networking.Requests.Messages.SetFavoritePokemonMessage
+       where
+import qualified Prelude
+import qualified Data.ProtoLens
+import qualified Data.ProtoLens.Message.Enum
+import qualified Lens.Family2
+import qualified Lens.Family2.Unchecked
+import qualified Data.Default.Class
+import qualified Data.Text
+import qualified Data.Int
+import qualified Data.Word
+import qualified Data.Map
+import qualified Data.ByteString
+
+data SetFavoritePokemonMessage = SetFavoritePokemonMessage{_SetFavoritePokemonMessage'pokemonId
+                                                           :: Data.Word.Word64,
+                                                           _SetFavoritePokemonMessage'isFavorite ::
+                                                           Prelude.Bool}
+                               deriving (Prelude.Show, Prelude.Eq)
+
+type instance
+     Data.ProtoLens.Field "pokemonId" SetFavoritePokemonMessage =
+     Data.Word.Word64
+
+instance Data.ProtoLens.HasField "pokemonId"
+         SetFavoritePokemonMessage SetFavoritePokemonMessage where
+        field _
+          = Lens.Family2.Unchecked.lens _SetFavoritePokemonMessage'pokemonId
+              (\ x__ y__ -> x__{_SetFavoritePokemonMessage'pokemonId = y__})
+
+type instance
+     Data.ProtoLens.Field "isFavorite" SetFavoritePokemonMessage =
+     Prelude.Bool
+
+instance Data.ProtoLens.HasField "isFavorite"
+         SetFavoritePokemonMessage SetFavoritePokemonMessage where
+        field _
+          = Lens.Family2.Unchecked.lens _SetFavoritePokemonMessage'isFavorite
+              (\ x__ y__ -> x__{_SetFavoritePokemonMessage'isFavorite = y__})
+
+instance Data.Default.Class.Default SetFavoritePokemonMessage where
+        def
+          = SetFavoritePokemonMessage{_SetFavoritePokemonMessage'pokemonId =
+                                        Data.ProtoLens.fieldDefault,
+                                      _SetFavoritePokemonMessage'isFavorite =
+                                        Data.ProtoLens.fieldDefault}
+
+instance Data.ProtoLens.Message SetFavoritePokemonMessage where
+        descriptor
+          = let pokemonId__field_descriptor
+                  = Data.ProtoLens.FieldDescriptor "pokemon_id"
+                      (Data.ProtoLens.Fixed64Field ::
+                         Data.ProtoLens.FieldTypeDescriptor Data.Word.Word64)
+                      (Data.ProtoLens.PlainField Data.ProtoLens.Optional pokemonId)
+                isFavorite__field_descriptor
+                  = Data.ProtoLens.FieldDescriptor "is_favorite"
+                      (Data.ProtoLens.BoolField ::
+                         Data.ProtoLens.FieldTypeDescriptor Prelude.Bool)
+                      (Data.ProtoLens.PlainField Data.ProtoLens.Optional isFavorite)
+              in
+              Data.ProtoLens.MessageDescriptor
+                (Data.Map.fromList
+                   [(Data.ProtoLens.Tag 1, pokemonId__field_descriptor),
+                    (Data.ProtoLens.Tag 2, isFavorite__field_descriptor)])
+                (Data.Map.fromList
+                   [("pokemon_id", pokemonId__field_descriptor),
+                    ("is_favorite", isFavorite__field_descriptor)])
+
+isFavorite ::
+           forall msg msg' . Data.ProtoLens.HasField "isFavorite" msg msg' =>
+             Lens.Family2.Lens msg msg' (Data.ProtoLens.Field "isFavorite" msg)
+               (Data.ProtoLens.Field "isFavorite" msg')
+isFavorite
+  = Data.ProtoLens.field
+      (Data.ProtoLens.ProxySym :: Data.ProtoLens.ProxySym "isFavorite")
+
+pokemonId ::
+          forall msg msg' . Data.ProtoLens.HasField "pokemonId" msg msg' =>
+            Lens.Family2.Lens msg msg' (Data.ProtoLens.Field "pokemonId" msg)
+              (Data.ProtoLens.Field "pokemonId" msg')
+pokemonId
+  = Data.ProtoLens.field
+      (Data.ProtoLens.ProxySym :: Data.ProtoLens.ProxySym "pokemonId")
diff --git a/src/Proto/POGOProtos/Networking/Requests/Messages/SetPlayerTeamMessage.hs b/src/Proto/POGOProtos/Networking/Requests/Messages/SetPlayerTeamMessage.hs
new file mode 100644
--- /dev/null
+++ b/src/Proto/POGOProtos/Networking/Requests/Messages/SetPlayerTeamMessage.hs
@@ -0,0 +1,58 @@
+{- This file was auto-generated from POGOProtos/Networking/Requests/Messages/SetPlayerTeamMessage.proto by the proto-lens-protoc program. -}
+{-# LANGUAGE ScopedTypeVariables, DataKinds, TypeFamilies,
+  MultiParamTypeClasses, FlexibleContexts, FlexibleInstances #-}
+{-# OPTIONS_GHC -fno-warn-unused-imports#-}
+module Proto.POGOProtos.Networking.Requests.Messages.SetPlayerTeamMessage
+       where
+import qualified Prelude
+import qualified Data.ProtoLens
+import qualified Data.ProtoLens.Message.Enum
+import qualified Lens.Family2
+import qualified Lens.Family2.Unchecked
+import qualified Data.Default.Class
+import qualified Data.Text
+import qualified Data.Int
+import qualified Data.Word
+import qualified Data.Map
+import qualified Data.ByteString
+import qualified Proto.POGOProtos.Enums.TeamColor
+
+data SetPlayerTeamMessage = SetPlayerTeamMessage{_SetPlayerTeamMessage'team
+                                                 :: Proto.POGOProtos.Enums.TeamColor.TeamColor}
+                          deriving (Prelude.Show, Prelude.Eq)
+
+type instance Data.ProtoLens.Field "team" SetPlayerTeamMessage =
+     Proto.POGOProtos.Enums.TeamColor.TeamColor
+
+instance Data.ProtoLens.HasField "team" SetPlayerTeamMessage
+         SetPlayerTeamMessage where
+        field _
+          = Lens.Family2.Unchecked.lens _SetPlayerTeamMessage'team
+              (\ x__ y__ -> x__{_SetPlayerTeamMessage'team = y__})
+
+instance Data.Default.Class.Default SetPlayerTeamMessage where
+        def
+          = SetPlayerTeamMessage{_SetPlayerTeamMessage'team =
+                                   Data.Default.Class.def}
+
+instance Data.ProtoLens.Message SetPlayerTeamMessage where
+        descriptor
+          = let team__field_descriptor
+                  = Data.ProtoLens.FieldDescriptor "team"
+                      (Data.ProtoLens.EnumField ::
+                         Data.ProtoLens.FieldTypeDescriptor
+                           Proto.POGOProtos.Enums.TeamColor.TeamColor)
+                      (Data.ProtoLens.PlainField Data.ProtoLens.Optional team)
+              in
+              Data.ProtoLens.MessageDescriptor
+                (Data.Map.fromList
+                   [(Data.ProtoLens.Tag 1, team__field_descriptor)])
+                (Data.Map.fromList [("team", team__field_descriptor)])
+
+team ::
+     forall msg msg' . Data.ProtoLens.HasField "team" msg msg' =>
+       Lens.Family2.Lens msg msg' (Data.ProtoLens.Field "team" msg)
+         (Data.ProtoLens.Field "team" msg')
+team
+  = Data.ProtoLens.field
+      (Data.ProtoLens.ProxySym :: Data.ProtoLens.ProxySym "team")
diff --git a/src/Proto/POGOProtos/Networking/Requests/Messages/SfidaActionLogMessage.hs b/src/Proto/POGOProtos/Networking/Requests/Messages/SfidaActionLogMessage.hs
new file mode 100644
--- /dev/null
+++ b/src/Proto/POGOProtos/Networking/Requests/Messages/SfidaActionLogMessage.hs
@@ -0,0 +1,29 @@
+{- This file was auto-generated from POGOProtos/Networking/Requests/Messages/SfidaActionLogMessage.proto by the proto-lens-protoc program. -}
+{-# LANGUAGE ScopedTypeVariables, DataKinds, TypeFamilies,
+  MultiParamTypeClasses, FlexibleContexts, FlexibleInstances #-}
+{-# OPTIONS_GHC -fno-warn-unused-imports#-}
+module Proto.POGOProtos.Networking.Requests.Messages.SfidaActionLogMessage
+       where
+import qualified Prelude
+import qualified Data.ProtoLens
+import qualified Data.ProtoLens.Message.Enum
+import qualified Lens.Family2
+import qualified Lens.Family2.Unchecked
+import qualified Data.Default.Class
+import qualified Data.Text
+import qualified Data.Int
+import qualified Data.Word
+import qualified Data.Map
+import qualified Data.ByteString
+
+data SfidaActionLogMessage = SfidaActionLogMessage{}
+                           deriving (Prelude.Show, Prelude.Eq)
+
+instance Data.Default.Class.Default SfidaActionLogMessage where
+        def = SfidaActionLogMessage{}
+
+instance Data.ProtoLens.Message SfidaActionLogMessage where
+        descriptor
+          = let in
+              Data.ProtoLens.MessageDescriptor (Data.Map.fromList [])
+                (Data.Map.fromList [])
diff --git a/src/Proto/POGOProtos/Networking/Requests/Messages/StartGymBattleMessage.hs b/src/Proto/POGOProtos/Networking/Requests/Messages/StartGymBattleMessage.hs
new file mode 100644
--- /dev/null
+++ b/src/Proto/POGOProtos/Networking/Requests/Messages/StartGymBattleMessage.hs
@@ -0,0 +1,190 @@
+{- This file was auto-generated from POGOProtos/Networking/Requests/Messages/StartGymBattleMessage.proto by the proto-lens-protoc program. -}
+{-# LANGUAGE ScopedTypeVariables, DataKinds, TypeFamilies,
+  MultiParamTypeClasses, FlexibleContexts, FlexibleInstances #-}
+{-# OPTIONS_GHC -fno-warn-unused-imports#-}
+module Proto.POGOProtos.Networking.Requests.Messages.StartGymBattleMessage
+       where
+import qualified Prelude
+import qualified Data.ProtoLens
+import qualified Data.ProtoLens.Message.Enum
+import qualified Lens.Family2
+import qualified Lens.Family2.Unchecked
+import qualified Data.Default.Class
+import qualified Data.Text
+import qualified Data.Int
+import qualified Data.Word
+import qualified Data.Map
+import qualified Data.ByteString
+
+data StartGymBattleMessage = StartGymBattleMessage{_StartGymBattleMessage'gymId
+                                                   :: Data.Text.Text,
+                                                   _StartGymBattleMessage'attackingPokemonIds ::
+                                                   [Data.Word.Word64],
+                                                   _StartGymBattleMessage'defendingPokemonId ::
+                                                   Data.Word.Word64,
+                                                   _StartGymBattleMessage'playerLatitude ::
+                                                   Prelude.Double,
+                                                   _StartGymBattleMessage'playerLongitude ::
+                                                   Prelude.Double}
+                           deriving (Prelude.Show, Prelude.Eq)
+
+type instance Data.ProtoLens.Field "gymId" StartGymBattleMessage =
+     Data.Text.Text
+
+instance Data.ProtoLens.HasField "gymId" StartGymBattleMessage
+         StartGymBattleMessage where
+        field _
+          = Lens.Family2.Unchecked.lens _StartGymBattleMessage'gymId
+              (\ x__ y__ -> x__{_StartGymBattleMessage'gymId = y__})
+
+type instance
+     Data.ProtoLens.Field "attackingPokemonIds" StartGymBattleMessage =
+     [Data.Word.Word64]
+
+instance Data.ProtoLens.HasField "attackingPokemonIds"
+         StartGymBattleMessage StartGymBattleMessage where
+        field _
+          = Lens.Family2.Unchecked.lens
+              _StartGymBattleMessage'attackingPokemonIds
+              (\ x__ y__ ->
+                 x__{_StartGymBattleMessage'attackingPokemonIds = y__})
+
+type instance
+     Data.ProtoLens.Field "defendingPokemonId" StartGymBattleMessage =
+     Data.Word.Word64
+
+instance Data.ProtoLens.HasField "defendingPokemonId"
+         StartGymBattleMessage StartGymBattleMessage where
+        field _
+          = Lens.Family2.Unchecked.lens
+              _StartGymBattleMessage'defendingPokemonId
+              (\ x__ y__ -> x__{_StartGymBattleMessage'defendingPokemonId = y__})
+
+type instance
+     Data.ProtoLens.Field "playerLatitude" StartGymBattleMessage =
+     Prelude.Double
+
+instance Data.ProtoLens.HasField "playerLatitude"
+         StartGymBattleMessage StartGymBattleMessage where
+        field _
+          = Lens.Family2.Unchecked.lens _StartGymBattleMessage'playerLatitude
+              (\ x__ y__ -> x__{_StartGymBattleMessage'playerLatitude = y__})
+
+type instance
+     Data.ProtoLens.Field "playerLongitude" StartGymBattleMessage =
+     Prelude.Double
+
+instance Data.ProtoLens.HasField "playerLongitude"
+         StartGymBattleMessage StartGymBattleMessage where
+        field _
+          = Lens.Family2.Unchecked.lens
+              _StartGymBattleMessage'playerLongitude
+              (\ x__ y__ -> x__{_StartGymBattleMessage'playerLongitude = y__})
+
+instance Data.Default.Class.Default StartGymBattleMessage where
+        def
+          = StartGymBattleMessage{_StartGymBattleMessage'gymId =
+                                    Data.ProtoLens.fieldDefault,
+                                  _StartGymBattleMessage'attackingPokemonIds = [],
+                                  _StartGymBattleMessage'defendingPokemonId =
+                                    Data.ProtoLens.fieldDefault,
+                                  _StartGymBattleMessage'playerLatitude =
+                                    Data.ProtoLens.fieldDefault,
+                                  _StartGymBattleMessage'playerLongitude =
+                                    Data.ProtoLens.fieldDefault}
+
+instance Data.ProtoLens.Message StartGymBattleMessage where
+        descriptor
+          = let gymId__field_descriptor
+                  = Data.ProtoLens.FieldDescriptor "gym_id"
+                      (Data.ProtoLens.StringField ::
+                         Data.ProtoLens.FieldTypeDescriptor Data.Text.Text)
+                      (Data.ProtoLens.PlainField Data.ProtoLens.Optional gymId)
+                attackingPokemonIds__field_descriptor
+                  = Data.ProtoLens.FieldDescriptor "attacking_pokemon_ids"
+                      (Data.ProtoLens.Fixed64Field ::
+                         Data.ProtoLens.FieldTypeDescriptor Data.Word.Word64)
+                      (Data.ProtoLens.RepeatedField Data.ProtoLens.Unpacked
+                         attackingPokemonIds)
+                defendingPokemonId__field_descriptor
+                  = Data.ProtoLens.FieldDescriptor "defending_pokemon_id"
+                      (Data.ProtoLens.UInt64Field ::
+                         Data.ProtoLens.FieldTypeDescriptor Data.Word.Word64)
+                      (Data.ProtoLens.PlainField Data.ProtoLens.Optional
+                         defendingPokemonId)
+                playerLatitude__field_descriptor
+                  = Data.ProtoLens.FieldDescriptor "player_latitude"
+                      (Data.ProtoLens.DoubleField ::
+                         Data.ProtoLens.FieldTypeDescriptor Prelude.Double)
+                      (Data.ProtoLens.PlainField Data.ProtoLens.Optional playerLatitude)
+                playerLongitude__field_descriptor
+                  = Data.ProtoLens.FieldDescriptor "player_longitude"
+                      (Data.ProtoLens.DoubleField ::
+                         Data.ProtoLens.FieldTypeDescriptor Prelude.Double)
+                      (Data.ProtoLens.PlainField Data.ProtoLens.Optional playerLongitude)
+              in
+              Data.ProtoLens.MessageDescriptor
+                (Data.Map.fromList
+                   [(Data.ProtoLens.Tag 1, gymId__field_descriptor),
+                    (Data.ProtoLens.Tag 2, attackingPokemonIds__field_descriptor),
+                    (Data.ProtoLens.Tag 3, defendingPokemonId__field_descriptor),
+                    (Data.ProtoLens.Tag 4, playerLatitude__field_descriptor),
+                    (Data.ProtoLens.Tag 5, playerLongitude__field_descriptor)])
+                (Data.Map.fromList
+                   [("gym_id", gymId__field_descriptor),
+                    ("attacking_pokemon_ids", attackingPokemonIds__field_descriptor),
+                    ("defending_pokemon_id", defendingPokemonId__field_descriptor),
+                    ("player_latitude", playerLatitude__field_descriptor),
+                    ("player_longitude", playerLongitude__field_descriptor)])
+
+attackingPokemonIds ::
+                    forall msg msg' .
+                      Data.ProtoLens.HasField "attackingPokemonIds" msg msg' =>
+                      Lens.Family2.Lens msg msg'
+                        (Data.ProtoLens.Field "attackingPokemonIds" msg)
+                        (Data.ProtoLens.Field "attackingPokemonIds" msg')
+attackingPokemonIds
+  = Data.ProtoLens.field
+      (Data.ProtoLens.ProxySym ::
+         Data.ProtoLens.ProxySym "attackingPokemonIds")
+
+defendingPokemonId ::
+                   forall msg msg' .
+                     Data.ProtoLens.HasField "defendingPokemonId" msg msg' =>
+                     Lens.Family2.Lens msg msg'
+                       (Data.ProtoLens.Field "defendingPokemonId" msg)
+                       (Data.ProtoLens.Field "defendingPokemonId" msg')
+defendingPokemonId
+  = Data.ProtoLens.field
+      (Data.ProtoLens.ProxySym ::
+         Data.ProtoLens.ProxySym "defendingPokemonId")
+
+gymId ::
+      forall msg msg' . Data.ProtoLens.HasField "gymId" msg msg' =>
+        Lens.Family2.Lens msg msg' (Data.ProtoLens.Field "gymId" msg)
+          (Data.ProtoLens.Field "gymId" msg')
+gymId
+  = Data.ProtoLens.field
+      (Data.ProtoLens.ProxySym :: Data.ProtoLens.ProxySym "gymId")
+
+playerLatitude ::
+               forall msg msg' .
+                 Data.ProtoLens.HasField "playerLatitude" msg msg' =>
+                 Lens.Family2.Lens msg msg'
+                   (Data.ProtoLens.Field "playerLatitude" msg)
+                   (Data.ProtoLens.Field "playerLatitude" msg')
+playerLatitude
+  = Data.ProtoLens.field
+      (Data.ProtoLens.ProxySym ::
+         Data.ProtoLens.ProxySym "playerLatitude")
+
+playerLongitude ::
+                forall msg msg' .
+                  Data.ProtoLens.HasField "playerLongitude" msg msg' =>
+                  Lens.Family2.Lens msg msg'
+                    (Data.ProtoLens.Field "playerLongitude" msg)
+                    (Data.ProtoLens.Field "playerLongitude" msg')
+playerLongitude
+  = Data.ProtoLens.field
+      (Data.ProtoLens.ProxySym ::
+         Data.ProtoLens.ProxySym "playerLongitude")
diff --git a/src/Proto/POGOProtos/Networking/Requests/Messages/UpgradePokemonMessage.hs b/src/Proto/POGOProtos/Networking/Requests/Messages/UpgradePokemonMessage.hs
new file mode 100644
--- /dev/null
+++ b/src/Proto/POGOProtos/Networking/Requests/Messages/UpgradePokemonMessage.hs
@@ -0,0 +1,57 @@
+{- This file was auto-generated from POGOProtos/Networking/Requests/Messages/UpgradePokemonMessage.proto by the proto-lens-protoc program. -}
+{-# LANGUAGE ScopedTypeVariables, DataKinds, TypeFamilies,
+  MultiParamTypeClasses, FlexibleContexts, FlexibleInstances #-}
+{-# OPTIONS_GHC -fno-warn-unused-imports#-}
+module Proto.POGOProtos.Networking.Requests.Messages.UpgradePokemonMessage
+       where
+import qualified Prelude
+import qualified Data.ProtoLens
+import qualified Data.ProtoLens.Message.Enum
+import qualified Lens.Family2
+import qualified Lens.Family2.Unchecked
+import qualified Data.Default.Class
+import qualified Data.Text
+import qualified Data.Int
+import qualified Data.Word
+import qualified Data.Map
+import qualified Data.ByteString
+
+data UpgradePokemonMessage = UpgradePokemonMessage{_UpgradePokemonMessage'pokemonId
+                                                   :: Data.Word.Word64}
+                           deriving (Prelude.Show, Prelude.Eq)
+
+type instance
+     Data.ProtoLens.Field "pokemonId" UpgradePokemonMessage =
+     Data.Word.Word64
+
+instance Data.ProtoLens.HasField "pokemonId" UpgradePokemonMessage
+         UpgradePokemonMessage where
+        field _
+          = Lens.Family2.Unchecked.lens _UpgradePokemonMessage'pokemonId
+              (\ x__ y__ -> x__{_UpgradePokemonMessage'pokemonId = y__})
+
+instance Data.Default.Class.Default UpgradePokemonMessage where
+        def
+          = UpgradePokemonMessage{_UpgradePokemonMessage'pokemonId =
+                                    Data.ProtoLens.fieldDefault}
+
+instance Data.ProtoLens.Message UpgradePokemonMessage where
+        descriptor
+          = let pokemonId__field_descriptor
+                  = Data.ProtoLens.FieldDescriptor "pokemon_id"
+                      (Data.ProtoLens.Fixed64Field ::
+                         Data.ProtoLens.FieldTypeDescriptor Data.Word.Word64)
+                      (Data.ProtoLens.PlainField Data.ProtoLens.Optional pokemonId)
+              in
+              Data.ProtoLens.MessageDescriptor
+                (Data.Map.fromList
+                   [(Data.ProtoLens.Tag 1, pokemonId__field_descriptor)])
+                (Data.Map.fromList [("pokemon_id", pokemonId__field_descriptor)])
+
+pokemonId ::
+          forall msg msg' . Data.ProtoLens.HasField "pokemonId" msg msg' =>
+            Lens.Family2.Lens msg msg' (Data.ProtoLens.Field "pokemonId" msg)
+              (Data.ProtoLens.Field "pokemonId" msg')
+pokemonId
+  = Data.ProtoLens.field
+      (Data.ProtoLens.ProxySym :: Data.ProtoLens.ProxySym "pokemonId")
diff --git a/src/Proto/POGOProtos/Networking/Requests/Messages/UseIncenseMessage.hs b/src/Proto/POGOProtos/Networking/Requests/Messages/UseIncenseMessage.hs
new file mode 100644
--- /dev/null
+++ b/src/Proto/POGOProtos/Networking/Requests/Messages/UseIncenseMessage.hs
@@ -0,0 +1,59 @@
+{- This file was auto-generated from POGOProtos/Networking/Requests/Messages/UseIncenseMessage.proto by the proto-lens-protoc program. -}
+{-# LANGUAGE ScopedTypeVariables, DataKinds, TypeFamilies,
+  MultiParamTypeClasses, FlexibleContexts, FlexibleInstances #-}
+{-# OPTIONS_GHC -fno-warn-unused-imports#-}
+module Proto.POGOProtos.Networking.Requests.Messages.UseIncenseMessage
+       where
+import qualified Prelude
+import qualified Data.ProtoLens
+import qualified Data.ProtoLens.Message.Enum
+import qualified Lens.Family2
+import qualified Lens.Family2.Unchecked
+import qualified Data.Default.Class
+import qualified Data.Text
+import qualified Data.Int
+import qualified Data.Word
+import qualified Data.Map
+import qualified Data.ByteString
+import qualified Proto.POGOProtos.Inventory.Item.ItemId
+
+data UseIncenseMessage = UseIncenseMessage{_UseIncenseMessage'incenseType
+                                           :: Proto.POGOProtos.Inventory.Item.ItemId.ItemId}
+                       deriving (Prelude.Show, Prelude.Eq)
+
+type instance Data.ProtoLens.Field "incenseType" UseIncenseMessage
+     = Proto.POGOProtos.Inventory.Item.ItemId.ItemId
+
+instance Data.ProtoLens.HasField "incenseType" UseIncenseMessage
+         UseIncenseMessage where
+        field _
+          = Lens.Family2.Unchecked.lens _UseIncenseMessage'incenseType
+              (\ x__ y__ -> x__{_UseIncenseMessage'incenseType = y__})
+
+instance Data.Default.Class.Default UseIncenseMessage where
+        def
+          = UseIncenseMessage{_UseIncenseMessage'incenseType =
+                                Data.Default.Class.def}
+
+instance Data.ProtoLens.Message UseIncenseMessage where
+        descriptor
+          = let incenseType__field_descriptor
+                  = Data.ProtoLens.FieldDescriptor "incense_type"
+                      (Data.ProtoLens.EnumField ::
+                         Data.ProtoLens.FieldTypeDescriptor
+                           Proto.POGOProtos.Inventory.Item.ItemId.ItemId)
+                      (Data.ProtoLens.PlainField Data.ProtoLens.Optional incenseType)
+              in
+              Data.ProtoLens.MessageDescriptor
+                (Data.Map.fromList
+                   [(Data.ProtoLens.Tag 1, incenseType__field_descriptor)])
+                (Data.Map.fromList
+                   [("incense_type", incenseType__field_descriptor)])
+
+incenseType ::
+            forall msg msg' . Data.ProtoLens.HasField "incenseType" msg msg' =>
+              Lens.Family2.Lens msg msg' (Data.ProtoLens.Field "incenseType" msg)
+                (Data.ProtoLens.Field "incenseType" msg')
+incenseType
+  = Data.ProtoLens.field
+      (Data.ProtoLens.ProxySym :: Data.ProtoLens.ProxySym "incenseType")
diff --git a/src/Proto/POGOProtos/Networking/Requests/Messages/UseItemCaptureMessage.hs b/src/Proto/POGOProtos/Networking/Requests/Messages/UseItemCaptureMessage.hs
new file mode 100644
--- /dev/null
+++ b/src/Proto/POGOProtos/Networking/Requests/Messages/UseItemCaptureMessage.hs
@@ -0,0 +1,117 @@
+{- This file was auto-generated from POGOProtos/Networking/Requests/Messages/UseItemCaptureMessage.proto by the proto-lens-protoc program. -}
+{-# LANGUAGE ScopedTypeVariables, DataKinds, TypeFamilies,
+  MultiParamTypeClasses, FlexibleContexts, FlexibleInstances #-}
+{-# OPTIONS_GHC -fno-warn-unused-imports#-}
+module Proto.POGOProtos.Networking.Requests.Messages.UseItemCaptureMessage
+       where
+import qualified Prelude
+import qualified Data.ProtoLens
+import qualified Data.ProtoLens.Message.Enum
+import qualified Lens.Family2
+import qualified Lens.Family2.Unchecked
+import qualified Data.Default.Class
+import qualified Data.Text
+import qualified Data.Int
+import qualified Data.Word
+import qualified Data.Map
+import qualified Data.ByteString
+import qualified Proto.POGOProtos.Inventory.Item.ItemId
+
+data UseItemCaptureMessage = UseItemCaptureMessage{_UseItemCaptureMessage'itemId
+                                                   :: Proto.POGOProtos.Inventory.Item.ItemId.ItemId,
+                                                   _UseItemCaptureMessage'encounterId ::
+                                                   Data.Word.Word64,
+                                                   _UseItemCaptureMessage'spawnPointId ::
+                                                   Data.Text.Text}
+                           deriving (Prelude.Show, Prelude.Eq)
+
+type instance Data.ProtoLens.Field "itemId" UseItemCaptureMessage =
+     Proto.POGOProtos.Inventory.Item.ItemId.ItemId
+
+instance Data.ProtoLens.HasField "itemId" UseItemCaptureMessage
+         UseItemCaptureMessage where
+        field _
+          = Lens.Family2.Unchecked.lens _UseItemCaptureMessage'itemId
+              (\ x__ y__ -> x__{_UseItemCaptureMessage'itemId = y__})
+
+type instance
+     Data.ProtoLens.Field "encounterId" UseItemCaptureMessage =
+     Data.Word.Word64
+
+instance Data.ProtoLens.HasField "encounterId"
+         UseItemCaptureMessage UseItemCaptureMessage where
+        field _
+          = Lens.Family2.Unchecked.lens _UseItemCaptureMessage'encounterId
+              (\ x__ y__ -> x__{_UseItemCaptureMessage'encounterId = y__})
+
+type instance
+     Data.ProtoLens.Field "spawnPointId" UseItemCaptureMessage =
+     Data.Text.Text
+
+instance Data.ProtoLens.HasField "spawnPointId"
+         UseItemCaptureMessage UseItemCaptureMessage where
+        field _
+          = Lens.Family2.Unchecked.lens _UseItemCaptureMessage'spawnPointId
+              (\ x__ y__ -> x__{_UseItemCaptureMessage'spawnPointId = y__})
+
+instance Data.Default.Class.Default UseItemCaptureMessage where
+        def
+          = UseItemCaptureMessage{_UseItemCaptureMessage'itemId =
+                                    Data.Default.Class.def,
+                                  _UseItemCaptureMessage'encounterId = Data.ProtoLens.fieldDefault,
+                                  _UseItemCaptureMessage'spawnPointId = Data.ProtoLens.fieldDefault}
+
+instance Data.ProtoLens.Message UseItemCaptureMessage where
+        descriptor
+          = let itemId__field_descriptor
+                  = Data.ProtoLens.FieldDescriptor "item_id"
+                      (Data.ProtoLens.EnumField ::
+                         Data.ProtoLens.FieldTypeDescriptor
+                           Proto.POGOProtos.Inventory.Item.ItemId.ItemId)
+                      (Data.ProtoLens.PlainField Data.ProtoLens.Optional itemId)
+                encounterId__field_descriptor
+                  = Data.ProtoLens.FieldDescriptor "encounter_id"
+                      (Data.ProtoLens.Fixed64Field ::
+                         Data.ProtoLens.FieldTypeDescriptor Data.Word.Word64)
+                      (Data.ProtoLens.PlainField Data.ProtoLens.Optional encounterId)
+                spawnPointId__field_descriptor
+                  = Data.ProtoLens.FieldDescriptor "spawn_point_id"
+                      (Data.ProtoLens.StringField ::
+                         Data.ProtoLens.FieldTypeDescriptor Data.Text.Text)
+                      (Data.ProtoLens.PlainField Data.ProtoLens.Optional spawnPointId)
+              in
+              Data.ProtoLens.MessageDescriptor
+                (Data.Map.fromList
+                   [(Data.ProtoLens.Tag 1, itemId__field_descriptor),
+                    (Data.ProtoLens.Tag 2, encounterId__field_descriptor),
+                    (Data.ProtoLens.Tag 3, spawnPointId__field_descriptor)])
+                (Data.Map.fromList
+                   [("item_id", itemId__field_descriptor),
+                    ("encounter_id", encounterId__field_descriptor),
+                    ("spawn_point_id", spawnPointId__field_descriptor)])
+
+encounterId ::
+            forall msg msg' . Data.ProtoLens.HasField "encounterId" msg msg' =>
+              Lens.Family2.Lens msg msg' (Data.ProtoLens.Field "encounterId" msg)
+                (Data.ProtoLens.Field "encounterId" msg')
+encounterId
+  = Data.ProtoLens.field
+      (Data.ProtoLens.ProxySym :: Data.ProtoLens.ProxySym "encounterId")
+
+itemId ::
+       forall msg msg' . Data.ProtoLens.HasField "itemId" msg msg' =>
+         Lens.Family2.Lens msg msg' (Data.ProtoLens.Field "itemId" msg)
+           (Data.ProtoLens.Field "itemId" msg')
+itemId
+  = Data.ProtoLens.field
+      (Data.ProtoLens.ProxySym :: Data.ProtoLens.ProxySym "itemId")
+
+spawnPointId ::
+             forall msg msg' .
+               Data.ProtoLens.HasField "spawnPointId" msg msg' =>
+               Lens.Family2.Lens msg msg'
+                 (Data.ProtoLens.Field "spawnPointId" msg)
+                 (Data.ProtoLens.Field "spawnPointId" msg')
+spawnPointId
+  = Data.ProtoLens.field
+      (Data.ProtoLens.ProxySym :: Data.ProtoLens.ProxySym "spawnPointId")
diff --git a/src/Proto/POGOProtos/Networking/Requests/Messages/UseItemEggIncubatorMessage.hs b/src/Proto/POGOProtos/Networking/Requests/Messages/UseItemEggIncubatorMessage.hs
new file mode 100644
--- /dev/null
+++ b/src/Proto/POGOProtos/Networking/Requests/Messages/UseItemEggIncubatorMessage.hs
@@ -0,0 +1,88 @@
+{- This file was auto-generated from POGOProtos/Networking/Requests/Messages/UseItemEggIncubatorMessage.proto by the proto-lens-protoc program. -}
+{-# LANGUAGE ScopedTypeVariables, DataKinds, TypeFamilies,
+  MultiParamTypeClasses, FlexibleContexts, FlexibleInstances #-}
+{-# OPTIONS_GHC -fno-warn-unused-imports#-}
+module Proto.POGOProtos.Networking.Requests.Messages.UseItemEggIncubatorMessage
+       where
+import qualified Prelude
+import qualified Data.ProtoLens
+import qualified Data.ProtoLens.Message.Enum
+import qualified Lens.Family2
+import qualified Lens.Family2.Unchecked
+import qualified Data.Default.Class
+import qualified Data.Text
+import qualified Data.Int
+import qualified Data.Word
+import qualified Data.Map
+import qualified Data.ByteString
+
+data UseItemEggIncubatorMessage = UseItemEggIncubatorMessage{_UseItemEggIncubatorMessage'itemId
+                                                             :: Data.Text.Text,
+                                                             _UseItemEggIncubatorMessage'pokemonId
+                                                             :: Data.Word.Word64}
+                                deriving (Prelude.Show, Prelude.Eq)
+
+type instance
+     Data.ProtoLens.Field "itemId" UseItemEggIncubatorMessage =
+     Data.Text.Text
+
+instance Data.ProtoLens.HasField "itemId"
+         UseItemEggIncubatorMessage UseItemEggIncubatorMessage where
+        field _
+          = Lens.Family2.Unchecked.lens _UseItemEggIncubatorMessage'itemId
+              (\ x__ y__ -> x__{_UseItemEggIncubatorMessage'itemId = y__})
+
+type instance
+     Data.ProtoLens.Field "pokemonId" UseItemEggIncubatorMessage =
+     Data.Word.Word64
+
+instance Data.ProtoLens.HasField "pokemonId"
+         UseItemEggIncubatorMessage UseItemEggIncubatorMessage where
+        field _
+          = Lens.Family2.Unchecked.lens _UseItemEggIncubatorMessage'pokemonId
+              (\ x__ y__ -> x__{_UseItemEggIncubatorMessage'pokemonId = y__})
+
+instance Data.Default.Class.Default UseItemEggIncubatorMessage
+         where
+        def
+          = UseItemEggIncubatorMessage{_UseItemEggIncubatorMessage'itemId =
+                                         Data.ProtoLens.fieldDefault,
+                                       _UseItemEggIncubatorMessage'pokemonId =
+                                         Data.ProtoLens.fieldDefault}
+
+instance Data.ProtoLens.Message UseItemEggIncubatorMessage where
+        descriptor
+          = let itemId__field_descriptor
+                  = Data.ProtoLens.FieldDescriptor "item_id"
+                      (Data.ProtoLens.StringField ::
+                         Data.ProtoLens.FieldTypeDescriptor Data.Text.Text)
+                      (Data.ProtoLens.PlainField Data.ProtoLens.Optional itemId)
+                pokemonId__field_descriptor
+                  = Data.ProtoLens.FieldDescriptor "pokemon_id"
+                      (Data.ProtoLens.UInt64Field ::
+                         Data.ProtoLens.FieldTypeDescriptor Data.Word.Word64)
+                      (Data.ProtoLens.PlainField Data.ProtoLens.Optional pokemonId)
+              in
+              Data.ProtoLens.MessageDescriptor
+                (Data.Map.fromList
+                   [(Data.ProtoLens.Tag 1, itemId__field_descriptor),
+                    (Data.ProtoLens.Tag 2, pokemonId__field_descriptor)])
+                (Data.Map.fromList
+                   [("item_id", itemId__field_descriptor),
+                    ("pokemon_id", pokemonId__field_descriptor)])
+
+itemId ::
+       forall msg msg' . Data.ProtoLens.HasField "itemId" msg msg' =>
+         Lens.Family2.Lens msg msg' (Data.ProtoLens.Field "itemId" msg)
+           (Data.ProtoLens.Field "itemId" msg')
+itemId
+  = Data.ProtoLens.field
+      (Data.ProtoLens.ProxySym :: Data.ProtoLens.ProxySym "itemId")
+
+pokemonId ::
+          forall msg msg' . Data.ProtoLens.HasField "pokemonId" msg msg' =>
+            Lens.Family2.Lens msg msg' (Data.ProtoLens.Field "pokemonId" msg)
+              (Data.ProtoLens.Field "pokemonId" msg')
+pokemonId
+  = Data.ProtoLens.field
+      (Data.ProtoLens.ProxySym :: Data.ProtoLens.ProxySym "pokemonId")
diff --git a/src/Proto/POGOProtos/Networking/Requests/Messages/UseItemGymMessage.hs b/src/Proto/POGOProtos/Networking/Requests/Messages/UseItemGymMessage.hs
new file mode 100644
--- /dev/null
+++ b/src/Proto/POGOProtos/Networking/Requests/Messages/UseItemGymMessage.hs
@@ -0,0 +1,145 @@
+{- This file was auto-generated from POGOProtos/Networking/Requests/Messages/UseItemGymMessage.proto by the proto-lens-protoc program. -}
+{-# LANGUAGE ScopedTypeVariables, DataKinds, TypeFamilies,
+  MultiParamTypeClasses, FlexibleContexts, FlexibleInstances #-}
+{-# OPTIONS_GHC -fno-warn-unused-imports#-}
+module Proto.POGOProtos.Networking.Requests.Messages.UseItemGymMessage
+       where
+import qualified Prelude
+import qualified Data.ProtoLens
+import qualified Data.ProtoLens.Message.Enum
+import qualified Lens.Family2
+import qualified Lens.Family2.Unchecked
+import qualified Data.Default.Class
+import qualified Data.Text
+import qualified Data.Int
+import qualified Data.Word
+import qualified Data.Map
+import qualified Data.ByteString
+import qualified Proto.POGOProtos.Inventory.Item.ItemId
+
+data UseItemGymMessage = UseItemGymMessage{_UseItemGymMessage'itemId
+                                           :: Proto.POGOProtos.Inventory.Item.ItemId.ItemId,
+                                           _UseItemGymMessage'gymId :: Data.Text.Text,
+                                           _UseItemGymMessage'playerLatitude :: Prelude.Double,
+                                           _UseItemGymMessage'playerLongitude :: Prelude.Double}
+                       deriving (Prelude.Show, Prelude.Eq)
+
+type instance Data.ProtoLens.Field "itemId" UseItemGymMessage =
+     Proto.POGOProtos.Inventory.Item.ItemId.ItemId
+
+instance Data.ProtoLens.HasField "itemId" UseItemGymMessage
+         UseItemGymMessage where
+        field _
+          = Lens.Family2.Unchecked.lens _UseItemGymMessage'itemId
+              (\ x__ y__ -> x__{_UseItemGymMessage'itemId = y__})
+
+type instance Data.ProtoLens.Field "gymId" UseItemGymMessage =
+     Data.Text.Text
+
+instance Data.ProtoLens.HasField "gymId" UseItemGymMessage
+         UseItemGymMessage where
+        field _
+          = Lens.Family2.Unchecked.lens _UseItemGymMessage'gymId
+              (\ x__ y__ -> x__{_UseItemGymMessage'gymId = y__})
+
+type instance
+     Data.ProtoLens.Field "playerLatitude" UseItemGymMessage =
+     Prelude.Double
+
+instance Data.ProtoLens.HasField "playerLatitude" UseItemGymMessage
+         UseItemGymMessage where
+        field _
+          = Lens.Family2.Unchecked.lens _UseItemGymMessage'playerLatitude
+              (\ x__ y__ -> x__{_UseItemGymMessage'playerLatitude = y__})
+
+type instance
+     Data.ProtoLens.Field "playerLongitude" UseItemGymMessage =
+     Prelude.Double
+
+instance Data.ProtoLens.HasField "playerLongitude"
+         UseItemGymMessage UseItemGymMessage where
+        field _
+          = Lens.Family2.Unchecked.lens _UseItemGymMessage'playerLongitude
+              (\ x__ y__ -> x__{_UseItemGymMessage'playerLongitude = y__})
+
+instance Data.Default.Class.Default UseItemGymMessage where
+        def
+          = UseItemGymMessage{_UseItemGymMessage'itemId =
+                                Data.Default.Class.def,
+                              _UseItemGymMessage'gymId = Data.ProtoLens.fieldDefault,
+                              _UseItemGymMessage'playerLatitude = Data.ProtoLens.fieldDefault,
+                              _UseItemGymMessage'playerLongitude = Data.ProtoLens.fieldDefault}
+
+instance Data.ProtoLens.Message UseItemGymMessage where
+        descriptor
+          = let itemId__field_descriptor
+                  = Data.ProtoLens.FieldDescriptor "item_id"
+                      (Data.ProtoLens.EnumField ::
+                         Data.ProtoLens.FieldTypeDescriptor
+                           Proto.POGOProtos.Inventory.Item.ItemId.ItemId)
+                      (Data.ProtoLens.PlainField Data.ProtoLens.Optional itemId)
+                gymId__field_descriptor
+                  = Data.ProtoLens.FieldDescriptor "gym_id"
+                      (Data.ProtoLens.StringField ::
+                         Data.ProtoLens.FieldTypeDescriptor Data.Text.Text)
+                      (Data.ProtoLens.PlainField Data.ProtoLens.Optional gymId)
+                playerLatitude__field_descriptor
+                  = Data.ProtoLens.FieldDescriptor "player_latitude"
+                      (Data.ProtoLens.DoubleField ::
+                         Data.ProtoLens.FieldTypeDescriptor Prelude.Double)
+                      (Data.ProtoLens.PlainField Data.ProtoLens.Optional playerLatitude)
+                playerLongitude__field_descriptor
+                  = Data.ProtoLens.FieldDescriptor "player_longitude"
+                      (Data.ProtoLens.DoubleField ::
+                         Data.ProtoLens.FieldTypeDescriptor Prelude.Double)
+                      (Data.ProtoLens.PlainField Data.ProtoLens.Optional playerLongitude)
+              in
+              Data.ProtoLens.MessageDescriptor
+                (Data.Map.fromList
+                   [(Data.ProtoLens.Tag 1, itemId__field_descriptor),
+                    (Data.ProtoLens.Tag 2, gymId__field_descriptor),
+                    (Data.ProtoLens.Tag 3, playerLatitude__field_descriptor),
+                    (Data.ProtoLens.Tag 4, playerLongitude__field_descriptor)])
+                (Data.Map.fromList
+                   [("item_id", itemId__field_descriptor),
+                    ("gym_id", gymId__field_descriptor),
+                    ("player_latitude", playerLatitude__field_descriptor),
+                    ("player_longitude", playerLongitude__field_descriptor)])
+
+gymId ::
+      forall msg msg' . Data.ProtoLens.HasField "gymId" msg msg' =>
+        Lens.Family2.Lens msg msg' (Data.ProtoLens.Field "gymId" msg)
+          (Data.ProtoLens.Field "gymId" msg')
+gymId
+  = Data.ProtoLens.field
+      (Data.ProtoLens.ProxySym :: Data.ProtoLens.ProxySym "gymId")
+
+itemId ::
+       forall msg msg' . Data.ProtoLens.HasField "itemId" msg msg' =>
+         Lens.Family2.Lens msg msg' (Data.ProtoLens.Field "itemId" msg)
+           (Data.ProtoLens.Field "itemId" msg')
+itemId
+  = Data.ProtoLens.field
+      (Data.ProtoLens.ProxySym :: Data.ProtoLens.ProxySym "itemId")
+
+playerLatitude ::
+               forall msg msg' .
+                 Data.ProtoLens.HasField "playerLatitude" msg msg' =>
+                 Lens.Family2.Lens msg msg'
+                   (Data.ProtoLens.Field "playerLatitude" msg)
+                   (Data.ProtoLens.Field "playerLatitude" msg')
+playerLatitude
+  = Data.ProtoLens.field
+      (Data.ProtoLens.ProxySym ::
+         Data.ProtoLens.ProxySym "playerLatitude")
+
+playerLongitude ::
+                forall msg msg' .
+                  Data.ProtoLens.HasField "playerLongitude" msg msg' =>
+                  Lens.Family2.Lens msg msg'
+                    (Data.ProtoLens.Field "playerLongitude" msg)
+                    (Data.ProtoLens.Field "playerLongitude" msg')
+playerLongitude
+  = Data.ProtoLens.field
+      (Data.ProtoLens.ProxySym ::
+         Data.ProtoLens.ProxySym "playerLongitude")
diff --git a/src/Proto/POGOProtos/Networking/Requests/Messages/UseItemPotionMessage.hs b/src/Proto/POGOProtos/Networking/Requests/Messages/UseItemPotionMessage.hs
new file mode 100644
--- /dev/null
+++ b/src/Proto/POGOProtos/Networking/Requests/Messages/UseItemPotionMessage.hs
@@ -0,0 +1,86 @@
+{- This file was auto-generated from POGOProtos/Networking/Requests/Messages/UseItemPotionMessage.proto by the proto-lens-protoc program. -}
+{-# LANGUAGE ScopedTypeVariables, DataKinds, TypeFamilies,
+  MultiParamTypeClasses, FlexibleContexts, FlexibleInstances #-}
+{-# OPTIONS_GHC -fno-warn-unused-imports#-}
+module Proto.POGOProtos.Networking.Requests.Messages.UseItemPotionMessage
+       where
+import qualified Prelude
+import qualified Data.ProtoLens
+import qualified Data.ProtoLens.Message.Enum
+import qualified Lens.Family2
+import qualified Lens.Family2.Unchecked
+import qualified Data.Default.Class
+import qualified Data.Text
+import qualified Data.Int
+import qualified Data.Word
+import qualified Data.Map
+import qualified Data.ByteString
+import qualified Proto.POGOProtos.Inventory.Item.ItemId
+
+data UseItemPotionMessage = UseItemPotionMessage{_UseItemPotionMessage'itemId
+                                                 :: Proto.POGOProtos.Inventory.Item.ItemId.ItemId,
+                                                 _UseItemPotionMessage'pokemonId ::
+                                                 Data.Word.Word64}
+                          deriving (Prelude.Show, Prelude.Eq)
+
+type instance Data.ProtoLens.Field "itemId" UseItemPotionMessage =
+     Proto.POGOProtos.Inventory.Item.ItemId.ItemId
+
+instance Data.ProtoLens.HasField "itemId" UseItemPotionMessage
+         UseItemPotionMessage where
+        field _
+          = Lens.Family2.Unchecked.lens _UseItemPotionMessage'itemId
+              (\ x__ y__ -> x__{_UseItemPotionMessage'itemId = y__})
+
+type instance Data.ProtoLens.Field "pokemonId" UseItemPotionMessage
+     = Data.Word.Word64
+
+instance Data.ProtoLens.HasField "pokemonId" UseItemPotionMessage
+         UseItemPotionMessage where
+        field _
+          = Lens.Family2.Unchecked.lens _UseItemPotionMessage'pokemonId
+              (\ x__ y__ -> x__{_UseItemPotionMessage'pokemonId = y__})
+
+instance Data.Default.Class.Default UseItemPotionMessage where
+        def
+          = UseItemPotionMessage{_UseItemPotionMessage'itemId =
+                                   Data.Default.Class.def,
+                                 _UseItemPotionMessage'pokemonId = Data.ProtoLens.fieldDefault}
+
+instance Data.ProtoLens.Message UseItemPotionMessage where
+        descriptor
+          = let itemId__field_descriptor
+                  = Data.ProtoLens.FieldDescriptor "item_id"
+                      (Data.ProtoLens.EnumField ::
+                         Data.ProtoLens.FieldTypeDescriptor
+                           Proto.POGOProtos.Inventory.Item.ItemId.ItemId)
+                      (Data.ProtoLens.PlainField Data.ProtoLens.Optional itemId)
+                pokemonId__field_descriptor
+                  = Data.ProtoLens.FieldDescriptor "pokemon_id"
+                      (Data.ProtoLens.Fixed64Field ::
+                         Data.ProtoLens.FieldTypeDescriptor Data.Word.Word64)
+                      (Data.ProtoLens.PlainField Data.ProtoLens.Optional pokemonId)
+              in
+              Data.ProtoLens.MessageDescriptor
+                (Data.Map.fromList
+                   [(Data.ProtoLens.Tag 1, itemId__field_descriptor),
+                    (Data.ProtoLens.Tag 2, pokemonId__field_descriptor)])
+                (Data.Map.fromList
+                   [("item_id", itemId__field_descriptor),
+                    ("pokemon_id", pokemonId__field_descriptor)])
+
+itemId ::
+       forall msg msg' . Data.ProtoLens.HasField "itemId" msg msg' =>
+         Lens.Family2.Lens msg msg' (Data.ProtoLens.Field "itemId" msg)
+           (Data.ProtoLens.Field "itemId" msg')
+itemId
+  = Data.ProtoLens.field
+      (Data.ProtoLens.ProxySym :: Data.ProtoLens.ProxySym "itemId")
+
+pokemonId ::
+          forall msg msg' . Data.ProtoLens.HasField "pokemonId" msg msg' =>
+            Lens.Family2.Lens msg msg' (Data.ProtoLens.Field "pokemonId" msg)
+              (Data.ProtoLens.Field "pokemonId" msg')
+pokemonId
+  = Data.ProtoLens.field
+      (Data.ProtoLens.ProxySym :: Data.ProtoLens.ProxySym "pokemonId")
diff --git a/src/Proto/POGOProtos/Networking/Requests/Messages/UseItemReviveMessage.hs b/src/Proto/POGOProtos/Networking/Requests/Messages/UseItemReviveMessage.hs
new file mode 100644
--- /dev/null
+++ b/src/Proto/POGOProtos/Networking/Requests/Messages/UseItemReviveMessage.hs
@@ -0,0 +1,86 @@
+{- This file was auto-generated from POGOProtos/Networking/Requests/Messages/UseItemReviveMessage.proto by the proto-lens-protoc program. -}
+{-# LANGUAGE ScopedTypeVariables, DataKinds, TypeFamilies,
+  MultiParamTypeClasses, FlexibleContexts, FlexibleInstances #-}
+{-# OPTIONS_GHC -fno-warn-unused-imports#-}
+module Proto.POGOProtos.Networking.Requests.Messages.UseItemReviveMessage
+       where
+import qualified Prelude
+import qualified Data.ProtoLens
+import qualified Data.ProtoLens.Message.Enum
+import qualified Lens.Family2
+import qualified Lens.Family2.Unchecked
+import qualified Data.Default.Class
+import qualified Data.Text
+import qualified Data.Int
+import qualified Data.Word
+import qualified Data.Map
+import qualified Data.ByteString
+import qualified Proto.POGOProtos.Inventory.Item.ItemId
+
+data UseItemReviveMessage = UseItemReviveMessage{_UseItemReviveMessage'itemId
+                                                 :: Proto.POGOProtos.Inventory.Item.ItemId.ItemId,
+                                                 _UseItemReviveMessage'pokemonId ::
+                                                 Data.Word.Word64}
+                          deriving (Prelude.Show, Prelude.Eq)
+
+type instance Data.ProtoLens.Field "itemId" UseItemReviveMessage =
+     Proto.POGOProtos.Inventory.Item.ItemId.ItemId
+
+instance Data.ProtoLens.HasField "itemId" UseItemReviveMessage
+         UseItemReviveMessage where
+        field _
+          = Lens.Family2.Unchecked.lens _UseItemReviveMessage'itemId
+              (\ x__ y__ -> x__{_UseItemReviveMessage'itemId = y__})
+
+type instance Data.ProtoLens.Field "pokemonId" UseItemReviveMessage
+     = Data.Word.Word64
+
+instance Data.ProtoLens.HasField "pokemonId" UseItemReviveMessage
+         UseItemReviveMessage where
+        field _
+          = Lens.Family2.Unchecked.lens _UseItemReviveMessage'pokemonId
+              (\ x__ y__ -> x__{_UseItemReviveMessage'pokemonId = y__})
+
+instance Data.Default.Class.Default UseItemReviveMessage where
+        def
+          = UseItemReviveMessage{_UseItemReviveMessage'itemId =
+                                   Data.Default.Class.def,
+                                 _UseItemReviveMessage'pokemonId = Data.ProtoLens.fieldDefault}
+
+instance Data.ProtoLens.Message UseItemReviveMessage where
+        descriptor
+          = let itemId__field_descriptor
+                  = Data.ProtoLens.FieldDescriptor "item_id"
+                      (Data.ProtoLens.EnumField ::
+                         Data.ProtoLens.FieldTypeDescriptor
+                           Proto.POGOProtos.Inventory.Item.ItemId.ItemId)
+                      (Data.ProtoLens.PlainField Data.ProtoLens.Optional itemId)
+                pokemonId__field_descriptor
+                  = Data.ProtoLens.FieldDescriptor "pokemon_id"
+                      (Data.ProtoLens.Fixed64Field ::
+                         Data.ProtoLens.FieldTypeDescriptor Data.Word.Word64)
+                      (Data.ProtoLens.PlainField Data.ProtoLens.Optional pokemonId)
+              in
+              Data.ProtoLens.MessageDescriptor
+                (Data.Map.fromList
+                   [(Data.ProtoLens.Tag 1, itemId__field_descriptor),
+                    (Data.ProtoLens.Tag 2, pokemonId__field_descriptor)])
+                (Data.Map.fromList
+                   [("item_id", itemId__field_descriptor),
+                    ("pokemon_id", pokemonId__field_descriptor)])
+
+itemId ::
+       forall msg msg' . Data.ProtoLens.HasField "itemId" msg msg' =>
+         Lens.Family2.Lens msg msg' (Data.ProtoLens.Field "itemId" msg)
+           (Data.ProtoLens.Field "itemId" msg')
+itemId
+  = Data.ProtoLens.field
+      (Data.ProtoLens.ProxySym :: Data.ProtoLens.ProxySym "itemId")
+
+pokemonId ::
+          forall msg msg' . Data.ProtoLens.HasField "pokemonId" msg msg' =>
+            Lens.Family2.Lens msg msg' (Data.ProtoLens.Field "pokemonId" msg)
+              (Data.ProtoLens.Field "pokemonId" msg')
+pokemonId
+  = Data.ProtoLens.field
+      (Data.ProtoLens.ProxySym :: Data.ProtoLens.ProxySym "pokemonId")
diff --git a/src/Proto/POGOProtos/Networking/Requests/Messages/UseItemXpBoostMessage.hs b/src/Proto/POGOProtos/Networking/Requests/Messages/UseItemXpBoostMessage.hs
new file mode 100644
--- /dev/null
+++ b/src/Proto/POGOProtos/Networking/Requests/Messages/UseItemXpBoostMessage.hs
@@ -0,0 +1,58 @@
+{- This file was auto-generated from POGOProtos/Networking/Requests/Messages/UseItemXpBoostMessage.proto by the proto-lens-protoc program. -}
+{-# LANGUAGE ScopedTypeVariables, DataKinds, TypeFamilies,
+  MultiParamTypeClasses, FlexibleContexts, FlexibleInstances #-}
+{-# OPTIONS_GHC -fno-warn-unused-imports#-}
+module Proto.POGOProtos.Networking.Requests.Messages.UseItemXpBoostMessage
+       where
+import qualified Prelude
+import qualified Data.ProtoLens
+import qualified Data.ProtoLens.Message.Enum
+import qualified Lens.Family2
+import qualified Lens.Family2.Unchecked
+import qualified Data.Default.Class
+import qualified Data.Text
+import qualified Data.Int
+import qualified Data.Word
+import qualified Data.Map
+import qualified Data.ByteString
+import qualified Proto.POGOProtos.Inventory.Item.ItemId
+
+data UseItemXpBoostMessage = UseItemXpBoostMessage{_UseItemXpBoostMessage'itemId
+                                                   :: Proto.POGOProtos.Inventory.Item.ItemId.ItemId}
+                           deriving (Prelude.Show, Prelude.Eq)
+
+type instance Data.ProtoLens.Field "itemId" UseItemXpBoostMessage =
+     Proto.POGOProtos.Inventory.Item.ItemId.ItemId
+
+instance Data.ProtoLens.HasField "itemId" UseItemXpBoostMessage
+         UseItemXpBoostMessage where
+        field _
+          = Lens.Family2.Unchecked.lens _UseItemXpBoostMessage'itemId
+              (\ x__ y__ -> x__{_UseItemXpBoostMessage'itemId = y__})
+
+instance Data.Default.Class.Default UseItemXpBoostMessage where
+        def
+          = UseItemXpBoostMessage{_UseItemXpBoostMessage'itemId =
+                                    Data.Default.Class.def}
+
+instance Data.ProtoLens.Message UseItemXpBoostMessage where
+        descriptor
+          = let itemId__field_descriptor
+                  = Data.ProtoLens.FieldDescriptor "item_id"
+                      (Data.ProtoLens.EnumField ::
+                         Data.ProtoLens.FieldTypeDescriptor
+                           Proto.POGOProtos.Inventory.Item.ItemId.ItemId)
+                      (Data.ProtoLens.PlainField Data.ProtoLens.Optional itemId)
+              in
+              Data.ProtoLens.MessageDescriptor
+                (Data.Map.fromList
+                   [(Data.ProtoLens.Tag 1, itemId__field_descriptor)])
+                (Data.Map.fromList [("item_id", itemId__field_descriptor)])
+
+itemId ::
+       forall msg msg' . Data.ProtoLens.HasField "itemId" msg msg' =>
+         Lens.Family2.Lens msg msg' (Data.ProtoLens.Field "itemId" msg)
+           (Data.ProtoLens.Field "itemId" msg')
+itemId
+  = Data.ProtoLens.field
+      (Data.ProtoLens.ProxySym :: Data.ProtoLens.ProxySym "itemId")
diff --git a/src/Proto/POGOProtos/Networking/Requests/Request.hs b/src/Proto/POGOProtos/Networking/Requests/Request.hs
new file mode 100644
--- /dev/null
+++ b/src/Proto/POGOProtos/Networking/Requests/Request.hs
@@ -0,0 +1,86 @@
+{- This file was auto-generated from POGOProtos/Networking/Requests/Request.proto by the proto-lens-protoc program. -}
+{-# LANGUAGE ScopedTypeVariables, DataKinds, TypeFamilies,
+  MultiParamTypeClasses, FlexibleContexts, FlexibleInstances #-}
+{-# OPTIONS_GHC -fno-warn-unused-imports#-}
+module Proto.POGOProtos.Networking.Requests.Request where
+import qualified Prelude
+import qualified Data.ProtoLens
+import qualified Data.ProtoLens.Message.Enum
+import qualified Lens.Family2
+import qualified Lens.Family2.Unchecked
+import qualified Data.Default.Class
+import qualified Data.Text
+import qualified Data.Int
+import qualified Data.Word
+import qualified Data.Map
+import qualified Data.ByteString
+import qualified Proto.POGOProtos.Networking.Requests.RequestType
+
+data Request = Request{_Request'requestType ::
+                       Proto.POGOProtos.Networking.Requests.RequestType.RequestType,
+                       _Request'requestMessage :: Data.ByteString.ByteString}
+             deriving (Prelude.Show, Prelude.Eq)
+
+type instance Data.ProtoLens.Field "requestType" Request =
+     Proto.POGOProtos.Networking.Requests.RequestType.RequestType
+
+instance Data.ProtoLens.HasField "requestType" Request Request
+         where
+        field _
+          = Lens.Family2.Unchecked.lens _Request'requestType
+              (\ x__ y__ -> x__{_Request'requestType = y__})
+
+type instance Data.ProtoLens.Field "requestMessage" Request =
+     Data.ByteString.ByteString
+
+instance Data.ProtoLens.HasField "requestMessage" Request Request
+         where
+        field _
+          = Lens.Family2.Unchecked.lens _Request'requestMessage
+              (\ x__ y__ -> x__{_Request'requestMessage = y__})
+
+instance Data.Default.Class.Default Request where
+        def
+          = Request{_Request'requestType = Data.Default.Class.def,
+                    _Request'requestMessage = Data.ProtoLens.fieldDefault}
+
+instance Data.ProtoLens.Message Request where
+        descriptor
+          = let requestType__field_descriptor
+                  = Data.ProtoLens.FieldDescriptor "request_type"
+                      (Data.ProtoLens.EnumField ::
+                         Data.ProtoLens.FieldTypeDescriptor
+                           Proto.POGOProtos.Networking.Requests.RequestType.RequestType)
+                      (Data.ProtoLens.PlainField Data.ProtoLens.Optional requestType)
+                requestMessage__field_descriptor
+                  = Data.ProtoLens.FieldDescriptor "request_message"
+                      (Data.ProtoLens.BytesField ::
+                         Data.ProtoLens.FieldTypeDescriptor Data.ByteString.ByteString)
+                      (Data.ProtoLens.PlainField Data.ProtoLens.Optional requestMessage)
+              in
+              Data.ProtoLens.MessageDescriptor
+                (Data.Map.fromList
+                   [(Data.ProtoLens.Tag 1, requestType__field_descriptor),
+                    (Data.ProtoLens.Tag 2, requestMessage__field_descriptor)])
+                (Data.Map.fromList
+                   [("request_type", requestType__field_descriptor),
+                    ("request_message", requestMessage__field_descriptor)])
+
+requestMessage ::
+               forall msg msg' .
+                 Data.ProtoLens.HasField "requestMessage" msg msg' =>
+                 Lens.Family2.Lens msg msg'
+                   (Data.ProtoLens.Field "requestMessage" msg)
+                   (Data.ProtoLens.Field "requestMessage" msg')
+requestMessage
+  = Data.ProtoLens.field
+      (Data.ProtoLens.ProxySym ::
+         Data.ProtoLens.ProxySym "requestMessage")
+
+requestType ::
+            forall msg msg' . Data.ProtoLens.HasField "requestType" msg msg' =>
+              Lens.Family2.Lens msg msg' (Data.ProtoLens.Field "requestType" msg)
+                (Data.ProtoLens.Field "requestType" msg')
+requestType
+  = Data.ProtoLens.field
+      (Data.ProtoLens.ProxySym :: Data.ProtoLens.ProxySym "requestType")
diff --git a/src/Proto/POGOProtos/Networking/Requests/RequestType.hs b/src/Proto/POGOProtos/Networking/Requests/RequestType.hs
new file mode 100644
--- /dev/null
+++ b/src/Proto/POGOProtos/Networking/Requests/RequestType.hs
@@ -0,0 +1,559 @@
+{- This file was auto-generated from POGOProtos/Networking/Requests/RequestType.proto by the proto-lens-protoc program. -}
+{-# LANGUAGE ScopedTypeVariables, DataKinds, TypeFamilies,
+  MultiParamTypeClasses, FlexibleContexts, FlexibleInstances #-}
+{-# OPTIONS_GHC -fno-warn-unused-imports#-}
+module Proto.POGOProtos.Networking.Requests.RequestType where
+import qualified Prelude
+import qualified Data.ProtoLens
+import qualified Data.ProtoLens.Message.Enum
+import qualified Lens.Family2
+import qualified Lens.Family2.Unchecked
+import qualified Data.Default.Class
+import qualified Data.Text
+import qualified Data.Int
+import qualified Data.Word
+import qualified Data.Map
+import qualified Data.ByteString
+
+data RequestType = METHOD_UNSET
+                 | PLAYER_UPDATE
+                 | GET_PLAYER
+                 | GET_INVENTORY
+                 | DOWNLOAD_SETTINGS
+                 | DOWNLOAD_ITEM_TEMPLATES
+                 | DOWNLOAD_REMOTE_CONFIG_VERSION
+                 | FORT_SEARCH
+                 | ENCOUNTER
+                 | CATCH_POKEMON
+                 | FORT_DETAILS
+                 | ITEM_USE
+                 | GET_MAP_OBJECTS
+                 | FORT_DEPLOY_POKEMON
+                 | FORT_RECALL_POKEMON
+                 | RELEASE_POKEMON
+                 | USE_ITEM_POTION
+                 | USE_ITEM_CAPTURE
+                 | USE_ITEM_FLEE
+                 | USE_ITEM_REVIVE
+                 | TRADE_SEARCH
+                 | TRADE_OFFER
+                 | TRADE_RESPONSE
+                 | TRADE_RESULT
+                 | GET_PLAYER_PROFILE
+                 | GET_ITEM_PACK
+                 | BUY_ITEM_PACK
+                 | BUY_GEM_PACK
+                 | EVOLVE_POKEMON
+                 | GET_HATCHED_EGGS
+                 | ENCOUNTER_TUTORIAL_COMPLETE
+                 | LEVEL_UP_REWARDS
+                 | CHECK_AWARDED_BADGES
+                 | USE_ITEM_GYM
+                 | GET_GYM_DETAILS
+                 | START_GYM_BATTLE
+                 | ATTACK_GYM
+                 | RECYCLE_INVENTORY_ITEM
+                 | COLLECT_DAILY_BONUS
+                 | USE_ITEM_XP_BOOST
+                 | USE_ITEM_EGG_INCUBATOR
+                 | USE_INCENSE
+                 | GET_INCENSE_POKEMON
+                 | INCENSE_ENCOUNTER
+                 | ADD_FORT_MODIFIER
+                 | DISK_ENCOUNTER
+                 | COLLECT_DAILY_DEFENDER_BONUS
+                 | UPGRADE_POKEMON
+                 | SET_FAVORITE_POKEMON
+                 | NICKNAME_POKEMON
+                 | EQUIP_BADGE
+                 | SET_CONTACT_SETTINGS
+                 | GET_ASSET_DIGEST
+                 | GET_DOWNLOAD_URLS
+                 | GET_SUGGESTED_CODENAMES
+                 | CHECK_CODENAME_AVAILABLE
+                 | CLAIM_CODENAME
+                 | SET_AVATAR
+                 | SET_PLAYER_TEAM
+                 | MARK_TUTORIAL_COMPLETE
+                 | LOAD_SPAWN_POINTS
+                 | ECHO
+                 | DEBUG_UPDATE_INVENTORY
+                 | DEBUG_DELETE_PLAYER
+                 | SFIDA_REGISTRATION
+                 | SFIDA_ACTION_LOG
+                 | SFIDA_CERTIFICATION
+                 | SFIDA_UPDATE
+                 | SFIDA_ACTION
+                 | SFIDA_DOWSER
+                 | SFIDA_CAPTURE
+                 deriving (Prelude.Show, Prelude.Eq)
+
+instance Data.Default.Class.Default RequestType where
+        def = METHOD_UNSET
+
+instance Data.ProtoLens.FieldDefault RequestType where
+        fieldDefault = METHOD_UNSET
+
+instance Data.ProtoLens.MessageEnum RequestType where
+        maybeToEnum 0 = Prelude.Just METHOD_UNSET
+        maybeToEnum 1 = Prelude.Just PLAYER_UPDATE
+        maybeToEnum 2 = Prelude.Just GET_PLAYER
+        maybeToEnum 4 = Prelude.Just GET_INVENTORY
+        maybeToEnum 5 = Prelude.Just DOWNLOAD_SETTINGS
+        maybeToEnum 6 = Prelude.Just DOWNLOAD_ITEM_TEMPLATES
+        maybeToEnum 7 = Prelude.Just DOWNLOAD_REMOTE_CONFIG_VERSION
+        maybeToEnum 101 = Prelude.Just FORT_SEARCH
+        maybeToEnum 102 = Prelude.Just ENCOUNTER
+        maybeToEnum 103 = Prelude.Just CATCH_POKEMON
+        maybeToEnum 104 = Prelude.Just FORT_DETAILS
+        maybeToEnum 105 = Prelude.Just ITEM_USE
+        maybeToEnum 106 = Prelude.Just GET_MAP_OBJECTS
+        maybeToEnum 110 = Prelude.Just FORT_DEPLOY_POKEMON
+        maybeToEnum 111 = Prelude.Just FORT_RECALL_POKEMON
+        maybeToEnum 112 = Prelude.Just RELEASE_POKEMON
+        maybeToEnum 113 = Prelude.Just USE_ITEM_POTION
+        maybeToEnum 114 = Prelude.Just USE_ITEM_CAPTURE
+        maybeToEnum 115 = Prelude.Just USE_ITEM_FLEE
+        maybeToEnum 116 = Prelude.Just USE_ITEM_REVIVE
+        maybeToEnum 117 = Prelude.Just TRADE_SEARCH
+        maybeToEnum 118 = Prelude.Just TRADE_OFFER
+        maybeToEnum 119 = Prelude.Just TRADE_RESPONSE
+        maybeToEnum 120 = Prelude.Just TRADE_RESULT
+        maybeToEnum 121 = Prelude.Just GET_PLAYER_PROFILE
+        maybeToEnum 122 = Prelude.Just GET_ITEM_PACK
+        maybeToEnum 123 = Prelude.Just BUY_ITEM_PACK
+        maybeToEnum 124 = Prelude.Just BUY_GEM_PACK
+        maybeToEnum 125 = Prelude.Just EVOLVE_POKEMON
+        maybeToEnum 126 = Prelude.Just GET_HATCHED_EGGS
+        maybeToEnum 127 = Prelude.Just ENCOUNTER_TUTORIAL_COMPLETE
+        maybeToEnum 128 = Prelude.Just LEVEL_UP_REWARDS
+        maybeToEnum 129 = Prelude.Just CHECK_AWARDED_BADGES
+        maybeToEnum 133 = Prelude.Just USE_ITEM_GYM
+        maybeToEnum 134 = Prelude.Just GET_GYM_DETAILS
+        maybeToEnum 135 = Prelude.Just START_GYM_BATTLE
+        maybeToEnum 136 = Prelude.Just ATTACK_GYM
+        maybeToEnum 137 = Prelude.Just RECYCLE_INVENTORY_ITEM
+        maybeToEnum 138 = Prelude.Just COLLECT_DAILY_BONUS
+        maybeToEnum 139 = Prelude.Just USE_ITEM_XP_BOOST
+        maybeToEnum 140 = Prelude.Just USE_ITEM_EGG_INCUBATOR
+        maybeToEnum 141 = Prelude.Just USE_INCENSE
+        maybeToEnum 142 = Prelude.Just GET_INCENSE_POKEMON
+        maybeToEnum 143 = Prelude.Just INCENSE_ENCOUNTER
+        maybeToEnum 144 = Prelude.Just ADD_FORT_MODIFIER
+        maybeToEnum 145 = Prelude.Just DISK_ENCOUNTER
+        maybeToEnum 146 = Prelude.Just COLLECT_DAILY_DEFENDER_BONUS
+        maybeToEnum 147 = Prelude.Just UPGRADE_POKEMON
+        maybeToEnum 148 = Prelude.Just SET_FAVORITE_POKEMON
+        maybeToEnum 149 = Prelude.Just NICKNAME_POKEMON
+        maybeToEnum 150 = Prelude.Just EQUIP_BADGE
+        maybeToEnum 151 = Prelude.Just SET_CONTACT_SETTINGS
+        maybeToEnum 300 = Prelude.Just GET_ASSET_DIGEST
+        maybeToEnum 301 = Prelude.Just GET_DOWNLOAD_URLS
+        maybeToEnum 401 = Prelude.Just GET_SUGGESTED_CODENAMES
+        maybeToEnum 402 = Prelude.Just CHECK_CODENAME_AVAILABLE
+        maybeToEnum 403 = Prelude.Just CLAIM_CODENAME
+        maybeToEnum 404 = Prelude.Just SET_AVATAR
+        maybeToEnum 405 = Prelude.Just SET_PLAYER_TEAM
+        maybeToEnum 406 = Prelude.Just MARK_TUTORIAL_COMPLETE
+        maybeToEnum 500 = Prelude.Just LOAD_SPAWN_POINTS
+        maybeToEnum 666 = Prelude.Just ECHO
+        maybeToEnum 700 = Prelude.Just DEBUG_UPDATE_INVENTORY
+        maybeToEnum 701 = Prelude.Just DEBUG_DELETE_PLAYER
+        maybeToEnum 800 = Prelude.Just SFIDA_REGISTRATION
+        maybeToEnum 801 = Prelude.Just SFIDA_ACTION_LOG
+        maybeToEnum 802 = Prelude.Just SFIDA_CERTIFICATION
+        maybeToEnum 803 = Prelude.Just SFIDA_UPDATE
+        maybeToEnum 804 = Prelude.Just SFIDA_ACTION
+        maybeToEnum 805 = Prelude.Just SFIDA_DOWSER
+        maybeToEnum 806 = Prelude.Just SFIDA_CAPTURE
+        maybeToEnum _ = Prelude.Nothing
+        showEnum METHOD_UNSET = "METHOD_UNSET"
+        showEnum PLAYER_UPDATE = "PLAYER_UPDATE"
+        showEnum GET_PLAYER = "GET_PLAYER"
+        showEnum GET_INVENTORY = "GET_INVENTORY"
+        showEnum DOWNLOAD_SETTINGS = "DOWNLOAD_SETTINGS"
+        showEnum DOWNLOAD_ITEM_TEMPLATES = "DOWNLOAD_ITEM_TEMPLATES"
+        showEnum DOWNLOAD_REMOTE_CONFIG_VERSION
+          = "DOWNLOAD_REMOTE_CONFIG_VERSION"
+        showEnum FORT_SEARCH = "FORT_SEARCH"
+        showEnum ENCOUNTER = "ENCOUNTER"
+        showEnum CATCH_POKEMON = "CATCH_POKEMON"
+        showEnum FORT_DETAILS = "FORT_DETAILS"
+        showEnum ITEM_USE = "ITEM_USE"
+        showEnum GET_MAP_OBJECTS = "GET_MAP_OBJECTS"
+        showEnum FORT_DEPLOY_POKEMON = "FORT_DEPLOY_POKEMON"
+        showEnum FORT_RECALL_POKEMON = "FORT_RECALL_POKEMON"
+        showEnum RELEASE_POKEMON = "RELEASE_POKEMON"
+        showEnum USE_ITEM_POTION = "USE_ITEM_POTION"
+        showEnum USE_ITEM_CAPTURE = "USE_ITEM_CAPTURE"
+        showEnum USE_ITEM_FLEE = "USE_ITEM_FLEE"
+        showEnum USE_ITEM_REVIVE = "USE_ITEM_REVIVE"
+        showEnum TRADE_SEARCH = "TRADE_SEARCH"
+        showEnum TRADE_OFFER = "TRADE_OFFER"
+        showEnum TRADE_RESPONSE = "TRADE_RESPONSE"
+        showEnum TRADE_RESULT = "TRADE_RESULT"
+        showEnum GET_PLAYER_PROFILE = "GET_PLAYER_PROFILE"
+        showEnum GET_ITEM_PACK = "GET_ITEM_PACK"
+        showEnum BUY_ITEM_PACK = "BUY_ITEM_PACK"
+        showEnum BUY_GEM_PACK = "BUY_GEM_PACK"
+        showEnum EVOLVE_POKEMON = "EVOLVE_POKEMON"
+        showEnum GET_HATCHED_EGGS = "GET_HATCHED_EGGS"
+        showEnum ENCOUNTER_TUTORIAL_COMPLETE
+          = "ENCOUNTER_TUTORIAL_COMPLETE"
+        showEnum LEVEL_UP_REWARDS = "LEVEL_UP_REWARDS"
+        showEnum CHECK_AWARDED_BADGES = "CHECK_AWARDED_BADGES"
+        showEnum USE_ITEM_GYM = "USE_ITEM_GYM"
+        showEnum GET_GYM_DETAILS = "GET_GYM_DETAILS"
+        showEnum START_GYM_BATTLE = "START_GYM_BATTLE"
+        showEnum ATTACK_GYM = "ATTACK_GYM"
+        showEnum RECYCLE_INVENTORY_ITEM = "RECYCLE_INVENTORY_ITEM"
+        showEnum COLLECT_DAILY_BONUS = "COLLECT_DAILY_BONUS"
+        showEnum USE_ITEM_XP_BOOST = "USE_ITEM_XP_BOOST"
+        showEnum USE_ITEM_EGG_INCUBATOR = "USE_ITEM_EGG_INCUBATOR"
+        showEnum USE_INCENSE = "USE_INCENSE"
+        showEnum GET_INCENSE_POKEMON = "GET_INCENSE_POKEMON"
+        showEnum INCENSE_ENCOUNTER = "INCENSE_ENCOUNTER"
+        showEnum ADD_FORT_MODIFIER = "ADD_FORT_MODIFIER"
+        showEnum DISK_ENCOUNTER = "DISK_ENCOUNTER"
+        showEnum COLLECT_DAILY_DEFENDER_BONUS
+          = "COLLECT_DAILY_DEFENDER_BONUS"
+        showEnum UPGRADE_POKEMON = "UPGRADE_POKEMON"
+        showEnum SET_FAVORITE_POKEMON = "SET_FAVORITE_POKEMON"
+        showEnum NICKNAME_POKEMON = "NICKNAME_POKEMON"
+        showEnum EQUIP_BADGE = "EQUIP_BADGE"
+        showEnum SET_CONTACT_SETTINGS = "SET_CONTACT_SETTINGS"
+        showEnum GET_ASSET_DIGEST = "GET_ASSET_DIGEST"
+        showEnum GET_DOWNLOAD_URLS = "GET_DOWNLOAD_URLS"
+        showEnum GET_SUGGESTED_CODENAMES = "GET_SUGGESTED_CODENAMES"
+        showEnum CHECK_CODENAME_AVAILABLE = "CHECK_CODENAME_AVAILABLE"
+        showEnum CLAIM_CODENAME = "CLAIM_CODENAME"
+        showEnum SET_AVATAR = "SET_AVATAR"
+        showEnum SET_PLAYER_TEAM = "SET_PLAYER_TEAM"
+        showEnum MARK_TUTORIAL_COMPLETE = "MARK_TUTORIAL_COMPLETE"
+        showEnum LOAD_SPAWN_POINTS = "LOAD_SPAWN_POINTS"
+        showEnum ECHO = "ECHO"
+        showEnum DEBUG_UPDATE_INVENTORY = "DEBUG_UPDATE_INVENTORY"
+        showEnum DEBUG_DELETE_PLAYER = "DEBUG_DELETE_PLAYER"
+        showEnum SFIDA_REGISTRATION = "SFIDA_REGISTRATION"
+        showEnum SFIDA_ACTION_LOG = "SFIDA_ACTION_LOG"
+        showEnum SFIDA_CERTIFICATION = "SFIDA_CERTIFICATION"
+        showEnum SFIDA_UPDATE = "SFIDA_UPDATE"
+        showEnum SFIDA_ACTION = "SFIDA_ACTION"
+        showEnum SFIDA_DOWSER = "SFIDA_DOWSER"
+        showEnum SFIDA_CAPTURE = "SFIDA_CAPTURE"
+        readEnum "METHOD_UNSET" = Prelude.Just METHOD_UNSET
+        readEnum "PLAYER_UPDATE" = Prelude.Just PLAYER_UPDATE
+        readEnum "GET_PLAYER" = Prelude.Just GET_PLAYER
+        readEnum "GET_INVENTORY" = Prelude.Just GET_INVENTORY
+        readEnum "DOWNLOAD_SETTINGS" = Prelude.Just DOWNLOAD_SETTINGS
+        readEnum "DOWNLOAD_ITEM_TEMPLATES"
+          = Prelude.Just DOWNLOAD_ITEM_TEMPLATES
+        readEnum "DOWNLOAD_REMOTE_CONFIG_VERSION"
+          = Prelude.Just DOWNLOAD_REMOTE_CONFIG_VERSION
+        readEnum "FORT_SEARCH" = Prelude.Just FORT_SEARCH
+        readEnum "ENCOUNTER" = Prelude.Just ENCOUNTER
+        readEnum "CATCH_POKEMON" = Prelude.Just CATCH_POKEMON
+        readEnum "FORT_DETAILS" = Prelude.Just FORT_DETAILS
+        readEnum "ITEM_USE" = Prelude.Just ITEM_USE
+        readEnum "GET_MAP_OBJECTS" = Prelude.Just GET_MAP_OBJECTS
+        readEnum "FORT_DEPLOY_POKEMON" = Prelude.Just FORT_DEPLOY_POKEMON
+        readEnum "FORT_RECALL_POKEMON" = Prelude.Just FORT_RECALL_POKEMON
+        readEnum "RELEASE_POKEMON" = Prelude.Just RELEASE_POKEMON
+        readEnum "USE_ITEM_POTION" = Prelude.Just USE_ITEM_POTION
+        readEnum "USE_ITEM_CAPTURE" = Prelude.Just USE_ITEM_CAPTURE
+        readEnum "USE_ITEM_FLEE" = Prelude.Just USE_ITEM_FLEE
+        readEnum "USE_ITEM_REVIVE" = Prelude.Just USE_ITEM_REVIVE
+        readEnum "TRADE_SEARCH" = Prelude.Just TRADE_SEARCH
+        readEnum "TRADE_OFFER" = Prelude.Just TRADE_OFFER
+        readEnum "TRADE_RESPONSE" = Prelude.Just TRADE_RESPONSE
+        readEnum "TRADE_RESULT" = Prelude.Just TRADE_RESULT
+        readEnum "GET_PLAYER_PROFILE" = Prelude.Just GET_PLAYER_PROFILE
+        readEnum "GET_ITEM_PACK" = Prelude.Just GET_ITEM_PACK
+        readEnum "BUY_ITEM_PACK" = Prelude.Just BUY_ITEM_PACK
+        readEnum "BUY_GEM_PACK" = Prelude.Just BUY_GEM_PACK
+        readEnum "EVOLVE_POKEMON" = Prelude.Just EVOLVE_POKEMON
+        readEnum "GET_HATCHED_EGGS" = Prelude.Just GET_HATCHED_EGGS
+        readEnum "ENCOUNTER_TUTORIAL_COMPLETE"
+          = Prelude.Just ENCOUNTER_TUTORIAL_COMPLETE
+        readEnum "LEVEL_UP_REWARDS" = Prelude.Just LEVEL_UP_REWARDS
+        readEnum "CHECK_AWARDED_BADGES" = Prelude.Just CHECK_AWARDED_BADGES
+        readEnum "USE_ITEM_GYM" = Prelude.Just USE_ITEM_GYM
+        readEnum "GET_GYM_DETAILS" = Prelude.Just GET_GYM_DETAILS
+        readEnum "START_GYM_BATTLE" = Prelude.Just START_GYM_BATTLE
+        readEnum "ATTACK_GYM" = Prelude.Just ATTACK_GYM
+        readEnum "RECYCLE_INVENTORY_ITEM"
+          = Prelude.Just RECYCLE_INVENTORY_ITEM
+        readEnum "COLLECT_DAILY_BONUS" = Prelude.Just COLLECT_DAILY_BONUS
+        readEnum "USE_ITEM_XP_BOOST" = Prelude.Just USE_ITEM_XP_BOOST
+        readEnum "USE_ITEM_EGG_INCUBATOR"
+          = Prelude.Just USE_ITEM_EGG_INCUBATOR
+        readEnum "USE_INCENSE" = Prelude.Just USE_INCENSE
+        readEnum "GET_INCENSE_POKEMON" = Prelude.Just GET_INCENSE_POKEMON
+        readEnum "INCENSE_ENCOUNTER" = Prelude.Just INCENSE_ENCOUNTER
+        readEnum "ADD_FORT_MODIFIER" = Prelude.Just ADD_FORT_MODIFIER
+        readEnum "DISK_ENCOUNTER" = Prelude.Just DISK_ENCOUNTER
+        readEnum "COLLECT_DAILY_DEFENDER_BONUS"
+          = Prelude.Just COLLECT_DAILY_DEFENDER_BONUS
+        readEnum "UPGRADE_POKEMON" = Prelude.Just UPGRADE_POKEMON
+        readEnum "SET_FAVORITE_POKEMON" = Prelude.Just SET_FAVORITE_POKEMON
+        readEnum "NICKNAME_POKEMON" = Prelude.Just NICKNAME_POKEMON
+        readEnum "EQUIP_BADGE" = Prelude.Just EQUIP_BADGE
+        readEnum "SET_CONTACT_SETTINGS" = Prelude.Just SET_CONTACT_SETTINGS
+        readEnum "GET_ASSET_DIGEST" = Prelude.Just GET_ASSET_DIGEST
+        readEnum "GET_DOWNLOAD_URLS" = Prelude.Just GET_DOWNLOAD_URLS
+        readEnum "GET_SUGGESTED_CODENAMES"
+          = Prelude.Just GET_SUGGESTED_CODENAMES
+        readEnum "CHECK_CODENAME_AVAILABLE"
+          = Prelude.Just CHECK_CODENAME_AVAILABLE
+        readEnum "CLAIM_CODENAME" = Prelude.Just CLAIM_CODENAME
+        readEnum "SET_AVATAR" = Prelude.Just SET_AVATAR
+        readEnum "SET_PLAYER_TEAM" = Prelude.Just SET_PLAYER_TEAM
+        readEnum "MARK_TUTORIAL_COMPLETE"
+          = Prelude.Just MARK_TUTORIAL_COMPLETE
+        readEnum "LOAD_SPAWN_POINTS" = Prelude.Just LOAD_SPAWN_POINTS
+        readEnum "ECHO" = Prelude.Just ECHO
+        readEnum "DEBUG_UPDATE_INVENTORY"
+          = Prelude.Just DEBUG_UPDATE_INVENTORY
+        readEnum "DEBUG_DELETE_PLAYER" = Prelude.Just DEBUG_DELETE_PLAYER
+        readEnum "SFIDA_REGISTRATION" = Prelude.Just SFIDA_REGISTRATION
+        readEnum "SFIDA_ACTION_LOG" = Prelude.Just SFIDA_ACTION_LOG
+        readEnum "SFIDA_CERTIFICATION" = Prelude.Just SFIDA_CERTIFICATION
+        readEnum "SFIDA_UPDATE" = Prelude.Just SFIDA_UPDATE
+        readEnum "SFIDA_ACTION" = Prelude.Just SFIDA_ACTION
+        readEnum "SFIDA_DOWSER" = Prelude.Just SFIDA_DOWSER
+        readEnum "SFIDA_CAPTURE" = Prelude.Just SFIDA_CAPTURE
+        readEnum _ = Prelude.Nothing
+
+instance Prelude.Enum RequestType where
+        toEnum k__
+          = Prelude.maybe
+              (Prelude.error
+                 ((Prelude.++) "toEnum: unknown value for enum RequestType: "
+                    (Prelude.show k__)))
+              Prelude.id
+              (Data.ProtoLens.maybeToEnum k__)
+        fromEnum METHOD_UNSET = 0
+        fromEnum PLAYER_UPDATE = 1
+        fromEnum GET_PLAYER = 2
+        fromEnum GET_INVENTORY = 4
+        fromEnum DOWNLOAD_SETTINGS = 5
+        fromEnum DOWNLOAD_ITEM_TEMPLATES = 6
+        fromEnum DOWNLOAD_REMOTE_CONFIG_VERSION = 7
+        fromEnum FORT_SEARCH = 101
+        fromEnum ENCOUNTER = 102
+        fromEnum CATCH_POKEMON = 103
+        fromEnum FORT_DETAILS = 104
+        fromEnum ITEM_USE = 105
+        fromEnum GET_MAP_OBJECTS = 106
+        fromEnum FORT_DEPLOY_POKEMON = 110
+        fromEnum FORT_RECALL_POKEMON = 111
+        fromEnum RELEASE_POKEMON = 112
+        fromEnum USE_ITEM_POTION = 113
+        fromEnum USE_ITEM_CAPTURE = 114
+        fromEnum USE_ITEM_FLEE = 115
+        fromEnum USE_ITEM_REVIVE = 116
+        fromEnum TRADE_SEARCH = 117
+        fromEnum TRADE_OFFER = 118
+        fromEnum TRADE_RESPONSE = 119
+        fromEnum TRADE_RESULT = 120
+        fromEnum GET_PLAYER_PROFILE = 121
+        fromEnum GET_ITEM_PACK = 122
+        fromEnum BUY_ITEM_PACK = 123
+        fromEnum BUY_GEM_PACK = 124
+        fromEnum EVOLVE_POKEMON = 125
+        fromEnum GET_HATCHED_EGGS = 126
+        fromEnum ENCOUNTER_TUTORIAL_COMPLETE = 127
+        fromEnum LEVEL_UP_REWARDS = 128
+        fromEnum CHECK_AWARDED_BADGES = 129
+        fromEnum USE_ITEM_GYM = 133
+        fromEnum GET_GYM_DETAILS = 134
+        fromEnum START_GYM_BATTLE = 135
+        fromEnum ATTACK_GYM = 136
+        fromEnum RECYCLE_INVENTORY_ITEM = 137
+        fromEnum COLLECT_DAILY_BONUS = 138
+        fromEnum USE_ITEM_XP_BOOST = 139
+        fromEnum USE_ITEM_EGG_INCUBATOR = 140
+        fromEnum USE_INCENSE = 141
+        fromEnum GET_INCENSE_POKEMON = 142
+        fromEnum INCENSE_ENCOUNTER = 143
+        fromEnum ADD_FORT_MODIFIER = 144
+        fromEnum DISK_ENCOUNTER = 145
+        fromEnum COLLECT_DAILY_DEFENDER_BONUS = 146
+        fromEnum UPGRADE_POKEMON = 147
+        fromEnum SET_FAVORITE_POKEMON = 148
+        fromEnum NICKNAME_POKEMON = 149
+        fromEnum EQUIP_BADGE = 150
+        fromEnum SET_CONTACT_SETTINGS = 151
+        fromEnum GET_ASSET_DIGEST = 300
+        fromEnum GET_DOWNLOAD_URLS = 301
+        fromEnum GET_SUGGESTED_CODENAMES = 401
+        fromEnum CHECK_CODENAME_AVAILABLE = 402
+        fromEnum CLAIM_CODENAME = 403
+        fromEnum SET_AVATAR = 404
+        fromEnum SET_PLAYER_TEAM = 405
+        fromEnum MARK_TUTORIAL_COMPLETE = 406
+        fromEnum LOAD_SPAWN_POINTS = 500
+        fromEnum ECHO = 666
+        fromEnum DEBUG_UPDATE_INVENTORY = 700
+        fromEnum DEBUG_DELETE_PLAYER = 701
+        fromEnum SFIDA_REGISTRATION = 800
+        fromEnum SFIDA_ACTION_LOG = 801
+        fromEnum SFIDA_CERTIFICATION = 802
+        fromEnum SFIDA_UPDATE = 803
+        fromEnum SFIDA_ACTION = 804
+        fromEnum SFIDA_DOWSER = 805
+        fromEnum SFIDA_CAPTURE = 806
+        succ SFIDA_CAPTURE
+          = Prelude.error
+              "Ident \"RequestType\".Ident \"succ\": bad argument Ident \"SFIDA_CAPTURE\". This value would be out of bounds."
+        succ METHOD_UNSET = PLAYER_UPDATE
+        succ PLAYER_UPDATE = GET_PLAYER
+        succ GET_PLAYER = GET_INVENTORY
+        succ GET_INVENTORY = DOWNLOAD_SETTINGS
+        succ DOWNLOAD_SETTINGS = DOWNLOAD_ITEM_TEMPLATES
+        succ DOWNLOAD_ITEM_TEMPLATES = DOWNLOAD_REMOTE_CONFIG_VERSION
+        succ DOWNLOAD_REMOTE_CONFIG_VERSION = FORT_SEARCH
+        succ FORT_SEARCH = ENCOUNTER
+        succ ENCOUNTER = CATCH_POKEMON
+        succ CATCH_POKEMON = FORT_DETAILS
+        succ FORT_DETAILS = ITEM_USE
+        succ ITEM_USE = GET_MAP_OBJECTS
+        succ GET_MAP_OBJECTS = FORT_DEPLOY_POKEMON
+        succ FORT_DEPLOY_POKEMON = FORT_RECALL_POKEMON
+        succ FORT_RECALL_POKEMON = RELEASE_POKEMON
+        succ RELEASE_POKEMON = USE_ITEM_POTION
+        succ USE_ITEM_POTION = USE_ITEM_CAPTURE
+        succ USE_ITEM_CAPTURE = USE_ITEM_FLEE
+        succ USE_ITEM_FLEE = USE_ITEM_REVIVE
+        succ USE_ITEM_REVIVE = TRADE_SEARCH
+        succ TRADE_SEARCH = TRADE_OFFER
+        succ TRADE_OFFER = TRADE_RESPONSE
+        succ TRADE_RESPONSE = TRADE_RESULT
+        succ TRADE_RESULT = GET_PLAYER_PROFILE
+        succ GET_PLAYER_PROFILE = GET_ITEM_PACK
+        succ GET_ITEM_PACK = BUY_ITEM_PACK
+        succ BUY_ITEM_PACK = BUY_GEM_PACK
+        succ BUY_GEM_PACK = EVOLVE_POKEMON
+        succ EVOLVE_POKEMON = GET_HATCHED_EGGS
+        succ GET_HATCHED_EGGS = ENCOUNTER_TUTORIAL_COMPLETE
+        succ ENCOUNTER_TUTORIAL_COMPLETE = LEVEL_UP_REWARDS
+        succ LEVEL_UP_REWARDS = CHECK_AWARDED_BADGES
+        succ CHECK_AWARDED_BADGES = USE_ITEM_GYM
+        succ USE_ITEM_GYM = GET_GYM_DETAILS
+        succ GET_GYM_DETAILS = START_GYM_BATTLE
+        succ START_GYM_BATTLE = ATTACK_GYM
+        succ ATTACK_GYM = RECYCLE_INVENTORY_ITEM
+        succ RECYCLE_INVENTORY_ITEM = COLLECT_DAILY_BONUS
+        succ COLLECT_DAILY_BONUS = USE_ITEM_XP_BOOST
+        succ USE_ITEM_XP_BOOST = USE_ITEM_EGG_INCUBATOR
+        succ USE_ITEM_EGG_INCUBATOR = USE_INCENSE
+        succ USE_INCENSE = GET_INCENSE_POKEMON
+        succ GET_INCENSE_POKEMON = INCENSE_ENCOUNTER
+        succ INCENSE_ENCOUNTER = ADD_FORT_MODIFIER
+        succ ADD_FORT_MODIFIER = DISK_ENCOUNTER
+        succ DISK_ENCOUNTER = COLLECT_DAILY_DEFENDER_BONUS
+        succ COLLECT_DAILY_DEFENDER_BONUS = UPGRADE_POKEMON
+        succ UPGRADE_POKEMON = SET_FAVORITE_POKEMON
+        succ SET_FAVORITE_POKEMON = NICKNAME_POKEMON
+        succ NICKNAME_POKEMON = EQUIP_BADGE
+        succ EQUIP_BADGE = SET_CONTACT_SETTINGS
+        succ SET_CONTACT_SETTINGS = GET_ASSET_DIGEST
+        succ GET_ASSET_DIGEST = GET_DOWNLOAD_URLS
+        succ GET_DOWNLOAD_URLS = GET_SUGGESTED_CODENAMES
+        succ GET_SUGGESTED_CODENAMES = CHECK_CODENAME_AVAILABLE
+        succ CHECK_CODENAME_AVAILABLE = CLAIM_CODENAME
+        succ CLAIM_CODENAME = SET_AVATAR
+        succ SET_AVATAR = SET_PLAYER_TEAM
+        succ SET_PLAYER_TEAM = MARK_TUTORIAL_COMPLETE
+        succ MARK_TUTORIAL_COMPLETE = LOAD_SPAWN_POINTS
+        succ LOAD_SPAWN_POINTS = ECHO
+        succ ECHO = DEBUG_UPDATE_INVENTORY
+        succ DEBUG_UPDATE_INVENTORY = DEBUG_DELETE_PLAYER
+        succ DEBUG_DELETE_PLAYER = SFIDA_REGISTRATION
+        succ SFIDA_REGISTRATION = SFIDA_ACTION_LOG
+        succ SFIDA_ACTION_LOG = SFIDA_CERTIFICATION
+        succ SFIDA_CERTIFICATION = SFIDA_UPDATE
+        succ SFIDA_UPDATE = SFIDA_ACTION
+        succ SFIDA_ACTION = SFIDA_DOWSER
+        succ SFIDA_DOWSER = SFIDA_CAPTURE
+        pred METHOD_UNSET
+          = Prelude.error
+              "Ident \"RequestType\".Ident \"pred\": bad argument Ident \"METHOD_UNSET\". This value would be out of bounds."
+        pred PLAYER_UPDATE = METHOD_UNSET
+        pred GET_PLAYER = PLAYER_UPDATE
+        pred GET_INVENTORY = GET_PLAYER
+        pred DOWNLOAD_SETTINGS = GET_INVENTORY
+        pred DOWNLOAD_ITEM_TEMPLATES = DOWNLOAD_SETTINGS
+        pred DOWNLOAD_REMOTE_CONFIG_VERSION = DOWNLOAD_ITEM_TEMPLATES
+        pred FORT_SEARCH = DOWNLOAD_REMOTE_CONFIG_VERSION
+        pred ENCOUNTER = FORT_SEARCH
+        pred CATCH_POKEMON = ENCOUNTER
+        pred FORT_DETAILS = CATCH_POKEMON
+        pred ITEM_USE = FORT_DETAILS
+        pred GET_MAP_OBJECTS = ITEM_USE
+        pred FORT_DEPLOY_POKEMON = GET_MAP_OBJECTS
+        pred FORT_RECALL_POKEMON = FORT_DEPLOY_POKEMON
+        pred RELEASE_POKEMON = FORT_RECALL_POKEMON
+        pred USE_ITEM_POTION = RELEASE_POKEMON
+        pred USE_ITEM_CAPTURE = USE_ITEM_POTION
+        pred USE_ITEM_FLEE = USE_ITEM_CAPTURE
+        pred USE_ITEM_REVIVE = USE_ITEM_FLEE
+        pred TRADE_SEARCH = USE_ITEM_REVIVE
+        pred TRADE_OFFER = TRADE_SEARCH
+        pred TRADE_RESPONSE = TRADE_OFFER
+        pred TRADE_RESULT = TRADE_RESPONSE
+        pred GET_PLAYER_PROFILE = TRADE_RESULT
+        pred GET_ITEM_PACK = GET_PLAYER_PROFILE
+        pred BUY_ITEM_PACK = GET_ITEM_PACK
+        pred BUY_GEM_PACK = BUY_ITEM_PACK
+        pred EVOLVE_POKEMON = BUY_GEM_PACK
+        pred GET_HATCHED_EGGS = EVOLVE_POKEMON
+        pred ENCOUNTER_TUTORIAL_COMPLETE = GET_HATCHED_EGGS
+        pred LEVEL_UP_REWARDS = ENCOUNTER_TUTORIAL_COMPLETE
+        pred CHECK_AWARDED_BADGES = LEVEL_UP_REWARDS
+        pred USE_ITEM_GYM = CHECK_AWARDED_BADGES
+        pred GET_GYM_DETAILS = USE_ITEM_GYM
+        pred START_GYM_BATTLE = GET_GYM_DETAILS
+        pred ATTACK_GYM = START_GYM_BATTLE
+        pred RECYCLE_INVENTORY_ITEM = ATTACK_GYM
+        pred COLLECT_DAILY_BONUS = RECYCLE_INVENTORY_ITEM
+        pred USE_ITEM_XP_BOOST = COLLECT_DAILY_BONUS
+        pred USE_ITEM_EGG_INCUBATOR = USE_ITEM_XP_BOOST
+        pred USE_INCENSE = USE_ITEM_EGG_INCUBATOR
+        pred GET_INCENSE_POKEMON = USE_INCENSE
+        pred INCENSE_ENCOUNTER = GET_INCENSE_POKEMON
+        pred ADD_FORT_MODIFIER = INCENSE_ENCOUNTER
+        pred DISK_ENCOUNTER = ADD_FORT_MODIFIER
+        pred COLLECT_DAILY_DEFENDER_BONUS = DISK_ENCOUNTER
+        pred UPGRADE_POKEMON = COLLECT_DAILY_DEFENDER_BONUS
+        pred SET_FAVORITE_POKEMON = UPGRADE_POKEMON
+        pred NICKNAME_POKEMON = SET_FAVORITE_POKEMON
+        pred EQUIP_BADGE = NICKNAME_POKEMON
+        pred SET_CONTACT_SETTINGS = EQUIP_BADGE
+        pred GET_ASSET_DIGEST = SET_CONTACT_SETTINGS
+        pred GET_DOWNLOAD_URLS = GET_ASSET_DIGEST
+        pred GET_SUGGESTED_CODENAMES = GET_DOWNLOAD_URLS
+        pred CHECK_CODENAME_AVAILABLE = GET_SUGGESTED_CODENAMES
+        pred CLAIM_CODENAME = CHECK_CODENAME_AVAILABLE
+        pred SET_AVATAR = CLAIM_CODENAME
+        pred SET_PLAYER_TEAM = SET_AVATAR
+        pred MARK_TUTORIAL_COMPLETE = SET_PLAYER_TEAM
+        pred LOAD_SPAWN_POINTS = MARK_TUTORIAL_COMPLETE
+        pred ECHO = LOAD_SPAWN_POINTS
+        pred DEBUG_UPDATE_INVENTORY = ECHO
+        pred DEBUG_DELETE_PLAYER = DEBUG_UPDATE_INVENTORY
+        pred SFIDA_REGISTRATION = DEBUG_DELETE_PLAYER
+        pred SFIDA_ACTION_LOG = SFIDA_REGISTRATION
+        pred SFIDA_CERTIFICATION = SFIDA_ACTION_LOG
+        pred SFIDA_UPDATE = SFIDA_CERTIFICATION
+        pred SFIDA_ACTION = SFIDA_UPDATE
+        pred SFIDA_DOWSER = SFIDA_ACTION
+        pred SFIDA_CAPTURE = SFIDA_DOWSER
+        enumFrom = Data.ProtoLens.Message.Enum.messageEnumFrom
+        enumFromTo = Data.ProtoLens.Message.Enum.messageEnumFromTo
+        enumFromThen = Data.ProtoLens.Message.Enum.messageEnumFromThen
+        enumFromThenTo = Data.ProtoLens.Message.Enum.messageEnumFromThenTo
+
+instance Prelude.Bounded RequestType where
+        minBound = METHOD_UNSET
+        maxBound = SFIDA_CAPTURE
diff --git a/src/Proto/POGOProtos/Networking/Responses/AddFortModifierResponse.hs b/src/Proto/POGOProtos/Networking/Responses/AddFortModifierResponse.hs
new file mode 100644
--- /dev/null
+++ b/src/Proto/POGOProtos/Networking/Responses/AddFortModifierResponse.hs
@@ -0,0 +1,29 @@
+{- This file was auto-generated from POGOProtos/Networking/Responses/AddFortModifierResponse.proto by the proto-lens-protoc program. -}
+{-# LANGUAGE ScopedTypeVariables, DataKinds, TypeFamilies,
+  MultiParamTypeClasses, FlexibleContexts, FlexibleInstances #-}
+{-# OPTIONS_GHC -fno-warn-unused-imports#-}
+module Proto.POGOProtos.Networking.Responses.AddFortModifierResponse
+       where
+import qualified Prelude
+import qualified Data.ProtoLens
+import qualified Data.ProtoLens.Message.Enum
+import qualified Lens.Family2
+import qualified Lens.Family2.Unchecked
+import qualified Data.Default.Class
+import qualified Data.Text
+import qualified Data.Int
+import qualified Data.Word
+import qualified Data.Map
+import qualified Data.ByteString
+
+data AddFortModifierResponse = AddFortModifierResponse{}
+                             deriving (Prelude.Show, Prelude.Eq)
+
+instance Data.Default.Class.Default AddFortModifierResponse where
+        def = AddFortModifierResponse{}
+
+instance Data.ProtoLens.Message AddFortModifierResponse where
+        descriptor
+          = let in
+              Data.ProtoLens.MessageDescriptor (Data.Map.fromList [])
+                (Data.Map.fromList [])
diff --git a/src/Proto/POGOProtos/Networking/Responses/AttackGymResponse.hs b/src/Proto/POGOProtos/Networking/Responses/AttackGymResponse.hs
new file mode 100644
--- /dev/null
+++ b/src/Proto/POGOProtos/Networking/Responses/AttackGymResponse.hs
@@ -0,0 +1,315 @@
+{- This file was auto-generated from POGOProtos/Networking/Responses/AttackGymResponse.proto by the proto-lens-protoc program. -}
+{-# LANGUAGE ScopedTypeVariables, DataKinds, TypeFamilies,
+  MultiParamTypeClasses, FlexibleContexts, FlexibleInstances #-}
+{-# OPTIONS_GHC -fno-warn-unused-imports#-}
+module Proto.POGOProtos.Networking.Responses.AttackGymResponse
+       where
+import qualified Prelude
+import qualified Data.ProtoLens
+import qualified Data.ProtoLens.Message.Enum
+import qualified Lens.Family2
+import qualified Lens.Family2.Unchecked
+import qualified Data.Default.Class
+import qualified Data.Text
+import qualified Data.Int
+import qualified Data.Word
+import qualified Data.Map
+import qualified Data.ByteString
+import qualified Proto.POGOProtos.Data.Battle.BattleLog
+import qualified Proto.POGOProtos.Data.Battle.BattlePokemonInfo
+
+data AttackGymResponse = AttackGymResponse{_AttackGymResponse'result
+                                           :: AttackGymResponse'Result,
+                                           _AttackGymResponse'battleLog ::
+                                           Prelude.Maybe
+                                             Proto.POGOProtos.Data.Battle.BattleLog.BattleLog,
+                                           _AttackGymResponse'battleId :: Data.Text.Text,
+                                           _AttackGymResponse'activeDefender ::
+                                           Prelude.Maybe
+                                             Proto.POGOProtos.Data.Battle.BattlePokemonInfo.BattlePokemonInfo,
+                                           _AttackGymResponse'activeAttacker ::
+                                           Prelude.Maybe
+                                             Proto.POGOProtos.Data.Battle.BattlePokemonInfo.BattlePokemonInfo}
+                       deriving (Prelude.Show, Prelude.Eq)
+
+type instance Data.ProtoLens.Field "result" AttackGymResponse =
+     AttackGymResponse'Result
+
+instance Data.ProtoLens.HasField "result" AttackGymResponse
+         AttackGymResponse where
+        field _
+          = Lens.Family2.Unchecked.lens _AttackGymResponse'result
+              (\ x__ y__ -> x__{_AttackGymResponse'result = y__})
+
+type instance Data.ProtoLens.Field "battleLog" AttackGymResponse =
+     Proto.POGOProtos.Data.Battle.BattleLog.BattleLog
+
+instance Data.ProtoLens.HasField "battleLog" AttackGymResponse
+         AttackGymResponse where
+        field _
+          = (Prelude..) maybe'battleLog
+              (Data.ProtoLens.maybeLens Data.Default.Class.def)
+
+type instance
+     Data.ProtoLens.Field "maybe'battleLog" AttackGymResponse =
+     Prelude.Maybe Proto.POGOProtos.Data.Battle.BattleLog.BattleLog
+
+instance Data.ProtoLens.HasField "maybe'battleLog"
+         AttackGymResponse AttackGymResponse where
+        field _
+          = Lens.Family2.Unchecked.lens _AttackGymResponse'battleLog
+              (\ x__ y__ -> x__{_AttackGymResponse'battleLog = y__})
+
+type instance Data.ProtoLens.Field "battleId" AttackGymResponse =
+     Data.Text.Text
+
+instance Data.ProtoLens.HasField "battleId" AttackGymResponse
+         AttackGymResponse where
+        field _
+          = Lens.Family2.Unchecked.lens _AttackGymResponse'battleId
+              (\ x__ y__ -> x__{_AttackGymResponse'battleId = y__})
+
+type instance
+     Data.ProtoLens.Field "activeDefender" AttackGymResponse =
+     Proto.POGOProtos.Data.Battle.BattlePokemonInfo.BattlePokemonInfo
+
+instance Data.ProtoLens.HasField "activeDefender" AttackGymResponse
+         AttackGymResponse where
+        field _
+          = (Prelude..) maybe'activeDefender
+              (Data.ProtoLens.maybeLens Data.Default.Class.def)
+
+type instance
+     Data.ProtoLens.Field "maybe'activeDefender" AttackGymResponse =
+     Prelude.Maybe
+       Proto.POGOProtos.Data.Battle.BattlePokemonInfo.BattlePokemonInfo
+
+instance Data.ProtoLens.HasField "maybe'activeDefender"
+         AttackGymResponse AttackGymResponse where
+        field _
+          = Lens.Family2.Unchecked.lens _AttackGymResponse'activeDefender
+              (\ x__ y__ -> x__{_AttackGymResponse'activeDefender = y__})
+
+type instance
+     Data.ProtoLens.Field "activeAttacker" AttackGymResponse =
+     Proto.POGOProtos.Data.Battle.BattlePokemonInfo.BattlePokemonInfo
+
+instance Data.ProtoLens.HasField "activeAttacker" AttackGymResponse
+         AttackGymResponse where
+        field _
+          = (Prelude..) maybe'activeAttacker
+              (Data.ProtoLens.maybeLens Data.Default.Class.def)
+
+type instance
+     Data.ProtoLens.Field "maybe'activeAttacker" AttackGymResponse =
+     Prelude.Maybe
+       Proto.POGOProtos.Data.Battle.BattlePokemonInfo.BattlePokemonInfo
+
+instance Data.ProtoLens.HasField "maybe'activeAttacker"
+         AttackGymResponse AttackGymResponse where
+        field _
+          = Lens.Family2.Unchecked.lens _AttackGymResponse'activeAttacker
+              (\ x__ y__ -> x__{_AttackGymResponse'activeAttacker = y__})
+
+instance Data.Default.Class.Default AttackGymResponse where
+        def
+          = AttackGymResponse{_AttackGymResponse'result =
+                                Data.Default.Class.def,
+                              _AttackGymResponse'battleLog = Prelude.Nothing,
+                              _AttackGymResponse'battleId = Data.ProtoLens.fieldDefault,
+                              _AttackGymResponse'activeDefender = Prelude.Nothing,
+                              _AttackGymResponse'activeAttacker = Prelude.Nothing}
+
+instance Data.ProtoLens.Message AttackGymResponse where
+        descriptor
+          = let result__field_descriptor
+                  = Data.ProtoLens.FieldDescriptor "result"
+                      (Data.ProtoLens.EnumField ::
+                         Data.ProtoLens.FieldTypeDescriptor AttackGymResponse'Result)
+                      (Data.ProtoLens.PlainField Data.ProtoLens.Optional result)
+                battleLog__field_descriptor
+                  = Data.ProtoLens.FieldDescriptor "battle_log"
+                      (Data.ProtoLens.MessageField ::
+                         Data.ProtoLens.FieldTypeDescriptor
+                           Proto.POGOProtos.Data.Battle.BattleLog.BattleLog)
+                      (Data.ProtoLens.OptionalField maybe'battleLog)
+                battleId__field_descriptor
+                  = Data.ProtoLens.FieldDescriptor "battle_id"
+                      (Data.ProtoLens.StringField ::
+                         Data.ProtoLens.FieldTypeDescriptor Data.Text.Text)
+                      (Data.ProtoLens.PlainField Data.ProtoLens.Optional battleId)
+                activeDefender__field_descriptor
+                  = Data.ProtoLens.FieldDescriptor "active_defender"
+                      (Data.ProtoLens.MessageField ::
+                         Data.ProtoLens.FieldTypeDescriptor
+                           Proto.POGOProtos.Data.Battle.BattlePokemonInfo.BattlePokemonInfo)
+                      (Data.ProtoLens.OptionalField maybe'activeDefender)
+                activeAttacker__field_descriptor
+                  = Data.ProtoLens.FieldDescriptor "active_attacker"
+                      (Data.ProtoLens.MessageField ::
+                         Data.ProtoLens.FieldTypeDescriptor
+                           Proto.POGOProtos.Data.Battle.BattlePokemonInfo.BattlePokemonInfo)
+                      (Data.ProtoLens.OptionalField maybe'activeAttacker)
+              in
+              Data.ProtoLens.MessageDescriptor
+                (Data.Map.fromList
+                   [(Data.ProtoLens.Tag 1, result__field_descriptor),
+                    (Data.ProtoLens.Tag 2, battleLog__field_descriptor),
+                    (Data.ProtoLens.Tag 3, battleId__field_descriptor),
+                    (Data.ProtoLens.Tag 4, activeDefender__field_descriptor),
+                    (Data.ProtoLens.Tag 5, activeAttacker__field_descriptor)])
+                (Data.Map.fromList
+                   [("result", result__field_descriptor),
+                    ("battle_log", battleLog__field_descriptor),
+                    ("battle_id", battleId__field_descriptor),
+                    ("active_defender", activeDefender__field_descriptor),
+                    ("active_attacker", activeAttacker__field_descriptor)])
+
+data AttackGymResponse'Result = AttackGymResponse'UNSET
+                              | AttackGymResponse'SUCCESS
+                              | AttackGymResponse'ERROR_INVALID_ATTACK_ACTIONS
+                              | AttackGymResponse'ERROR_NOT_IN_RANGE
+                              deriving (Prelude.Show, Prelude.Eq)
+
+instance Data.Default.Class.Default AttackGymResponse'Result where
+        def = AttackGymResponse'UNSET
+
+instance Data.ProtoLens.FieldDefault AttackGymResponse'Result where
+        fieldDefault = AttackGymResponse'UNSET
+
+instance Data.ProtoLens.MessageEnum AttackGymResponse'Result where
+        maybeToEnum 0 = Prelude.Just AttackGymResponse'UNSET
+        maybeToEnum 1 = Prelude.Just AttackGymResponse'SUCCESS
+        maybeToEnum 2
+          = Prelude.Just AttackGymResponse'ERROR_INVALID_ATTACK_ACTIONS
+        maybeToEnum 3 = Prelude.Just AttackGymResponse'ERROR_NOT_IN_RANGE
+        maybeToEnum _ = Prelude.Nothing
+        showEnum AttackGymResponse'UNSET = "UNSET"
+        showEnum AttackGymResponse'SUCCESS = "SUCCESS"
+        showEnum AttackGymResponse'ERROR_INVALID_ATTACK_ACTIONS
+          = "ERROR_INVALID_ATTACK_ACTIONS"
+        showEnum AttackGymResponse'ERROR_NOT_IN_RANGE
+          = "ERROR_NOT_IN_RANGE"
+        readEnum "UNSET" = Prelude.Just AttackGymResponse'UNSET
+        readEnum "SUCCESS" = Prelude.Just AttackGymResponse'SUCCESS
+        readEnum "ERROR_INVALID_ATTACK_ACTIONS"
+          = Prelude.Just AttackGymResponse'ERROR_INVALID_ATTACK_ACTIONS
+        readEnum "ERROR_NOT_IN_RANGE"
+          = Prelude.Just AttackGymResponse'ERROR_NOT_IN_RANGE
+        readEnum _ = Prelude.Nothing
+
+instance Prelude.Enum AttackGymResponse'Result where
+        toEnum k__
+          = Prelude.maybe
+              (Prelude.error
+                 ((Prelude.++) "toEnum: unknown value for enum Result: "
+                    (Prelude.show k__)))
+              Prelude.id
+              (Data.ProtoLens.maybeToEnum k__)
+        fromEnum AttackGymResponse'UNSET = 0
+        fromEnum AttackGymResponse'SUCCESS = 1
+        fromEnum AttackGymResponse'ERROR_INVALID_ATTACK_ACTIONS = 2
+        fromEnum AttackGymResponse'ERROR_NOT_IN_RANGE = 3
+        succ AttackGymResponse'ERROR_NOT_IN_RANGE
+          = Prelude.error
+              "Ident \"AttackGymResponse'Result\".Ident \"succ\": bad argument Ident \"AttackGymResponse'ERROR_NOT_IN_RANGE\". This value would be out of bounds."
+        succ AttackGymResponse'UNSET = AttackGymResponse'SUCCESS
+        succ AttackGymResponse'SUCCESS
+          = AttackGymResponse'ERROR_INVALID_ATTACK_ACTIONS
+        succ AttackGymResponse'ERROR_INVALID_ATTACK_ACTIONS
+          = AttackGymResponse'ERROR_NOT_IN_RANGE
+        pred AttackGymResponse'UNSET
+          = Prelude.error
+              "Ident \"AttackGymResponse'Result\".Ident \"pred\": bad argument Ident \"AttackGymResponse'UNSET\". This value would be out of bounds."
+        pred AttackGymResponse'SUCCESS = AttackGymResponse'UNSET
+        pred AttackGymResponse'ERROR_INVALID_ATTACK_ACTIONS
+          = AttackGymResponse'SUCCESS
+        pred AttackGymResponse'ERROR_NOT_IN_RANGE
+          = AttackGymResponse'ERROR_INVALID_ATTACK_ACTIONS
+        enumFrom = Data.ProtoLens.Message.Enum.messageEnumFrom
+        enumFromTo = Data.ProtoLens.Message.Enum.messageEnumFromTo
+        enumFromThen = Data.ProtoLens.Message.Enum.messageEnumFromThen
+        enumFromThenTo = Data.ProtoLens.Message.Enum.messageEnumFromThenTo
+
+instance Prelude.Bounded AttackGymResponse'Result where
+        minBound = AttackGymResponse'UNSET
+        maxBound = AttackGymResponse'ERROR_NOT_IN_RANGE
+
+activeAttacker ::
+               forall msg msg' .
+                 Data.ProtoLens.HasField "activeAttacker" msg msg' =>
+                 Lens.Family2.Lens msg msg'
+                   (Data.ProtoLens.Field "activeAttacker" msg)
+                   (Data.ProtoLens.Field "activeAttacker" msg')
+activeAttacker
+  = Data.ProtoLens.field
+      (Data.ProtoLens.ProxySym ::
+         Data.ProtoLens.ProxySym "activeAttacker")
+
+activeDefender ::
+               forall msg msg' .
+                 Data.ProtoLens.HasField "activeDefender" msg msg' =>
+                 Lens.Family2.Lens msg msg'
+                   (Data.ProtoLens.Field "activeDefender" msg)
+                   (Data.ProtoLens.Field "activeDefender" msg')
+activeDefender
+  = Data.ProtoLens.field
+      (Data.ProtoLens.ProxySym ::
+         Data.ProtoLens.ProxySym "activeDefender")
+
+battleId ::
+         forall msg msg' . Data.ProtoLens.HasField "battleId" msg msg' =>
+           Lens.Family2.Lens msg msg' (Data.ProtoLens.Field "battleId" msg)
+             (Data.ProtoLens.Field "battleId" msg')
+battleId
+  = Data.ProtoLens.field
+      (Data.ProtoLens.ProxySym :: Data.ProtoLens.ProxySym "battleId")
+
+battleLog ::
+          forall msg msg' . Data.ProtoLens.HasField "battleLog" msg msg' =>
+            Lens.Family2.Lens msg msg' (Data.ProtoLens.Field "battleLog" msg)
+              (Data.ProtoLens.Field "battleLog" msg')
+battleLog
+  = Data.ProtoLens.field
+      (Data.ProtoLens.ProxySym :: Data.ProtoLens.ProxySym "battleLog")
+
+maybe'activeAttacker ::
+                     forall msg msg' .
+                       Data.ProtoLens.HasField "maybe'activeAttacker" msg msg' =>
+                       Lens.Family2.Lens msg msg'
+                         (Data.ProtoLens.Field "maybe'activeAttacker" msg)
+                         (Data.ProtoLens.Field "maybe'activeAttacker" msg')
+maybe'activeAttacker
+  = Data.ProtoLens.field
+      (Data.ProtoLens.ProxySym ::
+         Data.ProtoLens.ProxySym "maybe'activeAttacker")
+
+maybe'activeDefender ::
+                     forall msg msg' .
+                       Data.ProtoLens.HasField "maybe'activeDefender" msg msg' =>
+                       Lens.Family2.Lens msg msg'
+                         (Data.ProtoLens.Field "maybe'activeDefender" msg)
+                         (Data.ProtoLens.Field "maybe'activeDefender" msg')
+maybe'activeDefender
+  = Data.ProtoLens.field
+      (Data.ProtoLens.ProxySym ::
+         Data.ProtoLens.ProxySym "maybe'activeDefender")
+
+maybe'battleLog ::
+                forall msg msg' .
+                  Data.ProtoLens.HasField "maybe'battleLog" msg msg' =>
+                  Lens.Family2.Lens msg msg'
+                    (Data.ProtoLens.Field "maybe'battleLog" msg)
+                    (Data.ProtoLens.Field "maybe'battleLog" msg')
+maybe'battleLog
+  = Data.ProtoLens.field
+      (Data.ProtoLens.ProxySym ::
+         Data.ProtoLens.ProxySym "maybe'battleLog")
+
+result ::
+       forall msg msg' . Data.ProtoLens.HasField "result" msg msg' =>
+         Lens.Family2.Lens msg msg' (Data.ProtoLens.Field "result" msg)
+           (Data.ProtoLens.Field "result" msg')
+result
+  = Data.ProtoLens.field
+      (Data.ProtoLens.ProxySym :: Data.ProtoLens.ProxySym "result")
diff --git a/src/Proto/POGOProtos/Networking/Responses/CatchPokemonResponse.hs b/src/Proto/POGOProtos/Networking/Responses/CatchPokemonResponse.hs
new file mode 100644
--- /dev/null
+++ b/src/Proto/POGOProtos/Networking/Responses/CatchPokemonResponse.hs
@@ -0,0 +1,259 @@
+{- This file was auto-generated from POGOProtos/Networking/Responses/CatchPokemonResponse.proto by the proto-lens-protoc program. -}
+{-# LANGUAGE ScopedTypeVariables, DataKinds, TypeFamilies,
+  MultiParamTypeClasses, FlexibleContexts, FlexibleInstances #-}
+{-# OPTIONS_GHC -fno-warn-unused-imports#-}
+module Proto.POGOProtos.Networking.Responses.CatchPokemonResponse
+       where
+import qualified Prelude
+import qualified Data.ProtoLens
+import qualified Data.ProtoLens.Message.Enum
+import qualified Lens.Family2
+import qualified Lens.Family2.Unchecked
+import qualified Data.Default.Class
+import qualified Data.Text
+import qualified Data.Int
+import qualified Data.Word
+import qualified Data.Map
+import qualified Data.ByteString
+import qualified Proto.POGOProtos.Data.Capture.CaptureAward
+
+data CatchPokemonResponse = CatchPokemonResponse{_CatchPokemonResponse'status
+                                                 :: CatchPokemonResponse'CatchStatus,
+                                                 _CatchPokemonResponse'missPercent ::
+                                                 Prelude.Double,
+                                                 _CatchPokemonResponse'capturedPokemonId ::
+                                                 Data.Word.Word64,
+                                                 _CatchPokemonResponse'captureAward ::
+                                                 Prelude.Maybe
+                                                   Proto.POGOProtos.Data.Capture.CaptureAward.CaptureAward}
+                          deriving (Prelude.Show, Prelude.Eq)
+
+type instance Data.ProtoLens.Field "status" CatchPokemonResponse =
+     CatchPokemonResponse'CatchStatus
+
+instance Data.ProtoLens.HasField "status" CatchPokemonResponse
+         CatchPokemonResponse where
+        field _
+          = Lens.Family2.Unchecked.lens _CatchPokemonResponse'status
+              (\ x__ y__ -> x__{_CatchPokemonResponse'status = y__})
+
+type instance
+     Data.ProtoLens.Field "missPercent" CatchPokemonResponse =
+     Prelude.Double
+
+instance Data.ProtoLens.HasField "missPercent" CatchPokemonResponse
+         CatchPokemonResponse where
+        field _
+          = Lens.Family2.Unchecked.lens _CatchPokemonResponse'missPercent
+              (\ x__ y__ -> x__{_CatchPokemonResponse'missPercent = y__})
+
+type instance
+     Data.ProtoLens.Field "capturedPokemonId" CatchPokemonResponse =
+     Data.Word.Word64
+
+instance Data.ProtoLens.HasField "capturedPokemonId"
+         CatchPokemonResponse CatchPokemonResponse where
+        field _
+          = Lens.Family2.Unchecked.lens
+              _CatchPokemonResponse'capturedPokemonId
+              (\ x__ y__ -> x__{_CatchPokemonResponse'capturedPokemonId = y__})
+
+type instance
+     Data.ProtoLens.Field "captureAward" CatchPokemonResponse =
+     Proto.POGOProtos.Data.Capture.CaptureAward.CaptureAward
+
+instance Data.ProtoLens.HasField "captureAward"
+         CatchPokemonResponse CatchPokemonResponse where
+        field _
+          = (Prelude..) maybe'captureAward
+              (Data.ProtoLens.maybeLens Data.Default.Class.def)
+
+type instance
+     Data.ProtoLens.Field "maybe'captureAward" CatchPokemonResponse =
+     Prelude.Maybe
+       Proto.POGOProtos.Data.Capture.CaptureAward.CaptureAward
+
+instance Data.ProtoLens.HasField "maybe'captureAward"
+         CatchPokemonResponse CatchPokemonResponse where
+        field _
+          = Lens.Family2.Unchecked.lens _CatchPokemonResponse'captureAward
+              (\ x__ y__ -> x__{_CatchPokemonResponse'captureAward = y__})
+
+instance Data.Default.Class.Default CatchPokemonResponse where
+        def
+          = CatchPokemonResponse{_CatchPokemonResponse'status =
+                                   Data.Default.Class.def,
+                                 _CatchPokemonResponse'missPercent = Data.ProtoLens.fieldDefault,
+                                 _CatchPokemonResponse'capturedPokemonId =
+                                   Data.ProtoLens.fieldDefault,
+                                 _CatchPokemonResponse'captureAward = Prelude.Nothing}
+
+instance Data.ProtoLens.Message CatchPokemonResponse where
+        descriptor
+          = let status__field_descriptor
+                  = Data.ProtoLens.FieldDescriptor "status"
+                      (Data.ProtoLens.EnumField ::
+                         Data.ProtoLens.FieldTypeDescriptor
+                           CatchPokemonResponse'CatchStatus)
+                      (Data.ProtoLens.PlainField Data.ProtoLens.Optional status)
+                missPercent__field_descriptor
+                  = Data.ProtoLens.FieldDescriptor "miss_percent"
+                      (Data.ProtoLens.DoubleField ::
+                         Data.ProtoLens.FieldTypeDescriptor Prelude.Double)
+                      (Data.ProtoLens.PlainField Data.ProtoLens.Optional missPercent)
+                capturedPokemonId__field_descriptor
+                  = Data.ProtoLens.FieldDescriptor "captured_pokemon_id"
+                      (Data.ProtoLens.Fixed64Field ::
+                         Data.ProtoLens.FieldTypeDescriptor Data.Word.Word64)
+                      (Data.ProtoLens.PlainField Data.ProtoLens.Optional
+                         capturedPokemonId)
+                captureAward__field_descriptor
+                  = Data.ProtoLens.FieldDescriptor "capture_award"
+                      (Data.ProtoLens.MessageField ::
+                         Data.ProtoLens.FieldTypeDescriptor
+                           Proto.POGOProtos.Data.Capture.CaptureAward.CaptureAward)
+                      (Data.ProtoLens.OptionalField maybe'captureAward)
+              in
+              Data.ProtoLens.MessageDescriptor
+                (Data.Map.fromList
+                   [(Data.ProtoLens.Tag 1, status__field_descriptor),
+                    (Data.ProtoLens.Tag 2, missPercent__field_descriptor),
+                    (Data.ProtoLens.Tag 3, capturedPokemonId__field_descriptor),
+                    (Data.ProtoLens.Tag 4, captureAward__field_descriptor)])
+                (Data.Map.fromList
+                   [("status", status__field_descriptor),
+                    ("miss_percent", missPercent__field_descriptor),
+                    ("captured_pokemon_id", capturedPokemonId__field_descriptor),
+                    ("capture_award", captureAward__field_descriptor)])
+
+data CatchPokemonResponse'CatchStatus = CatchPokemonResponse'CATCH_ERROR
+                                      | CatchPokemonResponse'CATCH_SUCCESS
+                                      | CatchPokemonResponse'CATCH_ESCAPE
+                                      | CatchPokemonResponse'CATCH_FLEE
+                                      | CatchPokemonResponse'CATCH_MISSED
+                                      deriving (Prelude.Show, Prelude.Eq)
+
+instance Data.Default.Class.Default
+         CatchPokemonResponse'CatchStatus where
+        def = CatchPokemonResponse'CATCH_ERROR
+
+instance Data.ProtoLens.FieldDefault
+         CatchPokemonResponse'CatchStatus where
+        fieldDefault = CatchPokemonResponse'CATCH_ERROR
+
+instance Data.ProtoLens.MessageEnum
+         CatchPokemonResponse'CatchStatus where
+        maybeToEnum 0 = Prelude.Just CatchPokemonResponse'CATCH_ERROR
+        maybeToEnum 1 = Prelude.Just CatchPokemonResponse'CATCH_SUCCESS
+        maybeToEnum 2 = Prelude.Just CatchPokemonResponse'CATCH_ESCAPE
+        maybeToEnum 3 = Prelude.Just CatchPokemonResponse'CATCH_FLEE
+        maybeToEnum 4 = Prelude.Just CatchPokemonResponse'CATCH_MISSED
+        maybeToEnum _ = Prelude.Nothing
+        showEnum CatchPokemonResponse'CATCH_ERROR = "CATCH_ERROR"
+        showEnum CatchPokemonResponse'CATCH_SUCCESS = "CATCH_SUCCESS"
+        showEnum CatchPokemonResponse'CATCH_ESCAPE = "CATCH_ESCAPE"
+        showEnum CatchPokemonResponse'CATCH_FLEE = "CATCH_FLEE"
+        showEnum CatchPokemonResponse'CATCH_MISSED = "CATCH_MISSED"
+        readEnum "CATCH_ERROR"
+          = Prelude.Just CatchPokemonResponse'CATCH_ERROR
+        readEnum "CATCH_SUCCESS"
+          = Prelude.Just CatchPokemonResponse'CATCH_SUCCESS
+        readEnum "CATCH_ESCAPE"
+          = Prelude.Just CatchPokemonResponse'CATCH_ESCAPE
+        readEnum "CATCH_FLEE"
+          = Prelude.Just CatchPokemonResponse'CATCH_FLEE
+        readEnum "CATCH_MISSED"
+          = Prelude.Just CatchPokemonResponse'CATCH_MISSED
+        readEnum _ = Prelude.Nothing
+
+instance Prelude.Enum CatchPokemonResponse'CatchStatus where
+        toEnum k__
+          = Prelude.maybe
+              (Prelude.error
+                 ((Prelude.++) "toEnum: unknown value for enum CatchStatus: "
+                    (Prelude.show k__)))
+              Prelude.id
+              (Data.ProtoLens.maybeToEnum k__)
+        fromEnum CatchPokemonResponse'CATCH_ERROR = 0
+        fromEnum CatchPokemonResponse'CATCH_SUCCESS = 1
+        fromEnum CatchPokemonResponse'CATCH_ESCAPE = 2
+        fromEnum CatchPokemonResponse'CATCH_FLEE = 3
+        fromEnum CatchPokemonResponse'CATCH_MISSED = 4
+        succ CatchPokemonResponse'CATCH_MISSED
+          = Prelude.error
+              "Ident \"CatchPokemonResponse'CatchStatus\".Ident \"succ\": bad argument Ident \"CatchPokemonResponse'CATCH_MISSED\". This value would be out of bounds."
+        succ CatchPokemonResponse'CATCH_ERROR
+          = CatchPokemonResponse'CATCH_SUCCESS
+        succ CatchPokemonResponse'CATCH_SUCCESS
+          = CatchPokemonResponse'CATCH_ESCAPE
+        succ CatchPokemonResponse'CATCH_ESCAPE
+          = CatchPokemonResponse'CATCH_FLEE
+        succ CatchPokemonResponse'CATCH_FLEE
+          = CatchPokemonResponse'CATCH_MISSED
+        pred CatchPokemonResponse'CATCH_ERROR
+          = Prelude.error
+              "Ident \"CatchPokemonResponse'CatchStatus\".Ident \"pred\": bad argument Ident \"CatchPokemonResponse'CATCH_ERROR\". This value would be out of bounds."
+        pred CatchPokemonResponse'CATCH_SUCCESS
+          = CatchPokemonResponse'CATCH_ERROR
+        pred CatchPokemonResponse'CATCH_ESCAPE
+          = CatchPokemonResponse'CATCH_SUCCESS
+        pred CatchPokemonResponse'CATCH_FLEE
+          = CatchPokemonResponse'CATCH_ESCAPE
+        pred CatchPokemonResponse'CATCH_MISSED
+          = CatchPokemonResponse'CATCH_FLEE
+        enumFrom = Data.ProtoLens.Message.Enum.messageEnumFrom
+        enumFromTo = Data.ProtoLens.Message.Enum.messageEnumFromTo
+        enumFromThen = Data.ProtoLens.Message.Enum.messageEnumFromThen
+        enumFromThenTo = Data.ProtoLens.Message.Enum.messageEnumFromThenTo
+
+instance Prelude.Bounded CatchPokemonResponse'CatchStatus where
+        minBound = CatchPokemonResponse'CATCH_ERROR
+        maxBound = CatchPokemonResponse'CATCH_MISSED
+
+captureAward ::
+             forall msg msg' .
+               Data.ProtoLens.HasField "captureAward" msg msg' =>
+               Lens.Family2.Lens msg msg'
+                 (Data.ProtoLens.Field "captureAward" msg)
+                 (Data.ProtoLens.Field "captureAward" msg')
+captureAward
+  = Data.ProtoLens.field
+      (Data.ProtoLens.ProxySym :: Data.ProtoLens.ProxySym "captureAward")
+
+capturedPokemonId ::
+                  forall msg msg' .
+                    Data.ProtoLens.HasField "capturedPokemonId" msg msg' =>
+                    Lens.Family2.Lens msg msg'
+                      (Data.ProtoLens.Field "capturedPokemonId" msg)
+                      (Data.ProtoLens.Field "capturedPokemonId" msg')
+capturedPokemonId
+  = Data.ProtoLens.field
+      (Data.ProtoLens.ProxySym ::
+         Data.ProtoLens.ProxySym "capturedPokemonId")
+
+maybe'captureAward ::
+                   forall msg msg' .
+                     Data.ProtoLens.HasField "maybe'captureAward" msg msg' =>
+                     Lens.Family2.Lens msg msg'
+                       (Data.ProtoLens.Field "maybe'captureAward" msg)
+                       (Data.ProtoLens.Field "maybe'captureAward" msg')
+maybe'captureAward
+  = Data.ProtoLens.field
+      (Data.ProtoLens.ProxySym ::
+         Data.ProtoLens.ProxySym "maybe'captureAward")
+
+missPercent ::
+            forall msg msg' . Data.ProtoLens.HasField "missPercent" msg msg' =>
+              Lens.Family2.Lens msg msg' (Data.ProtoLens.Field "missPercent" msg)
+                (Data.ProtoLens.Field "missPercent" msg')
+missPercent
+  = Data.ProtoLens.field
+      (Data.ProtoLens.ProxySym :: Data.ProtoLens.ProxySym "missPercent")
+
+status ::
+       forall msg msg' . Data.ProtoLens.HasField "status" msg msg' =>
+         Lens.Family2.Lens msg msg' (Data.ProtoLens.Field "status" msg)
+           (Data.ProtoLens.Field "status" msg')
+status
+  = Data.ProtoLens.field
+      (Data.ProtoLens.ProxySym :: Data.ProtoLens.ProxySym "status")
diff --git a/src/Proto/POGOProtos/Networking/Responses/CheckAwardedBadgesResponse.hs b/src/Proto/POGOProtos/Networking/Responses/CheckAwardedBadgesResponse.hs
new file mode 100644
--- /dev/null
+++ b/src/Proto/POGOProtos/Networking/Responses/CheckAwardedBadgesResponse.hs
@@ -0,0 +1,130 @@
+{- This file was auto-generated from POGOProtos/Networking/Responses/CheckAwardedBadgesResponse.proto by the proto-lens-protoc program. -}
+{-# LANGUAGE ScopedTypeVariables, DataKinds, TypeFamilies,
+  MultiParamTypeClasses, FlexibleContexts, FlexibleInstances #-}
+{-# OPTIONS_GHC -fno-warn-unused-imports#-}
+module Proto.POGOProtos.Networking.Responses.CheckAwardedBadgesResponse
+       where
+import qualified Prelude
+import qualified Data.ProtoLens
+import qualified Data.ProtoLens.Message.Enum
+import qualified Lens.Family2
+import qualified Lens.Family2.Unchecked
+import qualified Data.Default.Class
+import qualified Data.Text
+import qualified Data.Int
+import qualified Data.Word
+import qualified Data.Map
+import qualified Data.ByteString
+import qualified Proto.POGOProtos.Enums.BadgeType
+
+data CheckAwardedBadgesResponse = CheckAwardedBadgesResponse{_CheckAwardedBadgesResponse'success
+                                                             :: Prelude.Bool,
+                                                             _CheckAwardedBadgesResponse'awardedBadges
+                                                             ::
+                                                             [Proto.POGOProtos.Enums.BadgeType.BadgeType],
+                                                             _CheckAwardedBadgesResponse'awardedBadgeLevels
+                                                             :: [Data.Int.Int32]}
+                                deriving (Prelude.Show, Prelude.Eq)
+
+type instance
+     Data.ProtoLens.Field "success" CheckAwardedBadgesResponse =
+     Prelude.Bool
+
+instance Data.ProtoLens.HasField "success"
+         CheckAwardedBadgesResponse CheckAwardedBadgesResponse where
+        field _
+          = Lens.Family2.Unchecked.lens _CheckAwardedBadgesResponse'success
+              (\ x__ y__ -> x__{_CheckAwardedBadgesResponse'success = y__})
+
+type instance
+     Data.ProtoLens.Field "awardedBadges" CheckAwardedBadgesResponse =
+     [Proto.POGOProtos.Enums.BadgeType.BadgeType]
+
+instance Data.ProtoLens.HasField "awardedBadges"
+         CheckAwardedBadgesResponse CheckAwardedBadgesResponse where
+        field _
+          = Lens.Family2.Unchecked.lens
+              _CheckAwardedBadgesResponse'awardedBadges
+              (\ x__ y__ -> x__{_CheckAwardedBadgesResponse'awardedBadges = y__})
+
+type instance
+     Data.ProtoLens.Field "awardedBadgeLevels"
+       CheckAwardedBadgesResponse
+     = [Data.Int.Int32]
+
+instance Data.ProtoLens.HasField "awardedBadgeLevels"
+         CheckAwardedBadgesResponse CheckAwardedBadgesResponse where
+        field _
+          = Lens.Family2.Unchecked.lens
+              _CheckAwardedBadgesResponse'awardedBadgeLevels
+              (\ x__ y__ ->
+                 x__{_CheckAwardedBadgesResponse'awardedBadgeLevels = y__})
+
+instance Data.Default.Class.Default CheckAwardedBadgesResponse
+         where
+        def
+          = CheckAwardedBadgesResponse{_CheckAwardedBadgesResponse'success =
+                                         Data.ProtoLens.fieldDefault,
+                                       _CheckAwardedBadgesResponse'awardedBadges = [],
+                                       _CheckAwardedBadgesResponse'awardedBadgeLevels = []}
+
+instance Data.ProtoLens.Message CheckAwardedBadgesResponse where
+        descriptor
+          = let success__field_descriptor
+                  = Data.ProtoLens.FieldDescriptor "success"
+                      (Data.ProtoLens.BoolField ::
+                         Data.ProtoLens.FieldTypeDescriptor Prelude.Bool)
+                      (Data.ProtoLens.PlainField Data.ProtoLens.Optional success)
+                awardedBadges__field_descriptor
+                  = Data.ProtoLens.FieldDescriptor "awarded_badges"
+                      (Data.ProtoLens.EnumField ::
+                         Data.ProtoLens.FieldTypeDescriptor
+                           Proto.POGOProtos.Enums.BadgeType.BadgeType)
+                      (Data.ProtoLens.RepeatedField Data.ProtoLens.Unpacked
+                         awardedBadges)
+                awardedBadgeLevels__field_descriptor
+                  = Data.ProtoLens.FieldDescriptor "awarded_badge_levels"
+                      (Data.ProtoLens.Int32Field ::
+                         Data.ProtoLens.FieldTypeDescriptor Data.Int.Int32)
+                      (Data.ProtoLens.RepeatedField Data.ProtoLens.Unpacked
+                         awardedBadgeLevels)
+              in
+              Data.ProtoLens.MessageDescriptor
+                (Data.Map.fromList
+                   [(Data.ProtoLens.Tag 1, success__field_descriptor),
+                    (Data.ProtoLens.Tag 2, awardedBadges__field_descriptor),
+                    (Data.ProtoLens.Tag 3, awardedBadgeLevels__field_descriptor)])
+                (Data.Map.fromList
+                   [("success", success__field_descriptor),
+                    ("awarded_badges", awardedBadges__field_descriptor),
+                    ("awarded_badge_levels", awardedBadgeLevels__field_descriptor)])
+
+awardedBadgeLevels ::
+                   forall msg msg' .
+                     Data.ProtoLens.HasField "awardedBadgeLevels" msg msg' =>
+                     Lens.Family2.Lens msg msg'
+                       (Data.ProtoLens.Field "awardedBadgeLevels" msg)
+                       (Data.ProtoLens.Field "awardedBadgeLevels" msg')
+awardedBadgeLevels
+  = Data.ProtoLens.field
+      (Data.ProtoLens.ProxySym ::
+         Data.ProtoLens.ProxySym "awardedBadgeLevels")
+
+awardedBadges ::
+              forall msg msg' .
+                Data.ProtoLens.HasField "awardedBadges" msg msg' =>
+                Lens.Family2.Lens msg msg'
+                  (Data.ProtoLens.Field "awardedBadges" msg)
+                  (Data.ProtoLens.Field "awardedBadges" msg')
+awardedBadges
+  = Data.ProtoLens.field
+      (Data.ProtoLens.ProxySym ::
+         Data.ProtoLens.ProxySym "awardedBadges")
+
+success ::
+        forall msg msg' . Data.ProtoLens.HasField "success" msg msg' =>
+          Lens.Family2.Lens msg msg' (Data.ProtoLens.Field "success" msg)
+            (Data.ProtoLens.Field "success" msg')
+success
+  = Data.ProtoLens.field
+      (Data.ProtoLens.ProxySym :: Data.ProtoLens.ProxySym "success")
diff --git a/src/Proto/POGOProtos/Networking/Responses/CheckCodenameAvailableResponse.hs b/src/Proto/POGOProtos/Networking/Responses/CheckCodenameAvailableResponse.hs
new file mode 100644
--- /dev/null
+++ b/src/Proto/POGOProtos/Networking/Responses/CheckCodenameAvailableResponse.hs
@@ -0,0 +1,266 @@
+{- This file was auto-generated from POGOProtos/Networking/Responses/CheckCodenameAvailableResponse.proto by the proto-lens-protoc program. -}
+{-# LANGUAGE ScopedTypeVariables, DataKinds, TypeFamilies,
+  MultiParamTypeClasses, FlexibleContexts, FlexibleInstances #-}
+{-# OPTIONS_GHC -fno-warn-unused-imports#-}
+module Proto.POGOProtos.Networking.Responses.CheckCodenameAvailableResponse
+       where
+import qualified Prelude
+import qualified Data.ProtoLens
+import qualified Data.ProtoLens.Message.Enum
+import qualified Lens.Family2
+import qualified Lens.Family2.Unchecked
+import qualified Data.Default.Class
+import qualified Data.Text
+import qualified Data.Int
+import qualified Data.Word
+import qualified Data.Map
+import qualified Data.ByteString
+
+data CheckCodenameAvailableResponse = CheckCodenameAvailableResponse{_CheckCodenameAvailableResponse'codename
+                                                                     :: Data.Text.Text,
+                                                                     _CheckCodenameAvailableResponse'userMessage
+                                                                     :: Data.Text.Text,
+                                                                     _CheckCodenameAvailableResponse'isAssignable
+                                                                     :: Prelude.Bool,
+                                                                     _CheckCodenameAvailableResponse'status
+                                                                     ::
+                                                                     CheckCodenameAvailableResponse'Status}
+                                    deriving (Prelude.Show, Prelude.Eq)
+
+type instance
+     Data.ProtoLens.Field "codename" CheckCodenameAvailableResponse =
+     Data.Text.Text
+
+instance Data.ProtoLens.HasField "codename"
+         CheckCodenameAvailableResponse CheckCodenameAvailableResponse where
+        field _
+          = Lens.Family2.Unchecked.lens
+              _CheckCodenameAvailableResponse'codename
+              (\ x__ y__ -> x__{_CheckCodenameAvailableResponse'codename = y__})
+
+type instance
+     Data.ProtoLens.Field "userMessage" CheckCodenameAvailableResponse =
+     Data.Text.Text
+
+instance Data.ProtoLens.HasField "userMessage"
+         CheckCodenameAvailableResponse CheckCodenameAvailableResponse where
+        field _
+          = Lens.Family2.Unchecked.lens
+              _CheckCodenameAvailableResponse'userMessage
+              (\ x__ y__ ->
+                 x__{_CheckCodenameAvailableResponse'userMessage = y__})
+
+type instance
+     Data.ProtoLens.Field "isAssignable" CheckCodenameAvailableResponse
+     = Prelude.Bool
+
+instance Data.ProtoLens.HasField "isAssignable"
+         CheckCodenameAvailableResponse CheckCodenameAvailableResponse where
+        field _
+          = Lens.Family2.Unchecked.lens
+              _CheckCodenameAvailableResponse'isAssignable
+              (\ x__ y__ ->
+                 x__{_CheckCodenameAvailableResponse'isAssignable = y__})
+
+type instance
+     Data.ProtoLens.Field "status" CheckCodenameAvailableResponse =
+     CheckCodenameAvailableResponse'Status
+
+instance Data.ProtoLens.HasField "status"
+         CheckCodenameAvailableResponse CheckCodenameAvailableResponse where
+        field _
+          = Lens.Family2.Unchecked.lens
+              _CheckCodenameAvailableResponse'status
+              (\ x__ y__ -> x__{_CheckCodenameAvailableResponse'status = y__})
+
+instance Data.Default.Class.Default CheckCodenameAvailableResponse
+         where
+        def
+          = CheckCodenameAvailableResponse{_CheckCodenameAvailableResponse'codename
+                                             = Data.ProtoLens.fieldDefault,
+                                           _CheckCodenameAvailableResponse'userMessage =
+                                             Data.ProtoLens.fieldDefault,
+                                           _CheckCodenameAvailableResponse'isAssignable =
+                                             Data.ProtoLens.fieldDefault,
+                                           _CheckCodenameAvailableResponse'status =
+                                             Data.Default.Class.def}
+
+instance Data.ProtoLens.Message CheckCodenameAvailableResponse
+         where
+        descriptor
+          = let codename__field_descriptor
+                  = Data.ProtoLens.FieldDescriptor "codename"
+                      (Data.ProtoLens.StringField ::
+                         Data.ProtoLens.FieldTypeDescriptor Data.Text.Text)
+                      (Data.ProtoLens.PlainField Data.ProtoLens.Optional codename)
+                userMessage__field_descriptor
+                  = Data.ProtoLens.FieldDescriptor "user_message"
+                      (Data.ProtoLens.StringField ::
+                         Data.ProtoLens.FieldTypeDescriptor Data.Text.Text)
+                      (Data.ProtoLens.PlainField Data.ProtoLens.Optional userMessage)
+                isAssignable__field_descriptor
+                  = Data.ProtoLens.FieldDescriptor "is_assignable"
+                      (Data.ProtoLens.BoolField ::
+                         Data.ProtoLens.FieldTypeDescriptor Prelude.Bool)
+                      (Data.ProtoLens.PlainField Data.ProtoLens.Optional isAssignable)
+                status__field_descriptor
+                  = Data.ProtoLens.FieldDescriptor "status"
+                      (Data.ProtoLens.EnumField ::
+                         Data.ProtoLens.FieldTypeDescriptor
+                           CheckCodenameAvailableResponse'Status)
+                      (Data.ProtoLens.PlainField Data.ProtoLens.Optional status)
+              in
+              Data.ProtoLens.MessageDescriptor
+                (Data.Map.fromList
+                   [(Data.ProtoLens.Tag 1, codename__field_descriptor),
+                    (Data.ProtoLens.Tag 2, userMessage__field_descriptor),
+                    (Data.ProtoLens.Tag 3, isAssignable__field_descriptor),
+                    (Data.ProtoLens.Tag 4, status__field_descriptor)])
+                (Data.Map.fromList
+                   [("codename", codename__field_descriptor),
+                    ("user_message", userMessage__field_descriptor),
+                    ("is_assignable", isAssignable__field_descriptor),
+                    ("status", status__field_descriptor)])
+
+data CheckCodenameAvailableResponse'Status = CheckCodenameAvailableResponse'UNSET
+                                           | CheckCodenameAvailableResponse'SUCCESS
+                                           | CheckCodenameAvailableResponse'CODENAME_NOT_AVAILABLE
+                                           | CheckCodenameAvailableResponse'CODENAME_NOT_VALID
+                                           | CheckCodenameAvailableResponse'CURRENT_OWNER
+                                           | CheckCodenameAvailableResponse'CODENAME_CHANGE_NOT_ALLOWED
+                                           deriving (Prelude.Show, Prelude.Eq)
+
+instance Data.Default.Class.Default
+         CheckCodenameAvailableResponse'Status where
+        def = CheckCodenameAvailableResponse'UNSET
+
+instance Data.ProtoLens.FieldDefault
+         CheckCodenameAvailableResponse'Status where
+        fieldDefault = CheckCodenameAvailableResponse'UNSET
+
+instance Data.ProtoLens.MessageEnum
+         CheckCodenameAvailableResponse'Status where
+        maybeToEnum 0 = Prelude.Just CheckCodenameAvailableResponse'UNSET
+        maybeToEnum 1 = Prelude.Just CheckCodenameAvailableResponse'SUCCESS
+        maybeToEnum 2
+          = Prelude.Just
+              CheckCodenameAvailableResponse'CODENAME_NOT_AVAILABLE
+        maybeToEnum 3
+          = Prelude.Just CheckCodenameAvailableResponse'CODENAME_NOT_VALID
+        maybeToEnum 4
+          = Prelude.Just CheckCodenameAvailableResponse'CURRENT_OWNER
+        maybeToEnum 5
+          = Prelude.Just
+              CheckCodenameAvailableResponse'CODENAME_CHANGE_NOT_ALLOWED
+        maybeToEnum _ = Prelude.Nothing
+        showEnum CheckCodenameAvailableResponse'UNSET = "UNSET"
+        showEnum CheckCodenameAvailableResponse'SUCCESS = "SUCCESS"
+        showEnum CheckCodenameAvailableResponse'CODENAME_NOT_AVAILABLE
+          = "CODENAME_NOT_AVAILABLE"
+        showEnum CheckCodenameAvailableResponse'CODENAME_NOT_VALID
+          = "CODENAME_NOT_VALID"
+        showEnum CheckCodenameAvailableResponse'CURRENT_OWNER
+          = "CURRENT_OWNER"
+        showEnum CheckCodenameAvailableResponse'CODENAME_CHANGE_NOT_ALLOWED
+          = "CODENAME_CHANGE_NOT_ALLOWED"
+        readEnum "UNSET"
+          = Prelude.Just CheckCodenameAvailableResponse'UNSET
+        readEnum "SUCCESS"
+          = Prelude.Just CheckCodenameAvailableResponse'SUCCESS
+        readEnum "CODENAME_NOT_AVAILABLE"
+          = Prelude.Just
+              CheckCodenameAvailableResponse'CODENAME_NOT_AVAILABLE
+        readEnum "CODENAME_NOT_VALID"
+          = Prelude.Just CheckCodenameAvailableResponse'CODENAME_NOT_VALID
+        readEnum "CURRENT_OWNER"
+          = Prelude.Just CheckCodenameAvailableResponse'CURRENT_OWNER
+        readEnum "CODENAME_CHANGE_NOT_ALLOWED"
+          = Prelude.Just
+              CheckCodenameAvailableResponse'CODENAME_CHANGE_NOT_ALLOWED
+        readEnum _ = Prelude.Nothing
+
+instance Prelude.Enum CheckCodenameAvailableResponse'Status where
+        toEnum k__
+          = Prelude.maybe
+              (Prelude.error
+                 ((Prelude.++) "toEnum: unknown value for enum Status: "
+                    (Prelude.show k__)))
+              Prelude.id
+              (Data.ProtoLens.maybeToEnum k__)
+        fromEnum CheckCodenameAvailableResponse'UNSET = 0
+        fromEnum CheckCodenameAvailableResponse'SUCCESS = 1
+        fromEnum CheckCodenameAvailableResponse'CODENAME_NOT_AVAILABLE = 2
+        fromEnum CheckCodenameAvailableResponse'CODENAME_NOT_VALID = 3
+        fromEnum CheckCodenameAvailableResponse'CURRENT_OWNER = 4
+        fromEnum CheckCodenameAvailableResponse'CODENAME_CHANGE_NOT_ALLOWED
+          = 5
+        succ CheckCodenameAvailableResponse'CODENAME_CHANGE_NOT_ALLOWED
+          = Prelude.error
+              "Ident \"CheckCodenameAvailableResponse'Status\".Ident \"succ\": bad argument Ident \"CheckCodenameAvailableResponse'CODENAME_CHANGE_NOT_ALLOWED\". This value would be out of bounds."
+        succ CheckCodenameAvailableResponse'UNSET
+          = CheckCodenameAvailableResponse'SUCCESS
+        succ CheckCodenameAvailableResponse'SUCCESS
+          = CheckCodenameAvailableResponse'CODENAME_NOT_AVAILABLE
+        succ CheckCodenameAvailableResponse'CODENAME_NOT_AVAILABLE
+          = CheckCodenameAvailableResponse'CODENAME_NOT_VALID
+        succ CheckCodenameAvailableResponse'CODENAME_NOT_VALID
+          = CheckCodenameAvailableResponse'CURRENT_OWNER
+        succ CheckCodenameAvailableResponse'CURRENT_OWNER
+          = CheckCodenameAvailableResponse'CODENAME_CHANGE_NOT_ALLOWED
+        pred CheckCodenameAvailableResponse'UNSET
+          = Prelude.error
+              "Ident \"CheckCodenameAvailableResponse'Status\".Ident \"pred\": bad argument Ident \"CheckCodenameAvailableResponse'UNSET\". This value would be out of bounds."
+        pred CheckCodenameAvailableResponse'SUCCESS
+          = CheckCodenameAvailableResponse'UNSET
+        pred CheckCodenameAvailableResponse'CODENAME_NOT_AVAILABLE
+          = CheckCodenameAvailableResponse'SUCCESS
+        pred CheckCodenameAvailableResponse'CODENAME_NOT_VALID
+          = CheckCodenameAvailableResponse'CODENAME_NOT_AVAILABLE
+        pred CheckCodenameAvailableResponse'CURRENT_OWNER
+          = CheckCodenameAvailableResponse'CODENAME_NOT_VALID
+        pred CheckCodenameAvailableResponse'CODENAME_CHANGE_NOT_ALLOWED
+          = CheckCodenameAvailableResponse'CURRENT_OWNER
+        enumFrom = Data.ProtoLens.Message.Enum.messageEnumFrom
+        enumFromTo = Data.ProtoLens.Message.Enum.messageEnumFromTo
+        enumFromThen = Data.ProtoLens.Message.Enum.messageEnumFromThen
+        enumFromThenTo = Data.ProtoLens.Message.Enum.messageEnumFromThenTo
+
+instance Prelude.Bounded CheckCodenameAvailableResponse'Status
+         where
+        minBound = CheckCodenameAvailableResponse'UNSET
+        maxBound
+          = CheckCodenameAvailableResponse'CODENAME_CHANGE_NOT_ALLOWED
+
+codename ::
+         forall msg msg' . Data.ProtoLens.HasField "codename" msg msg' =>
+           Lens.Family2.Lens msg msg' (Data.ProtoLens.Field "codename" msg)
+             (Data.ProtoLens.Field "codename" msg')
+codename
+  = Data.ProtoLens.field
+      (Data.ProtoLens.ProxySym :: Data.ProtoLens.ProxySym "codename")
+
+isAssignable ::
+             forall msg msg' .
+               Data.ProtoLens.HasField "isAssignable" msg msg' =>
+               Lens.Family2.Lens msg msg'
+                 (Data.ProtoLens.Field "isAssignable" msg)
+                 (Data.ProtoLens.Field "isAssignable" msg')
+isAssignable
+  = Data.ProtoLens.field
+      (Data.ProtoLens.ProxySym :: Data.ProtoLens.ProxySym "isAssignable")
+
+status ::
+       forall msg msg' . Data.ProtoLens.HasField "status" msg msg' =>
+         Lens.Family2.Lens msg msg' (Data.ProtoLens.Field "status" msg)
+           (Data.ProtoLens.Field "status" msg')
+status
+  = Data.ProtoLens.field
+      (Data.ProtoLens.ProxySym :: Data.ProtoLens.ProxySym "status")
+
+userMessage ::
+            forall msg msg' . Data.ProtoLens.HasField "userMessage" msg msg' =>
+              Lens.Family2.Lens msg msg' (Data.ProtoLens.Field "userMessage" msg)
+                (Data.ProtoLens.Field "userMessage" msg')
+userMessage
+  = Data.ProtoLens.field
+      (Data.ProtoLens.ProxySym :: Data.ProtoLens.ProxySym "userMessage")
diff --git a/src/Proto/POGOProtos/Networking/Responses/ClaimCodenameResponse.hs b/src/Proto/POGOProtos/Networking/Responses/ClaimCodenameResponse.hs
new file mode 100644
--- /dev/null
+++ b/src/Proto/POGOProtos/Networking/Responses/ClaimCodenameResponse.hs
@@ -0,0 +1,238 @@
+{- This file was auto-generated from POGOProtos/Networking/Responses/ClaimCodenameResponse.proto by the proto-lens-protoc program. -}
+{-# LANGUAGE ScopedTypeVariables, DataKinds, TypeFamilies,
+  MultiParamTypeClasses, FlexibleContexts, FlexibleInstances #-}
+{-# OPTIONS_GHC -fno-warn-unused-imports#-}
+module Proto.POGOProtos.Networking.Responses.ClaimCodenameResponse
+       where
+import qualified Prelude
+import qualified Data.ProtoLens
+import qualified Data.ProtoLens.Message.Enum
+import qualified Lens.Family2
+import qualified Lens.Family2.Unchecked
+import qualified Data.Default.Class
+import qualified Data.Text
+import qualified Data.Int
+import qualified Data.Word
+import qualified Data.Map
+import qualified Data.ByteString
+
+data ClaimCodenameResponse = ClaimCodenameResponse{_ClaimCodenameResponse'codename
+                                                   :: Data.Text.Text,
+                                                   _ClaimCodenameResponse'userMessage ::
+                                                   Data.Text.Text,
+                                                   _ClaimCodenameResponse'isAssignable ::
+                                                   Prelude.Bool,
+                                                   _ClaimCodenameResponse'status ::
+                                                   ClaimCodenameResponse'Status}
+                           deriving (Prelude.Show, Prelude.Eq)
+
+type instance Data.ProtoLens.Field "codename" ClaimCodenameResponse
+     = Data.Text.Text
+
+instance Data.ProtoLens.HasField "codename" ClaimCodenameResponse
+         ClaimCodenameResponse where
+        field _
+          = Lens.Family2.Unchecked.lens _ClaimCodenameResponse'codename
+              (\ x__ y__ -> x__{_ClaimCodenameResponse'codename = y__})
+
+type instance
+     Data.ProtoLens.Field "userMessage" ClaimCodenameResponse =
+     Data.Text.Text
+
+instance Data.ProtoLens.HasField "userMessage"
+         ClaimCodenameResponse ClaimCodenameResponse where
+        field _
+          = Lens.Family2.Unchecked.lens _ClaimCodenameResponse'userMessage
+              (\ x__ y__ -> x__{_ClaimCodenameResponse'userMessage = y__})
+
+type instance
+     Data.ProtoLens.Field "isAssignable" ClaimCodenameResponse =
+     Prelude.Bool
+
+instance Data.ProtoLens.HasField "isAssignable"
+         ClaimCodenameResponse ClaimCodenameResponse where
+        field _
+          = Lens.Family2.Unchecked.lens _ClaimCodenameResponse'isAssignable
+              (\ x__ y__ -> x__{_ClaimCodenameResponse'isAssignable = y__})
+
+type instance Data.ProtoLens.Field "status" ClaimCodenameResponse =
+     ClaimCodenameResponse'Status
+
+instance Data.ProtoLens.HasField "status" ClaimCodenameResponse
+         ClaimCodenameResponse where
+        field _
+          = Lens.Family2.Unchecked.lens _ClaimCodenameResponse'status
+              (\ x__ y__ -> x__{_ClaimCodenameResponse'status = y__})
+
+instance Data.Default.Class.Default ClaimCodenameResponse where
+        def
+          = ClaimCodenameResponse{_ClaimCodenameResponse'codename =
+                                    Data.ProtoLens.fieldDefault,
+                                  _ClaimCodenameResponse'userMessage = Data.ProtoLens.fieldDefault,
+                                  _ClaimCodenameResponse'isAssignable = Data.ProtoLens.fieldDefault,
+                                  _ClaimCodenameResponse'status = Data.Default.Class.def}
+
+instance Data.ProtoLens.Message ClaimCodenameResponse where
+        descriptor
+          = let codename__field_descriptor
+                  = Data.ProtoLens.FieldDescriptor "codename"
+                      (Data.ProtoLens.StringField ::
+                         Data.ProtoLens.FieldTypeDescriptor Data.Text.Text)
+                      (Data.ProtoLens.PlainField Data.ProtoLens.Optional codename)
+                userMessage__field_descriptor
+                  = Data.ProtoLens.FieldDescriptor "user_message"
+                      (Data.ProtoLens.StringField ::
+                         Data.ProtoLens.FieldTypeDescriptor Data.Text.Text)
+                      (Data.ProtoLens.PlainField Data.ProtoLens.Optional userMessage)
+                isAssignable__field_descriptor
+                  = Data.ProtoLens.FieldDescriptor "is_assignable"
+                      (Data.ProtoLens.BoolField ::
+                         Data.ProtoLens.FieldTypeDescriptor Prelude.Bool)
+                      (Data.ProtoLens.PlainField Data.ProtoLens.Optional isAssignable)
+                status__field_descriptor
+                  = Data.ProtoLens.FieldDescriptor "status"
+                      (Data.ProtoLens.EnumField ::
+                         Data.ProtoLens.FieldTypeDescriptor ClaimCodenameResponse'Status)
+                      (Data.ProtoLens.PlainField Data.ProtoLens.Optional status)
+              in
+              Data.ProtoLens.MessageDescriptor
+                (Data.Map.fromList
+                   [(Data.ProtoLens.Tag 1, codename__field_descriptor),
+                    (Data.ProtoLens.Tag 2, userMessage__field_descriptor),
+                    (Data.ProtoLens.Tag 3, isAssignable__field_descriptor),
+                    (Data.ProtoLens.Tag 4, status__field_descriptor)])
+                (Data.Map.fromList
+                   [("codename", codename__field_descriptor),
+                    ("user_message", userMessage__field_descriptor),
+                    ("is_assignable", isAssignable__field_descriptor),
+                    ("status", status__field_descriptor)])
+
+data ClaimCodenameResponse'Status = ClaimCodenameResponse'UNSET
+                                  | ClaimCodenameResponse'SUCCESS
+                                  | ClaimCodenameResponse'CODENAME_NOT_AVAILABLE
+                                  | ClaimCodenameResponse'CODENAME_NOT_VALID
+                                  | ClaimCodenameResponse'CURRENT_OWNER
+                                  | ClaimCodenameResponse'CODENAME_CHANGE_NOT_ALLOWED
+                                  deriving (Prelude.Show, Prelude.Eq)
+
+instance Data.Default.Class.Default ClaimCodenameResponse'Status
+         where
+        def = ClaimCodenameResponse'UNSET
+
+instance Data.ProtoLens.FieldDefault ClaimCodenameResponse'Status
+         where
+        fieldDefault = ClaimCodenameResponse'UNSET
+
+instance Data.ProtoLens.MessageEnum ClaimCodenameResponse'Status
+         where
+        maybeToEnum 0 = Prelude.Just ClaimCodenameResponse'UNSET
+        maybeToEnum 1 = Prelude.Just ClaimCodenameResponse'SUCCESS
+        maybeToEnum 2
+          = Prelude.Just ClaimCodenameResponse'CODENAME_NOT_AVAILABLE
+        maybeToEnum 3
+          = Prelude.Just ClaimCodenameResponse'CODENAME_NOT_VALID
+        maybeToEnum 4 = Prelude.Just ClaimCodenameResponse'CURRENT_OWNER
+        maybeToEnum 5
+          = Prelude.Just ClaimCodenameResponse'CODENAME_CHANGE_NOT_ALLOWED
+        maybeToEnum _ = Prelude.Nothing
+        showEnum ClaimCodenameResponse'UNSET = "UNSET"
+        showEnum ClaimCodenameResponse'SUCCESS = "SUCCESS"
+        showEnum ClaimCodenameResponse'CODENAME_NOT_AVAILABLE
+          = "CODENAME_NOT_AVAILABLE"
+        showEnum ClaimCodenameResponse'CODENAME_NOT_VALID
+          = "CODENAME_NOT_VALID"
+        showEnum ClaimCodenameResponse'CURRENT_OWNER = "CURRENT_OWNER"
+        showEnum ClaimCodenameResponse'CODENAME_CHANGE_NOT_ALLOWED
+          = "CODENAME_CHANGE_NOT_ALLOWED"
+        readEnum "UNSET" = Prelude.Just ClaimCodenameResponse'UNSET
+        readEnum "SUCCESS" = Prelude.Just ClaimCodenameResponse'SUCCESS
+        readEnum "CODENAME_NOT_AVAILABLE"
+          = Prelude.Just ClaimCodenameResponse'CODENAME_NOT_AVAILABLE
+        readEnum "CODENAME_NOT_VALID"
+          = Prelude.Just ClaimCodenameResponse'CODENAME_NOT_VALID
+        readEnum "CURRENT_OWNER"
+          = Prelude.Just ClaimCodenameResponse'CURRENT_OWNER
+        readEnum "CODENAME_CHANGE_NOT_ALLOWED"
+          = Prelude.Just ClaimCodenameResponse'CODENAME_CHANGE_NOT_ALLOWED
+        readEnum _ = Prelude.Nothing
+
+instance Prelude.Enum ClaimCodenameResponse'Status where
+        toEnum k__
+          = Prelude.maybe
+              (Prelude.error
+                 ((Prelude.++) "toEnum: unknown value for enum Status: "
+                    (Prelude.show k__)))
+              Prelude.id
+              (Data.ProtoLens.maybeToEnum k__)
+        fromEnum ClaimCodenameResponse'UNSET = 0
+        fromEnum ClaimCodenameResponse'SUCCESS = 1
+        fromEnum ClaimCodenameResponse'CODENAME_NOT_AVAILABLE = 2
+        fromEnum ClaimCodenameResponse'CODENAME_NOT_VALID = 3
+        fromEnum ClaimCodenameResponse'CURRENT_OWNER = 4
+        fromEnum ClaimCodenameResponse'CODENAME_CHANGE_NOT_ALLOWED = 5
+        succ ClaimCodenameResponse'CODENAME_CHANGE_NOT_ALLOWED
+          = Prelude.error
+              "Ident \"ClaimCodenameResponse'Status\".Ident \"succ\": bad argument Ident \"ClaimCodenameResponse'CODENAME_CHANGE_NOT_ALLOWED\". This value would be out of bounds."
+        succ ClaimCodenameResponse'UNSET = ClaimCodenameResponse'SUCCESS
+        succ ClaimCodenameResponse'SUCCESS
+          = ClaimCodenameResponse'CODENAME_NOT_AVAILABLE
+        succ ClaimCodenameResponse'CODENAME_NOT_AVAILABLE
+          = ClaimCodenameResponse'CODENAME_NOT_VALID
+        succ ClaimCodenameResponse'CODENAME_NOT_VALID
+          = ClaimCodenameResponse'CURRENT_OWNER
+        succ ClaimCodenameResponse'CURRENT_OWNER
+          = ClaimCodenameResponse'CODENAME_CHANGE_NOT_ALLOWED
+        pred ClaimCodenameResponse'UNSET
+          = Prelude.error
+              "Ident \"ClaimCodenameResponse'Status\".Ident \"pred\": bad argument Ident \"ClaimCodenameResponse'UNSET\". This value would be out of bounds."
+        pred ClaimCodenameResponse'SUCCESS = ClaimCodenameResponse'UNSET
+        pred ClaimCodenameResponse'CODENAME_NOT_AVAILABLE
+          = ClaimCodenameResponse'SUCCESS
+        pred ClaimCodenameResponse'CODENAME_NOT_VALID
+          = ClaimCodenameResponse'CODENAME_NOT_AVAILABLE
+        pred ClaimCodenameResponse'CURRENT_OWNER
+          = ClaimCodenameResponse'CODENAME_NOT_VALID
+        pred ClaimCodenameResponse'CODENAME_CHANGE_NOT_ALLOWED
+          = ClaimCodenameResponse'CURRENT_OWNER
+        enumFrom = Data.ProtoLens.Message.Enum.messageEnumFrom
+        enumFromTo = Data.ProtoLens.Message.Enum.messageEnumFromTo
+        enumFromThen = Data.ProtoLens.Message.Enum.messageEnumFromThen
+        enumFromThenTo = Data.ProtoLens.Message.Enum.messageEnumFromThenTo
+
+instance Prelude.Bounded ClaimCodenameResponse'Status where
+        minBound = ClaimCodenameResponse'UNSET
+        maxBound = ClaimCodenameResponse'CODENAME_CHANGE_NOT_ALLOWED
+
+codename ::
+         forall msg msg' . Data.ProtoLens.HasField "codename" msg msg' =>
+           Lens.Family2.Lens msg msg' (Data.ProtoLens.Field "codename" msg)
+             (Data.ProtoLens.Field "codename" msg')
+codename
+  = Data.ProtoLens.field
+      (Data.ProtoLens.ProxySym :: Data.ProtoLens.ProxySym "codename")
+
+isAssignable ::
+             forall msg msg' .
+               Data.ProtoLens.HasField "isAssignable" msg msg' =>
+               Lens.Family2.Lens msg msg'
+                 (Data.ProtoLens.Field "isAssignable" msg)
+                 (Data.ProtoLens.Field "isAssignable" msg')
+isAssignable
+  = Data.ProtoLens.field
+      (Data.ProtoLens.ProxySym :: Data.ProtoLens.ProxySym "isAssignable")
+
+status ::
+       forall msg msg' . Data.ProtoLens.HasField "status" msg msg' =>
+         Lens.Family2.Lens msg msg' (Data.ProtoLens.Field "status" msg)
+           (Data.ProtoLens.Field "status" msg')
+status
+  = Data.ProtoLens.field
+      (Data.ProtoLens.ProxySym :: Data.ProtoLens.ProxySym "status")
+
+userMessage ::
+            forall msg msg' . Data.ProtoLens.HasField "userMessage" msg msg' =>
+              Lens.Family2.Lens msg msg' (Data.ProtoLens.Field "userMessage" msg)
+                (Data.ProtoLens.Field "userMessage" msg')
+userMessage
+  = Data.ProtoLens.field
+      (Data.ProtoLens.ProxySym :: Data.ProtoLens.ProxySym "userMessage")
diff --git a/src/Proto/POGOProtos/Networking/Responses/CollectDailyBonusResponse.hs b/src/Proto/POGOProtos/Networking/Responses/CollectDailyBonusResponse.hs
new file mode 100644
--- /dev/null
+++ b/src/Proto/POGOProtos/Networking/Responses/CollectDailyBonusResponse.hs
@@ -0,0 +1,129 @@
+{- This file was auto-generated from POGOProtos/Networking/Responses/CollectDailyBonusResponse.proto by the proto-lens-protoc program. -}
+{-# LANGUAGE ScopedTypeVariables, DataKinds, TypeFamilies,
+  MultiParamTypeClasses, FlexibleContexts, FlexibleInstances #-}
+{-# OPTIONS_GHC -fno-warn-unused-imports#-}
+module Proto.POGOProtos.Networking.Responses.CollectDailyBonusResponse
+       where
+import qualified Prelude
+import qualified Data.ProtoLens
+import qualified Data.ProtoLens.Message.Enum
+import qualified Lens.Family2
+import qualified Lens.Family2.Unchecked
+import qualified Data.Default.Class
+import qualified Data.Text
+import qualified Data.Int
+import qualified Data.Word
+import qualified Data.Map
+import qualified Data.ByteString
+
+data CollectDailyBonusResponse = CollectDailyBonusResponse{_CollectDailyBonusResponse'result
+                                                           :: CollectDailyBonusResponse'Result}
+                               deriving (Prelude.Show, Prelude.Eq)
+
+type instance
+     Data.ProtoLens.Field "result" CollectDailyBonusResponse =
+     CollectDailyBonusResponse'Result
+
+instance Data.ProtoLens.HasField "result" CollectDailyBonusResponse
+         CollectDailyBonusResponse where
+        field _
+          = Lens.Family2.Unchecked.lens _CollectDailyBonusResponse'result
+              (\ x__ y__ -> x__{_CollectDailyBonusResponse'result = y__})
+
+instance Data.Default.Class.Default CollectDailyBonusResponse where
+        def
+          = CollectDailyBonusResponse{_CollectDailyBonusResponse'result =
+                                        Data.Default.Class.def}
+
+instance Data.ProtoLens.Message CollectDailyBonusResponse where
+        descriptor
+          = let result__field_descriptor
+                  = Data.ProtoLens.FieldDescriptor "result"
+                      (Data.ProtoLens.EnumField ::
+                         Data.ProtoLens.FieldTypeDescriptor
+                           CollectDailyBonusResponse'Result)
+                      (Data.ProtoLens.PlainField Data.ProtoLens.Optional result)
+              in
+              Data.ProtoLens.MessageDescriptor
+                (Data.Map.fromList
+                   [(Data.ProtoLens.Tag 1, result__field_descriptor)])
+                (Data.Map.fromList [("result", result__field_descriptor)])
+
+data CollectDailyBonusResponse'Result = CollectDailyBonusResponse'UNSET
+                                      | CollectDailyBonusResponse'SUCCESS
+                                      | CollectDailyBonusResponse'FAILURE
+                                      | CollectDailyBonusResponse'TOO_SOON
+                                      deriving (Prelude.Show, Prelude.Eq)
+
+instance Data.Default.Class.Default
+         CollectDailyBonusResponse'Result where
+        def = CollectDailyBonusResponse'UNSET
+
+instance Data.ProtoLens.FieldDefault
+         CollectDailyBonusResponse'Result where
+        fieldDefault = CollectDailyBonusResponse'UNSET
+
+instance Data.ProtoLens.MessageEnum
+         CollectDailyBonusResponse'Result where
+        maybeToEnum 0 = Prelude.Just CollectDailyBonusResponse'UNSET
+        maybeToEnum 1 = Prelude.Just CollectDailyBonusResponse'SUCCESS
+        maybeToEnum 2 = Prelude.Just CollectDailyBonusResponse'FAILURE
+        maybeToEnum 3 = Prelude.Just CollectDailyBonusResponse'TOO_SOON
+        maybeToEnum _ = Prelude.Nothing
+        showEnum CollectDailyBonusResponse'UNSET = "UNSET"
+        showEnum CollectDailyBonusResponse'SUCCESS = "SUCCESS"
+        showEnum CollectDailyBonusResponse'FAILURE = "FAILURE"
+        showEnum CollectDailyBonusResponse'TOO_SOON = "TOO_SOON"
+        readEnum "UNSET" = Prelude.Just CollectDailyBonusResponse'UNSET
+        readEnum "SUCCESS" = Prelude.Just CollectDailyBonusResponse'SUCCESS
+        readEnum "FAILURE" = Prelude.Just CollectDailyBonusResponse'FAILURE
+        readEnum "TOO_SOON"
+          = Prelude.Just CollectDailyBonusResponse'TOO_SOON
+        readEnum _ = Prelude.Nothing
+
+instance Prelude.Enum CollectDailyBonusResponse'Result where
+        toEnum k__
+          = Prelude.maybe
+              (Prelude.error
+                 ((Prelude.++) "toEnum: unknown value for enum Result: "
+                    (Prelude.show k__)))
+              Prelude.id
+              (Data.ProtoLens.maybeToEnum k__)
+        fromEnum CollectDailyBonusResponse'UNSET = 0
+        fromEnum CollectDailyBonusResponse'SUCCESS = 1
+        fromEnum CollectDailyBonusResponse'FAILURE = 2
+        fromEnum CollectDailyBonusResponse'TOO_SOON = 3
+        succ CollectDailyBonusResponse'TOO_SOON
+          = Prelude.error
+              "Ident \"CollectDailyBonusResponse'Result\".Ident \"succ\": bad argument Ident \"CollectDailyBonusResponse'TOO_SOON\". This value would be out of bounds."
+        succ CollectDailyBonusResponse'UNSET
+          = CollectDailyBonusResponse'SUCCESS
+        succ CollectDailyBonusResponse'SUCCESS
+          = CollectDailyBonusResponse'FAILURE
+        succ CollectDailyBonusResponse'FAILURE
+          = CollectDailyBonusResponse'TOO_SOON
+        pred CollectDailyBonusResponse'UNSET
+          = Prelude.error
+              "Ident \"CollectDailyBonusResponse'Result\".Ident \"pred\": bad argument Ident \"CollectDailyBonusResponse'UNSET\". This value would be out of bounds."
+        pred CollectDailyBonusResponse'SUCCESS
+          = CollectDailyBonusResponse'UNSET
+        pred CollectDailyBonusResponse'FAILURE
+          = CollectDailyBonusResponse'SUCCESS
+        pred CollectDailyBonusResponse'TOO_SOON
+          = CollectDailyBonusResponse'FAILURE
+        enumFrom = Data.ProtoLens.Message.Enum.messageEnumFrom
+        enumFromTo = Data.ProtoLens.Message.Enum.messageEnumFromTo
+        enumFromThen = Data.ProtoLens.Message.Enum.messageEnumFromThen
+        enumFromThenTo = Data.ProtoLens.Message.Enum.messageEnumFromThenTo
+
+instance Prelude.Bounded CollectDailyBonusResponse'Result where
+        minBound = CollectDailyBonusResponse'UNSET
+        maxBound = CollectDailyBonusResponse'TOO_SOON
+
+result ::
+       forall msg msg' . Data.ProtoLens.HasField "result" msg msg' =>
+         Lens.Family2.Lens msg msg' (Data.ProtoLens.Field "result" msg)
+           (Data.ProtoLens.Field "result" msg')
+result
+  = Data.ProtoLens.field
+      (Data.ProtoLens.ProxySym :: Data.ProtoLens.ProxySym "result")
diff --git a/src/Proto/POGOProtos/Networking/Responses/CollectDailyDefenderBonusResponse.hs b/src/Proto/POGOProtos/Networking/Responses/CollectDailyDefenderBonusResponse.hs
new file mode 100644
--- /dev/null
+++ b/src/Proto/POGOProtos/Networking/Responses/CollectDailyDefenderBonusResponse.hs
@@ -0,0 +1,263 @@
+{- This file was auto-generated from POGOProtos/Networking/Responses/CollectDailyDefenderBonusResponse.proto by the proto-lens-protoc program. -}
+{-# LANGUAGE ScopedTypeVariables, DataKinds, TypeFamilies,
+  MultiParamTypeClasses, FlexibleContexts, FlexibleInstances #-}
+{-# OPTIONS_GHC -fno-warn-unused-imports#-}
+module Proto.POGOProtos.Networking.Responses.CollectDailyDefenderBonusResponse
+       where
+import qualified Prelude
+import qualified Data.ProtoLens
+import qualified Data.ProtoLens.Message.Enum
+import qualified Lens.Family2
+import qualified Lens.Family2.Unchecked
+import qualified Data.Default.Class
+import qualified Data.Text
+import qualified Data.Int
+import qualified Data.Word
+import qualified Data.Map
+import qualified Data.ByteString
+
+data CollectDailyDefenderBonusResponse = CollectDailyDefenderBonusResponse{_CollectDailyDefenderBonusResponse'result
+                                                                           ::
+                                                                           CollectDailyDefenderBonusResponse'Result,
+                                                                           _CollectDailyDefenderBonusResponse'currencyType
+                                                                           :: [Data.Text.Text],
+                                                                           _CollectDailyDefenderBonusResponse'currencyAwarded
+                                                                           :: [Data.Int.Int32],
+                                                                           _CollectDailyDefenderBonusResponse'defendersCount
+                                                                           :: Data.Int.Int32}
+                                       deriving (Prelude.Show, Prelude.Eq)
+
+type instance
+     Data.ProtoLens.Field "result" CollectDailyDefenderBonusResponse =
+     CollectDailyDefenderBonusResponse'Result
+
+instance Data.ProtoLens.HasField "result"
+         CollectDailyDefenderBonusResponse CollectDailyDefenderBonusResponse
+         where
+        field _
+          = Lens.Family2.Unchecked.lens
+              _CollectDailyDefenderBonusResponse'result
+              (\ x__ y__ -> x__{_CollectDailyDefenderBonusResponse'result = y__})
+
+type instance
+     Data.ProtoLens.Field "currencyType"
+       CollectDailyDefenderBonusResponse
+     = [Data.Text.Text]
+
+instance Data.ProtoLens.HasField "currencyType"
+         CollectDailyDefenderBonusResponse CollectDailyDefenderBonusResponse
+         where
+        field _
+          = Lens.Family2.Unchecked.lens
+              _CollectDailyDefenderBonusResponse'currencyType
+              (\ x__ y__ ->
+                 x__{_CollectDailyDefenderBonusResponse'currencyType = y__})
+
+type instance
+     Data.ProtoLens.Field "currencyAwarded"
+       CollectDailyDefenderBonusResponse
+     = [Data.Int.Int32]
+
+instance Data.ProtoLens.HasField "currencyAwarded"
+         CollectDailyDefenderBonusResponse CollectDailyDefenderBonusResponse
+         where
+        field _
+          = Lens.Family2.Unchecked.lens
+              _CollectDailyDefenderBonusResponse'currencyAwarded
+              (\ x__ y__ ->
+                 x__{_CollectDailyDefenderBonusResponse'currencyAwarded = y__})
+
+type instance
+     Data.ProtoLens.Field "defendersCount"
+       CollectDailyDefenderBonusResponse
+     = Data.Int.Int32
+
+instance Data.ProtoLens.HasField "defendersCount"
+         CollectDailyDefenderBonusResponse CollectDailyDefenderBonusResponse
+         where
+        field _
+          = Lens.Family2.Unchecked.lens
+              _CollectDailyDefenderBonusResponse'defendersCount
+              (\ x__ y__ ->
+                 x__{_CollectDailyDefenderBonusResponse'defendersCount = y__})
+
+instance Data.Default.Class.Default
+         CollectDailyDefenderBonusResponse where
+        def
+          = CollectDailyDefenderBonusResponse{_CollectDailyDefenderBonusResponse'result
+                                                = Data.Default.Class.def,
+                                              _CollectDailyDefenderBonusResponse'currencyType = [],
+                                              _CollectDailyDefenderBonusResponse'currencyAwarded =
+                                                [],
+                                              _CollectDailyDefenderBonusResponse'defendersCount =
+                                                Data.ProtoLens.fieldDefault}
+
+instance Data.ProtoLens.Message CollectDailyDefenderBonusResponse
+         where
+        descriptor
+          = let result__field_descriptor
+                  = Data.ProtoLens.FieldDescriptor "result"
+                      (Data.ProtoLens.EnumField ::
+                         Data.ProtoLens.FieldTypeDescriptor
+                           CollectDailyDefenderBonusResponse'Result)
+                      (Data.ProtoLens.PlainField Data.ProtoLens.Optional result)
+                currencyType__field_descriptor
+                  = Data.ProtoLens.FieldDescriptor "currency_type"
+                      (Data.ProtoLens.StringField ::
+                         Data.ProtoLens.FieldTypeDescriptor Data.Text.Text)
+                      (Data.ProtoLens.RepeatedField Data.ProtoLens.Unpacked currencyType)
+                currencyAwarded__field_descriptor
+                  = Data.ProtoLens.FieldDescriptor "currency_awarded"
+                      (Data.ProtoLens.Int32Field ::
+                         Data.ProtoLens.FieldTypeDescriptor Data.Int.Int32)
+                      (Data.ProtoLens.RepeatedField Data.ProtoLens.Unpacked
+                         currencyAwarded)
+                defendersCount__field_descriptor
+                  = Data.ProtoLens.FieldDescriptor "defenders_count"
+                      (Data.ProtoLens.Int32Field ::
+                         Data.ProtoLens.FieldTypeDescriptor Data.Int.Int32)
+                      (Data.ProtoLens.PlainField Data.ProtoLens.Optional defendersCount)
+              in
+              Data.ProtoLens.MessageDescriptor
+                (Data.Map.fromList
+                   [(Data.ProtoLens.Tag 1, result__field_descriptor),
+                    (Data.ProtoLens.Tag 2, currencyType__field_descriptor),
+                    (Data.ProtoLens.Tag 3, currencyAwarded__field_descriptor),
+                    (Data.ProtoLens.Tag 4, defendersCount__field_descriptor)])
+                (Data.Map.fromList
+                   [("result", result__field_descriptor),
+                    ("currency_type", currencyType__field_descriptor),
+                    ("currency_awarded", currencyAwarded__field_descriptor),
+                    ("defenders_count", defendersCount__field_descriptor)])
+
+data CollectDailyDefenderBonusResponse'Result = CollectDailyDefenderBonusResponse'UNSET
+                                              | CollectDailyDefenderBonusResponse'SUCCESS
+                                              | CollectDailyDefenderBonusResponse'FAILURE
+                                              | CollectDailyDefenderBonusResponse'TOO_SOON
+                                              | CollectDailyDefenderBonusResponse'NO_DEFENDERS
+                                              deriving (Prelude.Show, Prelude.Eq)
+
+instance Data.Default.Class.Default
+         CollectDailyDefenderBonusResponse'Result where
+        def = CollectDailyDefenderBonusResponse'UNSET
+
+instance Data.ProtoLens.FieldDefault
+         CollectDailyDefenderBonusResponse'Result where
+        fieldDefault = CollectDailyDefenderBonusResponse'UNSET
+
+instance Data.ProtoLens.MessageEnum
+         CollectDailyDefenderBonusResponse'Result where
+        maybeToEnum 0
+          = Prelude.Just CollectDailyDefenderBonusResponse'UNSET
+        maybeToEnum 1
+          = Prelude.Just CollectDailyDefenderBonusResponse'SUCCESS
+        maybeToEnum 2
+          = Prelude.Just CollectDailyDefenderBonusResponse'FAILURE
+        maybeToEnum 3
+          = Prelude.Just CollectDailyDefenderBonusResponse'TOO_SOON
+        maybeToEnum 4
+          = Prelude.Just CollectDailyDefenderBonusResponse'NO_DEFENDERS
+        maybeToEnum _ = Prelude.Nothing
+        showEnum CollectDailyDefenderBonusResponse'UNSET = "UNSET"
+        showEnum CollectDailyDefenderBonusResponse'SUCCESS = "SUCCESS"
+        showEnum CollectDailyDefenderBonusResponse'FAILURE = "FAILURE"
+        showEnum CollectDailyDefenderBonusResponse'TOO_SOON = "TOO_SOON"
+        showEnum CollectDailyDefenderBonusResponse'NO_DEFENDERS
+          = "NO_DEFENDERS"
+        readEnum "UNSET"
+          = Prelude.Just CollectDailyDefenderBonusResponse'UNSET
+        readEnum "SUCCESS"
+          = Prelude.Just CollectDailyDefenderBonusResponse'SUCCESS
+        readEnum "FAILURE"
+          = Prelude.Just CollectDailyDefenderBonusResponse'FAILURE
+        readEnum "TOO_SOON"
+          = Prelude.Just CollectDailyDefenderBonusResponse'TOO_SOON
+        readEnum "NO_DEFENDERS"
+          = Prelude.Just CollectDailyDefenderBonusResponse'NO_DEFENDERS
+        readEnum _ = Prelude.Nothing
+
+instance Prelude.Enum CollectDailyDefenderBonusResponse'Result
+         where
+        toEnum k__
+          = Prelude.maybe
+              (Prelude.error
+                 ((Prelude.++) "toEnum: unknown value for enum Result: "
+                    (Prelude.show k__)))
+              Prelude.id
+              (Data.ProtoLens.maybeToEnum k__)
+        fromEnum CollectDailyDefenderBonusResponse'UNSET = 0
+        fromEnum CollectDailyDefenderBonusResponse'SUCCESS = 1
+        fromEnum CollectDailyDefenderBonusResponse'FAILURE = 2
+        fromEnum CollectDailyDefenderBonusResponse'TOO_SOON = 3
+        fromEnum CollectDailyDefenderBonusResponse'NO_DEFENDERS = 4
+        succ CollectDailyDefenderBonusResponse'NO_DEFENDERS
+          = Prelude.error
+              "Ident \"CollectDailyDefenderBonusResponse'Result\".Ident \"succ\": bad argument Ident \"CollectDailyDefenderBonusResponse'NO_DEFENDERS\". This value would be out of bounds."
+        succ CollectDailyDefenderBonusResponse'UNSET
+          = CollectDailyDefenderBonusResponse'SUCCESS
+        succ CollectDailyDefenderBonusResponse'SUCCESS
+          = CollectDailyDefenderBonusResponse'FAILURE
+        succ CollectDailyDefenderBonusResponse'FAILURE
+          = CollectDailyDefenderBonusResponse'TOO_SOON
+        succ CollectDailyDefenderBonusResponse'TOO_SOON
+          = CollectDailyDefenderBonusResponse'NO_DEFENDERS
+        pred CollectDailyDefenderBonusResponse'UNSET
+          = Prelude.error
+              "Ident \"CollectDailyDefenderBonusResponse'Result\".Ident \"pred\": bad argument Ident \"CollectDailyDefenderBonusResponse'UNSET\". This value would be out of bounds."
+        pred CollectDailyDefenderBonusResponse'SUCCESS
+          = CollectDailyDefenderBonusResponse'UNSET
+        pred CollectDailyDefenderBonusResponse'FAILURE
+          = CollectDailyDefenderBonusResponse'SUCCESS
+        pred CollectDailyDefenderBonusResponse'TOO_SOON
+          = CollectDailyDefenderBonusResponse'FAILURE
+        pred CollectDailyDefenderBonusResponse'NO_DEFENDERS
+          = CollectDailyDefenderBonusResponse'TOO_SOON
+        enumFrom = Data.ProtoLens.Message.Enum.messageEnumFrom
+        enumFromTo = Data.ProtoLens.Message.Enum.messageEnumFromTo
+        enumFromThen = Data.ProtoLens.Message.Enum.messageEnumFromThen
+        enumFromThenTo = Data.ProtoLens.Message.Enum.messageEnumFromThenTo
+
+instance Prelude.Bounded CollectDailyDefenderBonusResponse'Result
+         where
+        minBound = CollectDailyDefenderBonusResponse'UNSET
+        maxBound = CollectDailyDefenderBonusResponse'NO_DEFENDERS
+
+currencyAwarded ::
+                forall msg msg' .
+                  Data.ProtoLens.HasField "currencyAwarded" msg msg' =>
+                  Lens.Family2.Lens msg msg'
+                    (Data.ProtoLens.Field "currencyAwarded" msg)
+                    (Data.ProtoLens.Field "currencyAwarded" msg')
+currencyAwarded
+  = Data.ProtoLens.field
+      (Data.ProtoLens.ProxySym ::
+         Data.ProtoLens.ProxySym "currencyAwarded")
+
+currencyType ::
+             forall msg msg' .
+               Data.ProtoLens.HasField "currencyType" msg msg' =>
+               Lens.Family2.Lens msg msg'
+                 (Data.ProtoLens.Field "currencyType" msg)
+                 (Data.ProtoLens.Field "currencyType" msg')
+currencyType
+  = Data.ProtoLens.field
+      (Data.ProtoLens.ProxySym :: Data.ProtoLens.ProxySym "currencyType")
+
+defendersCount ::
+               forall msg msg' .
+                 Data.ProtoLens.HasField "defendersCount" msg msg' =>
+                 Lens.Family2.Lens msg msg'
+                   (Data.ProtoLens.Field "defendersCount" msg)
+                   (Data.ProtoLens.Field "defendersCount" msg')
+defendersCount
+  = Data.ProtoLens.field
+      (Data.ProtoLens.ProxySym ::
+         Data.ProtoLens.ProxySym "defendersCount")
+
+result ::
+       forall msg msg' . Data.ProtoLens.HasField "result" msg msg' =>
+         Lens.Family2.Lens msg msg' (Data.ProtoLens.Field "result" msg)
+           (Data.ProtoLens.Field "result" msg')
+result
+  = Data.ProtoLens.field
+      (Data.ProtoLens.ProxySym :: Data.ProtoLens.ProxySym "result")
diff --git a/src/Proto/POGOProtos/Networking/Responses/DiskEncounterResponse.hs b/src/Proto/POGOProtos/Networking/Responses/DiskEncounterResponse.hs
new file mode 100644
--- /dev/null
+++ b/src/Proto/POGOProtos/Networking/Responses/DiskEncounterResponse.hs
@@ -0,0 +1,262 @@
+{- This file was auto-generated from POGOProtos/Networking/Responses/DiskEncounterResponse.proto by the proto-lens-protoc program. -}
+{-# LANGUAGE ScopedTypeVariables, DataKinds, TypeFamilies,
+  MultiParamTypeClasses, FlexibleContexts, FlexibleInstances #-}
+{-# OPTIONS_GHC -fno-warn-unused-imports#-}
+module Proto.POGOProtos.Networking.Responses.DiskEncounterResponse
+       where
+import qualified Prelude
+import qualified Data.ProtoLens
+import qualified Data.ProtoLens.Message.Enum
+import qualified Lens.Family2
+import qualified Lens.Family2.Unchecked
+import qualified Data.Default.Class
+import qualified Data.Text
+import qualified Data.Int
+import qualified Data.Word
+import qualified Data.Map
+import qualified Data.ByteString
+import qualified Proto.POGOProtos.Data.Capture.CaptureProbability
+import qualified Proto.POGOProtos.Data.PokemonData
+
+data DiskEncounterResponse = DiskEncounterResponse{_DiskEncounterResponse'result
+                                                   :: DiskEncounterResponse'Result,
+                                                   _DiskEncounterResponse'pokemonData ::
+                                                   Prelude.Maybe
+                                                     Proto.POGOProtos.Data.PokemonData.PokemonData,
+                                                   _DiskEncounterResponse'captureProbability ::
+                                                   Prelude.Maybe
+                                                     Proto.POGOProtos.Data.Capture.CaptureProbability.CaptureProbability}
+                           deriving (Prelude.Show, Prelude.Eq)
+
+type instance Data.ProtoLens.Field "result" DiskEncounterResponse =
+     DiskEncounterResponse'Result
+
+instance Data.ProtoLens.HasField "result" DiskEncounterResponse
+         DiskEncounterResponse where
+        field _
+          = Lens.Family2.Unchecked.lens _DiskEncounterResponse'result
+              (\ x__ y__ -> x__{_DiskEncounterResponse'result = y__})
+
+type instance
+     Data.ProtoLens.Field "pokemonData" DiskEncounterResponse =
+     Proto.POGOProtos.Data.PokemonData.PokemonData
+
+instance Data.ProtoLens.HasField "pokemonData"
+         DiskEncounterResponse DiskEncounterResponse where
+        field _
+          = (Prelude..) maybe'pokemonData
+              (Data.ProtoLens.maybeLens Data.Default.Class.def)
+
+type instance
+     Data.ProtoLens.Field "maybe'pokemonData" DiskEncounterResponse =
+     Prelude.Maybe Proto.POGOProtos.Data.PokemonData.PokemonData
+
+instance Data.ProtoLens.HasField "maybe'pokemonData"
+         DiskEncounterResponse DiskEncounterResponse where
+        field _
+          = Lens.Family2.Unchecked.lens _DiskEncounterResponse'pokemonData
+              (\ x__ y__ -> x__{_DiskEncounterResponse'pokemonData = y__})
+
+type instance
+     Data.ProtoLens.Field "captureProbability" DiskEncounterResponse =
+     Proto.POGOProtos.Data.Capture.CaptureProbability.CaptureProbability
+
+instance Data.ProtoLens.HasField "captureProbability"
+         DiskEncounterResponse DiskEncounterResponse where
+        field _
+          = (Prelude..) maybe'captureProbability
+              (Data.ProtoLens.maybeLens Data.Default.Class.def)
+
+type instance
+     Data.ProtoLens.Field "maybe'captureProbability"
+       DiskEncounterResponse
+     =
+     Prelude.Maybe
+       Proto.POGOProtos.Data.Capture.CaptureProbability.CaptureProbability
+
+instance Data.ProtoLens.HasField "maybe'captureProbability"
+         DiskEncounterResponse DiskEncounterResponse where
+        field _
+          = Lens.Family2.Unchecked.lens
+              _DiskEncounterResponse'captureProbability
+              (\ x__ y__ -> x__{_DiskEncounterResponse'captureProbability = y__})
+
+instance Data.Default.Class.Default DiskEncounterResponse where
+        def
+          = DiskEncounterResponse{_DiskEncounterResponse'result =
+                                    Data.Default.Class.def,
+                                  _DiskEncounterResponse'pokemonData = Prelude.Nothing,
+                                  _DiskEncounterResponse'captureProbability = Prelude.Nothing}
+
+instance Data.ProtoLens.Message DiskEncounterResponse where
+        descriptor
+          = let result__field_descriptor
+                  = Data.ProtoLens.FieldDescriptor "result"
+                      (Data.ProtoLens.EnumField ::
+                         Data.ProtoLens.FieldTypeDescriptor DiskEncounterResponse'Result)
+                      (Data.ProtoLens.PlainField Data.ProtoLens.Optional result)
+                pokemonData__field_descriptor
+                  = Data.ProtoLens.FieldDescriptor "pokemon_data"
+                      (Data.ProtoLens.MessageField ::
+                         Data.ProtoLens.FieldTypeDescriptor
+                           Proto.POGOProtos.Data.PokemonData.PokemonData)
+                      (Data.ProtoLens.OptionalField maybe'pokemonData)
+                captureProbability__field_descriptor
+                  = Data.ProtoLens.FieldDescriptor "capture_probability"
+                      (Data.ProtoLens.MessageField ::
+                         Data.ProtoLens.FieldTypeDescriptor
+                           Proto.POGOProtos.Data.Capture.CaptureProbability.CaptureProbability)
+                      (Data.ProtoLens.OptionalField maybe'captureProbability)
+              in
+              Data.ProtoLens.MessageDescriptor
+                (Data.Map.fromList
+                   [(Data.ProtoLens.Tag 1, result__field_descriptor),
+                    (Data.ProtoLens.Tag 2, pokemonData__field_descriptor),
+                    (Data.ProtoLens.Tag 3, captureProbability__field_descriptor)])
+                (Data.Map.fromList
+                   [("result", result__field_descriptor),
+                    ("pokemon_data", pokemonData__field_descriptor),
+                    ("capture_probability", captureProbability__field_descriptor)])
+
+data DiskEncounterResponse'Result = DiskEncounterResponse'UNKNOWN
+                                  | DiskEncounterResponse'SUCCESS
+                                  | DiskEncounterResponse'NOT_AVAILABLE
+                                  | DiskEncounterResponse'NOT_IN_RANGE
+                                  | DiskEncounterResponse'ENCOUNTER_ALREADY_FINISHED
+                                  | DiskEncounterResponse'POKEMON_INVENTORY_FULL
+                                  deriving (Prelude.Show, Prelude.Eq)
+
+instance Data.Default.Class.Default DiskEncounterResponse'Result
+         where
+        def = DiskEncounterResponse'UNKNOWN
+
+instance Data.ProtoLens.FieldDefault DiskEncounterResponse'Result
+         where
+        fieldDefault = DiskEncounterResponse'UNKNOWN
+
+instance Data.ProtoLens.MessageEnum DiskEncounterResponse'Result
+         where
+        maybeToEnum 0 = Prelude.Just DiskEncounterResponse'UNKNOWN
+        maybeToEnum 1 = Prelude.Just DiskEncounterResponse'SUCCESS
+        maybeToEnum 2 = Prelude.Just DiskEncounterResponse'NOT_AVAILABLE
+        maybeToEnum 3 = Prelude.Just DiskEncounterResponse'NOT_IN_RANGE
+        maybeToEnum 4
+          = Prelude.Just DiskEncounterResponse'ENCOUNTER_ALREADY_FINISHED
+        maybeToEnum 5
+          = Prelude.Just DiskEncounterResponse'POKEMON_INVENTORY_FULL
+        maybeToEnum _ = Prelude.Nothing
+        showEnum DiskEncounterResponse'UNKNOWN = "UNKNOWN"
+        showEnum DiskEncounterResponse'SUCCESS = "SUCCESS"
+        showEnum DiskEncounterResponse'NOT_AVAILABLE = "NOT_AVAILABLE"
+        showEnum DiskEncounterResponse'NOT_IN_RANGE = "NOT_IN_RANGE"
+        showEnum DiskEncounterResponse'ENCOUNTER_ALREADY_FINISHED
+          = "ENCOUNTER_ALREADY_FINISHED"
+        showEnum DiskEncounterResponse'POKEMON_INVENTORY_FULL
+          = "POKEMON_INVENTORY_FULL"
+        readEnum "UNKNOWN" = Prelude.Just DiskEncounterResponse'UNKNOWN
+        readEnum "SUCCESS" = Prelude.Just DiskEncounterResponse'SUCCESS
+        readEnum "NOT_AVAILABLE"
+          = Prelude.Just DiskEncounterResponse'NOT_AVAILABLE
+        readEnum "NOT_IN_RANGE"
+          = Prelude.Just DiskEncounterResponse'NOT_IN_RANGE
+        readEnum "ENCOUNTER_ALREADY_FINISHED"
+          = Prelude.Just DiskEncounterResponse'ENCOUNTER_ALREADY_FINISHED
+        readEnum "POKEMON_INVENTORY_FULL"
+          = Prelude.Just DiskEncounterResponse'POKEMON_INVENTORY_FULL
+        readEnum _ = Prelude.Nothing
+
+instance Prelude.Enum DiskEncounterResponse'Result where
+        toEnum k__
+          = Prelude.maybe
+              (Prelude.error
+                 ((Prelude.++) "toEnum: unknown value for enum Result: "
+                    (Prelude.show k__)))
+              Prelude.id
+              (Data.ProtoLens.maybeToEnum k__)
+        fromEnum DiskEncounterResponse'UNKNOWN = 0
+        fromEnum DiskEncounterResponse'SUCCESS = 1
+        fromEnum DiskEncounterResponse'NOT_AVAILABLE = 2
+        fromEnum DiskEncounterResponse'NOT_IN_RANGE = 3
+        fromEnum DiskEncounterResponse'ENCOUNTER_ALREADY_FINISHED = 4
+        fromEnum DiskEncounterResponse'POKEMON_INVENTORY_FULL = 5
+        succ DiskEncounterResponse'POKEMON_INVENTORY_FULL
+          = Prelude.error
+              "Ident \"DiskEncounterResponse'Result\".Ident \"succ\": bad argument Ident \"DiskEncounterResponse'POKEMON_INVENTORY_FULL\". This value would be out of bounds."
+        succ DiskEncounterResponse'UNKNOWN = DiskEncounterResponse'SUCCESS
+        succ DiskEncounterResponse'SUCCESS
+          = DiskEncounterResponse'NOT_AVAILABLE
+        succ DiskEncounterResponse'NOT_AVAILABLE
+          = DiskEncounterResponse'NOT_IN_RANGE
+        succ DiskEncounterResponse'NOT_IN_RANGE
+          = DiskEncounterResponse'ENCOUNTER_ALREADY_FINISHED
+        succ DiskEncounterResponse'ENCOUNTER_ALREADY_FINISHED
+          = DiskEncounterResponse'POKEMON_INVENTORY_FULL
+        pred DiskEncounterResponse'UNKNOWN
+          = Prelude.error
+              "Ident \"DiskEncounterResponse'Result\".Ident \"pred\": bad argument Ident \"DiskEncounterResponse'UNKNOWN\". This value would be out of bounds."
+        pred DiskEncounterResponse'SUCCESS = DiskEncounterResponse'UNKNOWN
+        pred DiskEncounterResponse'NOT_AVAILABLE
+          = DiskEncounterResponse'SUCCESS
+        pred DiskEncounterResponse'NOT_IN_RANGE
+          = DiskEncounterResponse'NOT_AVAILABLE
+        pred DiskEncounterResponse'ENCOUNTER_ALREADY_FINISHED
+          = DiskEncounterResponse'NOT_IN_RANGE
+        pred DiskEncounterResponse'POKEMON_INVENTORY_FULL
+          = DiskEncounterResponse'ENCOUNTER_ALREADY_FINISHED
+        enumFrom = Data.ProtoLens.Message.Enum.messageEnumFrom
+        enumFromTo = Data.ProtoLens.Message.Enum.messageEnumFromTo
+        enumFromThen = Data.ProtoLens.Message.Enum.messageEnumFromThen
+        enumFromThenTo = Data.ProtoLens.Message.Enum.messageEnumFromThenTo
+
+instance Prelude.Bounded DiskEncounterResponse'Result where
+        minBound = DiskEncounterResponse'UNKNOWN
+        maxBound = DiskEncounterResponse'POKEMON_INVENTORY_FULL
+
+captureProbability ::
+                   forall msg msg' .
+                     Data.ProtoLens.HasField "captureProbability" msg msg' =>
+                     Lens.Family2.Lens msg msg'
+                       (Data.ProtoLens.Field "captureProbability" msg)
+                       (Data.ProtoLens.Field "captureProbability" msg')
+captureProbability
+  = Data.ProtoLens.field
+      (Data.ProtoLens.ProxySym ::
+         Data.ProtoLens.ProxySym "captureProbability")
+
+maybe'captureProbability ::
+                         forall msg msg' .
+                           Data.ProtoLens.HasField "maybe'captureProbability" msg msg' =>
+                           Lens.Family2.Lens msg msg'
+                             (Data.ProtoLens.Field "maybe'captureProbability" msg)
+                             (Data.ProtoLens.Field "maybe'captureProbability" msg')
+maybe'captureProbability
+  = Data.ProtoLens.field
+      (Data.ProtoLens.ProxySym ::
+         Data.ProtoLens.ProxySym "maybe'captureProbability")
+
+maybe'pokemonData ::
+                  forall msg msg' .
+                    Data.ProtoLens.HasField "maybe'pokemonData" msg msg' =>
+                    Lens.Family2.Lens msg msg'
+                      (Data.ProtoLens.Field "maybe'pokemonData" msg)
+                      (Data.ProtoLens.Field "maybe'pokemonData" msg')
+maybe'pokemonData
+  = Data.ProtoLens.field
+      (Data.ProtoLens.ProxySym ::
+         Data.ProtoLens.ProxySym "maybe'pokemonData")
+
+pokemonData ::
+            forall msg msg' . Data.ProtoLens.HasField "pokemonData" msg msg' =>
+              Lens.Family2.Lens msg msg' (Data.ProtoLens.Field "pokemonData" msg)
+                (Data.ProtoLens.Field "pokemonData" msg')
+pokemonData
+  = Data.ProtoLens.field
+      (Data.ProtoLens.ProxySym :: Data.ProtoLens.ProxySym "pokemonData")
+
+result ::
+       forall msg msg' . Data.ProtoLens.HasField "result" msg msg' =>
+         Lens.Family2.Lens msg msg' (Data.ProtoLens.Field "result" msg)
+           (Data.ProtoLens.Field "result" msg')
+result
+  = Data.ProtoLens.field
+      (Data.ProtoLens.ProxySym :: Data.ProtoLens.ProxySym "result")
diff --git a/src/Proto/POGOProtos/Networking/Responses/DownloadItemTemplatesResponse.hs b/src/Proto/POGOProtos/Networking/Responses/DownloadItemTemplatesResponse.hs
new file mode 100644
--- /dev/null
+++ b/src/Proto/POGOProtos/Networking/Responses/DownloadItemTemplatesResponse.hs
@@ -0,0 +1,1159 @@
+{- This file was auto-generated from POGOProtos/Networking/Responses/DownloadItemTemplatesResponse.proto by the proto-lens-protoc program. -}
+{-# LANGUAGE ScopedTypeVariables, DataKinds, TypeFamilies,
+  MultiParamTypeClasses, FlexibleContexts, FlexibleInstances #-}
+{-# OPTIONS_GHC -fno-warn-unused-imports#-}
+module Proto.POGOProtos.Networking.Responses.DownloadItemTemplatesResponse
+       where
+import qualified Prelude
+import qualified Data.ProtoLens
+import qualified Data.ProtoLens.Message.Enum
+import qualified Lens.Family2
+import qualified Lens.Family2.Unchecked
+import qualified Data.Default.Class
+import qualified Data.Text
+import qualified Data.Int
+import qualified Data.Word
+import qualified Data.Map
+import qualified Data.ByteString
+import qualified Proto.POGOProtos.Settings.Master.BadgeSettings
+import qualified Proto.POGOProtos.Settings.Master.CameraSettings
+import qualified Proto.POGOProtos.Settings.Master.EncounterSettings
+import qualified
+       Proto.POGOProtos.Settings.Master.EquippedBadgeSettings
+import qualified Proto.POGOProtos.Settings.Master.GymBattleSettings
+import qualified Proto.POGOProtos.Settings.Master.GymLevelSettings
+import qualified Proto.POGOProtos.Settings.Master.IapItemDisplay
+import qualified Proto.POGOProtos.Settings.Master.IapSettings
+import qualified Proto.POGOProtos.Settings.Master.ItemSettings
+import qualified
+       Proto.POGOProtos.Settings.Master.MoveSequenceSettings
+import qualified Proto.POGOProtos.Settings.Master.MoveSettings
+import qualified
+       Proto.POGOProtos.Settings.Master.PlayerLevelSettings
+import qualified Proto.POGOProtos.Settings.Master.PokemonSettings
+import qualified
+       Proto.POGOProtos.Settings.Master.PokemonUpgradeSettings
+import qualified
+       Proto.POGOProtos.Settings.Master.TypeEffectiveSettings
+
+data DownloadItemTemplatesResponse = DownloadItemTemplatesResponse{_DownloadItemTemplatesResponse'success
+                                                                   :: Prelude.Bool,
+                                                                   _DownloadItemTemplatesResponse'itemTemplates
+                                                                   ::
+                                                                   [DownloadItemTemplatesResponse'ItemTemplate],
+                                                                   _DownloadItemTemplatesResponse'timestampMs
+                                                                   :: Data.Word.Word64}
+                                   deriving (Prelude.Show, Prelude.Eq)
+
+type instance
+     Data.ProtoLens.Field "success" DownloadItemTemplatesResponse =
+     Prelude.Bool
+
+instance Data.ProtoLens.HasField "success"
+         DownloadItemTemplatesResponse DownloadItemTemplatesResponse where
+        field _
+          = Lens.Family2.Unchecked.lens
+              _DownloadItemTemplatesResponse'success
+              (\ x__ y__ -> x__{_DownloadItemTemplatesResponse'success = y__})
+
+type instance
+     Data.ProtoLens.Field "itemTemplates" DownloadItemTemplatesResponse
+     = [DownloadItemTemplatesResponse'ItemTemplate]
+
+instance Data.ProtoLens.HasField "itemTemplates"
+         DownloadItemTemplatesResponse DownloadItemTemplatesResponse where
+        field _
+          = Lens.Family2.Unchecked.lens
+              _DownloadItemTemplatesResponse'itemTemplates
+              (\ x__ y__ ->
+                 x__{_DownloadItemTemplatesResponse'itemTemplates = y__})
+
+type instance
+     Data.ProtoLens.Field "timestampMs" DownloadItemTemplatesResponse =
+     Data.Word.Word64
+
+instance Data.ProtoLens.HasField "timestampMs"
+         DownloadItemTemplatesResponse DownloadItemTemplatesResponse where
+        field _
+          = Lens.Family2.Unchecked.lens
+              _DownloadItemTemplatesResponse'timestampMs
+              (\ x__ y__ ->
+                 x__{_DownloadItemTemplatesResponse'timestampMs = y__})
+
+instance Data.Default.Class.Default DownloadItemTemplatesResponse
+         where
+        def
+          = DownloadItemTemplatesResponse{_DownloadItemTemplatesResponse'success
+                                            = Data.ProtoLens.fieldDefault,
+                                          _DownloadItemTemplatesResponse'itemTemplates = [],
+                                          _DownloadItemTemplatesResponse'timestampMs =
+                                            Data.ProtoLens.fieldDefault}
+
+instance Data.ProtoLens.Message DownloadItemTemplatesResponse where
+        descriptor
+          = let success__field_descriptor
+                  = Data.ProtoLens.FieldDescriptor "success"
+                      (Data.ProtoLens.BoolField ::
+                         Data.ProtoLens.FieldTypeDescriptor Prelude.Bool)
+                      (Data.ProtoLens.PlainField Data.ProtoLens.Optional success)
+                itemTemplates__field_descriptor
+                  = Data.ProtoLens.FieldDescriptor "item_templates"
+                      (Data.ProtoLens.MessageField ::
+                         Data.ProtoLens.FieldTypeDescriptor
+                           DownloadItemTemplatesResponse'ItemTemplate)
+                      (Data.ProtoLens.RepeatedField Data.ProtoLens.Unpacked
+                         itemTemplates)
+                timestampMs__field_descriptor
+                  = Data.ProtoLens.FieldDescriptor "timestamp_ms"
+                      (Data.ProtoLens.UInt64Field ::
+                         Data.ProtoLens.FieldTypeDescriptor Data.Word.Word64)
+                      (Data.ProtoLens.PlainField Data.ProtoLens.Optional timestampMs)
+              in
+              Data.ProtoLens.MessageDescriptor
+                (Data.Map.fromList
+                   [(Data.ProtoLens.Tag 1, success__field_descriptor),
+                    (Data.ProtoLens.Tag 2, itemTemplates__field_descriptor),
+                    (Data.ProtoLens.Tag 3, timestampMs__field_descriptor)])
+                (Data.Map.fromList
+                   [("success", success__field_descriptor),
+                    ("item_templates", itemTemplates__field_descriptor),
+                    ("timestamp_ms", timestampMs__field_descriptor)])
+
+data DownloadItemTemplatesResponse'ItemTemplate = DownloadItemTemplatesResponse'ItemTemplate{_DownloadItemTemplatesResponse'ItemTemplate'templateId
+                                                                                             ::
+                                                                                             Data.Text.Text,
+                                                                                             _DownloadItemTemplatesResponse'ItemTemplate'pokemonSettings
+                                                                                             ::
+                                                                                             Prelude.Maybe
+                                                                                               Proto.POGOProtos.Settings.Master.PokemonSettings.PokemonSettings,
+                                                                                             _DownloadItemTemplatesResponse'ItemTemplate'itemSettings
+                                                                                             ::
+                                                                                             Prelude.Maybe
+                                                                                               Proto.POGOProtos.Settings.Master.ItemSettings.ItemSettings,
+                                                                                             _DownloadItemTemplatesResponse'ItemTemplate'moveSettings
+                                                                                             ::
+                                                                                             Prelude.Maybe
+                                                                                               Proto.POGOProtos.Settings.Master.MoveSettings.MoveSettings,
+                                                                                             _DownloadItemTemplatesResponse'ItemTemplate'moveSequenceSettings
+                                                                                             ::
+                                                                                             Prelude.Maybe
+                                                                                               Proto.POGOProtos.Settings.Master.MoveSequenceSettings.MoveSequenceSettings,
+                                                                                             _DownloadItemTemplatesResponse'ItemTemplate'typeEffective
+                                                                                             ::
+                                                                                             Prelude.Maybe
+                                                                                               Proto.POGOProtos.Settings.Master.TypeEffectiveSettings.TypeEffectiveSettings,
+                                                                                             _DownloadItemTemplatesResponse'ItemTemplate'badgeSettings
+                                                                                             ::
+                                                                                             Prelude.Maybe
+                                                                                               Proto.POGOProtos.Settings.Master.BadgeSettings.BadgeSettings,
+                                                                                             _DownloadItemTemplatesResponse'ItemTemplate'camera
+                                                                                             ::
+                                                                                             Prelude.Maybe
+                                                                                               Proto.POGOProtos.Settings.Master.CameraSettings.CameraSettings,
+                                                                                             _DownloadItemTemplatesResponse'ItemTemplate'playerLevel
+                                                                                             ::
+                                                                                             Prelude.Maybe
+                                                                                               Proto.POGOProtos.Settings.Master.PlayerLevelSettings.PlayerLevelSettings,
+                                                                                             _DownloadItemTemplatesResponse'ItemTemplate'gymLevel
+                                                                                             ::
+                                                                                             Prelude.Maybe
+                                                                                               Proto.POGOProtos.Settings.Master.GymLevelSettings.GymLevelSettings,
+                                                                                             _DownloadItemTemplatesResponse'ItemTemplate'battleSettings
+                                                                                             ::
+                                                                                             Prelude.Maybe
+                                                                                               Proto.POGOProtos.Settings.Master.GymBattleSettings.GymBattleSettings,
+                                                                                             _DownloadItemTemplatesResponse'ItemTemplate'encounterSettings
+                                                                                             ::
+                                                                                             Prelude.Maybe
+                                                                                               Proto.POGOProtos.Settings.Master.EncounterSettings.EncounterSettings,
+                                                                                             _DownloadItemTemplatesResponse'ItemTemplate'iapItemDisplay
+                                                                                             ::
+                                                                                             Prelude.Maybe
+                                                                                               Proto.POGOProtos.Settings.Master.IapItemDisplay.IapItemDisplay,
+                                                                                             _DownloadItemTemplatesResponse'ItemTemplate'iapSettings
+                                                                                             ::
+                                                                                             Prelude.Maybe
+                                                                                               Proto.POGOProtos.Settings.Master.IapSettings.IapSettings,
+                                                                                             _DownloadItemTemplatesResponse'ItemTemplate'pokemonUpgrades
+                                                                                             ::
+                                                                                             Prelude.Maybe
+                                                                                               Proto.POGOProtos.Settings.Master.PokemonUpgradeSettings.PokemonUpgradeSettings,
+                                                                                             _DownloadItemTemplatesResponse'ItemTemplate'equippedBadges
+                                                                                             ::
+                                                                                             Prelude.Maybe
+                                                                                               Proto.POGOProtos.Settings.Master.EquippedBadgeSettings.EquippedBadgeSettings}
+                                                deriving (Prelude.Show, Prelude.Eq)
+
+type instance
+     Data.ProtoLens.Field "templateId"
+       DownloadItemTemplatesResponse'ItemTemplate
+     = Data.Text.Text
+
+instance Data.ProtoLens.HasField "templateId"
+         DownloadItemTemplatesResponse'ItemTemplate
+         DownloadItemTemplatesResponse'ItemTemplate where
+        field _
+          = Lens.Family2.Unchecked.lens
+              _DownloadItemTemplatesResponse'ItemTemplate'templateId
+              (\ x__ y__ ->
+                 x__{_DownloadItemTemplatesResponse'ItemTemplate'templateId = y__})
+
+type instance
+     Data.ProtoLens.Field "pokemonSettings"
+       DownloadItemTemplatesResponse'ItemTemplate
+     = Proto.POGOProtos.Settings.Master.PokemonSettings.PokemonSettings
+
+instance Data.ProtoLens.HasField "pokemonSettings"
+         DownloadItemTemplatesResponse'ItemTemplate
+         DownloadItemTemplatesResponse'ItemTemplate where
+        field _
+          = (Prelude..) maybe'pokemonSettings
+              (Data.ProtoLens.maybeLens Data.Default.Class.def)
+
+type instance
+     Data.ProtoLens.Field "maybe'pokemonSettings"
+       DownloadItemTemplatesResponse'ItemTemplate
+     =
+     Prelude.Maybe
+       Proto.POGOProtos.Settings.Master.PokemonSettings.PokemonSettings
+
+instance Data.ProtoLens.HasField "maybe'pokemonSettings"
+         DownloadItemTemplatesResponse'ItemTemplate
+         DownloadItemTemplatesResponse'ItemTemplate where
+        field _
+          = Lens.Family2.Unchecked.lens
+              _DownloadItemTemplatesResponse'ItemTemplate'pokemonSettings
+              (\ x__ y__ ->
+                 x__{_DownloadItemTemplatesResponse'ItemTemplate'pokemonSettings =
+                       y__})
+
+type instance
+     Data.ProtoLens.Field "itemSettings"
+       DownloadItemTemplatesResponse'ItemTemplate
+     = Proto.POGOProtos.Settings.Master.ItemSettings.ItemSettings
+
+instance Data.ProtoLens.HasField "itemSettings"
+         DownloadItemTemplatesResponse'ItemTemplate
+         DownloadItemTemplatesResponse'ItemTemplate where
+        field _
+          = (Prelude..) maybe'itemSettings
+              (Data.ProtoLens.maybeLens Data.Default.Class.def)
+
+type instance
+     Data.ProtoLens.Field "maybe'itemSettings"
+       DownloadItemTemplatesResponse'ItemTemplate
+     =
+     Prelude.Maybe
+       Proto.POGOProtos.Settings.Master.ItemSettings.ItemSettings
+
+instance Data.ProtoLens.HasField "maybe'itemSettings"
+         DownloadItemTemplatesResponse'ItemTemplate
+         DownloadItemTemplatesResponse'ItemTemplate where
+        field _
+          = Lens.Family2.Unchecked.lens
+              _DownloadItemTemplatesResponse'ItemTemplate'itemSettings
+              (\ x__ y__ ->
+                 x__{_DownloadItemTemplatesResponse'ItemTemplate'itemSettings =
+                       y__})
+
+type instance
+     Data.ProtoLens.Field "moveSettings"
+       DownloadItemTemplatesResponse'ItemTemplate
+     = Proto.POGOProtos.Settings.Master.MoveSettings.MoveSettings
+
+instance Data.ProtoLens.HasField "moveSettings"
+         DownloadItemTemplatesResponse'ItemTemplate
+         DownloadItemTemplatesResponse'ItemTemplate where
+        field _
+          = (Prelude..) maybe'moveSettings
+              (Data.ProtoLens.maybeLens Data.Default.Class.def)
+
+type instance
+     Data.ProtoLens.Field "maybe'moveSettings"
+       DownloadItemTemplatesResponse'ItemTemplate
+     =
+     Prelude.Maybe
+       Proto.POGOProtos.Settings.Master.MoveSettings.MoveSettings
+
+instance Data.ProtoLens.HasField "maybe'moveSettings"
+         DownloadItemTemplatesResponse'ItemTemplate
+         DownloadItemTemplatesResponse'ItemTemplate where
+        field _
+          = Lens.Family2.Unchecked.lens
+              _DownloadItemTemplatesResponse'ItemTemplate'moveSettings
+              (\ x__ y__ ->
+                 x__{_DownloadItemTemplatesResponse'ItemTemplate'moveSettings =
+                       y__})
+
+type instance
+     Data.ProtoLens.Field "moveSequenceSettings"
+       DownloadItemTemplatesResponse'ItemTemplate
+     =
+     Proto.POGOProtos.Settings.Master.MoveSequenceSettings.MoveSequenceSettings
+
+instance Data.ProtoLens.HasField "moveSequenceSettings"
+         DownloadItemTemplatesResponse'ItemTemplate
+         DownloadItemTemplatesResponse'ItemTemplate where
+        field _
+          = (Prelude..) maybe'moveSequenceSettings
+              (Data.ProtoLens.maybeLens Data.Default.Class.def)
+
+type instance
+     Data.ProtoLens.Field "maybe'moveSequenceSettings"
+       DownloadItemTemplatesResponse'ItemTemplate
+     =
+     Prelude.Maybe
+       Proto.POGOProtos.Settings.Master.MoveSequenceSettings.MoveSequenceSettings
+
+instance Data.ProtoLens.HasField "maybe'moveSequenceSettings"
+         DownloadItemTemplatesResponse'ItemTemplate
+         DownloadItemTemplatesResponse'ItemTemplate where
+        field _
+          = Lens.Family2.Unchecked.lens
+              _DownloadItemTemplatesResponse'ItemTemplate'moveSequenceSettings
+              (\ x__ y__ ->
+                 x__{_DownloadItemTemplatesResponse'ItemTemplate'moveSequenceSettings
+                       = y__})
+
+type instance
+     Data.ProtoLens.Field "typeEffective"
+       DownloadItemTemplatesResponse'ItemTemplate
+     =
+     Proto.POGOProtos.Settings.Master.TypeEffectiveSettings.TypeEffectiveSettings
+
+instance Data.ProtoLens.HasField "typeEffective"
+         DownloadItemTemplatesResponse'ItemTemplate
+         DownloadItemTemplatesResponse'ItemTemplate where
+        field _
+          = (Prelude..) maybe'typeEffective
+              (Data.ProtoLens.maybeLens Data.Default.Class.def)
+
+type instance
+     Data.ProtoLens.Field "maybe'typeEffective"
+       DownloadItemTemplatesResponse'ItemTemplate
+     =
+     Prelude.Maybe
+       Proto.POGOProtos.Settings.Master.TypeEffectiveSettings.TypeEffectiveSettings
+
+instance Data.ProtoLens.HasField "maybe'typeEffective"
+         DownloadItemTemplatesResponse'ItemTemplate
+         DownloadItemTemplatesResponse'ItemTemplate where
+        field _
+          = Lens.Family2.Unchecked.lens
+              _DownloadItemTemplatesResponse'ItemTemplate'typeEffective
+              (\ x__ y__ ->
+                 x__{_DownloadItemTemplatesResponse'ItemTemplate'typeEffective =
+                       y__})
+
+type instance
+     Data.ProtoLens.Field "badgeSettings"
+       DownloadItemTemplatesResponse'ItemTemplate
+     = Proto.POGOProtos.Settings.Master.BadgeSettings.BadgeSettings
+
+instance Data.ProtoLens.HasField "badgeSettings"
+         DownloadItemTemplatesResponse'ItemTemplate
+         DownloadItemTemplatesResponse'ItemTemplate where
+        field _
+          = (Prelude..) maybe'badgeSettings
+              (Data.ProtoLens.maybeLens Data.Default.Class.def)
+
+type instance
+     Data.ProtoLens.Field "maybe'badgeSettings"
+       DownloadItemTemplatesResponse'ItemTemplate
+     =
+     Prelude.Maybe
+       Proto.POGOProtos.Settings.Master.BadgeSettings.BadgeSettings
+
+instance Data.ProtoLens.HasField "maybe'badgeSettings"
+         DownloadItemTemplatesResponse'ItemTemplate
+         DownloadItemTemplatesResponse'ItemTemplate where
+        field _
+          = Lens.Family2.Unchecked.lens
+              _DownloadItemTemplatesResponse'ItemTemplate'badgeSettings
+              (\ x__ y__ ->
+                 x__{_DownloadItemTemplatesResponse'ItemTemplate'badgeSettings =
+                       y__})
+
+type instance
+     Data.ProtoLens.Field "camera"
+       DownloadItemTemplatesResponse'ItemTemplate
+     = Proto.POGOProtos.Settings.Master.CameraSettings.CameraSettings
+
+instance Data.ProtoLens.HasField "camera"
+         DownloadItemTemplatesResponse'ItemTemplate
+         DownloadItemTemplatesResponse'ItemTemplate where
+        field _
+          = (Prelude..) maybe'camera
+              (Data.ProtoLens.maybeLens Data.Default.Class.def)
+
+type instance
+     Data.ProtoLens.Field "maybe'camera"
+       DownloadItemTemplatesResponse'ItemTemplate
+     =
+     Prelude.Maybe
+       Proto.POGOProtos.Settings.Master.CameraSettings.CameraSettings
+
+instance Data.ProtoLens.HasField "maybe'camera"
+         DownloadItemTemplatesResponse'ItemTemplate
+         DownloadItemTemplatesResponse'ItemTemplate where
+        field _
+          = Lens.Family2.Unchecked.lens
+              _DownloadItemTemplatesResponse'ItemTemplate'camera
+              (\ x__ y__ ->
+                 x__{_DownloadItemTemplatesResponse'ItemTemplate'camera = y__})
+
+type instance
+     Data.ProtoLens.Field "playerLevel"
+       DownloadItemTemplatesResponse'ItemTemplate
+     =
+     Proto.POGOProtos.Settings.Master.PlayerLevelSettings.PlayerLevelSettings
+
+instance Data.ProtoLens.HasField "playerLevel"
+         DownloadItemTemplatesResponse'ItemTemplate
+         DownloadItemTemplatesResponse'ItemTemplate where
+        field _
+          = (Prelude..) maybe'playerLevel
+              (Data.ProtoLens.maybeLens Data.Default.Class.def)
+
+type instance
+     Data.ProtoLens.Field "maybe'playerLevel"
+       DownloadItemTemplatesResponse'ItemTemplate
+     =
+     Prelude.Maybe
+       Proto.POGOProtos.Settings.Master.PlayerLevelSettings.PlayerLevelSettings
+
+instance Data.ProtoLens.HasField "maybe'playerLevel"
+         DownloadItemTemplatesResponse'ItemTemplate
+         DownloadItemTemplatesResponse'ItemTemplate where
+        field _
+          = Lens.Family2.Unchecked.lens
+              _DownloadItemTemplatesResponse'ItemTemplate'playerLevel
+              (\ x__ y__ ->
+                 x__{_DownloadItemTemplatesResponse'ItemTemplate'playerLevel = y__})
+
+type instance
+     Data.ProtoLens.Field "gymLevel"
+       DownloadItemTemplatesResponse'ItemTemplate
+     =
+     Proto.POGOProtos.Settings.Master.GymLevelSettings.GymLevelSettings
+
+instance Data.ProtoLens.HasField "gymLevel"
+         DownloadItemTemplatesResponse'ItemTemplate
+         DownloadItemTemplatesResponse'ItemTemplate where
+        field _
+          = (Prelude..) maybe'gymLevel
+              (Data.ProtoLens.maybeLens Data.Default.Class.def)
+
+type instance
+     Data.ProtoLens.Field "maybe'gymLevel"
+       DownloadItemTemplatesResponse'ItemTemplate
+     =
+     Prelude.Maybe
+       Proto.POGOProtos.Settings.Master.GymLevelSettings.GymLevelSettings
+
+instance Data.ProtoLens.HasField "maybe'gymLevel"
+         DownloadItemTemplatesResponse'ItemTemplate
+         DownloadItemTemplatesResponse'ItemTemplate where
+        field _
+          = Lens.Family2.Unchecked.lens
+              _DownloadItemTemplatesResponse'ItemTemplate'gymLevel
+              (\ x__ y__ ->
+                 x__{_DownloadItemTemplatesResponse'ItemTemplate'gymLevel = y__})
+
+type instance
+     Data.ProtoLens.Field "battleSettings"
+       DownloadItemTemplatesResponse'ItemTemplate
+     =
+     Proto.POGOProtos.Settings.Master.GymBattleSettings.GymBattleSettings
+
+instance Data.ProtoLens.HasField "battleSettings"
+         DownloadItemTemplatesResponse'ItemTemplate
+         DownloadItemTemplatesResponse'ItemTemplate where
+        field _
+          = (Prelude..) maybe'battleSettings
+              (Data.ProtoLens.maybeLens Data.Default.Class.def)
+
+type instance
+     Data.ProtoLens.Field "maybe'battleSettings"
+       DownloadItemTemplatesResponse'ItemTemplate
+     =
+     Prelude.Maybe
+       Proto.POGOProtos.Settings.Master.GymBattleSettings.GymBattleSettings
+
+instance Data.ProtoLens.HasField "maybe'battleSettings"
+         DownloadItemTemplatesResponse'ItemTemplate
+         DownloadItemTemplatesResponse'ItemTemplate where
+        field _
+          = Lens.Family2.Unchecked.lens
+              _DownloadItemTemplatesResponse'ItemTemplate'battleSettings
+              (\ x__ y__ ->
+                 x__{_DownloadItemTemplatesResponse'ItemTemplate'battleSettings =
+                       y__})
+
+type instance
+     Data.ProtoLens.Field "encounterSettings"
+       DownloadItemTemplatesResponse'ItemTemplate
+     =
+     Proto.POGOProtos.Settings.Master.EncounterSettings.EncounterSettings
+
+instance Data.ProtoLens.HasField "encounterSettings"
+         DownloadItemTemplatesResponse'ItemTemplate
+         DownloadItemTemplatesResponse'ItemTemplate where
+        field _
+          = (Prelude..) maybe'encounterSettings
+              (Data.ProtoLens.maybeLens Data.Default.Class.def)
+
+type instance
+     Data.ProtoLens.Field "maybe'encounterSettings"
+       DownloadItemTemplatesResponse'ItemTemplate
+     =
+     Prelude.Maybe
+       Proto.POGOProtos.Settings.Master.EncounterSettings.EncounterSettings
+
+instance Data.ProtoLens.HasField "maybe'encounterSettings"
+         DownloadItemTemplatesResponse'ItemTemplate
+         DownloadItemTemplatesResponse'ItemTemplate where
+        field _
+          = Lens.Family2.Unchecked.lens
+              _DownloadItemTemplatesResponse'ItemTemplate'encounterSettings
+              (\ x__ y__ ->
+                 x__{_DownloadItemTemplatesResponse'ItemTemplate'encounterSettings =
+                       y__})
+
+type instance
+     Data.ProtoLens.Field "iapItemDisplay"
+       DownloadItemTemplatesResponse'ItemTemplate
+     = Proto.POGOProtos.Settings.Master.IapItemDisplay.IapItemDisplay
+
+instance Data.ProtoLens.HasField "iapItemDisplay"
+         DownloadItemTemplatesResponse'ItemTemplate
+         DownloadItemTemplatesResponse'ItemTemplate where
+        field _
+          = (Prelude..) maybe'iapItemDisplay
+              (Data.ProtoLens.maybeLens Data.Default.Class.def)
+
+type instance
+     Data.ProtoLens.Field "maybe'iapItemDisplay"
+       DownloadItemTemplatesResponse'ItemTemplate
+     =
+     Prelude.Maybe
+       Proto.POGOProtos.Settings.Master.IapItemDisplay.IapItemDisplay
+
+instance Data.ProtoLens.HasField "maybe'iapItemDisplay"
+         DownloadItemTemplatesResponse'ItemTemplate
+         DownloadItemTemplatesResponse'ItemTemplate where
+        field _
+          = Lens.Family2.Unchecked.lens
+              _DownloadItemTemplatesResponse'ItemTemplate'iapItemDisplay
+              (\ x__ y__ ->
+                 x__{_DownloadItemTemplatesResponse'ItemTemplate'iapItemDisplay =
+                       y__})
+
+type instance
+     Data.ProtoLens.Field "iapSettings"
+       DownloadItemTemplatesResponse'ItemTemplate
+     = Proto.POGOProtos.Settings.Master.IapSettings.IapSettings
+
+instance Data.ProtoLens.HasField "iapSettings"
+         DownloadItemTemplatesResponse'ItemTemplate
+         DownloadItemTemplatesResponse'ItemTemplate where
+        field _
+          = (Prelude..) maybe'iapSettings
+              (Data.ProtoLens.maybeLens Data.Default.Class.def)
+
+type instance
+     Data.ProtoLens.Field "maybe'iapSettings"
+       DownloadItemTemplatesResponse'ItemTemplate
+     =
+     Prelude.Maybe
+       Proto.POGOProtos.Settings.Master.IapSettings.IapSettings
+
+instance Data.ProtoLens.HasField "maybe'iapSettings"
+         DownloadItemTemplatesResponse'ItemTemplate
+         DownloadItemTemplatesResponse'ItemTemplate where
+        field _
+          = Lens.Family2.Unchecked.lens
+              _DownloadItemTemplatesResponse'ItemTemplate'iapSettings
+              (\ x__ y__ ->
+                 x__{_DownloadItemTemplatesResponse'ItemTemplate'iapSettings = y__})
+
+type instance
+     Data.ProtoLens.Field "pokemonUpgrades"
+       DownloadItemTemplatesResponse'ItemTemplate
+     =
+     Proto.POGOProtos.Settings.Master.PokemonUpgradeSettings.PokemonUpgradeSettings
+
+instance Data.ProtoLens.HasField "pokemonUpgrades"
+         DownloadItemTemplatesResponse'ItemTemplate
+         DownloadItemTemplatesResponse'ItemTemplate where
+        field _
+          = (Prelude..) maybe'pokemonUpgrades
+              (Data.ProtoLens.maybeLens Data.Default.Class.def)
+
+type instance
+     Data.ProtoLens.Field "maybe'pokemonUpgrades"
+       DownloadItemTemplatesResponse'ItemTemplate
+     =
+     Prelude.Maybe
+       Proto.POGOProtos.Settings.Master.PokemonUpgradeSettings.PokemonUpgradeSettings
+
+instance Data.ProtoLens.HasField "maybe'pokemonUpgrades"
+         DownloadItemTemplatesResponse'ItemTemplate
+         DownloadItemTemplatesResponse'ItemTemplate where
+        field _
+          = Lens.Family2.Unchecked.lens
+              _DownloadItemTemplatesResponse'ItemTemplate'pokemonUpgrades
+              (\ x__ y__ ->
+                 x__{_DownloadItemTemplatesResponse'ItemTemplate'pokemonUpgrades =
+                       y__})
+
+type instance
+     Data.ProtoLens.Field "equippedBadges"
+       DownloadItemTemplatesResponse'ItemTemplate
+     =
+     Proto.POGOProtos.Settings.Master.EquippedBadgeSettings.EquippedBadgeSettings
+
+instance Data.ProtoLens.HasField "equippedBadges"
+         DownloadItemTemplatesResponse'ItemTemplate
+         DownloadItemTemplatesResponse'ItemTemplate where
+        field _
+          = (Prelude..) maybe'equippedBadges
+              (Data.ProtoLens.maybeLens Data.Default.Class.def)
+
+type instance
+     Data.ProtoLens.Field "maybe'equippedBadges"
+       DownloadItemTemplatesResponse'ItemTemplate
+     =
+     Prelude.Maybe
+       Proto.POGOProtos.Settings.Master.EquippedBadgeSettings.EquippedBadgeSettings
+
+instance Data.ProtoLens.HasField "maybe'equippedBadges"
+         DownloadItemTemplatesResponse'ItemTemplate
+         DownloadItemTemplatesResponse'ItemTemplate where
+        field _
+          = Lens.Family2.Unchecked.lens
+              _DownloadItemTemplatesResponse'ItemTemplate'equippedBadges
+              (\ x__ y__ ->
+                 x__{_DownloadItemTemplatesResponse'ItemTemplate'equippedBadges =
+                       y__})
+
+instance Data.Default.Class.Default
+         DownloadItemTemplatesResponse'ItemTemplate where
+        def
+          = DownloadItemTemplatesResponse'ItemTemplate{_DownloadItemTemplatesResponse'ItemTemplate'templateId
+                                                         = Data.ProtoLens.fieldDefault,
+                                                       _DownloadItemTemplatesResponse'ItemTemplate'pokemonSettings
+                                                         = Prelude.Nothing,
+                                                       _DownloadItemTemplatesResponse'ItemTemplate'itemSettings
+                                                         = Prelude.Nothing,
+                                                       _DownloadItemTemplatesResponse'ItemTemplate'moveSettings
+                                                         = Prelude.Nothing,
+                                                       _DownloadItemTemplatesResponse'ItemTemplate'moveSequenceSettings
+                                                         = Prelude.Nothing,
+                                                       _DownloadItemTemplatesResponse'ItemTemplate'typeEffective
+                                                         = Prelude.Nothing,
+                                                       _DownloadItemTemplatesResponse'ItemTemplate'badgeSettings
+                                                         = Prelude.Nothing,
+                                                       _DownloadItemTemplatesResponse'ItemTemplate'camera
+                                                         = Prelude.Nothing,
+                                                       _DownloadItemTemplatesResponse'ItemTemplate'playerLevel
+                                                         = Prelude.Nothing,
+                                                       _DownloadItemTemplatesResponse'ItemTemplate'gymLevel
+                                                         = Prelude.Nothing,
+                                                       _DownloadItemTemplatesResponse'ItemTemplate'battleSettings
+                                                         = Prelude.Nothing,
+                                                       _DownloadItemTemplatesResponse'ItemTemplate'encounterSettings
+                                                         = Prelude.Nothing,
+                                                       _DownloadItemTemplatesResponse'ItemTemplate'iapItemDisplay
+                                                         = Prelude.Nothing,
+                                                       _DownloadItemTemplatesResponse'ItemTemplate'iapSettings
+                                                         = Prelude.Nothing,
+                                                       _DownloadItemTemplatesResponse'ItemTemplate'pokemonUpgrades
+                                                         = Prelude.Nothing,
+                                                       _DownloadItemTemplatesResponse'ItemTemplate'equippedBadges
+                                                         = Prelude.Nothing}
+
+instance Data.ProtoLens.Message
+         DownloadItemTemplatesResponse'ItemTemplate where
+        descriptor
+          = let templateId__field_descriptor
+                  = Data.ProtoLens.FieldDescriptor "template_id"
+                      (Data.ProtoLens.StringField ::
+                         Data.ProtoLens.FieldTypeDescriptor Data.Text.Text)
+                      (Data.ProtoLens.PlainField Data.ProtoLens.Optional templateId)
+                pokemonSettings__field_descriptor
+                  = Data.ProtoLens.FieldDescriptor "pokemon_settings"
+                      (Data.ProtoLens.MessageField ::
+                         Data.ProtoLens.FieldTypeDescriptor
+                           Proto.POGOProtos.Settings.Master.PokemonSettings.PokemonSettings)
+                      (Data.ProtoLens.OptionalField maybe'pokemonSettings)
+                itemSettings__field_descriptor
+                  = Data.ProtoLens.FieldDescriptor "item_settings"
+                      (Data.ProtoLens.MessageField ::
+                         Data.ProtoLens.FieldTypeDescriptor
+                           Proto.POGOProtos.Settings.Master.ItemSettings.ItemSettings)
+                      (Data.ProtoLens.OptionalField maybe'itemSettings)
+                moveSettings__field_descriptor
+                  = Data.ProtoLens.FieldDescriptor "move_settings"
+                      (Data.ProtoLens.MessageField ::
+                         Data.ProtoLens.FieldTypeDescriptor
+                           Proto.POGOProtos.Settings.Master.MoveSettings.MoveSettings)
+                      (Data.ProtoLens.OptionalField maybe'moveSettings)
+                moveSequenceSettings__field_descriptor
+                  = Data.ProtoLens.FieldDescriptor "move_sequence_settings"
+                      (Data.ProtoLens.MessageField ::
+                         Data.ProtoLens.FieldTypeDescriptor
+                           Proto.POGOProtos.Settings.Master.MoveSequenceSettings.MoveSequenceSettings)
+                      (Data.ProtoLens.OptionalField maybe'moveSequenceSettings)
+                typeEffective__field_descriptor
+                  = Data.ProtoLens.FieldDescriptor "type_effective"
+                      (Data.ProtoLens.MessageField ::
+                         Data.ProtoLens.FieldTypeDescriptor
+                           Proto.POGOProtos.Settings.Master.TypeEffectiveSettings.TypeEffectiveSettings)
+                      (Data.ProtoLens.OptionalField maybe'typeEffective)
+                badgeSettings__field_descriptor
+                  = Data.ProtoLens.FieldDescriptor "badge_settings"
+                      (Data.ProtoLens.MessageField ::
+                         Data.ProtoLens.FieldTypeDescriptor
+                           Proto.POGOProtos.Settings.Master.BadgeSettings.BadgeSettings)
+                      (Data.ProtoLens.OptionalField maybe'badgeSettings)
+                camera__field_descriptor
+                  = Data.ProtoLens.FieldDescriptor "camera"
+                      (Data.ProtoLens.MessageField ::
+                         Data.ProtoLens.FieldTypeDescriptor
+                           Proto.POGOProtos.Settings.Master.CameraSettings.CameraSettings)
+                      (Data.ProtoLens.OptionalField maybe'camera)
+                playerLevel__field_descriptor
+                  = Data.ProtoLens.FieldDescriptor "player_level"
+                      (Data.ProtoLens.MessageField ::
+                         Data.ProtoLens.FieldTypeDescriptor
+                           Proto.POGOProtos.Settings.Master.PlayerLevelSettings.PlayerLevelSettings)
+                      (Data.ProtoLens.OptionalField maybe'playerLevel)
+                gymLevel__field_descriptor
+                  = Data.ProtoLens.FieldDescriptor "gym_level"
+                      (Data.ProtoLens.MessageField ::
+                         Data.ProtoLens.FieldTypeDescriptor
+                           Proto.POGOProtos.Settings.Master.GymLevelSettings.GymLevelSettings)
+                      (Data.ProtoLens.OptionalField maybe'gymLevel)
+                battleSettings__field_descriptor
+                  = Data.ProtoLens.FieldDescriptor "battle_settings"
+                      (Data.ProtoLens.MessageField ::
+                         Data.ProtoLens.FieldTypeDescriptor
+                           Proto.POGOProtos.Settings.Master.GymBattleSettings.GymBattleSettings)
+                      (Data.ProtoLens.OptionalField maybe'battleSettings)
+                encounterSettings__field_descriptor
+                  = Data.ProtoLens.FieldDescriptor "encounter_settings"
+                      (Data.ProtoLens.MessageField ::
+                         Data.ProtoLens.FieldTypeDescriptor
+                           Proto.POGOProtos.Settings.Master.EncounterSettings.EncounterSettings)
+                      (Data.ProtoLens.OptionalField maybe'encounterSettings)
+                iapItemDisplay__field_descriptor
+                  = Data.ProtoLens.FieldDescriptor "iap_item_display"
+                      (Data.ProtoLens.MessageField ::
+                         Data.ProtoLens.FieldTypeDescriptor
+                           Proto.POGOProtos.Settings.Master.IapItemDisplay.IapItemDisplay)
+                      (Data.ProtoLens.OptionalField maybe'iapItemDisplay)
+                iapSettings__field_descriptor
+                  = Data.ProtoLens.FieldDescriptor "iap_settings"
+                      (Data.ProtoLens.MessageField ::
+                         Data.ProtoLens.FieldTypeDescriptor
+                           Proto.POGOProtos.Settings.Master.IapSettings.IapSettings)
+                      (Data.ProtoLens.OptionalField maybe'iapSettings)
+                pokemonUpgrades__field_descriptor
+                  = Data.ProtoLens.FieldDescriptor "pokemon_upgrades"
+                      (Data.ProtoLens.MessageField ::
+                         Data.ProtoLens.FieldTypeDescriptor
+                           Proto.POGOProtos.Settings.Master.PokemonUpgradeSettings.PokemonUpgradeSettings)
+                      (Data.ProtoLens.OptionalField maybe'pokemonUpgrades)
+                equippedBadges__field_descriptor
+                  = Data.ProtoLens.FieldDescriptor "equipped_badges"
+                      (Data.ProtoLens.MessageField ::
+                         Data.ProtoLens.FieldTypeDescriptor
+                           Proto.POGOProtos.Settings.Master.EquippedBadgeSettings.EquippedBadgeSettings)
+                      (Data.ProtoLens.OptionalField maybe'equippedBadges)
+              in
+              Data.ProtoLens.MessageDescriptor
+                (Data.Map.fromList
+                   [(Data.ProtoLens.Tag 1, templateId__field_descriptor),
+                    (Data.ProtoLens.Tag 2, pokemonSettings__field_descriptor),
+                    (Data.ProtoLens.Tag 3, itemSettings__field_descriptor),
+                    (Data.ProtoLens.Tag 4, moveSettings__field_descriptor),
+                    (Data.ProtoLens.Tag 5, moveSequenceSettings__field_descriptor),
+                    (Data.ProtoLens.Tag 8, typeEffective__field_descriptor),
+                    (Data.ProtoLens.Tag 10, badgeSettings__field_descriptor),
+                    (Data.ProtoLens.Tag 11, camera__field_descriptor),
+                    (Data.ProtoLens.Tag 12, playerLevel__field_descriptor),
+                    (Data.ProtoLens.Tag 13, gymLevel__field_descriptor),
+                    (Data.ProtoLens.Tag 14, battleSettings__field_descriptor),
+                    (Data.ProtoLens.Tag 15, encounterSettings__field_descriptor),
+                    (Data.ProtoLens.Tag 16, iapItemDisplay__field_descriptor),
+                    (Data.ProtoLens.Tag 17, iapSettings__field_descriptor),
+                    (Data.ProtoLens.Tag 18, pokemonUpgrades__field_descriptor),
+                    (Data.ProtoLens.Tag 19, equippedBadges__field_descriptor)])
+                (Data.Map.fromList
+                   [("template_id", templateId__field_descriptor),
+                    ("pokemon_settings", pokemonSettings__field_descriptor),
+                    ("item_settings", itemSettings__field_descriptor),
+                    ("move_settings", moveSettings__field_descriptor),
+                    ("move_sequence_settings", moveSequenceSettings__field_descriptor),
+                    ("type_effective", typeEffective__field_descriptor),
+                    ("badge_settings", badgeSettings__field_descriptor),
+                    ("camera", camera__field_descriptor),
+                    ("player_level", playerLevel__field_descriptor),
+                    ("gym_level", gymLevel__field_descriptor),
+                    ("battle_settings", battleSettings__field_descriptor),
+                    ("encounter_settings", encounterSettings__field_descriptor),
+                    ("iap_item_display", iapItemDisplay__field_descriptor),
+                    ("iap_settings", iapSettings__field_descriptor),
+                    ("pokemon_upgrades", pokemonUpgrades__field_descriptor),
+                    ("equipped_badges", equippedBadges__field_descriptor)])
+
+badgeSettings ::
+              forall msg msg' .
+                Data.ProtoLens.HasField "badgeSettings" msg msg' =>
+                Lens.Family2.Lens msg msg'
+                  (Data.ProtoLens.Field "badgeSettings" msg)
+                  (Data.ProtoLens.Field "badgeSettings" msg')
+badgeSettings
+  = Data.ProtoLens.field
+      (Data.ProtoLens.ProxySym ::
+         Data.ProtoLens.ProxySym "badgeSettings")
+
+battleSettings ::
+               forall msg msg' .
+                 Data.ProtoLens.HasField "battleSettings" msg msg' =>
+                 Lens.Family2.Lens msg msg'
+                   (Data.ProtoLens.Field "battleSettings" msg)
+                   (Data.ProtoLens.Field "battleSettings" msg')
+battleSettings
+  = Data.ProtoLens.field
+      (Data.ProtoLens.ProxySym ::
+         Data.ProtoLens.ProxySym "battleSettings")
+
+camera ::
+       forall msg msg' . Data.ProtoLens.HasField "camera" msg msg' =>
+         Lens.Family2.Lens msg msg' (Data.ProtoLens.Field "camera" msg)
+           (Data.ProtoLens.Field "camera" msg')
+camera
+  = Data.ProtoLens.field
+      (Data.ProtoLens.ProxySym :: Data.ProtoLens.ProxySym "camera")
+
+encounterSettings ::
+                  forall msg msg' .
+                    Data.ProtoLens.HasField "encounterSettings" msg msg' =>
+                    Lens.Family2.Lens msg msg'
+                      (Data.ProtoLens.Field "encounterSettings" msg)
+                      (Data.ProtoLens.Field "encounterSettings" msg')
+encounterSettings
+  = Data.ProtoLens.field
+      (Data.ProtoLens.ProxySym ::
+         Data.ProtoLens.ProxySym "encounterSettings")
+
+equippedBadges ::
+               forall msg msg' .
+                 Data.ProtoLens.HasField "equippedBadges" msg msg' =>
+                 Lens.Family2.Lens msg msg'
+                   (Data.ProtoLens.Field "equippedBadges" msg)
+                   (Data.ProtoLens.Field "equippedBadges" msg')
+equippedBadges
+  = Data.ProtoLens.field
+      (Data.ProtoLens.ProxySym ::
+         Data.ProtoLens.ProxySym "equippedBadges")
+
+gymLevel ::
+         forall msg msg' . Data.ProtoLens.HasField "gymLevel" msg msg' =>
+           Lens.Family2.Lens msg msg' (Data.ProtoLens.Field "gymLevel" msg)
+             (Data.ProtoLens.Field "gymLevel" msg')
+gymLevel
+  = Data.ProtoLens.field
+      (Data.ProtoLens.ProxySym :: Data.ProtoLens.ProxySym "gymLevel")
+
+iapItemDisplay ::
+               forall msg msg' .
+                 Data.ProtoLens.HasField "iapItemDisplay" msg msg' =>
+                 Lens.Family2.Lens msg msg'
+                   (Data.ProtoLens.Field "iapItemDisplay" msg)
+                   (Data.ProtoLens.Field "iapItemDisplay" msg')
+iapItemDisplay
+  = Data.ProtoLens.field
+      (Data.ProtoLens.ProxySym ::
+         Data.ProtoLens.ProxySym "iapItemDisplay")
+
+iapSettings ::
+            forall msg msg' . Data.ProtoLens.HasField "iapSettings" msg msg' =>
+              Lens.Family2.Lens msg msg' (Data.ProtoLens.Field "iapSettings" msg)
+                (Data.ProtoLens.Field "iapSettings" msg')
+iapSettings
+  = Data.ProtoLens.field
+      (Data.ProtoLens.ProxySym :: Data.ProtoLens.ProxySym "iapSettings")
+
+itemSettings ::
+             forall msg msg' .
+               Data.ProtoLens.HasField "itemSettings" msg msg' =>
+               Lens.Family2.Lens msg msg'
+                 (Data.ProtoLens.Field "itemSettings" msg)
+                 (Data.ProtoLens.Field "itemSettings" msg')
+itemSettings
+  = Data.ProtoLens.field
+      (Data.ProtoLens.ProxySym :: Data.ProtoLens.ProxySym "itemSettings")
+
+itemTemplates ::
+              forall msg msg' .
+                Data.ProtoLens.HasField "itemTemplates" msg msg' =>
+                Lens.Family2.Lens msg msg'
+                  (Data.ProtoLens.Field "itemTemplates" msg)
+                  (Data.ProtoLens.Field "itemTemplates" msg')
+itemTemplates
+  = Data.ProtoLens.field
+      (Data.ProtoLens.ProxySym ::
+         Data.ProtoLens.ProxySym "itemTemplates")
+
+maybe'badgeSettings ::
+                    forall msg msg' .
+                      Data.ProtoLens.HasField "maybe'badgeSettings" msg msg' =>
+                      Lens.Family2.Lens msg msg'
+                        (Data.ProtoLens.Field "maybe'badgeSettings" msg)
+                        (Data.ProtoLens.Field "maybe'badgeSettings" msg')
+maybe'badgeSettings
+  = Data.ProtoLens.field
+      (Data.ProtoLens.ProxySym ::
+         Data.ProtoLens.ProxySym "maybe'badgeSettings")
+
+maybe'battleSettings ::
+                     forall msg msg' .
+                       Data.ProtoLens.HasField "maybe'battleSettings" msg msg' =>
+                       Lens.Family2.Lens msg msg'
+                         (Data.ProtoLens.Field "maybe'battleSettings" msg)
+                         (Data.ProtoLens.Field "maybe'battleSettings" msg')
+maybe'battleSettings
+  = Data.ProtoLens.field
+      (Data.ProtoLens.ProxySym ::
+         Data.ProtoLens.ProxySym "maybe'battleSettings")
+
+maybe'camera ::
+             forall msg msg' .
+               Data.ProtoLens.HasField "maybe'camera" msg msg' =>
+               Lens.Family2.Lens msg msg'
+                 (Data.ProtoLens.Field "maybe'camera" msg)
+                 (Data.ProtoLens.Field "maybe'camera" msg')
+maybe'camera
+  = Data.ProtoLens.field
+      (Data.ProtoLens.ProxySym :: Data.ProtoLens.ProxySym "maybe'camera")
+
+maybe'encounterSettings ::
+                        forall msg msg' .
+                          Data.ProtoLens.HasField "maybe'encounterSettings" msg msg' =>
+                          Lens.Family2.Lens msg msg'
+                            (Data.ProtoLens.Field "maybe'encounterSettings" msg)
+                            (Data.ProtoLens.Field "maybe'encounterSettings" msg')
+maybe'encounterSettings
+  = Data.ProtoLens.field
+      (Data.ProtoLens.ProxySym ::
+         Data.ProtoLens.ProxySym "maybe'encounterSettings")
+
+maybe'equippedBadges ::
+                     forall msg msg' .
+                       Data.ProtoLens.HasField "maybe'equippedBadges" msg msg' =>
+                       Lens.Family2.Lens msg msg'
+                         (Data.ProtoLens.Field "maybe'equippedBadges" msg)
+                         (Data.ProtoLens.Field "maybe'equippedBadges" msg')
+maybe'equippedBadges
+  = Data.ProtoLens.field
+      (Data.ProtoLens.ProxySym ::
+         Data.ProtoLens.ProxySym "maybe'equippedBadges")
+
+maybe'gymLevel ::
+               forall msg msg' .
+                 Data.ProtoLens.HasField "maybe'gymLevel" msg msg' =>
+                 Lens.Family2.Lens msg msg'
+                   (Data.ProtoLens.Field "maybe'gymLevel" msg)
+                   (Data.ProtoLens.Field "maybe'gymLevel" msg')
+maybe'gymLevel
+  = Data.ProtoLens.field
+      (Data.ProtoLens.ProxySym ::
+         Data.ProtoLens.ProxySym "maybe'gymLevel")
+
+maybe'iapItemDisplay ::
+                     forall msg msg' .
+                       Data.ProtoLens.HasField "maybe'iapItemDisplay" msg msg' =>
+                       Lens.Family2.Lens msg msg'
+                         (Data.ProtoLens.Field "maybe'iapItemDisplay" msg)
+                         (Data.ProtoLens.Field "maybe'iapItemDisplay" msg')
+maybe'iapItemDisplay
+  = Data.ProtoLens.field
+      (Data.ProtoLens.ProxySym ::
+         Data.ProtoLens.ProxySym "maybe'iapItemDisplay")
+
+maybe'iapSettings ::
+                  forall msg msg' .
+                    Data.ProtoLens.HasField "maybe'iapSettings" msg msg' =>
+                    Lens.Family2.Lens msg msg'
+                      (Data.ProtoLens.Field "maybe'iapSettings" msg)
+                      (Data.ProtoLens.Field "maybe'iapSettings" msg')
+maybe'iapSettings
+  = Data.ProtoLens.field
+      (Data.ProtoLens.ProxySym ::
+         Data.ProtoLens.ProxySym "maybe'iapSettings")
+
+maybe'itemSettings ::
+                   forall msg msg' .
+                     Data.ProtoLens.HasField "maybe'itemSettings" msg msg' =>
+                     Lens.Family2.Lens msg msg'
+                       (Data.ProtoLens.Field "maybe'itemSettings" msg)
+                       (Data.ProtoLens.Field "maybe'itemSettings" msg')
+maybe'itemSettings
+  = Data.ProtoLens.field
+      (Data.ProtoLens.ProxySym ::
+         Data.ProtoLens.ProxySym "maybe'itemSettings")
+
+maybe'moveSequenceSettings ::
+                           forall msg msg' .
+                             Data.ProtoLens.HasField "maybe'moveSequenceSettings" msg msg' =>
+                             Lens.Family2.Lens msg msg'
+                               (Data.ProtoLens.Field "maybe'moveSequenceSettings" msg)
+                               (Data.ProtoLens.Field "maybe'moveSequenceSettings" msg')
+maybe'moveSequenceSettings
+  = Data.ProtoLens.field
+      (Data.ProtoLens.ProxySym ::
+         Data.ProtoLens.ProxySym "maybe'moveSequenceSettings")
+
+maybe'moveSettings ::
+                   forall msg msg' .
+                     Data.ProtoLens.HasField "maybe'moveSettings" msg msg' =>
+                     Lens.Family2.Lens msg msg'
+                       (Data.ProtoLens.Field "maybe'moveSettings" msg)
+                       (Data.ProtoLens.Field "maybe'moveSettings" msg')
+maybe'moveSettings
+  = Data.ProtoLens.field
+      (Data.ProtoLens.ProxySym ::
+         Data.ProtoLens.ProxySym "maybe'moveSettings")
+
+maybe'playerLevel ::
+                  forall msg msg' .
+                    Data.ProtoLens.HasField "maybe'playerLevel" msg msg' =>
+                    Lens.Family2.Lens msg msg'
+                      (Data.ProtoLens.Field "maybe'playerLevel" msg)
+                      (Data.ProtoLens.Field "maybe'playerLevel" msg')
+maybe'playerLevel
+  = Data.ProtoLens.field
+      (Data.ProtoLens.ProxySym ::
+         Data.ProtoLens.ProxySym "maybe'playerLevel")
+
+maybe'pokemonSettings ::
+                      forall msg msg' .
+                        Data.ProtoLens.HasField "maybe'pokemonSettings" msg msg' =>
+                        Lens.Family2.Lens msg msg'
+                          (Data.ProtoLens.Field "maybe'pokemonSettings" msg)
+                          (Data.ProtoLens.Field "maybe'pokemonSettings" msg')
+maybe'pokemonSettings
+  = Data.ProtoLens.field
+      (Data.ProtoLens.ProxySym ::
+         Data.ProtoLens.ProxySym "maybe'pokemonSettings")
+
+maybe'pokemonUpgrades ::
+                      forall msg msg' .
+                        Data.ProtoLens.HasField "maybe'pokemonUpgrades" msg msg' =>
+                        Lens.Family2.Lens msg msg'
+                          (Data.ProtoLens.Field "maybe'pokemonUpgrades" msg)
+                          (Data.ProtoLens.Field "maybe'pokemonUpgrades" msg')
+maybe'pokemonUpgrades
+  = Data.ProtoLens.field
+      (Data.ProtoLens.ProxySym ::
+         Data.ProtoLens.ProxySym "maybe'pokemonUpgrades")
+
+maybe'typeEffective ::
+                    forall msg msg' .
+                      Data.ProtoLens.HasField "maybe'typeEffective" msg msg' =>
+                      Lens.Family2.Lens msg msg'
+                        (Data.ProtoLens.Field "maybe'typeEffective" msg)
+                        (Data.ProtoLens.Field "maybe'typeEffective" msg')
+maybe'typeEffective
+  = Data.ProtoLens.field
+      (Data.ProtoLens.ProxySym ::
+         Data.ProtoLens.ProxySym "maybe'typeEffective")
+
+moveSequenceSettings ::
+                     forall msg msg' .
+                       Data.ProtoLens.HasField "moveSequenceSettings" msg msg' =>
+                       Lens.Family2.Lens msg msg'
+                         (Data.ProtoLens.Field "moveSequenceSettings" msg)
+                         (Data.ProtoLens.Field "moveSequenceSettings" msg')
+moveSequenceSettings
+  = Data.ProtoLens.field
+      (Data.ProtoLens.ProxySym ::
+         Data.ProtoLens.ProxySym "moveSequenceSettings")
+
+moveSettings ::
+             forall msg msg' .
+               Data.ProtoLens.HasField "moveSettings" msg msg' =>
+               Lens.Family2.Lens msg msg'
+                 (Data.ProtoLens.Field "moveSettings" msg)
+                 (Data.ProtoLens.Field "moveSettings" msg')
+moveSettings
+  = Data.ProtoLens.field
+      (Data.ProtoLens.ProxySym :: Data.ProtoLens.ProxySym "moveSettings")
+
+playerLevel ::
+            forall msg msg' . Data.ProtoLens.HasField "playerLevel" msg msg' =>
+              Lens.Family2.Lens msg msg' (Data.ProtoLens.Field "playerLevel" msg)
+                (Data.ProtoLens.Field "playerLevel" msg')
+playerLevel
+  = Data.ProtoLens.field
+      (Data.ProtoLens.ProxySym :: Data.ProtoLens.ProxySym "playerLevel")
+
+pokemonSettings ::
+                forall msg msg' .
+                  Data.ProtoLens.HasField "pokemonSettings" msg msg' =>
+                  Lens.Family2.Lens msg msg'
+                    (Data.ProtoLens.Field "pokemonSettings" msg)
+                    (Data.ProtoLens.Field "pokemonSettings" msg')
+pokemonSettings
+  = Data.ProtoLens.field
+      (Data.ProtoLens.ProxySym ::
+         Data.ProtoLens.ProxySym "pokemonSettings")
+
+pokemonUpgrades ::
+                forall msg msg' .
+                  Data.ProtoLens.HasField "pokemonUpgrades" msg msg' =>
+                  Lens.Family2.Lens msg msg'
+                    (Data.ProtoLens.Field "pokemonUpgrades" msg)
+                    (Data.ProtoLens.Field "pokemonUpgrades" msg')
+pokemonUpgrades
+  = Data.ProtoLens.field
+      (Data.ProtoLens.ProxySym ::
+         Data.ProtoLens.ProxySym "pokemonUpgrades")
+
+success ::
+        forall msg msg' . Data.ProtoLens.HasField "success" msg msg' =>
+          Lens.Family2.Lens msg msg' (Data.ProtoLens.Field "success" msg)
+            (Data.ProtoLens.Field "success" msg')
+success
+  = Data.ProtoLens.field
+      (Data.ProtoLens.ProxySym :: Data.ProtoLens.ProxySym "success")
+
+templateId ::
+           forall msg msg' . Data.ProtoLens.HasField "templateId" msg msg' =>
+             Lens.Family2.Lens msg msg' (Data.ProtoLens.Field "templateId" msg)
+               (Data.ProtoLens.Field "templateId" msg')
+templateId
+  = Data.ProtoLens.field
+      (Data.ProtoLens.ProxySym :: Data.ProtoLens.ProxySym "templateId")
+
+timestampMs ::
+            forall msg msg' . Data.ProtoLens.HasField "timestampMs" msg msg' =>
+              Lens.Family2.Lens msg msg' (Data.ProtoLens.Field "timestampMs" msg)
+                (Data.ProtoLens.Field "timestampMs" msg')
+timestampMs
+  = Data.ProtoLens.field
+      (Data.ProtoLens.ProxySym :: Data.ProtoLens.ProxySym "timestampMs")
+
+typeEffective ::
+              forall msg msg' .
+                Data.ProtoLens.HasField "typeEffective" msg msg' =>
+                Lens.Family2.Lens msg msg'
+                  (Data.ProtoLens.Field "typeEffective" msg)
+                  (Data.ProtoLens.Field "typeEffective" msg')
+typeEffective
+  = Data.ProtoLens.field
+      (Data.ProtoLens.ProxySym ::
+         Data.ProtoLens.ProxySym "typeEffective")
diff --git a/src/Proto/POGOProtos/Networking/Responses/DownloadRemoteConfigVersionResponse.hs b/src/Proto/POGOProtos/Networking/Responses/DownloadRemoteConfigVersionResponse.hs
new file mode 100644
--- /dev/null
+++ b/src/Proto/POGOProtos/Networking/Responses/DownloadRemoteConfigVersionResponse.hs
@@ -0,0 +1,201 @@
+{- This file was auto-generated from POGOProtos/Networking/Responses/DownloadRemoteConfigVersionResponse.proto by the proto-lens-protoc program. -}
+{-# LANGUAGE ScopedTypeVariables, DataKinds, TypeFamilies,
+  MultiParamTypeClasses, FlexibleContexts, FlexibleInstances #-}
+{-# OPTIONS_GHC -fno-warn-unused-imports#-}
+module Proto.POGOProtos.Networking.Responses.DownloadRemoteConfigVersionResponse
+       where
+import qualified Prelude
+import qualified Data.ProtoLens
+import qualified Data.ProtoLens.Message.Enum
+import qualified Lens.Family2
+import qualified Lens.Family2.Unchecked
+import qualified Data.Default.Class
+import qualified Data.Text
+import qualified Data.Int
+import qualified Data.Word
+import qualified Data.Map
+import qualified Data.ByteString
+
+data DownloadRemoteConfigVersionResponse = DownloadRemoteConfigVersionResponse{_DownloadRemoteConfigVersionResponse'result
+                                                                               ::
+                                                                               DownloadRemoteConfigVersionResponse'Result,
+                                                                               _DownloadRemoteConfigVersionResponse'itemTemplatesTimestampMs
+                                                                               :: Data.Word.Word64,
+                                                                               _DownloadRemoteConfigVersionResponse'assetDigestTimestampMs
+                                                                               :: Data.Word.Word64}
+                                         deriving (Prelude.Show, Prelude.Eq)
+
+type instance
+     Data.ProtoLens.Field "result" DownloadRemoteConfigVersionResponse =
+     DownloadRemoteConfigVersionResponse'Result
+
+instance Data.ProtoLens.HasField "result"
+         DownloadRemoteConfigVersionResponse
+         DownloadRemoteConfigVersionResponse where
+        field _
+          = Lens.Family2.Unchecked.lens
+              _DownloadRemoteConfigVersionResponse'result
+              (\ x__ y__ ->
+                 x__{_DownloadRemoteConfigVersionResponse'result = y__})
+
+type instance
+     Data.ProtoLens.Field "itemTemplatesTimestampMs"
+       DownloadRemoteConfigVersionResponse
+     = Data.Word.Word64
+
+instance Data.ProtoLens.HasField "itemTemplatesTimestampMs"
+         DownloadRemoteConfigVersionResponse
+         DownloadRemoteConfigVersionResponse where
+        field _
+          = Lens.Family2.Unchecked.lens
+              _DownloadRemoteConfigVersionResponse'itemTemplatesTimestampMs
+              (\ x__ y__ ->
+                 x__{_DownloadRemoteConfigVersionResponse'itemTemplatesTimestampMs =
+                       y__})
+
+type instance
+     Data.ProtoLens.Field "assetDigestTimestampMs"
+       DownloadRemoteConfigVersionResponse
+     = Data.Word.Word64
+
+instance Data.ProtoLens.HasField "assetDigestTimestampMs"
+         DownloadRemoteConfigVersionResponse
+         DownloadRemoteConfigVersionResponse where
+        field _
+          = Lens.Family2.Unchecked.lens
+              _DownloadRemoteConfigVersionResponse'assetDigestTimestampMs
+              (\ x__ y__ ->
+                 x__{_DownloadRemoteConfigVersionResponse'assetDigestTimestampMs =
+                       y__})
+
+instance Data.Default.Class.Default
+         DownloadRemoteConfigVersionResponse where
+        def
+          = DownloadRemoteConfigVersionResponse{_DownloadRemoteConfigVersionResponse'result
+                                                  = Data.Default.Class.def,
+                                                _DownloadRemoteConfigVersionResponse'itemTemplatesTimestampMs
+                                                  = Data.ProtoLens.fieldDefault,
+                                                _DownloadRemoteConfigVersionResponse'assetDigestTimestampMs
+                                                  = Data.ProtoLens.fieldDefault}
+
+instance Data.ProtoLens.Message DownloadRemoteConfigVersionResponse
+         where
+        descriptor
+          = let result__field_descriptor
+                  = Data.ProtoLens.FieldDescriptor "result"
+                      (Data.ProtoLens.EnumField ::
+                         Data.ProtoLens.FieldTypeDescriptor
+                           DownloadRemoteConfigVersionResponse'Result)
+                      (Data.ProtoLens.PlainField Data.ProtoLens.Optional result)
+                itemTemplatesTimestampMs__field_descriptor
+                  = Data.ProtoLens.FieldDescriptor "item_templates_timestamp_ms"
+                      (Data.ProtoLens.UInt64Field ::
+                         Data.ProtoLens.FieldTypeDescriptor Data.Word.Word64)
+                      (Data.ProtoLens.PlainField Data.ProtoLens.Optional
+                         itemTemplatesTimestampMs)
+                assetDigestTimestampMs__field_descriptor
+                  = Data.ProtoLens.FieldDescriptor "asset_digest_timestamp_ms"
+                      (Data.ProtoLens.UInt64Field ::
+                         Data.ProtoLens.FieldTypeDescriptor Data.Word.Word64)
+                      (Data.ProtoLens.PlainField Data.ProtoLens.Optional
+                         assetDigestTimestampMs)
+              in
+              Data.ProtoLens.MessageDescriptor
+                (Data.Map.fromList
+                   [(Data.ProtoLens.Tag 1, result__field_descriptor),
+                    (Data.ProtoLens.Tag 2, itemTemplatesTimestampMs__field_descriptor),
+                    (Data.ProtoLens.Tag 3, assetDigestTimestampMs__field_descriptor)])
+                (Data.Map.fromList
+                   [("result", result__field_descriptor),
+                    ("item_templates_timestamp_ms",
+                     itemTemplatesTimestampMs__field_descriptor),
+                    ("asset_digest_timestamp_ms",
+                     assetDigestTimestampMs__field_descriptor)])
+
+data DownloadRemoteConfigVersionResponse'Result = DownloadRemoteConfigVersionResponse'UNSET
+                                                | DownloadRemoteConfigVersionResponse'SUCCESS
+                                                deriving (Prelude.Show, Prelude.Eq)
+
+instance Data.Default.Class.Default
+         DownloadRemoteConfigVersionResponse'Result where
+        def = DownloadRemoteConfigVersionResponse'UNSET
+
+instance Data.ProtoLens.FieldDefault
+         DownloadRemoteConfigVersionResponse'Result where
+        fieldDefault = DownloadRemoteConfigVersionResponse'UNSET
+
+instance Data.ProtoLens.MessageEnum
+         DownloadRemoteConfigVersionResponse'Result where
+        maybeToEnum 0
+          = Prelude.Just DownloadRemoteConfigVersionResponse'UNSET
+        maybeToEnum 1
+          = Prelude.Just DownloadRemoteConfigVersionResponse'SUCCESS
+        maybeToEnum _ = Prelude.Nothing
+        showEnum DownloadRemoteConfigVersionResponse'UNSET = "UNSET"
+        showEnum DownloadRemoteConfigVersionResponse'SUCCESS = "SUCCESS"
+        readEnum "UNSET"
+          = Prelude.Just DownloadRemoteConfigVersionResponse'UNSET
+        readEnum "SUCCESS"
+          = Prelude.Just DownloadRemoteConfigVersionResponse'SUCCESS
+        readEnum _ = Prelude.Nothing
+
+instance Prelude.Enum DownloadRemoteConfigVersionResponse'Result
+         where
+        toEnum k__
+          = Prelude.maybe
+              (Prelude.error
+                 ((Prelude.++) "toEnum: unknown value for enum Result: "
+                    (Prelude.show k__)))
+              Prelude.id
+              (Data.ProtoLens.maybeToEnum k__)
+        fromEnum DownloadRemoteConfigVersionResponse'UNSET = 0
+        fromEnum DownloadRemoteConfigVersionResponse'SUCCESS = 1
+        succ DownloadRemoteConfigVersionResponse'SUCCESS
+          = Prelude.error
+              "Ident \"DownloadRemoteConfigVersionResponse'Result\".Ident \"succ\": bad argument Ident \"DownloadRemoteConfigVersionResponse'SUCCESS\". This value would be out of bounds."
+        succ DownloadRemoteConfigVersionResponse'UNSET
+          = DownloadRemoteConfigVersionResponse'SUCCESS
+        pred DownloadRemoteConfigVersionResponse'UNSET
+          = Prelude.error
+              "Ident \"DownloadRemoteConfigVersionResponse'Result\".Ident \"pred\": bad argument Ident \"DownloadRemoteConfigVersionResponse'UNSET\". This value would be out of bounds."
+        pred DownloadRemoteConfigVersionResponse'SUCCESS
+          = DownloadRemoteConfigVersionResponse'UNSET
+        enumFrom = Data.ProtoLens.Message.Enum.messageEnumFrom
+        enumFromTo = Data.ProtoLens.Message.Enum.messageEnumFromTo
+        enumFromThen = Data.ProtoLens.Message.Enum.messageEnumFromThen
+        enumFromThenTo = Data.ProtoLens.Message.Enum.messageEnumFromThenTo
+
+instance Prelude.Bounded DownloadRemoteConfigVersionResponse'Result
+         where
+        minBound = DownloadRemoteConfigVersionResponse'UNSET
+        maxBound = DownloadRemoteConfigVersionResponse'SUCCESS
+
+assetDigestTimestampMs ::
+                       forall msg msg' .
+                         Data.ProtoLens.HasField "assetDigestTimestampMs" msg msg' =>
+                         Lens.Family2.Lens msg msg'
+                           (Data.ProtoLens.Field "assetDigestTimestampMs" msg)
+                           (Data.ProtoLens.Field "assetDigestTimestampMs" msg')
+assetDigestTimestampMs
+  = Data.ProtoLens.field
+      (Data.ProtoLens.ProxySym ::
+         Data.ProtoLens.ProxySym "assetDigestTimestampMs")
+
+itemTemplatesTimestampMs ::
+                         forall msg msg' .
+                           Data.ProtoLens.HasField "itemTemplatesTimestampMs" msg msg' =>
+                           Lens.Family2.Lens msg msg'
+                             (Data.ProtoLens.Field "itemTemplatesTimestampMs" msg)
+                             (Data.ProtoLens.Field "itemTemplatesTimestampMs" msg')
+itemTemplatesTimestampMs
+  = Data.ProtoLens.field
+      (Data.ProtoLens.ProxySym ::
+         Data.ProtoLens.ProxySym "itemTemplatesTimestampMs")
+
+result ::
+       forall msg msg' . Data.ProtoLens.HasField "result" msg msg' =>
+         Lens.Family2.Lens msg msg' (Data.ProtoLens.Field "result" msg)
+           (Data.ProtoLens.Field "result" msg')
+result
+  = Data.ProtoLens.field
+      (Data.ProtoLens.ProxySym :: Data.ProtoLens.ProxySym "result")
diff --git a/src/Proto/POGOProtos/Networking/Responses/DownloadSettingsResponse.hs b/src/Proto/POGOProtos/Networking/Responses/DownloadSettingsResponse.hs
new file mode 100644
--- /dev/null
+++ b/src/Proto/POGOProtos/Networking/Responses/DownloadSettingsResponse.hs
@@ -0,0 +1,137 @@
+{- This file was auto-generated from POGOProtos/Networking/Responses/DownloadSettingsResponse.proto by the proto-lens-protoc program. -}
+{-# LANGUAGE ScopedTypeVariables, DataKinds, TypeFamilies,
+  MultiParamTypeClasses, FlexibleContexts, FlexibleInstances #-}
+{-# OPTIONS_GHC -fno-warn-unused-imports#-}
+module Proto.POGOProtos.Networking.Responses.DownloadSettingsResponse
+       where
+import qualified Prelude
+import qualified Data.ProtoLens
+import qualified Data.ProtoLens.Message.Enum
+import qualified Lens.Family2
+import qualified Lens.Family2.Unchecked
+import qualified Data.Default.Class
+import qualified Data.Text
+import qualified Data.Int
+import qualified Data.Word
+import qualified Data.Map
+import qualified Data.ByteString
+import qualified Proto.POGOProtos.Settings.GlobalSettings
+
+data DownloadSettingsResponse = DownloadSettingsResponse{_DownloadSettingsResponse'error
+                                                         :: Data.Text.Text,
+                                                         _DownloadSettingsResponse'hash ::
+                                                         Data.Text.Text,
+                                                         _DownloadSettingsResponse'settings ::
+                                                         Prelude.Maybe
+                                                           Proto.POGOProtos.Settings.GlobalSettings.GlobalSettings}
+                              deriving (Prelude.Show, Prelude.Eq)
+
+type instance Data.ProtoLens.Field "error" DownloadSettingsResponse
+     = Data.Text.Text
+
+instance Data.ProtoLens.HasField "error" DownloadSettingsResponse
+         DownloadSettingsResponse where
+        field _
+          = Lens.Family2.Unchecked.lens _DownloadSettingsResponse'error
+              (\ x__ y__ -> x__{_DownloadSettingsResponse'error = y__})
+
+type instance Data.ProtoLens.Field "hash" DownloadSettingsResponse
+     = Data.Text.Text
+
+instance Data.ProtoLens.HasField "hash" DownloadSettingsResponse
+         DownloadSettingsResponse where
+        field _
+          = Lens.Family2.Unchecked.lens _DownloadSettingsResponse'hash
+              (\ x__ y__ -> x__{_DownloadSettingsResponse'hash = y__})
+
+type instance
+     Data.ProtoLens.Field "settings" DownloadSettingsResponse =
+     Proto.POGOProtos.Settings.GlobalSettings.GlobalSettings
+
+instance Data.ProtoLens.HasField "settings"
+         DownloadSettingsResponse DownloadSettingsResponse where
+        field _
+          = (Prelude..) maybe'settings
+              (Data.ProtoLens.maybeLens Data.Default.Class.def)
+
+type instance
+     Data.ProtoLens.Field "maybe'settings" DownloadSettingsResponse =
+     Prelude.Maybe
+       Proto.POGOProtos.Settings.GlobalSettings.GlobalSettings
+
+instance Data.ProtoLens.HasField "maybe'settings"
+         DownloadSettingsResponse DownloadSettingsResponse where
+        field _
+          = Lens.Family2.Unchecked.lens _DownloadSettingsResponse'settings
+              (\ x__ y__ -> x__{_DownloadSettingsResponse'settings = y__})
+
+instance Data.Default.Class.Default DownloadSettingsResponse where
+        def
+          = DownloadSettingsResponse{_DownloadSettingsResponse'error =
+                                       Data.ProtoLens.fieldDefault,
+                                     _DownloadSettingsResponse'hash = Data.ProtoLens.fieldDefault,
+                                     _DownloadSettingsResponse'settings = Prelude.Nothing}
+
+instance Data.ProtoLens.Message DownloadSettingsResponse where
+        descriptor
+          = let error__field_descriptor
+                  = Data.ProtoLens.FieldDescriptor "error"
+                      (Data.ProtoLens.StringField ::
+                         Data.ProtoLens.FieldTypeDescriptor Data.Text.Text)
+                      (Data.ProtoLens.PlainField Data.ProtoLens.Optional error)
+                hash__field_descriptor
+                  = Data.ProtoLens.FieldDescriptor "hash"
+                      (Data.ProtoLens.StringField ::
+                         Data.ProtoLens.FieldTypeDescriptor Data.Text.Text)
+                      (Data.ProtoLens.PlainField Data.ProtoLens.Optional hash)
+                settings__field_descriptor
+                  = Data.ProtoLens.FieldDescriptor "settings"
+                      (Data.ProtoLens.MessageField ::
+                         Data.ProtoLens.FieldTypeDescriptor
+                           Proto.POGOProtos.Settings.GlobalSettings.GlobalSettings)
+                      (Data.ProtoLens.OptionalField maybe'settings)
+              in
+              Data.ProtoLens.MessageDescriptor
+                (Data.Map.fromList
+                   [(Data.ProtoLens.Tag 1, error__field_descriptor),
+                    (Data.ProtoLens.Tag 2, hash__field_descriptor),
+                    (Data.ProtoLens.Tag 3, settings__field_descriptor)])
+                (Data.Map.fromList
+                   [("error", error__field_descriptor),
+                    ("hash", hash__field_descriptor),
+                    ("settings", settings__field_descriptor)])
+
+error ::
+      forall msg msg' . Data.ProtoLens.HasField "error" msg msg' =>
+        Lens.Family2.Lens msg msg' (Data.ProtoLens.Field "error" msg)
+          (Data.ProtoLens.Field "error" msg')
+error
+  = Data.ProtoLens.field
+      (Data.ProtoLens.ProxySym :: Data.ProtoLens.ProxySym "error")
+
+hash ::
+     forall msg msg' . Data.ProtoLens.HasField "hash" msg msg' =>
+       Lens.Family2.Lens msg msg' (Data.ProtoLens.Field "hash" msg)
+         (Data.ProtoLens.Field "hash" msg')
+hash
+  = Data.ProtoLens.field
+      (Data.ProtoLens.ProxySym :: Data.ProtoLens.ProxySym "hash")
+
+maybe'settings ::
+               forall msg msg' .
+                 Data.ProtoLens.HasField "maybe'settings" msg msg' =>
+                 Lens.Family2.Lens msg msg'
+                   (Data.ProtoLens.Field "maybe'settings" msg)
+                   (Data.ProtoLens.Field "maybe'settings" msg')
+maybe'settings
+  = Data.ProtoLens.field
+      (Data.ProtoLens.ProxySym ::
+         Data.ProtoLens.ProxySym "maybe'settings")
+
+settings ::
+         forall msg msg' . Data.ProtoLens.HasField "settings" msg msg' =>
+           Lens.Family2.Lens msg msg' (Data.ProtoLens.Field "settings" msg)
+             (Data.ProtoLens.Field "settings" msg')
+settings
+  = Data.ProtoLens.field
+      (Data.ProtoLens.ProxySym :: Data.ProtoLens.ProxySym "settings")
diff --git a/src/Proto/POGOProtos/Networking/Responses/EchoResponse.hs b/src/Proto/POGOProtos/Networking/Responses/EchoResponse.hs
new file mode 100644
--- /dev/null
+++ b/src/Proto/POGOProtos/Networking/Responses/EchoResponse.hs
@@ -0,0 +1,54 @@
+{- This file was auto-generated from POGOProtos/Networking/Responses/EchoResponse.proto by the proto-lens-protoc program. -}
+{-# LANGUAGE ScopedTypeVariables, DataKinds, TypeFamilies,
+  MultiParamTypeClasses, FlexibleContexts, FlexibleInstances #-}
+{-# OPTIONS_GHC -fno-warn-unused-imports#-}
+module Proto.POGOProtos.Networking.Responses.EchoResponse where
+import qualified Prelude
+import qualified Data.ProtoLens
+import qualified Data.ProtoLens.Message.Enum
+import qualified Lens.Family2
+import qualified Lens.Family2.Unchecked
+import qualified Data.Default.Class
+import qualified Data.Text
+import qualified Data.Int
+import qualified Data.Word
+import qualified Data.Map
+import qualified Data.ByteString
+
+data EchoResponse = EchoResponse{_EchoResponse'context ::
+                                 Data.Text.Text}
+                  deriving (Prelude.Show, Prelude.Eq)
+
+type instance Data.ProtoLens.Field "context" EchoResponse =
+     Data.Text.Text
+
+instance Data.ProtoLens.HasField "context" EchoResponse
+         EchoResponse where
+        field _
+          = Lens.Family2.Unchecked.lens _EchoResponse'context
+              (\ x__ y__ -> x__{_EchoResponse'context = y__})
+
+instance Data.Default.Class.Default EchoResponse where
+        def
+          = EchoResponse{_EchoResponse'context = Data.ProtoLens.fieldDefault}
+
+instance Data.ProtoLens.Message EchoResponse where
+        descriptor
+          = let context__field_descriptor
+                  = Data.ProtoLens.FieldDescriptor "context"
+                      (Data.ProtoLens.StringField ::
+                         Data.ProtoLens.FieldTypeDescriptor Data.Text.Text)
+                      (Data.ProtoLens.PlainField Data.ProtoLens.Optional context)
+              in
+              Data.ProtoLens.MessageDescriptor
+                (Data.Map.fromList
+                   [(Data.ProtoLens.Tag 1, context__field_descriptor)])
+                (Data.Map.fromList [("context", context__field_descriptor)])
+
+context ::
+        forall msg msg' . Data.ProtoLens.HasField "context" msg msg' =>
+          Lens.Family2.Lens msg msg' (Data.ProtoLens.Field "context" msg)
+            (Data.ProtoLens.Field "context" msg')
+context
+  = Data.ProtoLens.field
+      (Data.ProtoLens.ProxySym :: Data.ProtoLens.ProxySym "context")
diff --git a/src/Proto/POGOProtos/Networking/Responses/EncounterResponse.hs b/src/Proto/POGOProtos/Networking/Responses/EncounterResponse.hs
new file mode 100644
--- /dev/null
+++ b/src/Proto/POGOProtos/Networking/Responses/EncounterResponse.hs
@@ -0,0 +1,361 @@
+{- This file was auto-generated from POGOProtos/Networking/Responses/EncounterResponse.proto by the proto-lens-protoc program. -}
+{-# LANGUAGE ScopedTypeVariables, DataKinds, TypeFamilies,
+  MultiParamTypeClasses, FlexibleContexts, FlexibleInstances #-}
+{-# OPTIONS_GHC -fno-warn-unused-imports#-}
+module Proto.POGOProtos.Networking.Responses.EncounterResponse
+       where
+import qualified Prelude
+import qualified Data.ProtoLens
+import qualified Data.ProtoLens.Message.Enum
+import qualified Lens.Family2
+import qualified Lens.Family2.Unchecked
+import qualified Data.Default.Class
+import qualified Data.Text
+import qualified Data.Int
+import qualified Data.Word
+import qualified Data.Map
+import qualified Data.ByteString
+import qualified Proto.POGOProtos.Data.Capture.CaptureProbability
+import qualified Proto.POGOProtos.Map.Pokemon.WildPokemon
+
+data EncounterResponse = EncounterResponse{_EncounterResponse'wildPokemon
+                                           ::
+                                           Prelude.Maybe
+                                             Proto.POGOProtos.Map.Pokemon.WildPokemon.WildPokemon,
+                                           _EncounterResponse'background ::
+                                           EncounterResponse'Background,
+                                           _EncounterResponse'status :: EncounterResponse'Status,
+                                           _EncounterResponse'captureProbability ::
+                                           Prelude.Maybe
+                                             Proto.POGOProtos.Data.Capture.CaptureProbability.CaptureProbability}
+                       deriving (Prelude.Show, Prelude.Eq)
+
+type instance Data.ProtoLens.Field "wildPokemon" EncounterResponse
+     = Proto.POGOProtos.Map.Pokemon.WildPokemon.WildPokemon
+
+instance Data.ProtoLens.HasField "wildPokemon" EncounterResponse
+         EncounterResponse where
+        field _
+          = (Prelude..) maybe'wildPokemon
+              (Data.ProtoLens.maybeLens Data.Default.Class.def)
+
+type instance
+     Data.ProtoLens.Field "maybe'wildPokemon" EncounterResponse =
+     Prelude.Maybe Proto.POGOProtos.Map.Pokemon.WildPokemon.WildPokemon
+
+instance Data.ProtoLens.HasField "maybe'wildPokemon"
+         EncounterResponse EncounterResponse where
+        field _
+          = Lens.Family2.Unchecked.lens _EncounterResponse'wildPokemon
+              (\ x__ y__ -> x__{_EncounterResponse'wildPokemon = y__})
+
+type instance Data.ProtoLens.Field "background" EncounterResponse =
+     EncounterResponse'Background
+
+instance Data.ProtoLens.HasField "background" EncounterResponse
+         EncounterResponse where
+        field _
+          = Lens.Family2.Unchecked.lens _EncounterResponse'background
+              (\ x__ y__ -> x__{_EncounterResponse'background = y__})
+
+type instance Data.ProtoLens.Field "status" EncounterResponse =
+     EncounterResponse'Status
+
+instance Data.ProtoLens.HasField "status" EncounterResponse
+         EncounterResponse where
+        field _
+          = Lens.Family2.Unchecked.lens _EncounterResponse'status
+              (\ x__ y__ -> x__{_EncounterResponse'status = y__})
+
+type instance
+     Data.ProtoLens.Field "captureProbability" EncounterResponse =
+     Proto.POGOProtos.Data.Capture.CaptureProbability.CaptureProbability
+
+instance Data.ProtoLens.HasField "captureProbability"
+         EncounterResponse EncounterResponse where
+        field _
+          = (Prelude..) maybe'captureProbability
+              (Data.ProtoLens.maybeLens Data.Default.Class.def)
+
+type instance
+     Data.ProtoLens.Field "maybe'captureProbability" EncounterResponse =
+     Prelude.Maybe
+       Proto.POGOProtos.Data.Capture.CaptureProbability.CaptureProbability
+
+instance Data.ProtoLens.HasField "maybe'captureProbability"
+         EncounterResponse EncounterResponse where
+        field _
+          = Lens.Family2.Unchecked.lens _EncounterResponse'captureProbability
+              (\ x__ y__ -> x__{_EncounterResponse'captureProbability = y__})
+
+instance Data.Default.Class.Default EncounterResponse where
+        def
+          = EncounterResponse{_EncounterResponse'wildPokemon =
+                                Prelude.Nothing,
+                              _EncounterResponse'background = Data.Default.Class.def,
+                              _EncounterResponse'status = Data.Default.Class.def,
+                              _EncounterResponse'captureProbability = Prelude.Nothing}
+
+instance Data.ProtoLens.Message EncounterResponse where
+        descriptor
+          = let wildPokemon__field_descriptor
+                  = Data.ProtoLens.FieldDescriptor "wild_pokemon"
+                      (Data.ProtoLens.MessageField ::
+                         Data.ProtoLens.FieldTypeDescriptor
+                           Proto.POGOProtos.Map.Pokemon.WildPokemon.WildPokemon)
+                      (Data.ProtoLens.OptionalField maybe'wildPokemon)
+                background__field_descriptor
+                  = Data.ProtoLens.FieldDescriptor "background"
+                      (Data.ProtoLens.EnumField ::
+                         Data.ProtoLens.FieldTypeDescriptor EncounterResponse'Background)
+                      (Data.ProtoLens.PlainField Data.ProtoLens.Optional background)
+                status__field_descriptor
+                  = Data.ProtoLens.FieldDescriptor "status"
+                      (Data.ProtoLens.EnumField ::
+                         Data.ProtoLens.FieldTypeDescriptor EncounterResponse'Status)
+                      (Data.ProtoLens.PlainField Data.ProtoLens.Optional status)
+                captureProbability__field_descriptor
+                  = Data.ProtoLens.FieldDescriptor "capture_probability"
+                      (Data.ProtoLens.MessageField ::
+                         Data.ProtoLens.FieldTypeDescriptor
+                           Proto.POGOProtos.Data.Capture.CaptureProbability.CaptureProbability)
+                      (Data.ProtoLens.OptionalField maybe'captureProbability)
+              in
+              Data.ProtoLens.MessageDescriptor
+                (Data.Map.fromList
+                   [(Data.ProtoLens.Tag 1, wildPokemon__field_descriptor),
+                    (Data.ProtoLens.Tag 2, background__field_descriptor),
+                    (Data.ProtoLens.Tag 3, status__field_descriptor),
+                    (Data.ProtoLens.Tag 4, captureProbability__field_descriptor)])
+                (Data.Map.fromList
+                   [("wild_pokemon", wildPokemon__field_descriptor),
+                    ("background", background__field_descriptor),
+                    ("status", status__field_descriptor),
+                    ("capture_probability", captureProbability__field_descriptor)])
+
+data EncounterResponse'Background = EncounterResponse'PARK
+                                  | EncounterResponse'DESERT
+                                  deriving (Prelude.Show, Prelude.Eq)
+
+instance Data.Default.Class.Default EncounterResponse'Background
+         where
+        def = EncounterResponse'PARK
+
+instance Data.ProtoLens.FieldDefault EncounterResponse'Background
+         where
+        fieldDefault = EncounterResponse'PARK
+
+instance Data.ProtoLens.MessageEnum EncounterResponse'Background
+         where
+        maybeToEnum 0 = Prelude.Just EncounterResponse'PARK
+        maybeToEnum 1 = Prelude.Just EncounterResponse'DESERT
+        maybeToEnum _ = Prelude.Nothing
+        showEnum EncounterResponse'PARK = "PARK"
+        showEnum EncounterResponse'DESERT = "DESERT"
+        readEnum "PARK" = Prelude.Just EncounterResponse'PARK
+        readEnum "DESERT" = Prelude.Just EncounterResponse'DESERT
+        readEnum _ = Prelude.Nothing
+
+instance Prelude.Enum EncounterResponse'Background where
+        toEnum k__
+          = Prelude.maybe
+              (Prelude.error
+                 ((Prelude.++) "toEnum: unknown value for enum Background: "
+                    (Prelude.show k__)))
+              Prelude.id
+              (Data.ProtoLens.maybeToEnum k__)
+        fromEnum EncounterResponse'PARK = 0
+        fromEnum EncounterResponse'DESERT = 1
+        succ EncounterResponse'DESERT
+          = Prelude.error
+              "Ident \"EncounterResponse'Background\".Ident \"succ\": bad argument Ident \"EncounterResponse'DESERT\". This value would be out of bounds."
+        succ EncounterResponse'PARK = EncounterResponse'DESERT
+        pred EncounterResponse'PARK
+          = Prelude.error
+              "Ident \"EncounterResponse'Background\".Ident \"pred\": bad argument Ident \"EncounterResponse'PARK\". This value would be out of bounds."
+        pred EncounterResponse'DESERT = EncounterResponse'PARK
+        enumFrom = Data.ProtoLens.Message.Enum.messageEnumFrom
+        enumFromTo = Data.ProtoLens.Message.Enum.messageEnumFromTo
+        enumFromThen = Data.ProtoLens.Message.Enum.messageEnumFromThen
+        enumFromThenTo = Data.ProtoLens.Message.Enum.messageEnumFromThenTo
+
+instance Prelude.Bounded EncounterResponse'Background where
+        minBound = EncounterResponse'PARK
+        maxBound = EncounterResponse'DESERT
+
+data EncounterResponse'Status = EncounterResponse'ENCOUNTER_ERROR
+                              | EncounterResponse'ENCOUNTER_SUCCESS
+                              | EncounterResponse'ENCOUNTER_NOT_FOUND
+                              | EncounterResponse'ENCOUNTER_CLOSED
+                              | EncounterResponse'ENCOUNTER_POKEMON_FLED
+                              | EncounterResponse'ENCOUNTER_NOT_IN_RANGE
+                              | EncounterResponse'ENCOUNTER_ALREADY_HAPPENED
+                              | EncounterResponse'POKEMON_INVENTORY_FULL
+                              deriving (Prelude.Show, Prelude.Eq)
+
+instance Data.Default.Class.Default EncounterResponse'Status where
+        def = EncounterResponse'ENCOUNTER_ERROR
+
+instance Data.ProtoLens.FieldDefault EncounterResponse'Status where
+        fieldDefault = EncounterResponse'ENCOUNTER_ERROR
+
+instance Data.ProtoLens.MessageEnum EncounterResponse'Status where
+        maybeToEnum 0 = Prelude.Just EncounterResponse'ENCOUNTER_ERROR
+        maybeToEnum 1 = Prelude.Just EncounterResponse'ENCOUNTER_SUCCESS
+        maybeToEnum 2 = Prelude.Just EncounterResponse'ENCOUNTER_NOT_FOUND
+        maybeToEnum 3 = Prelude.Just EncounterResponse'ENCOUNTER_CLOSED
+        maybeToEnum 4
+          = Prelude.Just EncounterResponse'ENCOUNTER_POKEMON_FLED
+        maybeToEnum 5
+          = Prelude.Just EncounterResponse'ENCOUNTER_NOT_IN_RANGE
+        maybeToEnum 6
+          = Prelude.Just EncounterResponse'ENCOUNTER_ALREADY_HAPPENED
+        maybeToEnum 7
+          = Prelude.Just EncounterResponse'POKEMON_INVENTORY_FULL
+        maybeToEnum _ = Prelude.Nothing
+        showEnum EncounterResponse'ENCOUNTER_ERROR = "ENCOUNTER_ERROR"
+        showEnum EncounterResponse'ENCOUNTER_SUCCESS = "ENCOUNTER_SUCCESS"
+        showEnum EncounterResponse'ENCOUNTER_NOT_FOUND
+          = "ENCOUNTER_NOT_FOUND"
+        showEnum EncounterResponse'ENCOUNTER_CLOSED = "ENCOUNTER_CLOSED"
+        showEnum EncounterResponse'ENCOUNTER_POKEMON_FLED
+          = "ENCOUNTER_POKEMON_FLED"
+        showEnum EncounterResponse'ENCOUNTER_NOT_IN_RANGE
+          = "ENCOUNTER_NOT_IN_RANGE"
+        showEnum EncounterResponse'ENCOUNTER_ALREADY_HAPPENED
+          = "ENCOUNTER_ALREADY_HAPPENED"
+        showEnum EncounterResponse'POKEMON_INVENTORY_FULL
+          = "POKEMON_INVENTORY_FULL"
+        readEnum "ENCOUNTER_ERROR"
+          = Prelude.Just EncounterResponse'ENCOUNTER_ERROR
+        readEnum "ENCOUNTER_SUCCESS"
+          = Prelude.Just EncounterResponse'ENCOUNTER_SUCCESS
+        readEnum "ENCOUNTER_NOT_FOUND"
+          = Prelude.Just EncounterResponse'ENCOUNTER_NOT_FOUND
+        readEnum "ENCOUNTER_CLOSED"
+          = Prelude.Just EncounterResponse'ENCOUNTER_CLOSED
+        readEnum "ENCOUNTER_POKEMON_FLED"
+          = Prelude.Just EncounterResponse'ENCOUNTER_POKEMON_FLED
+        readEnum "ENCOUNTER_NOT_IN_RANGE"
+          = Prelude.Just EncounterResponse'ENCOUNTER_NOT_IN_RANGE
+        readEnum "ENCOUNTER_ALREADY_HAPPENED"
+          = Prelude.Just EncounterResponse'ENCOUNTER_ALREADY_HAPPENED
+        readEnum "POKEMON_INVENTORY_FULL"
+          = Prelude.Just EncounterResponse'POKEMON_INVENTORY_FULL
+        readEnum _ = Prelude.Nothing
+
+instance Prelude.Enum EncounterResponse'Status where
+        toEnum k__
+          = Prelude.maybe
+              (Prelude.error
+                 ((Prelude.++) "toEnum: unknown value for enum Status: "
+                    (Prelude.show k__)))
+              Prelude.id
+              (Data.ProtoLens.maybeToEnum k__)
+        fromEnum EncounterResponse'ENCOUNTER_ERROR = 0
+        fromEnum EncounterResponse'ENCOUNTER_SUCCESS = 1
+        fromEnum EncounterResponse'ENCOUNTER_NOT_FOUND = 2
+        fromEnum EncounterResponse'ENCOUNTER_CLOSED = 3
+        fromEnum EncounterResponse'ENCOUNTER_POKEMON_FLED = 4
+        fromEnum EncounterResponse'ENCOUNTER_NOT_IN_RANGE = 5
+        fromEnum EncounterResponse'ENCOUNTER_ALREADY_HAPPENED = 6
+        fromEnum EncounterResponse'POKEMON_INVENTORY_FULL = 7
+        succ EncounterResponse'POKEMON_INVENTORY_FULL
+          = Prelude.error
+              "Ident \"EncounterResponse'Status\".Ident \"succ\": bad argument Ident \"EncounterResponse'POKEMON_INVENTORY_FULL\". This value would be out of bounds."
+        succ EncounterResponse'ENCOUNTER_ERROR
+          = EncounterResponse'ENCOUNTER_SUCCESS
+        succ EncounterResponse'ENCOUNTER_SUCCESS
+          = EncounterResponse'ENCOUNTER_NOT_FOUND
+        succ EncounterResponse'ENCOUNTER_NOT_FOUND
+          = EncounterResponse'ENCOUNTER_CLOSED
+        succ EncounterResponse'ENCOUNTER_CLOSED
+          = EncounterResponse'ENCOUNTER_POKEMON_FLED
+        succ EncounterResponse'ENCOUNTER_POKEMON_FLED
+          = EncounterResponse'ENCOUNTER_NOT_IN_RANGE
+        succ EncounterResponse'ENCOUNTER_NOT_IN_RANGE
+          = EncounterResponse'ENCOUNTER_ALREADY_HAPPENED
+        succ EncounterResponse'ENCOUNTER_ALREADY_HAPPENED
+          = EncounterResponse'POKEMON_INVENTORY_FULL
+        pred EncounterResponse'ENCOUNTER_ERROR
+          = Prelude.error
+              "Ident \"EncounterResponse'Status\".Ident \"pred\": bad argument Ident \"EncounterResponse'ENCOUNTER_ERROR\". This value would be out of bounds."
+        pred EncounterResponse'ENCOUNTER_SUCCESS
+          = EncounterResponse'ENCOUNTER_ERROR
+        pred EncounterResponse'ENCOUNTER_NOT_FOUND
+          = EncounterResponse'ENCOUNTER_SUCCESS
+        pred EncounterResponse'ENCOUNTER_CLOSED
+          = EncounterResponse'ENCOUNTER_NOT_FOUND
+        pred EncounterResponse'ENCOUNTER_POKEMON_FLED
+          = EncounterResponse'ENCOUNTER_CLOSED
+        pred EncounterResponse'ENCOUNTER_NOT_IN_RANGE
+          = EncounterResponse'ENCOUNTER_POKEMON_FLED
+        pred EncounterResponse'ENCOUNTER_ALREADY_HAPPENED
+          = EncounterResponse'ENCOUNTER_NOT_IN_RANGE
+        pred EncounterResponse'POKEMON_INVENTORY_FULL
+          = EncounterResponse'ENCOUNTER_ALREADY_HAPPENED
+        enumFrom = Data.ProtoLens.Message.Enum.messageEnumFrom
+        enumFromTo = Data.ProtoLens.Message.Enum.messageEnumFromTo
+        enumFromThen = Data.ProtoLens.Message.Enum.messageEnumFromThen
+        enumFromThenTo = Data.ProtoLens.Message.Enum.messageEnumFromThenTo
+
+instance Prelude.Bounded EncounterResponse'Status where
+        minBound = EncounterResponse'ENCOUNTER_ERROR
+        maxBound = EncounterResponse'POKEMON_INVENTORY_FULL
+
+background ::
+           forall msg msg' . Data.ProtoLens.HasField "background" msg msg' =>
+             Lens.Family2.Lens msg msg' (Data.ProtoLens.Field "background" msg)
+               (Data.ProtoLens.Field "background" msg')
+background
+  = Data.ProtoLens.field
+      (Data.ProtoLens.ProxySym :: Data.ProtoLens.ProxySym "background")
+
+captureProbability ::
+                   forall msg msg' .
+                     Data.ProtoLens.HasField "captureProbability" msg msg' =>
+                     Lens.Family2.Lens msg msg'
+                       (Data.ProtoLens.Field "captureProbability" msg)
+                       (Data.ProtoLens.Field "captureProbability" msg')
+captureProbability
+  = Data.ProtoLens.field
+      (Data.ProtoLens.ProxySym ::
+         Data.ProtoLens.ProxySym "captureProbability")
+
+maybe'captureProbability ::
+                         forall msg msg' .
+                           Data.ProtoLens.HasField "maybe'captureProbability" msg msg' =>
+                           Lens.Family2.Lens msg msg'
+                             (Data.ProtoLens.Field "maybe'captureProbability" msg)
+                             (Data.ProtoLens.Field "maybe'captureProbability" msg')
+maybe'captureProbability
+  = Data.ProtoLens.field
+      (Data.ProtoLens.ProxySym ::
+         Data.ProtoLens.ProxySym "maybe'captureProbability")
+
+maybe'wildPokemon ::
+                  forall msg msg' .
+                    Data.ProtoLens.HasField "maybe'wildPokemon" msg msg' =>
+                    Lens.Family2.Lens msg msg'
+                      (Data.ProtoLens.Field "maybe'wildPokemon" msg)
+                      (Data.ProtoLens.Field "maybe'wildPokemon" msg')
+maybe'wildPokemon
+  = Data.ProtoLens.field
+      (Data.ProtoLens.ProxySym ::
+         Data.ProtoLens.ProxySym "maybe'wildPokemon")
+
+status ::
+       forall msg msg' . Data.ProtoLens.HasField "status" msg msg' =>
+         Lens.Family2.Lens msg msg' (Data.ProtoLens.Field "status" msg)
+           (Data.ProtoLens.Field "status" msg')
+status
+  = Data.ProtoLens.field
+      (Data.ProtoLens.ProxySym :: Data.ProtoLens.ProxySym "status")
+
+wildPokemon ::
+            forall msg msg' . Data.ProtoLens.HasField "wildPokemon" msg msg' =>
+              Lens.Family2.Lens msg msg' (Data.ProtoLens.Field "wildPokemon" msg)
+                (Data.ProtoLens.Field "wildPokemon" msg')
+wildPokemon
+  = Data.ProtoLens.field
+      (Data.ProtoLens.ProxySym :: Data.ProtoLens.ProxySym "wildPokemon")
diff --git a/src/Proto/POGOProtos/Networking/Responses/EncounterTutorialCompleteResponse.hs b/src/Proto/POGOProtos/Networking/Responses/EncounterTutorialCompleteResponse.hs
new file mode 100644
--- /dev/null
+++ b/src/Proto/POGOProtos/Networking/Responses/EncounterTutorialCompleteResponse.hs
@@ -0,0 +1,261 @@
+{- This file was auto-generated from POGOProtos/Networking/Responses/EncounterTutorialCompleteResponse.proto by the proto-lens-protoc program. -}
+{-# LANGUAGE ScopedTypeVariables, DataKinds, TypeFamilies,
+  MultiParamTypeClasses, FlexibleContexts, FlexibleInstances #-}
+{-# OPTIONS_GHC -fno-warn-unused-imports#-}
+module Proto.POGOProtos.Networking.Responses.EncounterTutorialCompleteResponse
+       where
+import qualified Prelude
+import qualified Data.ProtoLens
+import qualified Data.ProtoLens.Message.Enum
+import qualified Lens.Family2
+import qualified Lens.Family2.Unchecked
+import qualified Data.Default.Class
+import qualified Data.Text
+import qualified Data.Int
+import qualified Data.Word
+import qualified Data.Map
+import qualified Data.ByteString
+import qualified Proto.POGOProtos.Data.Capture.CaptureAward
+import qualified Proto.POGOProtos.Data.PokemonData
+
+data EncounterTutorialCompleteResponse = EncounterTutorialCompleteResponse{_EncounterTutorialCompleteResponse'result
+                                                                           ::
+                                                                           EncounterTutorialCompleteResponse'Result,
+                                                                           _EncounterTutorialCompleteResponse'pokemonData
+                                                                           ::
+                                                                           Prelude.Maybe
+                                                                             Proto.POGOProtos.Data.PokemonData.PokemonData,
+                                                                           _EncounterTutorialCompleteResponse'captureAward
+                                                                           ::
+                                                                           Prelude.Maybe
+                                                                             Proto.POGOProtos.Data.Capture.CaptureAward.CaptureAward}
+                                       deriving (Prelude.Show, Prelude.Eq)
+
+type instance
+     Data.ProtoLens.Field "result" EncounterTutorialCompleteResponse =
+     EncounterTutorialCompleteResponse'Result
+
+instance Data.ProtoLens.HasField "result"
+         EncounterTutorialCompleteResponse EncounterTutorialCompleteResponse
+         where
+        field _
+          = Lens.Family2.Unchecked.lens
+              _EncounterTutorialCompleteResponse'result
+              (\ x__ y__ -> x__{_EncounterTutorialCompleteResponse'result = y__})
+
+type instance
+     Data.ProtoLens.Field "pokemonData"
+       EncounterTutorialCompleteResponse
+     = Proto.POGOProtos.Data.PokemonData.PokemonData
+
+instance Data.ProtoLens.HasField "pokemonData"
+         EncounterTutorialCompleteResponse EncounterTutorialCompleteResponse
+         where
+        field _
+          = (Prelude..) maybe'pokemonData
+              (Data.ProtoLens.maybeLens Data.Default.Class.def)
+
+type instance
+     Data.ProtoLens.Field "maybe'pokemonData"
+       EncounterTutorialCompleteResponse
+     = Prelude.Maybe Proto.POGOProtos.Data.PokemonData.PokemonData
+
+instance Data.ProtoLens.HasField "maybe'pokemonData"
+         EncounterTutorialCompleteResponse EncounterTutorialCompleteResponse
+         where
+        field _
+          = Lens.Family2.Unchecked.lens
+              _EncounterTutorialCompleteResponse'pokemonData
+              (\ x__ y__ ->
+                 x__{_EncounterTutorialCompleteResponse'pokemonData = y__})
+
+type instance
+     Data.ProtoLens.Field "captureAward"
+       EncounterTutorialCompleteResponse
+     = Proto.POGOProtos.Data.Capture.CaptureAward.CaptureAward
+
+instance Data.ProtoLens.HasField "captureAward"
+         EncounterTutorialCompleteResponse EncounterTutorialCompleteResponse
+         where
+        field _
+          = (Prelude..) maybe'captureAward
+              (Data.ProtoLens.maybeLens Data.Default.Class.def)
+
+type instance
+     Data.ProtoLens.Field "maybe'captureAward"
+       EncounterTutorialCompleteResponse
+     =
+     Prelude.Maybe
+       Proto.POGOProtos.Data.Capture.CaptureAward.CaptureAward
+
+instance Data.ProtoLens.HasField "maybe'captureAward"
+         EncounterTutorialCompleteResponse EncounterTutorialCompleteResponse
+         where
+        field _
+          = Lens.Family2.Unchecked.lens
+              _EncounterTutorialCompleteResponse'captureAward
+              (\ x__ y__ ->
+                 x__{_EncounterTutorialCompleteResponse'captureAward = y__})
+
+instance Data.Default.Class.Default
+         EncounterTutorialCompleteResponse where
+        def
+          = EncounterTutorialCompleteResponse{_EncounterTutorialCompleteResponse'result
+                                                = Data.Default.Class.def,
+                                              _EncounterTutorialCompleteResponse'pokemonData =
+                                                Prelude.Nothing,
+                                              _EncounterTutorialCompleteResponse'captureAward =
+                                                Prelude.Nothing}
+
+instance Data.ProtoLens.Message EncounterTutorialCompleteResponse
+         where
+        descriptor
+          = let result__field_descriptor
+                  = Data.ProtoLens.FieldDescriptor "result"
+                      (Data.ProtoLens.EnumField ::
+                         Data.ProtoLens.FieldTypeDescriptor
+                           EncounterTutorialCompleteResponse'Result)
+                      (Data.ProtoLens.PlainField Data.ProtoLens.Optional result)
+                pokemonData__field_descriptor
+                  = Data.ProtoLens.FieldDescriptor "pokemon_data"
+                      (Data.ProtoLens.MessageField ::
+                         Data.ProtoLens.FieldTypeDescriptor
+                           Proto.POGOProtos.Data.PokemonData.PokemonData)
+                      (Data.ProtoLens.OptionalField maybe'pokemonData)
+                captureAward__field_descriptor
+                  = Data.ProtoLens.FieldDescriptor "capture_award"
+                      (Data.ProtoLens.MessageField ::
+                         Data.ProtoLens.FieldTypeDescriptor
+                           Proto.POGOProtos.Data.Capture.CaptureAward.CaptureAward)
+                      (Data.ProtoLens.OptionalField maybe'captureAward)
+              in
+              Data.ProtoLens.MessageDescriptor
+                (Data.Map.fromList
+                   [(Data.ProtoLens.Tag 1, result__field_descriptor),
+                    (Data.ProtoLens.Tag 2, pokemonData__field_descriptor),
+                    (Data.ProtoLens.Tag 3, captureAward__field_descriptor)])
+                (Data.Map.fromList
+                   [("result", result__field_descriptor),
+                    ("pokemon_data", pokemonData__field_descriptor),
+                    ("capture_award", captureAward__field_descriptor)])
+
+data EncounterTutorialCompleteResponse'Result = EncounterTutorialCompleteResponse'UNSET
+                                              | EncounterTutorialCompleteResponse'SUCCESS
+                                              | EncounterTutorialCompleteResponse'ERROR_INVALID_POKEMON
+                                              deriving (Prelude.Show, Prelude.Eq)
+
+instance Data.Default.Class.Default
+         EncounterTutorialCompleteResponse'Result where
+        def = EncounterTutorialCompleteResponse'UNSET
+
+instance Data.ProtoLens.FieldDefault
+         EncounterTutorialCompleteResponse'Result where
+        fieldDefault = EncounterTutorialCompleteResponse'UNSET
+
+instance Data.ProtoLens.MessageEnum
+         EncounterTutorialCompleteResponse'Result where
+        maybeToEnum 0
+          = Prelude.Just EncounterTutorialCompleteResponse'UNSET
+        maybeToEnum 1
+          = Prelude.Just EncounterTutorialCompleteResponse'SUCCESS
+        maybeToEnum 2
+          = Prelude.Just
+              EncounterTutorialCompleteResponse'ERROR_INVALID_POKEMON
+        maybeToEnum _ = Prelude.Nothing
+        showEnum EncounterTutorialCompleteResponse'UNSET = "UNSET"
+        showEnum EncounterTutorialCompleteResponse'SUCCESS = "SUCCESS"
+        showEnum EncounterTutorialCompleteResponse'ERROR_INVALID_POKEMON
+          = "ERROR_INVALID_POKEMON"
+        readEnum "UNSET"
+          = Prelude.Just EncounterTutorialCompleteResponse'UNSET
+        readEnum "SUCCESS"
+          = Prelude.Just EncounterTutorialCompleteResponse'SUCCESS
+        readEnum "ERROR_INVALID_POKEMON"
+          = Prelude.Just
+              EncounterTutorialCompleteResponse'ERROR_INVALID_POKEMON
+        readEnum _ = Prelude.Nothing
+
+instance Prelude.Enum EncounterTutorialCompleteResponse'Result
+         where
+        toEnum k__
+          = Prelude.maybe
+              (Prelude.error
+                 ((Prelude.++) "toEnum: unknown value for enum Result: "
+                    (Prelude.show k__)))
+              Prelude.id
+              (Data.ProtoLens.maybeToEnum k__)
+        fromEnum EncounterTutorialCompleteResponse'UNSET = 0
+        fromEnum EncounterTutorialCompleteResponse'SUCCESS = 1
+        fromEnum EncounterTutorialCompleteResponse'ERROR_INVALID_POKEMON
+          = 2
+        succ EncounterTutorialCompleteResponse'ERROR_INVALID_POKEMON
+          = Prelude.error
+              "Ident \"EncounterTutorialCompleteResponse'Result\".Ident \"succ\": bad argument Ident \"EncounterTutorialCompleteResponse'ERROR_INVALID_POKEMON\". This value would be out of bounds."
+        succ EncounterTutorialCompleteResponse'UNSET
+          = EncounterTutorialCompleteResponse'SUCCESS
+        succ EncounterTutorialCompleteResponse'SUCCESS
+          = EncounterTutorialCompleteResponse'ERROR_INVALID_POKEMON
+        pred EncounterTutorialCompleteResponse'UNSET
+          = Prelude.error
+              "Ident \"EncounterTutorialCompleteResponse'Result\".Ident \"pred\": bad argument Ident \"EncounterTutorialCompleteResponse'UNSET\". This value would be out of bounds."
+        pred EncounterTutorialCompleteResponse'SUCCESS
+          = EncounterTutorialCompleteResponse'UNSET
+        pred EncounterTutorialCompleteResponse'ERROR_INVALID_POKEMON
+          = EncounterTutorialCompleteResponse'SUCCESS
+        enumFrom = Data.ProtoLens.Message.Enum.messageEnumFrom
+        enumFromTo = Data.ProtoLens.Message.Enum.messageEnumFromTo
+        enumFromThen = Data.ProtoLens.Message.Enum.messageEnumFromThen
+        enumFromThenTo = Data.ProtoLens.Message.Enum.messageEnumFromThenTo
+
+instance Prelude.Bounded EncounterTutorialCompleteResponse'Result
+         where
+        minBound = EncounterTutorialCompleteResponse'UNSET
+        maxBound = EncounterTutorialCompleteResponse'ERROR_INVALID_POKEMON
+
+captureAward ::
+             forall msg msg' .
+               Data.ProtoLens.HasField "captureAward" msg msg' =>
+               Lens.Family2.Lens msg msg'
+                 (Data.ProtoLens.Field "captureAward" msg)
+                 (Data.ProtoLens.Field "captureAward" msg')
+captureAward
+  = Data.ProtoLens.field
+      (Data.ProtoLens.ProxySym :: Data.ProtoLens.ProxySym "captureAward")
+
+maybe'captureAward ::
+                   forall msg msg' .
+                     Data.ProtoLens.HasField "maybe'captureAward" msg msg' =>
+                     Lens.Family2.Lens msg msg'
+                       (Data.ProtoLens.Field "maybe'captureAward" msg)
+                       (Data.ProtoLens.Field "maybe'captureAward" msg')
+maybe'captureAward
+  = Data.ProtoLens.field
+      (Data.ProtoLens.ProxySym ::
+         Data.ProtoLens.ProxySym "maybe'captureAward")
+
+maybe'pokemonData ::
+                  forall msg msg' .
+                    Data.ProtoLens.HasField "maybe'pokemonData" msg msg' =>
+                    Lens.Family2.Lens msg msg'
+                      (Data.ProtoLens.Field "maybe'pokemonData" msg)
+                      (Data.ProtoLens.Field "maybe'pokemonData" msg')
+maybe'pokemonData
+  = Data.ProtoLens.field
+      (Data.ProtoLens.ProxySym ::
+         Data.ProtoLens.ProxySym "maybe'pokemonData")
+
+pokemonData ::
+            forall msg msg' . Data.ProtoLens.HasField "pokemonData" msg msg' =>
+              Lens.Family2.Lens msg msg' (Data.ProtoLens.Field "pokemonData" msg)
+                (Data.ProtoLens.Field "pokemonData" msg')
+pokemonData
+  = Data.ProtoLens.field
+      (Data.ProtoLens.ProxySym :: Data.ProtoLens.ProxySym "pokemonData")
+
+result ::
+       forall msg msg' . Data.ProtoLens.HasField "result" msg msg' =>
+         Lens.Family2.Lens msg msg' (Data.ProtoLens.Field "result" msg)
+           (Data.ProtoLens.Field "result" msg')
+result
+  = Data.ProtoLens.field
+      (Data.ProtoLens.ProxySym :: Data.ProtoLens.ProxySym "result")
diff --git a/src/Proto/POGOProtos/Networking/Responses/EquipBadgeResponse.hs b/src/Proto/POGOProtos/Networking/Responses/EquipBadgeResponse.hs
new file mode 100644
--- /dev/null
+++ b/src/Proto/POGOProtos/Networking/Responses/EquipBadgeResponse.hs
@@ -0,0 +1,177 @@
+{- This file was auto-generated from POGOProtos/Networking/Responses/EquipBadgeResponse.proto by the proto-lens-protoc program. -}
+{-# LANGUAGE ScopedTypeVariables, DataKinds, TypeFamilies,
+  MultiParamTypeClasses, FlexibleContexts, FlexibleInstances #-}
+{-# OPTIONS_GHC -fno-warn-unused-imports#-}
+module Proto.POGOProtos.Networking.Responses.EquipBadgeResponse
+       where
+import qualified Prelude
+import qualified Data.ProtoLens
+import qualified Data.ProtoLens.Message.Enum
+import qualified Lens.Family2
+import qualified Lens.Family2.Unchecked
+import qualified Data.Default.Class
+import qualified Data.Text
+import qualified Data.Int
+import qualified Data.Word
+import qualified Data.Map
+import qualified Data.ByteString
+import qualified Proto.POGOProtos.Data.Player.EquippedBadge
+
+data EquipBadgeResponse = EquipBadgeResponse{_EquipBadgeResponse'result
+                                             :: EquipBadgeResponse'Result,
+                                             _EquipBadgeResponse'equipped ::
+                                             Prelude.Maybe
+                                               Proto.POGOProtos.Data.Player.EquippedBadge.EquippedBadge}
+                        deriving (Prelude.Show, Prelude.Eq)
+
+type instance Data.ProtoLens.Field "result" EquipBadgeResponse =
+     EquipBadgeResponse'Result
+
+instance Data.ProtoLens.HasField "result" EquipBadgeResponse
+         EquipBadgeResponse where
+        field _
+          = Lens.Family2.Unchecked.lens _EquipBadgeResponse'result
+              (\ x__ y__ -> x__{_EquipBadgeResponse'result = y__})
+
+type instance Data.ProtoLens.Field "equipped" EquipBadgeResponse =
+     Proto.POGOProtos.Data.Player.EquippedBadge.EquippedBadge
+
+instance Data.ProtoLens.HasField "equipped" EquipBadgeResponse
+         EquipBadgeResponse where
+        field _
+          = (Prelude..) maybe'equipped
+              (Data.ProtoLens.maybeLens Data.Default.Class.def)
+
+type instance
+     Data.ProtoLens.Field "maybe'equipped" EquipBadgeResponse =
+     Prelude.Maybe
+       Proto.POGOProtos.Data.Player.EquippedBadge.EquippedBadge
+
+instance Data.ProtoLens.HasField "maybe'equipped"
+         EquipBadgeResponse EquipBadgeResponse where
+        field _
+          = Lens.Family2.Unchecked.lens _EquipBadgeResponse'equipped
+              (\ x__ y__ -> x__{_EquipBadgeResponse'equipped = y__})
+
+instance Data.Default.Class.Default EquipBadgeResponse where
+        def
+          = EquipBadgeResponse{_EquipBadgeResponse'result =
+                                 Data.Default.Class.def,
+                               _EquipBadgeResponse'equipped = Prelude.Nothing}
+
+instance Data.ProtoLens.Message EquipBadgeResponse where
+        descriptor
+          = let result__field_descriptor
+                  = Data.ProtoLens.FieldDescriptor "result"
+                      (Data.ProtoLens.EnumField ::
+                         Data.ProtoLens.FieldTypeDescriptor EquipBadgeResponse'Result)
+                      (Data.ProtoLens.PlainField Data.ProtoLens.Optional result)
+                equipped__field_descriptor
+                  = Data.ProtoLens.FieldDescriptor "equipped"
+                      (Data.ProtoLens.MessageField ::
+                         Data.ProtoLens.FieldTypeDescriptor
+                           Proto.POGOProtos.Data.Player.EquippedBadge.EquippedBadge)
+                      (Data.ProtoLens.OptionalField maybe'equipped)
+              in
+              Data.ProtoLens.MessageDescriptor
+                (Data.Map.fromList
+                   [(Data.ProtoLens.Tag 1, result__field_descriptor),
+                    (Data.ProtoLens.Tag 2, equipped__field_descriptor)])
+                (Data.Map.fromList
+                   [("result", result__field_descriptor),
+                    ("equipped", equipped__field_descriptor)])
+
+data EquipBadgeResponse'Result = EquipBadgeResponse'UNSET
+                               | EquipBadgeResponse'SUCCESS
+                               | EquipBadgeResponse'COOLDOWN_ACTIVE
+                               | EquipBadgeResponse'NOT_QUALIFIED
+                               deriving (Prelude.Show, Prelude.Eq)
+
+instance Data.Default.Class.Default EquipBadgeResponse'Result where
+        def = EquipBadgeResponse'UNSET
+
+instance Data.ProtoLens.FieldDefault EquipBadgeResponse'Result
+         where
+        fieldDefault = EquipBadgeResponse'UNSET
+
+instance Data.ProtoLens.MessageEnum EquipBadgeResponse'Result where
+        maybeToEnum 0 = Prelude.Just EquipBadgeResponse'UNSET
+        maybeToEnum 1 = Prelude.Just EquipBadgeResponse'SUCCESS
+        maybeToEnum 2 = Prelude.Just EquipBadgeResponse'COOLDOWN_ACTIVE
+        maybeToEnum 3 = Prelude.Just EquipBadgeResponse'NOT_QUALIFIED
+        maybeToEnum _ = Prelude.Nothing
+        showEnum EquipBadgeResponse'UNSET = "UNSET"
+        showEnum EquipBadgeResponse'SUCCESS = "SUCCESS"
+        showEnum EquipBadgeResponse'COOLDOWN_ACTIVE = "COOLDOWN_ACTIVE"
+        showEnum EquipBadgeResponse'NOT_QUALIFIED = "NOT_QUALIFIED"
+        readEnum "UNSET" = Prelude.Just EquipBadgeResponse'UNSET
+        readEnum "SUCCESS" = Prelude.Just EquipBadgeResponse'SUCCESS
+        readEnum "COOLDOWN_ACTIVE"
+          = Prelude.Just EquipBadgeResponse'COOLDOWN_ACTIVE
+        readEnum "NOT_QUALIFIED"
+          = Prelude.Just EquipBadgeResponse'NOT_QUALIFIED
+        readEnum _ = Prelude.Nothing
+
+instance Prelude.Enum EquipBadgeResponse'Result where
+        toEnum k__
+          = Prelude.maybe
+              (Prelude.error
+                 ((Prelude.++) "toEnum: unknown value for enum Result: "
+                    (Prelude.show k__)))
+              Prelude.id
+              (Data.ProtoLens.maybeToEnum k__)
+        fromEnum EquipBadgeResponse'UNSET = 0
+        fromEnum EquipBadgeResponse'SUCCESS = 1
+        fromEnum EquipBadgeResponse'COOLDOWN_ACTIVE = 2
+        fromEnum EquipBadgeResponse'NOT_QUALIFIED = 3
+        succ EquipBadgeResponse'NOT_QUALIFIED
+          = Prelude.error
+              "Ident \"EquipBadgeResponse'Result\".Ident \"succ\": bad argument Ident \"EquipBadgeResponse'NOT_QUALIFIED\". This value would be out of bounds."
+        succ EquipBadgeResponse'UNSET = EquipBadgeResponse'SUCCESS
+        succ EquipBadgeResponse'SUCCESS
+          = EquipBadgeResponse'COOLDOWN_ACTIVE
+        succ EquipBadgeResponse'COOLDOWN_ACTIVE
+          = EquipBadgeResponse'NOT_QUALIFIED
+        pred EquipBadgeResponse'UNSET
+          = Prelude.error
+              "Ident \"EquipBadgeResponse'Result\".Ident \"pred\": bad argument Ident \"EquipBadgeResponse'UNSET\". This value would be out of bounds."
+        pred EquipBadgeResponse'SUCCESS = EquipBadgeResponse'UNSET
+        pred EquipBadgeResponse'COOLDOWN_ACTIVE
+          = EquipBadgeResponse'SUCCESS
+        pred EquipBadgeResponse'NOT_QUALIFIED
+          = EquipBadgeResponse'COOLDOWN_ACTIVE
+        enumFrom = Data.ProtoLens.Message.Enum.messageEnumFrom
+        enumFromTo = Data.ProtoLens.Message.Enum.messageEnumFromTo
+        enumFromThen = Data.ProtoLens.Message.Enum.messageEnumFromThen
+        enumFromThenTo = Data.ProtoLens.Message.Enum.messageEnumFromThenTo
+
+instance Prelude.Bounded EquipBadgeResponse'Result where
+        minBound = EquipBadgeResponse'UNSET
+        maxBound = EquipBadgeResponse'NOT_QUALIFIED
+
+equipped ::
+         forall msg msg' . Data.ProtoLens.HasField "equipped" msg msg' =>
+           Lens.Family2.Lens msg msg' (Data.ProtoLens.Field "equipped" msg)
+             (Data.ProtoLens.Field "equipped" msg')
+equipped
+  = Data.ProtoLens.field
+      (Data.ProtoLens.ProxySym :: Data.ProtoLens.ProxySym "equipped")
+
+maybe'equipped ::
+               forall msg msg' .
+                 Data.ProtoLens.HasField "maybe'equipped" msg msg' =>
+                 Lens.Family2.Lens msg msg'
+                   (Data.ProtoLens.Field "maybe'equipped" msg)
+                   (Data.ProtoLens.Field "maybe'equipped" msg')
+maybe'equipped
+  = Data.ProtoLens.field
+      (Data.ProtoLens.ProxySym ::
+         Data.ProtoLens.ProxySym "maybe'equipped")
+
+result ::
+       forall msg msg' . Data.ProtoLens.HasField "result" msg msg' =>
+         Lens.Family2.Lens msg msg' (Data.ProtoLens.Field "result" msg)
+           (Data.ProtoLens.Field "result" msg')
+result
+  = Data.ProtoLens.field
+      (Data.ProtoLens.ProxySym :: Data.ProtoLens.ProxySym "result")
diff --git a/src/Proto/POGOProtos/Networking/Responses/EvolvePokemonResponse.hs b/src/Proto/POGOProtos/Networking/Responses/EvolvePokemonResponse.hs
new file mode 100644
--- /dev/null
+++ b/src/Proto/POGOProtos/Networking/Responses/EvolvePokemonResponse.hs
@@ -0,0 +1,276 @@
+{- This file was auto-generated from POGOProtos/Networking/Responses/EvolvePokemonResponse.proto by the proto-lens-protoc program. -}
+{-# LANGUAGE ScopedTypeVariables, DataKinds, TypeFamilies,
+  MultiParamTypeClasses, FlexibleContexts, FlexibleInstances #-}
+{-# OPTIONS_GHC -fno-warn-unused-imports#-}
+module Proto.POGOProtos.Networking.Responses.EvolvePokemonResponse
+       where
+import qualified Prelude
+import qualified Data.ProtoLens
+import qualified Data.ProtoLens.Message.Enum
+import qualified Lens.Family2
+import qualified Lens.Family2.Unchecked
+import qualified Data.Default.Class
+import qualified Data.Text
+import qualified Data.Int
+import qualified Data.Word
+import qualified Data.Map
+import qualified Data.ByteString
+import qualified Proto.POGOProtos.Data.PokemonData
+
+data EvolvePokemonResponse = EvolvePokemonResponse{_EvolvePokemonResponse'result
+                                                   :: EvolvePokemonResponse'Result,
+                                                   _EvolvePokemonResponse'evolvedPokemonData ::
+                                                   Prelude.Maybe
+                                                     Proto.POGOProtos.Data.PokemonData.PokemonData,
+                                                   _EvolvePokemonResponse'experienceAwarded ::
+                                                   Data.Int.Int32,
+                                                   _EvolvePokemonResponse'candyAwarded ::
+                                                   Data.Int.Int32}
+                           deriving (Prelude.Show, Prelude.Eq)
+
+type instance Data.ProtoLens.Field "result" EvolvePokemonResponse =
+     EvolvePokemonResponse'Result
+
+instance Data.ProtoLens.HasField "result" EvolvePokemonResponse
+         EvolvePokemonResponse where
+        field _
+          = Lens.Family2.Unchecked.lens _EvolvePokemonResponse'result
+              (\ x__ y__ -> x__{_EvolvePokemonResponse'result = y__})
+
+type instance
+     Data.ProtoLens.Field "evolvedPokemonData" EvolvePokemonResponse =
+     Proto.POGOProtos.Data.PokemonData.PokemonData
+
+instance Data.ProtoLens.HasField "evolvedPokemonData"
+         EvolvePokemonResponse EvolvePokemonResponse where
+        field _
+          = (Prelude..) maybe'evolvedPokemonData
+              (Data.ProtoLens.maybeLens Data.Default.Class.def)
+
+type instance
+     Data.ProtoLens.Field "maybe'evolvedPokemonData"
+       EvolvePokemonResponse
+     = Prelude.Maybe Proto.POGOProtos.Data.PokemonData.PokemonData
+
+instance Data.ProtoLens.HasField "maybe'evolvedPokemonData"
+         EvolvePokemonResponse EvolvePokemonResponse where
+        field _
+          = Lens.Family2.Unchecked.lens
+              _EvolvePokemonResponse'evolvedPokemonData
+              (\ x__ y__ -> x__{_EvolvePokemonResponse'evolvedPokemonData = y__})
+
+type instance
+     Data.ProtoLens.Field "experienceAwarded" EvolvePokemonResponse =
+     Data.Int.Int32
+
+instance Data.ProtoLens.HasField "experienceAwarded"
+         EvolvePokemonResponse EvolvePokemonResponse where
+        field _
+          = Lens.Family2.Unchecked.lens
+              _EvolvePokemonResponse'experienceAwarded
+              (\ x__ y__ -> x__{_EvolvePokemonResponse'experienceAwarded = y__})
+
+type instance
+     Data.ProtoLens.Field "candyAwarded" EvolvePokemonResponse =
+     Data.Int.Int32
+
+instance Data.ProtoLens.HasField "candyAwarded"
+         EvolvePokemonResponse EvolvePokemonResponse where
+        field _
+          = Lens.Family2.Unchecked.lens _EvolvePokemonResponse'candyAwarded
+              (\ x__ y__ -> x__{_EvolvePokemonResponse'candyAwarded = y__})
+
+instance Data.Default.Class.Default EvolvePokemonResponse where
+        def
+          = EvolvePokemonResponse{_EvolvePokemonResponse'result =
+                                    Data.Default.Class.def,
+                                  _EvolvePokemonResponse'evolvedPokemonData = Prelude.Nothing,
+                                  _EvolvePokemonResponse'experienceAwarded =
+                                    Data.ProtoLens.fieldDefault,
+                                  _EvolvePokemonResponse'candyAwarded = Data.ProtoLens.fieldDefault}
+
+instance Data.ProtoLens.Message EvolvePokemonResponse where
+        descriptor
+          = let result__field_descriptor
+                  = Data.ProtoLens.FieldDescriptor "result"
+                      (Data.ProtoLens.EnumField ::
+                         Data.ProtoLens.FieldTypeDescriptor EvolvePokemonResponse'Result)
+                      (Data.ProtoLens.PlainField Data.ProtoLens.Optional result)
+                evolvedPokemonData__field_descriptor
+                  = Data.ProtoLens.FieldDescriptor "evolved_pokemon_data"
+                      (Data.ProtoLens.MessageField ::
+                         Data.ProtoLens.FieldTypeDescriptor
+                           Proto.POGOProtos.Data.PokemonData.PokemonData)
+                      (Data.ProtoLens.OptionalField maybe'evolvedPokemonData)
+                experienceAwarded__field_descriptor
+                  = Data.ProtoLens.FieldDescriptor "experience_awarded"
+                      (Data.ProtoLens.Int32Field ::
+                         Data.ProtoLens.FieldTypeDescriptor Data.Int.Int32)
+                      (Data.ProtoLens.PlainField Data.ProtoLens.Optional
+                         experienceAwarded)
+                candyAwarded__field_descriptor
+                  = Data.ProtoLens.FieldDescriptor "candy_awarded"
+                      (Data.ProtoLens.Int32Field ::
+                         Data.ProtoLens.FieldTypeDescriptor Data.Int.Int32)
+                      (Data.ProtoLens.PlainField Data.ProtoLens.Optional candyAwarded)
+              in
+              Data.ProtoLens.MessageDescriptor
+                (Data.Map.fromList
+                   [(Data.ProtoLens.Tag 1, result__field_descriptor),
+                    (Data.ProtoLens.Tag 2, evolvedPokemonData__field_descriptor),
+                    (Data.ProtoLens.Tag 3, experienceAwarded__field_descriptor),
+                    (Data.ProtoLens.Tag 4, candyAwarded__field_descriptor)])
+                (Data.Map.fromList
+                   [("result", result__field_descriptor),
+                    ("evolved_pokemon_data", evolvedPokemonData__field_descriptor),
+                    ("experience_awarded", experienceAwarded__field_descriptor),
+                    ("candy_awarded", candyAwarded__field_descriptor)])
+
+data EvolvePokemonResponse'Result = EvolvePokemonResponse'UNSET
+                                  | EvolvePokemonResponse'SUCCESS
+                                  | EvolvePokemonResponse'FAILED_POKEMON_MISSING
+                                  | EvolvePokemonResponse'FAILED_INSUFFICIENT_RESOURCES
+                                  | EvolvePokemonResponse'FAILED_POKEMON_CANNOT_EVOLVE
+                                  | EvolvePokemonResponse'FAILED_POKEMON_IS_DEPLOYED
+                                  deriving (Prelude.Show, Prelude.Eq)
+
+instance Data.Default.Class.Default EvolvePokemonResponse'Result
+         where
+        def = EvolvePokemonResponse'UNSET
+
+instance Data.ProtoLens.FieldDefault EvolvePokemonResponse'Result
+         where
+        fieldDefault = EvolvePokemonResponse'UNSET
+
+instance Data.ProtoLens.MessageEnum EvolvePokemonResponse'Result
+         where
+        maybeToEnum 0 = Prelude.Just EvolvePokemonResponse'UNSET
+        maybeToEnum 1 = Prelude.Just EvolvePokemonResponse'SUCCESS
+        maybeToEnum 2
+          = Prelude.Just EvolvePokemonResponse'FAILED_POKEMON_MISSING
+        maybeToEnum 3
+          = Prelude.Just EvolvePokemonResponse'FAILED_INSUFFICIENT_RESOURCES
+        maybeToEnum 4
+          = Prelude.Just EvolvePokemonResponse'FAILED_POKEMON_CANNOT_EVOLVE
+        maybeToEnum 5
+          = Prelude.Just EvolvePokemonResponse'FAILED_POKEMON_IS_DEPLOYED
+        maybeToEnum _ = Prelude.Nothing
+        showEnum EvolvePokemonResponse'UNSET = "UNSET"
+        showEnum EvolvePokemonResponse'SUCCESS = "SUCCESS"
+        showEnum EvolvePokemonResponse'FAILED_POKEMON_MISSING
+          = "FAILED_POKEMON_MISSING"
+        showEnum EvolvePokemonResponse'FAILED_INSUFFICIENT_RESOURCES
+          = "FAILED_INSUFFICIENT_RESOURCES"
+        showEnum EvolvePokemonResponse'FAILED_POKEMON_CANNOT_EVOLVE
+          = "FAILED_POKEMON_CANNOT_EVOLVE"
+        showEnum EvolvePokemonResponse'FAILED_POKEMON_IS_DEPLOYED
+          = "FAILED_POKEMON_IS_DEPLOYED"
+        readEnum "UNSET" = Prelude.Just EvolvePokemonResponse'UNSET
+        readEnum "SUCCESS" = Prelude.Just EvolvePokemonResponse'SUCCESS
+        readEnum "FAILED_POKEMON_MISSING"
+          = Prelude.Just EvolvePokemonResponse'FAILED_POKEMON_MISSING
+        readEnum "FAILED_INSUFFICIENT_RESOURCES"
+          = Prelude.Just EvolvePokemonResponse'FAILED_INSUFFICIENT_RESOURCES
+        readEnum "FAILED_POKEMON_CANNOT_EVOLVE"
+          = Prelude.Just EvolvePokemonResponse'FAILED_POKEMON_CANNOT_EVOLVE
+        readEnum "FAILED_POKEMON_IS_DEPLOYED"
+          = Prelude.Just EvolvePokemonResponse'FAILED_POKEMON_IS_DEPLOYED
+        readEnum _ = Prelude.Nothing
+
+instance Prelude.Enum EvolvePokemonResponse'Result where
+        toEnum k__
+          = Prelude.maybe
+              (Prelude.error
+                 ((Prelude.++) "toEnum: unknown value for enum Result: "
+                    (Prelude.show k__)))
+              Prelude.id
+              (Data.ProtoLens.maybeToEnum k__)
+        fromEnum EvolvePokemonResponse'UNSET = 0
+        fromEnum EvolvePokemonResponse'SUCCESS = 1
+        fromEnum EvolvePokemonResponse'FAILED_POKEMON_MISSING = 2
+        fromEnum EvolvePokemonResponse'FAILED_INSUFFICIENT_RESOURCES = 3
+        fromEnum EvolvePokemonResponse'FAILED_POKEMON_CANNOT_EVOLVE = 4
+        fromEnum EvolvePokemonResponse'FAILED_POKEMON_IS_DEPLOYED = 5
+        succ EvolvePokemonResponse'FAILED_POKEMON_IS_DEPLOYED
+          = Prelude.error
+              "Ident \"EvolvePokemonResponse'Result\".Ident \"succ\": bad argument Ident \"EvolvePokemonResponse'FAILED_POKEMON_IS_DEPLOYED\". This value would be out of bounds."
+        succ EvolvePokemonResponse'UNSET = EvolvePokemonResponse'SUCCESS
+        succ EvolvePokemonResponse'SUCCESS
+          = EvolvePokemonResponse'FAILED_POKEMON_MISSING
+        succ EvolvePokemonResponse'FAILED_POKEMON_MISSING
+          = EvolvePokemonResponse'FAILED_INSUFFICIENT_RESOURCES
+        succ EvolvePokemonResponse'FAILED_INSUFFICIENT_RESOURCES
+          = EvolvePokemonResponse'FAILED_POKEMON_CANNOT_EVOLVE
+        succ EvolvePokemonResponse'FAILED_POKEMON_CANNOT_EVOLVE
+          = EvolvePokemonResponse'FAILED_POKEMON_IS_DEPLOYED
+        pred EvolvePokemonResponse'UNSET
+          = Prelude.error
+              "Ident \"EvolvePokemonResponse'Result\".Ident \"pred\": bad argument Ident \"EvolvePokemonResponse'UNSET\". This value would be out of bounds."
+        pred EvolvePokemonResponse'SUCCESS = EvolvePokemonResponse'UNSET
+        pred EvolvePokemonResponse'FAILED_POKEMON_MISSING
+          = EvolvePokemonResponse'SUCCESS
+        pred EvolvePokemonResponse'FAILED_INSUFFICIENT_RESOURCES
+          = EvolvePokemonResponse'FAILED_POKEMON_MISSING
+        pred EvolvePokemonResponse'FAILED_POKEMON_CANNOT_EVOLVE
+          = EvolvePokemonResponse'FAILED_INSUFFICIENT_RESOURCES
+        pred EvolvePokemonResponse'FAILED_POKEMON_IS_DEPLOYED
+          = EvolvePokemonResponse'FAILED_POKEMON_CANNOT_EVOLVE
+        enumFrom = Data.ProtoLens.Message.Enum.messageEnumFrom
+        enumFromTo = Data.ProtoLens.Message.Enum.messageEnumFromTo
+        enumFromThen = Data.ProtoLens.Message.Enum.messageEnumFromThen
+        enumFromThenTo = Data.ProtoLens.Message.Enum.messageEnumFromThenTo
+
+instance Prelude.Bounded EvolvePokemonResponse'Result where
+        minBound = EvolvePokemonResponse'UNSET
+        maxBound = EvolvePokemonResponse'FAILED_POKEMON_IS_DEPLOYED
+
+candyAwarded ::
+             forall msg msg' .
+               Data.ProtoLens.HasField "candyAwarded" msg msg' =>
+               Lens.Family2.Lens msg msg'
+                 (Data.ProtoLens.Field "candyAwarded" msg)
+                 (Data.ProtoLens.Field "candyAwarded" msg')
+candyAwarded
+  = Data.ProtoLens.field
+      (Data.ProtoLens.ProxySym :: Data.ProtoLens.ProxySym "candyAwarded")
+
+evolvedPokemonData ::
+                   forall msg msg' .
+                     Data.ProtoLens.HasField "evolvedPokemonData" msg msg' =>
+                     Lens.Family2.Lens msg msg'
+                       (Data.ProtoLens.Field "evolvedPokemonData" msg)
+                       (Data.ProtoLens.Field "evolvedPokemonData" msg')
+evolvedPokemonData
+  = Data.ProtoLens.field
+      (Data.ProtoLens.ProxySym ::
+         Data.ProtoLens.ProxySym "evolvedPokemonData")
+
+experienceAwarded ::
+                  forall msg msg' .
+                    Data.ProtoLens.HasField "experienceAwarded" msg msg' =>
+                    Lens.Family2.Lens msg msg'
+                      (Data.ProtoLens.Field "experienceAwarded" msg)
+                      (Data.ProtoLens.Field "experienceAwarded" msg')
+experienceAwarded
+  = Data.ProtoLens.field
+      (Data.ProtoLens.ProxySym ::
+         Data.ProtoLens.ProxySym "experienceAwarded")
+
+maybe'evolvedPokemonData ::
+                         forall msg msg' .
+                           Data.ProtoLens.HasField "maybe'evolvedPokemonData" msg msg' =>
+                           Lens.Family2.Lens msg msg'
+                             (Data.ProtoLens.Field "maybe'evolvedPokemonData" msg)
+                             (Data.ProtoLens.Field "maybe'evolvedPokemonData" msg')
+maybe'evolvedPokemonData
+  = Data.ProtoLens.field
+      (Data.ProtoLens.ProxySym ::
+         Data.ProtoLens.ProxySym "maybe'evolvedPokemonData")
+
+result ::
+       forall msg msg' . Data.ProtoLens.HasField "result" msg msg' =>
+         Lens.Family2.Lens msg msg' (Data.ProtoLens.Field "result" msg)
+           (Data.ProtoLens.Field "result" msg')
+result
+  = Data.ProtoLens.field
+      (Data.ProtoLens.ProxySym :: Data.ProtoLens.ProxySym "result")
diff --git a/src/Proto/POGOProtos/Networking/Responses/FortDeployPokemonResponse.hs b/src/Proto/POGOProtos/Networking/Responses/FortDeployPokemonResponse.hs
new file mode 100644
--- /dev/null
+++ b/src/Proto/POGOProtos/Networking/Responses/FortDeployPokemonResponse.hs
@@ -0,0 +1,369 @@
+{- This file was auto-generated from POGOProtos/Networking/Responses/FortDeployPokemonResponse.proto by the proto-lens-protoc program. -}
+{-# LANGUAGE ScopedTypeVariables, DataKinds, TypeFamilies,
+  MultiParamTypeClasses, FlexibleContexts, FlexibleInstances #-}
+{-# OPTIONS_GHC -fno-warn-unused-imports#-}
+module Proto.POGOProtos.Networking.Responses.FortDeployPokemonResponse
+       where
+import qualified Prelude
+import qualified Data.ProtoLens
+import qualified Data.ProtoLens.Message.Enum
+import qualified Lens.Family2
+import qualified Lens.Family2.Unchecked
+import qualified Data.Default.Class
+import qualified Data.Text
+import qualified Data.Int
+import qualified Data.Word
+import qualified Data.Map
+import qualified Data.ByteString
+import qualified Proto.POGOProtos.Data.Gym.GymState
+import qualified Proto.POGOProtos.Data.PokemonData
+import qualified
+       Proto.POGOProtos.Networking.Responses.FortDetailsResponse
+
+data FortDeployPokemonResponse = FortDeployPokemonResponse{_FortDeployPokemonResponse'result
+                                                           :: FortDeployPokemonResponse'Result,
+                                                           _FortDeployPokemonResponse'fortDetails ::
+                                                           Prelude.Maybe
+                                                             Proto.POGOProtos.Networking.Responses.FortDetailsResponse.FortDetailsResponse,
+                                                           _FortDeployPokemonResponse'pokemonData ::
+                                                           Prelude.Maybe
+                                                             Proto.POGOProtos.Data.PokemonData.PokemonData,
+                                                           _FortDeployPokemonResponse'gymState ::
+                                                           Prelude.Maybe
+                                                             Proto.POGOProtos.Data.Gym.GymState.GymState}
+                               deriving (Prelude.Show, Prelude.Eq)
+
+type instance
+     Data.ProtoLens.Field "result" FortDeployPokemonResponse =
+     FortDeployPokemonResponse'Result
+
+instance Data.ProtoLens.HasField "result" FortDeployPokemonResponse
+         FortDeployPokemonResponse where
+        field _
+          = Lens.Family2.Unchecked.lens _FortDeployPokemonResponse'result
+              (\ x__ y__ -> x__{_FortDeployPokemonResponse'result = y__})
+
+type instance
+     Data.ProtoLens.Field "fortDetails" FortDeployPokemonResponse =
+     Proto.POGOProtos.Networking.Responses.FortDetailsResponse.FortDetailsResponse
+
+instance Data.ProtoLens.HasField "fortDetails"
+         FortDeployPokemonResponse FortDeployPokemonResponse where
+        field _
+          = (Prelude..) maybe'fortDetails
+              (Data.ProtoLens.maybeLens Data.Default.Class.def)
+
+type instance
+     Data.ProtoLens.Field "maybe'fortDetails" FortDeployPokemonResponse
+     =
+     Prelude.Maybe
+       Proto.POGOProtos.Networking.Responses.FortDetailsResponse.FortDetailsResponse
+
+instance Data.ProtoLens.HasField "maybe'fortDetails"
+         FortDeployPokemonResponse FortDeployPokemonResponse where
+        field _
+          = Lens.Family2.Unchecked.lens
+              _FortDeployPokemonResponse'fortDetails
+              (\ x__ y__ -> x__{_FortDeployPokemonResponse'fortDetails = y__})
+
+type instance
+     Data.ProtoLens.Field "pokemonData" FortDeployPokemonResponse =
+     Proto.POGOProtos.Data.PokemonData.PokemonData
+
+instance Data.ProtoLens.HasField "pokemonData"
+         FortDeployPokemonResponse FortDeployPokemonResponse where
+        field _
+          = (Prelude..) maybe'pokemonData
+              (Data.ProtoLens.maybeLens Data.Default.Class.def)
+
+type instance
+     Data.ProtoLens.Field "maybe'pokemonData" FortDeployPokemonResponse
+     = Prelude.Maybe Proto.POGOProtos.Data.PokemonData.PokemonData
+
+instance Data.ProtoLens.HasField "maybe'pokemonData"
+         FortDeployPokemonResponse FortDeployPokemonResponse where
+        field _
+          = Lens.Family2.Unchecked.lens
+              _FortDeployPokemonResponse'pokemonData
+              (\ x__ y__ -> x__{_FortDeployPokemonResponse'pokemonData = y__})
+
+type instance
+     Data.ProtoLens.Field "gymState" FortDeployPokemonResponse =
+     Proto.POGOProtos.Data.Gym.GymState.GymState
+
+instance Data.ProtoLens.HasField "gymState"
+         FortDeployPokemonResponse FortDeployPokemonResponse where
+        field _
+          = (Prelude..) maybe'gymState
+              (Data.ProtoLens.maybeLens Data.Default.Class.def)
+
+type instance
+     Data.ProtoLens.Field "maybe'gymState" FortDeployPokemonResponse =
+     Prelude.Maybe Proto.POGOProtos.Data.Gym.GymState.GymState
+
+instance Data.ProtoLens.HasField "maybe'gymState"
+         FortDeployPokemonResponse FortDeployPokemonResponse where
+        field _
+          = Lens.Family2.Unchecked.lens _FortDeployPokemonResponse'gymState
+              (\ x__ y__ -> x__{_FortDeployPokemonResponse'gymState = y__})
+
+instance Data.Default.Class.Default FortDeployPokemonResponse where
+        def
+          = FortDeployPokemonResponse{_FortDeployPokemonResponse'result =
+                                        Data.Default.Class.def,
+                                      _FortDeployPokemonResponse'fortDetails = Prelude.Nothing,
+                                      _FortDeployPokemonResponse'pokemonData = Prelude.Nothing,
+                                      _FortDeployPokemonResponse'gymState = Prelude.Nothing}
+
+instance Data.ProtoLens.Message FortDeployPokemonResponse where
+        descriptor
+          = let result__field_descriptor
+                  = Data.ProtoLens.FieldDescriptor "result"
+                      (Data.ProtoLens.EnumField ::
+                         Data.ProtoLens.FieldTypeDescriptor
+                           FortDeployPokemonResponse'Result)
+                      (Data.ProtoLens.PlainField Data.ProtoLens.Optional result)
+                fortDetails__field_descriptor
+                  = Data.ProtoLens.FieldDescriptor "fort_details"
+                      (Data.ProtoLens.MessageField ::
+                         Data.ProtoLens.FieldTypeDescriptor
+                           Proto.POGOProtos.Networking.Responses.FortDetailsResponse.FortDetailsResponse)
+                      (Data.ProtoLens.OptionalField maybe'fortDetails)
+                pokemonData__field_descriptor
+                  = Data.ProtoLens.FieldDescriptor "pokemon_data"
+                      (Data.ProtoLens.MessageField ::
+                         Data.ProtoLens.FieldTypeDescriptor
+                           Proto.POGOProtos.Data.PokemonData.PokemonData)
+                      (Data.ProtoLens.OptionalField maybe'pokemonData)
+                gymState__field_descriptor
+                  = Data.ProtoLens.FieldDescriptor "gym_state"
+                      (Data.ProtoLens.MessageField ::
+                         Data.ProtoLens.FieldTypeDescriptor
+                           Proto.POGOProtos.Data.Gym.GymState.GymState)
+                      (Data.ProtoLens.OptionalField maybe'gymState)
+              in
+              Data.ProtoLens.MessageDescriptor
+                (Data.Map.fromList
+                   [(Data.ProtoLens.Tag 1, result__field_descriptor),
+                    (Data.ProtoLens.Tag 2, fortDetails__field_descriptor),
+                    (Data.ProtoLens.Tag 3, pokemonData__field_descriptor),
+                    (Data.ProtoLens.Tag 4, gymState__field_descriptor)])
+                (Data.Map.fromList
+                   [("result", result__field_descriptor),
+                    ("fort_details", fortDetails__field_descriptor),
+                    ("pokemon_data", pokemonData__field_descriptor),
+                    ("gym_state", gymState__field_descriptor)])
+
+data FortDeployPokemonResponse'Result = FortDeployPokemonResponse'NO_RESULT_SET
+                                      | FortDeployPokemonResponse'SUCCESS
+                                      | FortDeployPokemonResponse'ERROR_ALREADY_HAS_POKEMON_ON_FORT
+                                      | FortDeployPokemonResponse'ERROR_OPPOSING_TEAM_OWNS_FORT
+                                      | FortDeployPokemonResponse'ERROR_FORT_IS_FULL
+                                      | FortDeployPokemonResponse'ERROR_NOT_IN_RANGE
+                                      | FortDeployPokemonResponse'ERROR_PLAYER_HAS_NO_TEAM
+                                      | FortDeployPokemonResponse'ERROR_POKEMON_NOT_FULL_HP
+                                      | FortDeployPokemonResponse'ERROR_PLAYER_BELOW_MINIMUM_LEVEL
+                                      deriving (Prelude.Show, Prelude.Eq)
+
+instance Data.Default.Class.Default
+         FortDeployPokemonResponse'Result where
+        def = FortDeployPokemonResponse'NO_RESULT_SET
+
+instance Data.ProtoLens.FieldDefault
+         FortDeployPokemonResponse'Result where
+        fieldDefault = FortDeployPokemonResponse'NO_RESULT_SET
+
+instance Data.ProtoLens.MessageEnum
+         FortDeployPokemonResponse'Result where
+        maybeToEnum 0
+          = Prelude.Just FortDeployPokemonResponse'NO_RESULT_SET
+        maybeToEnum 1 = Prelude.Just FortDeployPokemonResponse'SUCCESS
+        maybeToEnum 2
+          = Prelude.Just
+              FortDeployPokemonResponse'ERROR_ALREADY_HAS_POKEMON_ON_FORT
+        maybeToEnum 3
+          = Prelude.Just
+              FortDeployPokemonResponse'ERROR_OPPOSING_TEAM_OWNS_FORT
+        maybeToEnum 4
+          = Prelude.Just FortDeployPokemonResponse'ERROR_FORT_IS_FULL
+        maybeToEnum 5
+          = Prelude.Just FortDeployPokemonResponse'ERROR_NOT_IN_RANGE
+        maybeToEnum 6
+          = Prelude.Just FortDeployPokemonResponse'ERROR_PLAYER_HAS_NO_TEAM
+        maybeToEnum 7
+          = Prelude.Just FortDeployPokemonResponse'ERROR_POKEMON_NOT_FULL_HP
+        maybeToEnum 8
+          = Prelude.Just
+              FortDeployPokemonResponse'ERROR_PLAYER_BELOW_MINIMUM_LEVEL
+        maybeToEnum _ = Prelude.Nothing
+        showEnum FortDeployPokemonResponse'NO_RESULT_SET = "NO_RESULT_SET"
+        showEnum FortDeployPokemonResponse'SUCCESS = "SUCCESS"
+        showEnum
+          FortDeployPokemonResponse'ERROR_ALREADY_HAS_POKEMON_ON_FORT
+          = "ERROR_ALREADY_HAS_POKEMON_ON_FORT"
+        showEnum FortDeployPokemonResponse'ERROR_OPPOSING_TEAM_OWNS_FORT
+          = "ERROR_OPPOSING_TEAM_OWNS_FORT"
+        showEnum FortDeployPokemonResponse'ERROR_FORT_IS_FULL
+          = "ERROR_FORT_IS_FULL"
+        showEnum FortDeployPokemonResponse'ERROR_NOT_IN_RANGE
+          = "ERROR_NOT_IN_RANGE"
+        showEnum FortDeployPokemonResponse'ERROR_PLAYER_HAS_NO_TEAM
+          = "ERROR_PLAYER_HAS_NO_TEAM"
+        showEnum FortDeployPokemonResponse'ERROR_POKEMON_NOT_FULL_HP
+          = "ERROR_POKEMON_NOT_FULL_HP"
+        showEnum FortDeployPokemonResponse'ERROR_PLAYER_BELOW_MINIMUM_LEVEL
+          = "ERROR_PLAYER_BELOW_MINIMUM_LEVEL"
+        readEnum "NO_RESULT_SET"
+          = Prelude.Just FortDeployPokemonResponse'NO_RESULT_SET
+        readEnum "SUCCESS" = Prelude.Just FortDeployPokemonResponse'SUCCESS
+        readEnum "ERROR_ALREADY_HAS_POKEMON_ON_FORT"
+          = Prelude.Just
+              FortDeployPokemonResponse'ERROR_ALREADY_HAS_POKEMON_ON_FORT
+        readEnum "ERROR_OPPOSING_TEAM_OWNS_FORT"
+          = Prelude.Just
+              FortDeployPokemonResponse'ERROR_OPPOSING_TEAM_OWNS_FORT
+        readEnum "ERROR_FORT_IS_FULL"
+          = Prelude.Just FortDeployPokemonResponse'ERROR_FORT_IS_FULL
+        readEnum "ERROR_NOT_IN_RANGE"
+          = Prelude.Just FortDeployPokemonResponse'ERROR_NOT_IN_RANGE
+        readEnum "ERROR_PLAYER_HAS_NO_TEAM"
+          = Prelude.Just FortDeployPokemonResponse'ERROR_PLAYER_HAS_NO_TEAM
+        readEnum "ERROR_POKEMON_NOT_FULL_HP"
+          = Prelude.Just FortDeployPokemonResponse'ERROR_POKEMON_NOT_FULL_HP
+        readEnum "ERROR_PLAYER_BELOW_MINIMUM_LEVEL"
+          = Prelude.Just
+              FortDeployPokemonResponse'ERROR_PLAYER_BELOW_MINIMUM_LEVEL
+        readEnum _ = Prelude.Nothing
+
+instance Prelude.Enum FortDeployPokemonResponse'Result where
+        toEnum k__
+          = Prelude.maybe
+              (Prelude.error
+                 ((Prelude.++) "toEnum: unknown value for enum Result: "
+                    (Prelude.show k__)))
+              Prelude.id
+              (Data.ProtoLens.maybeToEnum k__)
+        fromEnum FortDeployPokemonResponse'NO_RESULT_SET = 0
+        fromEnum FortDeployPokemonResponse'SUCCESS = 1
+        fromEnum
+          FortDeployPokemonResponse'ERROR_ALREADY_HAS_POKEMON_ON_FORT = 2
+        fromEnum FortDeployPokemonResponse'ERROR_OPPOSING_TEAM_OWNS_FORT
+          = 3
+        fromEnum FortDeployPokemonResponse'ERROR_FORT_IS_FULL = 4
+        fromEnum FortDeployPokemonResponse'ERROR_NOT_IN_RANGE = 5
+        fromEnum FortDeployPokemonResponse'ERROR_PLAYER_HAS_NO_TEAM = 6
+        fromEnum FortDeployPokemonResponse'ERROR_POKEMON_NOT_FULL_HP = 7
+        fromEnum FortDeployPokemonResponse'ERROR_PLAYER_BELOW_MINIMUM_LEVEL
+          = 8
+        succ FortDeployPokemonResponse'ERROR_PLAYER_BELOW_MINIMUM_LEVEL
+          = Prelude.error
+              "Ident \"FortDeployPokemonResponse'Result\".Ident \"succ\": bad argument Ident \"FortDeployPokemonResponse'ERROR_PLAYER_BELOW_MINIMUM_LEVEL\". This value would be out of bounds."
+        succ FortDeployPokemonResponse'NO_RESULT_SET
+          = FortDeployPokemonResponse'SUCCESS
+        succ FortDeployPokemonResponse'SUCCESS
+          = FortDeployPokemonResponse'ERROR_ALREADY_HAS_POKEMON_ON_FORT
+        succ FortDeployPokemonResponse'ERROR_ALREADY_HAS_POKEMON_ON_FORT
+          = FortDeployPokemonResponse'ERROR_OPPOSING_TEAM_OWNS_FORT
+        succ FortDeployPokemonResponse'ERROR_OPPOSING_TEAM_OWNS_FORT
+          = FortDeployPokemonResponse'ERROR_FORT_IS_FULL
+        succ FortDeployPokemonResponse'ERROR_FORT_IS_FULL
+          = FortDeployPokemonResponse'ERROR_NOT_IN_RANGE
+        succ FortDeployPokemonResponse'ERROR_NOT_IN_RANGE
+          = FortDeployPokemonResponse'ERROR_PLAYER_HAS_NO_TEAM
+        succ FortDeployPokemonResponse'ERROR_PLAYER_HAS_NO_TEAM
+          = FortDeployPokemonResponse'ERROR_POKEMON_NOT_FULL_HP
+        succ FortDeployPokemonResponse'ERROR_POKEMON_NOT_FULL_HP
+          = FortDeployPokemonResponse'ERROR_PLAYER_BELOW_MINIMUM_LEVEL
+        pred FortDeployPokemonResponse'NO_RESULT_SET
+          = Prelude.error
+              "Ident \"FortDeployPokemonResponse'Result\".Ident \"pred\": bad argument Ident \"FortDeployPokemonResponse'NO_RESULT_SET\". This value would be out of bounds."
+        pred FortDeployPokemonResponse'SUCCESS
+          = FortDeployPokemonResponse'NO_RESULT_SET
+        pred FortDeployPokemonResponse'ERROR_ALREADY_HAS_POKEMON_ON_FORT
+          = FortDeployPokemonResponse'SUCCESS
+        pred FortDeployPokemonResponse'ERROR_OPPOSING_TEAM_OWNS_FORT
+          = FortDeployPokemonResponse'ERROR_ALREADY_HAS_POKEMON_ON_FORT
+        pred FortDeployPokemonResponse'ERROR_FORT_IS_FULL
+          = FortDeployPokemonResponse'ERROR_OPPOSING_TEAM_OWNS_FORT
+        pred FortDeployPokemonResponse'ERROR_NOT_IN_RANGE
+          = FortDeployPokemonResponse'ERROR_FORT_IS_FULL
+        pred FortDeployPokemonResponse'ERROR_PLAYER_HAS_NO_TEAM
+          = FortDeployPokemonResponse'ERROR_NOT_IN_RANGE
+        pred FortDeployPokemonResponse'ERROR_POKEMON_NOT_FULL_HP
+          = FortDeployPokemonResponse'ERROR_PLAYER_HAS_NO_TEAM
+        pred FortDeployPokemonResponse'ERROR_PLAYER_BELOW_MINIMUM_LEVEL
+          = FortDeployPokemonResponse'ERROR_POKEMON_NOT_FULL_HP
+        enumFrom = Data.ProtoLens.Message.Enum.messageEnumFrom
+        enumFromTo = Data.ProtoLens.Message.Enum.messageEnumFromTo
+        enumFromThen = Data.ProtoLens.Message.Enum.messageEnumFromThen
+        enumFromThenTo = Data.ProtoLens.Message.Enum.messageEnumFromThenTo
+
+instance Prelude.Bounded FortDeployPokemonResponse'Result where
+        minBound = FortDeployPokemonResponse'NO_RESULT_SET
+        maxBound
+          = FortDeployPokemonResponse'ERROR_PLAYER_BELOW_MINIMUM_LEVEL
+
+fortDetails ::
+            forall msg msg' . Data.ProtoLens.HasField "fortDetails" msg msg' =>
+              Lens.Family2.Lens msg msg' (Data.ProtoLens.Field "fortDetails" msg)
+                (Data.ProtoLens.Field "fortDetails" msg')
+fortDetails
+  = Data.ProtoLens.field
+      (Data.ProtoLens.ProxySym :: Data.ProtoLens.ProxySym "fortDetails")
+
+gymState ::
+         forall msg msg' . Data.ProtoLens.HasField "gymState" msg msg' =>
+           Lens.Family2.Lens msg msg' (Data.ProtoLens.Field "gymState" msg)
+             (Data.ProtoLens.Field "gymState" msg')
+gymState
+  = Data.ProtoLens.field
+      (Data.ProtoLens.ProxySym :: Data.ProtoLens.ProxySym "gymState")
+
+maybe'fortDetails ::
+                  forall msg msg' .
+                    Data.ProtoLens.HasField "maybe'fortDetails" msg msg' =>
+                    Lens.Family2.Lens msg msg'
+                      (Data.ProtoLens.Field "maybe'fortDetails" msg)
+                      (Data.ProtoLens.Field "maybe'fortDetails" msg')
+maybe'fortDetails
+  = Data.ProtoLens.field
+      (Data.ProtoLens.ProxySym ::
+         Data.ProtoLens.ProxySym "maybe'fortDetails")
+
+maybe'gymState ::
+               forall msg msg' .
+                 Data.ProtoLens.HasField "maybe'gymState" msg msg' =>
+                 Lens.Family2.Lens msg msg'
+                   (Data.ProtoLens.Field "maybe'gymState" msg)
+                   (Data.ProtoLens.Field "maybe'gymState" msg')
+maybe'gymState
+  = Data.ProtoLens.field
+      (Data.ProtoLens.ProxySym ::
+         Data.ProtoLens.ProxySym "maybe'gymState")
+
+maybe'pokemonData ::
+                  forall msg msg' .
+                    Data.ProtoLens.HasField "maybe'pokemonData" msg msg' =>
+                    Lens.Family2.Lens msg msg'
+                      (Data.ProtoLens.Field "maybe'pokemonData" msg)
+                      (Data.ProtoLens.Field "maybe'pokemonData" msg')
+maybe'pokemonData
+  = Data.ProtoLens.field
+      (Data.ProtoLens.ProxySym ::
+         Data.ProtoLens.ProxySym "maybe'pokemonData")
+
+pokemonData ::
+            forall msg msg' . Data.ProtoLens.HasField "pokemonData" msg msg' =>
+              Lens.Family2.Lens msg msg' (Data.ProtoLens.Field "pokemonData" msg)
+                (Data.ProtoLens.Field "pokemonData" msg')
+pokemonData
+  = Data.ProtoLens.field
+      (Data.ProtoLens.ProxySym :: Data.ProtoLens.ProxySym "pokemonData")
+
+result ::
+       forall msg msg' . Data.ProtoLens.HasField "result" msg msg' =>
+         Lens.Family2.Lens msg msg' (Data.ProtoLens.Field "result" msg)
+           (Data.ProtoLens.Field "result" msg')
+result
+  = Data.ProtoLens.field
+      (Data.ProtoLens.ProxySym :: Data.ProtoLens.ProxySym "result")
diff --git a/src/Proto/POGOProtos/Networking/Responses/FortDetailsResponse.hs b/src/Proto/POGOProtos/Networking/Responses/FortDetailsResponse.hs
new file mode 100644
--- /dev/null
+++ b/src/Proto/POGOProtos/Networking/Responses/FortDetailsResponse.hs
@@ -0,0 +1,405 @@
+{- This file was auto-generated from POGOProtos/Networking/Responses/FortDetailsResponse.proto by the proto-lens-protoc program. -}
+{-# LANGUAGE ScopedTypeVariables, DataKinds, TypeFamilies,
+  MultiParamTypeClasses, FlexibleContexts, FlexibleInstances #-}
+{-# OPTIONS_GHC -fno-warn-unused-imports#-}
+module Proto.POGOProtos.Networking.Responses.FortDetailsResponse
+       where
+import qualified Prelude
+import qualified Data.ProtoLens
+import qualified Data.ProtoLens.Message.Enum
+import qualified Lens.Family2
+import qualified Lens.Family2.Unchecked
+import qualified Data.Default.Class
+import qualified Data.Text
+import qualified Data.Int
+import qualified Data.Word
+import qualified Data.Map
+import qualified Data.ByteString
+import qualified Proto.POGOProtos.Data.PokemonData
+import qualified Proto.POGOProtos.Enums.TeamColor
+import qualified Proto.POGOProtos.Map.Fort.FortModifier
+import qualified Proto.POGOProtos.Map.Fort.FortType
+
+data FortDetailsResponse = FortDetailsResponse{_FortDetailsResponse'fortId
+                                               :: Data.Text.Text,
+                                               _FortDetailsResponse'teamColor ::
+                                               Proto.POGOProtos.Enums.TeamColor.TeamColor,
+                                               _FortDetailsResponse'pokemonData ::
+                                               Prelude.Maybe
+                                                 Proto.POGOProtos.Data.PokemonData.PokemonData,
+                                               _FortDetailsResponse'name :: Data.Text.Text,
+                                               _FortDetailsResponse'imageUrls :: [Data.Text.Text],
+                                               _FortDetailsResponse'fp :: Data.Int.Int32,
+                                               _FortDetailsResponse'stamina :: Data.Int.Int32,
+                                               _FortDetailsResponse'maxStamina :: Data.Int.Int32,
+                                               _FortDetailsResponse'type' ::
+                                               Proto.POGOProtos.Map.Fort.FortType.FortType,
+                                               _FortDetailsResponse'latitude :: Prelude.Double,
+                                               _FortDetailsResponse'longitude :: Prelude.Double,
+                                               _FortDetailsResponse'description :: Data.Text.Text,
+                                               _FortDetailsResponse'modifiers ::
+                                               [Proto.POGOProtos.Map.Fort.FortModifier.FortModifier]}
+                         deriving (Prelude.Show, Prelude.Eq)
+
+type instance Data.ProtoLens.Field "fortId" FortDetailsResponse =
+     Data.Text.Text
+
+instance Data.ProtoLens.HasField "fortId" FortDetailsResponse
+         FortDetailsResponse where
+        field _
+          = Lens.Family2.Unchecked.lens _FortDetailsResponse'fortId
+              (\ x__ y__ -> x__{_FortDetailsResponse'fortId = y__})
+
+type instance Data.ProtoLens.Field "teamColor" FortDetailsResponse
+     = Proto.POGOProtos.Enums.TeamColor.TeamColor
+
+instance Data.ProtoLens.HasField "teamColor" FortDetailsResponse
+         FortDetailsResponse where
+        field _
+          = Lens.Family2.Unchecked.lens _FortDetailsResponse'teamColor
+              (\ x__ y__ -> x__{_FortDetailsResponse'teamColor = y__})
+
+type instance
+     Data.ProtoLens.Field "pokemonData" FortDetailsResponse =
+     Proto.POGOProtos.Data.PokemonData.PokemonData
+
+instance Data.ProtoLens.HasField "pokemonData" FortDetailsResponse
+         FortDetailsResponse where
+        field _
+          = (Prelude..) maybe'pokemonData
+              (Data.ProtoLens.maybeLens Data.Default.Class.def)
+
+type instance
+     Data.ProtoLens.Field "maybe'pokemonData" FortDetailsResponse =
+     Prelude.Maybe Proto.POGOProtos.Data.PokemonData.PokemonData
+
+instance Data.ProtoLens.HasField "maybe'pokemonData"
+         FortDetailsResponse FortDetailsResponse where
+        field _
+          = Lens.Family2.Unchecked.lens _FortDetailsResponse'pokemonData
+              (\ x__ y__ -> x__{_FortDetailsResponse'pokemonData = y__})
+
+type instance Data.ProtoLens.Field "name" FortDetailsResponse =
+     Data.Text.Text
+
+instance Data.ProtoLens.HasField "name" FortDetailsResponse
+         FortDetailsResponse where
+        field _
+          = Lens.Family2.Unchecked.lens _FortDetailsResponse'name
+              (\ x__ y__ -> x__{_FortDetailsResponse'name = y__})
+
+type instance Data.ProtoLens.Field "imageUrls" FortDetailsResponse
+     = [Data.Text.Text]
+
+instance Data.ProtoLens.HasField "imageUrls" FortDetailsResponse
+         FortDetailsResponse where
+        field _
+          = Lens.Family2.Unchecked.lens _FortDetailsResponse'imageUrls
+              (\ x__ y__ -> x__{_FortDetailsResponse'imageUrls = y__})
+
+type instance Data.ProtoLens.Field "fp" FortDetailsResponse =
+     Data.Int.Int32
+
+instance Data.ProtoLens.HasField "fp" FortDetailsResponse
+         FortDetailsResponse where
+        field _
+          = Lens.Family2.Unchecked.lens _FortDetailsResponse'fp
+              (\ x__ y__ -> x__{_FortDetailsResponse'fp = y__})
+
+type instance Data.ProtoLens.Field "stamina" FortDetailsResponse =
+     Data.Int.Int32
+
+instance Data.ProtoLens.HasField "stamina" FortDetailsResponse
+         FortDetailsResponse where
+        field _
+          = Lens.Family2.Unchecked.lens _FortDetailsResponse'stamina
+              (\ x__ y__ -> x__{_FortDetailsResponse'stamina = y__})
+
+type instance Data.ProtoLens.Field "maxStamina" FortDetailsResponse
+     = Data.Int.Int32
+
+instance Data.ProtoLens.HasField "maxStamina" FortDetailsResponse
+         FortDetailsResponse where
+        field _
+          = Lens.Family2.Unchecked.lens _FortDetailsResponse'maxStamina
+              (\ x__ y__ -> x__{_FortDetailsResponse'maxStamina = y__})
+
+type instance Data.ProtoLens.Field "type'" FortDetailsResponse =
+     Proto.POGOProtos.Map.Fort.FortType.FortType
+
+instance Data.ProtoLens.HasField "type'" FortDetailsResponse
+         FortDetailsResponse where
+        field _
+          = Lens.Family2.Unchecked.lens _FortDetailsResponse'type'
+              (\ x__ y__ -> x__{_FortDetailsResponse'type' = y__})
+
+type instance Data.ProtoLens.Field "latitude" FortDetailsResponse =
+     Prelude.Double
+
+instance Data.ProtoLens.HasField "latitude" FortDetailsResponse
+         FortDetailsResponse where
+        field _
+          = Lens.Family2.Unchecked.lens _FortDetailsResponse'latitude
+              (\ x__ y__ -> x__{_FortDetailsResponse'latitude = y__})
+
+type instance Data.ProtoLens.Field "longitude" FortDetailsResponse
+     = Prelude.Double
+
+instance Data.ProtoLens.HasField "longitude" FortDetailsResponse
+         FortDetailsResponse where
+        field _
+          = Lens.Family2.Unchecked.lens _FortDetailsResponse'longitude
+              (\ x__ y__ -> x__{_FortDetailsResponse'longitude = y__})
+
+type instance
+     Data.ProtoLens.Field "description" FortDetailsResponse =
+     Data.Text.Text
+
+instance Data.ProtoLens.HasField "description" FortDetailsResponse
+         FortDetailsResponse where
+        field _
+          = Lens.Family2.Unchecked.lens _FortDetailsResponse'description
+              (\ x__ y__ -> x__{_FortDetailsResponse'description = y__})
+
+type instance Data.ProtoLens.Field "modifiers" FortDetailsResponse
+     = [Proto.POGOProtos.Map.Fort.FortModifier.FortModifier]
+
+instance Data.ProtoLens.HasField "modifiers" FortDetailsResponse
+         FortDetailsResponse where
+        field _
+          = Lens.Family2.Unchecked.lens _FortDetailsResponse'modifiers
+              (\ x__ y__ -> x__{_FortDetailsResponse'modifiers = y__})
+
+instance Data.Default.Class.Default FortDetailsResponse where
+        def
+          = FortDetailsResponse{_FortDetailsResponse'fortId =
+                                  Data.ProtoLens.fieldDefault,
+                                _FortDetailsResponse'teamColor = Data.Default.Class.def,
+                                _FortDetailsResponse'pokemonData = Prelude.Nothing,
+                                _FortDetailsResponse'name = Data.ProtoLens.fieldDefault,
+                                _FortDetailsResponse'imageUrls = [],
+                                _FortDetailsResponse'fp = Data.ProtoLens.fieldDefault,
+                                _FortDetailsResponse'stamina = Data.ProtoLens.fieldDefault,
+                                _FortDetailsResponse'maxStamina = Data.ProtoLens.fieldDefault,
+                                _FortDetailsResponse'type' = Data.Default.Class.def,
+                                _FortDetailsResponse'latitude = Data.ProtoLens.fieldDefault,
+                                _FortDetailsResponse'longitude = Data.ProtoLens.fieldDefault,
+                                _FortDetailsResponse'description = Data.ProtoLens.fieldDefault,
+                                _FortDetailsResponse'modifiers = []}
+
+instance Data.ProtoLens.Message FortDetailsResponse where
+        descriptor
+          = let fortId__field_descriptor
+                  = Data.ProtoLens.FieldDescriptor "fort_id"
+                      (Data.ProtoLens.StringField ::
+                         Data.ProtoLens.FieldTypeDescriptor Data.Text.Text)
+                      (Data.ProtoLens.PlainField Data.ProtoLens.Optional fortId)
+                teamColor__field_descriptor
+                  = Data.ProtoLens.FieldDescriptor "team_color"
+                      (Data.ProtoLens.EnumField ::
+                         Data.ProtoLens.FieldTypeDescriptor
+                           Proto.POGOProtos.Enums.TeamColor.TeamColor)
+                      (Data.ProtoLens.PlainField Data.ProtoLens.Optional teamColor)
+                pokemonData__field_descriptor
+                  = Data.ProtoLens.FieldDescriptor "pokemon_data"
+                      (Data.ProtoLens.MessageField ::
+                         Data.ProtoLens.FieldTypeDescriptor
+                           Proto.POGOProtos.Data.PokemonData.PokemonData)
+                      (Data.ProtoLens.OptionalField maybe'pokemonData)
+                name__field_descriptor
+                  = Data.ProtoLens.FieldDescriptor "name"
+                      (Data.ProtoLens.StringField ::
+                         Data.ProtoLens.FieldTypeDescriptor Data.Text.Text)
+                      (Data.ProtoLens.PlainField Data.ProtoLens.Optional name)
+                imageUrls__field_descriptor
+                  = Data.ProtoLens.FieldDescriptor "image_urls"
+                      (Data.ProtoLens.StringField ::
+                         Data.ProtoLens.FieldTypeDescriptor Data.Text.Text)
+                      (Data.ProtoLens.RepeatedField Data.ProtoLens.Unpacked imageUrls)
+                fp__field_descriptor
+                  = Data.ProtoLens.FieldDescriptor "fp"
+                      (Data.ProtoLens.Int32Field ::
+                         Data.ProtoLens.FieldTypeDescriptor Data.Int.Int32)
+                      (Data.ProtoLens.PlainField Data.ProtoLens.Optional fp)
+                stamina__field_descriptor
+                  = Data.ProtoLens.FieldDescriptor "stamina"
+                      (Data.ProtoLens.Int32Field ::
+                         Data.ProtoLens.FieldTypeDescriptor Data.Int.Int32)
+                      (Data.ProtoLens.PlainField Data.ProtoLens.Optional stamina)
+                maxStamina__field_descriptor
+                  = Data.ProtoLens.FieldDescriptor "max_stamina"
+                      (Data.ProtoLens.Int32Field ::
+                         Data.ProtoLens.FieldTypeDescriptor Data.Int.Int32)
+                      (Data.ProtoLens.PlainField Data.ProtoLens.Optional maxStamina)
+                type'__field_descriptor
+                  = Data.ProtoLens.FieldDescriptor "type"
+                      (Data.ProtoLens.EnumField ::
+                         Data.ProtoLens.FieldTypeDescriptor
+                           Proto.POGOProtos.Map.Fort.FortType.FortType)
+                      (Data.ProtoLens.PlainField Data.ProtoLens.Optional type')
+                latitude__field_descriptor
+                  = Data.ProtoLens.FieldDescriptor "latitude"
+                      (Data.ProtoLens.DoubleField ::
+                         Data.ProtoLens.FieldTypeDescriptor Prelude.Double)
+                      (Data.ProtoLens.PlainField Data.ProtoLens.Optional latitude)
+                longitude__field_descriptor
+                  = Data.ProtoLens.FieldDescriptor "longitude"
+                      (Data.ProtoLens.DoubleField ::
+                         Data.ProtoLens.FieldTypeDescriptor Prelude.Double)
+                      (Data.ProtoLens.PlainField Data.ProtoLens.Optional longitude)
+                description__field_descriptor
+                  = Data.ProtoLens.FieldDescriptor "description"
+                      (Data.ProtoLens.StringField ::
+                         Data.ProtoLens.FieldTypeDescriptor Data.Text.Text)
+                      (Data.ProtoLens.PlainField Data.ProtoLens.Optional description)
+                modifiers__field_descriptor
+                  = Data.ProtoLens.FieldDescriptor "modifiers"
+                      (Data.ProtoLens.MessageField ::
+                         Data.ProtoLens.FieldTypeDescriptor
+                           Proto.POGOProtos.Map.Fort.FortModifier.FortModifier)
+                      (Data.ProtoLens.RepeatedField Data.ProtoLens.Unpacked modifiers)
+              in
+              Data.ProtoLens.MessageDescriptor
+                (Data.Map.fromList
+                   [(Data.ProtoLens.Tag 1, fortId__field_descriptor),
+                    (Data.ProtoLens.Tag 2, teamColor__field_descriptor),
+                    (Data.ProtoLens.Tag 3, pokemonData__field_descriptor),
+                    (Data.ProtoLens.Tag 4, name__field_descriptor),
+                    (Data.ProtoLens.Tag 5, imageUrls__field_descriptor),
+                    (Data.ProtoLens.Tag 6, fp__field_descriptor),
+                    (Data.ProtoLens.Tag 7, stamina__field_descriptor),
+                    (Data.ProtoLens.Tag 8, maxStamina__field_descriptor),
+                    (Data.ProtoLens.Tag 9, type'__field_descriptor),
+                    (Data.ProtoLens.Tag 10, latitude__field_descriptor),
+                    (Data.ProtoLens.Tag 11, longitude__field_descriptor),
+                    (Data.ProtoLens.Tag 12, description__field_descriptor),
+                    (Data.ProtoLens.Tag 13, modifiers__field_descriptor)])
+                (Data.Map.fromList
+                   [("fort_id", fortId__field_descriptor),
+                    ("team_color", teamColor__field_descriptor),
+                    ("pokemon_data", pokemonData__field_descriptor),
+                    ("name", name__field_descriptor),
+                    ("image_urls", imageUrls__field_descriptor),
+                    ("fp", fp__field_descriptor),
+                    ("stamina", stamina__field_descriptor),
+                    ("max_stamina", maxStamina__field_descriptor),
+                    ("type", type'__field_descriptor),
+                    ("latitude", latitude__field_descriptor),
+                    ("longitude", longitude__field_descriptor),
+                    ("description", description__field_descriptor),
+                    ("modifiers", modifiers__field_descriptor)])
+
+description ::
+            forall msg msg' . Data.ProtoLens.HasField "description" msg msg' =>
+              Lens.Family2.Lens msg msg' (Data.ProtoLens.Field "description" msg)
+                (Data.ProtoLens.Field "description" msg')
+description
+  = Data.ProtoLens.field
+      (Data.ProtoLens.ProxySym :: Data.ProtoLens.ProxySym "description")
+
+fortId ::
+       forall msg msg' . Data.ProtoLens.HasField "fortId" msg msg' =>
+         Lens.Family2.Lens msg msg' (Data.ProtoLens.Field "fortId" msg)
+           (Data.ProtoLens.Field "fortId" msg')
+fortId
+  = Data.ProtoLens.field
+      (Data.ProtoLens.ProxySym :: Data.ProtoLens.ProxySym "fortId")
+
+fp ::
+   forall msg msg' . Data.ProtoLens.HasField "fp" msg msg' =>
+     Lens.Family2.Lens msg msg' (Data.ProtoLens.Field "fp" msg)
+       (Data.ProtoLens.Field "fp" msg')
+fp
+  = Data.ProtoLens.field
+      (Data.ProtoLens.ProxySym :: Data.ProtoLens.ProxySym "fp")
+
+imageUrls ::
+          forall msg msg' . Data.ProtoLens.HasField "imageUrls" msg msg' =>
+            Lens.Family2.Lens msg msg' (Data.ProtoLens.Field "imageUrls" msg)
+              (Data.ProtoLens.Field "imageUrls" msg')
+imageUrls
+  = Data.ProtoLens.field
+      (Data.ProtoLens.ProxySym :: Data.ProtoLens.ProxySym "imageUrls")
+
+latitude ::
+         forall msg msg' . Data.ProtoLens.HasField "latitude" msg msg' =>
+           Lens.Family2.Lens msg msg' (Data.ProtoLens.Field "latitude" msg)
+             (Data.ProtoLens.Field "latitude" msg')
+latitude
+  = Data.ProtoLens.field
+      (Data.ProtoLens.ProxySym :: Data.ProtoLens.ProxySym "latitude")
+
+longitude ::
+          forall msg msg' . Data.ProtoLens.HasField "longitude" msg msg' =>
+            Lens.Family2.Lens msg msg' (Data.ProtoLens.Field "longitude" msg)
+              (Data.ProtoLens.Field "longitude" msg')
+longitude
+  = Data.ProtoLens.field
+      (Data.ProtoLens.ProxySym :: Data.ProtoLens.ProxySym "longitude")
+
+maxStamina ::
+           forall msg msg' . Data.ProtoLens.HasField "maxStamina" msg msg' =>
+             Lens.Family2.Lens msg msg' (Data.ProtoLens.Field "maxStamina" msg)
+               (Data.ProtoLens.Field "maxStamina" msg')
+maxStamina
+  = Data.ProtoLens.field
+      (Data.ProtoLens.ProxySym :: Data.ProtoLens.ProxySym "maxStamina")
+
+maybe'pokemonData ::
+                  forall msg msg' .
+                    Data.ProtoLens.HasField "maybe'pokemonData" msg msg' =>
+                    Lens.Family2.Lens msg msg'
+                      (Data.ProtoLens.Field "maybe'pokemonData" msg)
+                      (Data.ProtoLens.Field "maybe'pokemonData" msg')
+maybe'pokemonData
+  = Data.ProtoLens.field
+      (Data.ProtoLens.ProxySym ::
+         Data.ProtoLens.ProxySym "maybe'pokemonData")
+
+modifiers ::
+          forall msg msg' . Data.ProtoLens.HasField "modifiers" msg msg' =>
+            Lens.Family2.Lens msg msg' (Data.ProtoLens.Field "modifiers" msg)
+              (Data.ProtoLens.Field "modifiers" msg')
+modifiers
+  = Data.ProtoLens.field
+      (Data.ProtoLens.ProxySym :: Data.ProtoLens.ProxySym "modifiers")
+
+name ::
+     forall msg msg' . Data.ProtoLens.HasField "name" msg msg' =>
+       Lens.Family2.Lens msg msg' (Data.ProtoLens.Field "name" msg)
+         (Data.ProtoLens.Field "name" msg')
+name
+  = Data.ProtoLens.field
+      (Data.ProtoLens.ProxySym :: Data.ProtoLens.ProxySym "name")
+
+pokemonData ::
+            forall msg msg' . Data.ProtoLens.HasField "pokemonData" msg msg' =>
+              Lens.Family2.Lens msg msg' (Data.ProtoLens.Field "pokemonData" msg)
+                (Data.ProtoLens.Field "pokemonData" msg')
+pokemonData
+  = Data.ProtoLens.field
+      (Data.ProtoLens.ProxySym :: Data.ProtoLens.ProxySym "pokemonData")
+
+stamina ::
+        forall msg msg' . Data.ProtoLens.HasField "stamina" msg msg' =>
+          Lens.Family2.Lens msg msg' (Data.ProtoLens.Field "stamina" msg)
+            (Data.ProtoLens.Field "stamina" msg')
+stamina
+  = Data.ProtoLens.field
+      (Data.ProtoLens.ProxySym :: Data.ProtoLens.ProxySym "stamina")
+
+teamColor ::
+          forall msg msg' . Data.ProtoLens.HasField "teamColor" msg msg' =>
+            Lens.Family2.Lens msg msg' (Data.ProtoLens.Field "teamColor" msg)
+              (Data.ProtoLens.Field "teamColor" msg')
+teamColor
+  = Data.ProtoLens.field
+      (Data.ProtoLens.ProxySym :: Data.ProtoLens.ProxySym "teamColor")
+
+type' ::
+      forall msg msg' . Data.ProtoLens.HasField "type'" msg msg' =>
+        Lens.Family2.Lens msg msg' (Data.ProtoLens.Field "type'" msg)
+          (Data.ProtoLens.Field "type'" msg')
+type'
+  = Data.ProtoLens.field
+      (Data.ProtoLens.ProxySym :: Data.ProtoLens.ProxySym "type'")
diff --git a/src/Proto/POGOProtos/Networking/Responses/FortRecallPokemonResponse.hs b/src/Proto/POGOProtos/Networking/Responses/FortRecallPokemonResponse.hs
new file mode 100644
--- /dev/null
+++ b/src/Proto/POGOProtos/Networking/Responses/FortRecallPokemonResponse.hs
@@ -0,0 +1,205 @@
+{- This file was auto-generated from POGOProtos/Networking/Responses/FortRecallPokemonResponse.proto by the proto-lens-protoc program. -}
+{-# LANGUAGE ScopedTypeVariables, DataKinds, TypeFamilies,
+  MultiParamTypeClasses, FlexibleContexts, FlexibleInstances #-}
+{-# OPTIONS_GHC -fno-warn-unused-imports#-}
+module Proto.POGOProtos.Networking.Responses.FortRecallPokemonResponse
+       where
+import qualified Prelude
+import qualified Data.ProtoLens
+import qualified Data.ProtoLens.Message.Enum
+import qualified Lens.Family2
+import qualified Lens.Family2.Unchecked
+import qualified Data.Default.Class
+import qualified Data.Text
+import qualified Data.Int
+import qualified Data.Word
+import qualified Data.Map
+import qualified Data.ByteString
+import qualified
+       Proto.POGOProtos.Networking.Responses.FortDetailsResponse
+
+data FortRecallPokemonResponse = FortRecallPokemonResponse{_FortRecallPokemonResponse'result
+                                                           :: FortRecallPokemonResponse'Result,
+                                                           _FortRecallPokemonResponse'fortDetails ::
+                                                           Prelude.Maybe
+                                                             Proto.POGOProtos.Networking.Responses.FortDetailsResponse.FortDetailsResponse}
+                               deriving (Prelude.Show, Prelude.Eq)
+
+type instance
+     Data.ProtoLens.Field "result" FortRecallPokemonResponse =
+     FortRecallPokemonResponse'Result
+
+instance Data.ProtoLens.HasField "result" FortRecallPokemonResponse
+         FortRecallPokemonResponse where
+        field _
+          = Lens.Family2.Unchecked.lens _FortRecallPokemonResponse'result
+              (\ x__ y__ -> x__{_FortRecallPokemonResponse'result = y__})
+
+type instance
+     Data.ProtoLens.Field "fortDetails" FortRecallPokemonResponse =
+     Proto.POGOProtos.Networking.Responses.FortDetailsResponse.FortDetailsResponse
+
+instance Data.ProtoLens.HasField "fortDetails"
+         FortRecallPokemonResponse FortRecallPokemonResponse where
+        field _
+          = (Prelude..) maybe'fortDetails
+              (Data.ProtoLens.maybeLens Data.Default.Class.def)
+
+type instance
+     Data.ProtoLens.Field "maybe'fortDetails" FortRecallPokemonResponse
+     =
+     Prelude.Maybe
+       Proto.POGOProtos.Networking.Responses.FortDetailsResponse.FortDetailsResponse
+
+instance Data.ProtoLens.HasField "maybe'fortDetails"
+         FortRecallPokemonResponse FortRecallPokemonResponse where
+        field _
+          = Lens.Family2.Unchecked.lens
+              _FortRecallPokemonResponse'fortDetails
+              (\ x__ y__ -> x__{_FortRecallPokemonResponse'fortDetails = y__})
+
+instance Data.Default.Class.Default FortRecallPokemonResponse where
+        def
+          = FortRecallPokemonResponse{_FortRecallPokemonResponse'result =
+                                        Data.Default.Class.def,
+                                      _FortRecallPokemonResponse'fortDetails = Prelude.Nothing}
+
+instance Data.ProtoLens.Message FortRecallPokemonResponse where
+        descriptor
+          = let result__field_descriptor
+                  = Data.ProtoLens.FieldDescriptor "result"
+                      (Data.ProtoLens.EnumField ::
+                         Data.ProtoLens.FieldTypeDescriptor
+                           FortRecallPokemonResponse'Result)
+                      (Data.ProtoLens.PlainField Data.ProtoLens.Optional result)
+                fortDetails__field_descriptor
+                  = Data.ProtoLens.FieldDescriptor "fort_details"
+                      (Data.ProtoLens.MessageField ::
+                         Data.ProtoLens.FieldTypeDescriptor
+                           Proto.POGOProtos.Networking.Responses.FortDetailsResponse.FortDetailsResponse)
+                      (Data.ProtoLens.OptionalField maybe'fortDetails)
+              in
+              Data.ProtoLens.MessageDescriptor
+                (Data.Map.fromList
+                   [(Data.ProtoLens.Tag 1, result__field_descriptor),
+                    (Data.ProtoLens.Tag 2, fortDetails__field_descriptor)])
+                (Data.Map.fromList
+                   [("result", result__field_descriptor),
+                    ("fort_details", fortDetails__field_descriptor)])
+
+data FortRecallPokemonResponse'Result = FortRecallPokemonResponse'NO_RESULT_SET
+                                      | FortRecallPokemonResponse'SUCCESS
+                                      | FortRecallPokemonResponse'ERROR_NOT_IN_RANGE
+                                      | FortRecallPokemonResponse'ERROR_POKEMON_NOT_ON_FORT
+                                      | FortRecallPokemonResponse'ERROR_NO_PLAYER
+                                      deriving (Prelude.Show, Prelude.Eq)
+
+instance Data.Default.Class.Default
+         FortRecallPokemonResponse'Result where
+        def = FortRecallPokemonResponse'NO_RESULT_SET
+
+instance Data.ProtoLens.FieldDefault
+         FortRecallPokemonResponse'Result where
+        fieldDefault = FortRecallPokemonResponse'NO_RESULT_SET
+
+instance Data.ProtoLens.MessageEnum
+         FortRecallPokemonResponse'Result where
+        maybeToEnum 0
+          = Prelude.Just FortRecallPokemonResponse'NO_RESULT_SET
+        maybeToEnum 1 = Prelude.Just FortRecallPokemonResponse'SUCCESS
+        maybeToEnum 2
+          = Prelude.Just FortRecallPokemonResponse'ERROR_NOT_IN_RANGE
+        maybeToEnum 3
+          = Prelude.Just FortRecallPokemonResponse'ERROR_POKEMON_NOT_ON_FORT
+        maybeToEnum 4
+          = Prelude.Just FortRecallPokemonResponse'ERROR_NO_PLAYER
+        maybeToEnum _ = Prelude.Nothing
+        showEnum FortRecallPokemonResponse'NO_RESULT_SET = "NO_RESULT_SET"
+        showEnum FortRecallPokemonResponse'SUCCESS = "SUCCESS"
+        showEnum FortRecallPokemonResponse'ERROR_NOT_IN_RANGE
+          = "ERROR_NOT_IN_RANGE"
+        showEnum FortRecallPokemonResponse'ERROR_POKEMON_NOT_ON_FORT
+          = "ERROR_POKEMON_NOT_ON_FORT"
+        showEnum FortRecallPokemonResponse'ERROR_NO_PLAYER
+          = "ERROR_NO_PLAYER"
+        readEnum "NO_RESULT_SET"
+          = Prelude.Just FortRecallPokemonResponse'NO_RESULT_SET
+        readEnum "SUCCESS" = Prelude.Just FortRecallPokemonResponse'SUCCESS
+        readEnum "ERROR_NOT_IN_RANGE"
+          = Prelude.Just FortRecallPokemonResponse'ERROR_NOT_IN_RANGE
+        readEnum "ERROR_POKEMON_NOT_ON_FORT"
+          = Prelude.Just FortRecallPokemonResponse'ERROR_POKEMON_NOT_ON_FORT
+        readEnum "ERROR_NO_PLAYER"
+          = Prelude.Just FortRecallPokemonResponse'ERROR_NO_PLAYER
+        readEnum _ = Prelude.Nothing
+
+instance Prelude.Enum FortRecallPokemonResponse'Result where
+        toEnum k__
+          = Prelude.maybe
+              (Prelude.error
+                 ((Prelude.++) "toEnum: unknown value for enum Result: "
+                    (Prelude.show k__)))
+              Prelude.id
+              (Data.ProtoLens.maybeToEnum k__)
+        fromEnum FortRecallPokemonResponse'NO_RESULT_SET = 0
+        fromEnum FortRecallPokemonResponse'SUCCESS = 1
+        fromEnum FortRecallPokemonResponse'ERROR_NOT_IN_RANGE = 2
+        fromEnum FortRecallPokemonResponse'ERROR_POKEMON_NOT_ON_FORT = 3
+        fromEnum FortRecallPokemonResponse'ERROR_NO_PLAYER = 4
+        succ FortRecallPokemonResponse'ERROR_NO_PLAYER
+          = Prelude.error
+              "Ident \"FortRecallPokemonResponse'Result\".Ident \"succ\": bad argument Ident \"FortRecallPokemonResponse'ERROR_NO_PLAYER\". This value would be out of bounds."
+        succ FortRecallPokemonResponse'NO_RESULT_SET
+          = FortRecallPokemonResponse'SUCCESS
+        succ FortRecallPokemonResponse'SUCCESS
+          = FortRecallPokemonResponse'ERROR_NOT_IN_RANGE
+        succ FortRecallPokemonResponse'ERROR_NOT_IN_RANGE
+          = FortRecallPokemonResponse'ERROR_POKEMON_NOT_ON_FORT
+        succ FortRecallPokemonResponse'ERROR_POKEMON_NOT_ON_FORT
+          = FortRecallPokemonResponse'ERROR_NO_PLAYER
+        pred FortRecallPokemonResponse'NO_RESULT_SET
+          = Prelude.error
+              "Ident \"FortRecallPokemonResponse'Result\".Ident \"pred\": bad argument Ident \"FortRecallPokemonResponse'NO_RESULT_SET\". This value would be out of bounds."
+        pred FortRecallPokemonResponse'SUCCESS
+          = FortRecallPokemonResponse'NO_RESULT_SET
+        pred FortRecallPokemonResponse'ERROR_NOT_IN_RANGE
+          = FortRecallPokemonResponse'SUCCESS
+        pred FortRecallPokemonResponse'ERROR_POKEMON_NOT_ON_FORT
+          = FortRecallPokemonResponse'ERROR_NOT_IN_RANGE
+        pred FortRecallPokemonResponse'ERROR_NO_PLAYER
+          = FortRecallPokemonResponse'ERROR_POKEMON_NOT_ON_FORT
+        enumFrom = Data.ProtoLens.Message.Enum.messageEnumFrom
+        enumFromTo = Data.ProtoLens.Message.Enum.messageEnumFromTo
+        enumFromThen = Data.ProtoLens.Message.Enum.messageEnumFromThen
+        enumFromThenTo = Data.ProtoLens.Message.Enum.messageEnumFromThenTo
+
+instance Prelude.Bounded FortRecallPokemonResponse'Result where
+        minBound = FortRecallPokemonResponse'NO_RESULT_SET
+        maxBound = FortRecallPokemonResponse'ERROR_NO_PLAYER
+
+fortDetails ::
+            forall msg msg' . Data.ProtoLens.HasField "fortDetails" msg msg' =>
+              Lens.Family2.Lens msg msg' (Data.ProtoLens.Field "fortDetails" msg)
+                (Data.ProtoLens.Field "fortDetails" msg')
+fortDetails
+  = Data.ProtoLens.field
+      (Data.ProtoLens.ProxySym :: Data.ProtoLens.ProxySym "fortDetails")
+
+maybe'fortDetails ::
+                  forall msg msg' .
+                    Data.ProtoLens.HasField "maybe'fortDetails" msg msg' =>
+                    Lens.Family2.Lens msg msg'
+                      (Data.ProtoLens.Field "maybe'fortDetails" msg)
+                      (Data.ProtoLens.Field "maybe'fortDetails" msg')
+maybe'fortDetails
+  = Data.ProtoLens.field
+      (Data.ProtoLens.ProxySym ::
+         Data.ProtoLens.ProxySym "maybe'fortDetails")
+
+result ::
+       forall msg msg' . Data.ProtoLens.HasField "result" msg msg' =>
+         Lens.Family2.Lens msg msg' (Data.ProtoLens.Field "result" msg)
+           (Data.ProtoLens.Field "result" msg')
+result
+  = Data.ProtoLens.field
+      (Data.ProtoLens.ProxySym :: Data.ProtoLens.ProxySym "result")
diff --git a/src/Proto/POGOProtos/Networking/Responses/FortSearchResponse.hs b/src/Proto/POGOProtos/Networking/Responses/FortSearchResponse.hs
new file mode 100644
--- /dev/null
+++ b/src/Proto/POGOProtos/Networking/Responses/FortSearchResponse.hs
@@ -0,0 +1,355 @@
+{- This file was auto-generated from POGOProtos/Networking/Responses/FortSearchResponse.proto by the proto-lens-protoc program. -}
+{-# LANGUAGE ScopedTypeVariables, DataKinds, TypeFamilies,
+  MultiParamTypeClasses, FlexibleContexts, FlexibleInstances #-}
+{-# OPTIONS_GHC -fno-warn-unused-imports#-}
+module Proto.POGOProtos.Networking.Responses.FortSearchResponse
+       where
+import qualified Prelude
+import qualified Data.ProtoLens
+import qualified Data.ProtoLens.Message.Enum
+import qualified Lens.Family2
+import qualified Lens.Family2.Unchecked
+import qualified Data.Default.Class
+import qualified Data.Text
+import qualified Data.Int
+import qualified Data.Word
+import qualified Data.Map
+import qualified Data.ByteString
+import qualified Proto.POGOProtos.Data.PokemonData
+import qualified Proto.POGOProtos.Inventory.Item.ItemAward
+
+data FortSearchResponse = FortSearchResponse{_FortSearchResponse'result
+                                             :: FortSearchResponse'Result,
+                                             _FortSearchResponse'itemsAwarded ::
+                                             [Proto.POGOProtos.Inventory.Item.ItemAward.ItemAward],
+                                             _FortSearchResponse'gemsAwarded :: Data.Int.Int32,
+                                             _FortSearchResponse'pokemonDataEgg ::
+                                             Prelude.Maybe
+                                               Proto.POGOProtos.Data.PokemonData.PokemonData,
+                                             _FortSearchResponse'experienceAwarded ::
+                                             Data.Int.Int32,
+                                             _FortSearchResponse'cooldownCompleteTimestampMs ::
+                                             Data.Int.Int64,
+                                             _FortSearchResponse'chainHackSequenceNumber ::
+                                             Data.Int.Int32}
+                        deriving (Prelude.Show, Prelude.Eq)
+
+type instance Data.ProtoLens.Field "result" FortSearchResponse =
+     FortSearchResponse'Result
+
+instance Data.ProtoLens.HasField "result" FortSearchResponse
+         FortSearchResponse where
+        field _
+          = Lens.Family2.Unchecked.lens _FortSearchResponse'result
+              (\ x__ y__ -> x__{_FortSearchResponse'result = y__})
+
+type instance
+     Data.ProtoLens.Field "itemsAwarded" FortSearchResponse =
+     [Proto.POGOProtos.Inventory.Item.ItemAward.ItemAward]
+
+instance Data.ProtoLens.HasField "itemsAwarded" FortSearchResponse
+         FortSearchResponse where
+        field _
+          = Lens.Family2.Unchecked.lens _FortSearchResponse'itemsAwarded
+              (\ x__ y__ -> x__{_FortSearchResponse'itemsAwarded = y__})
+
+type instance Data.ProtoLens.Field "gemsAwarded" FortSearchResponse
+     = Data.Int.Int32
+
+instance Data.ProtoLens.HasField "gemsAwarded" FortSearchResponse
+         FortSearchResponse where
+        field _
+          = Lens.Family2.Unchecked.lens _FortSearchResponse'gemsAwarded
+              (\ x__ y__ -> x__{_FortSearchResponse'gemsAwarded = y__})
+
+type instance
+     Data.ProtoLens.Field "pokemonDataEgg" FortSearchResponse =
+     Proto.POGOProtos.Data.PokemonData.PokemonData
+
+instance Data.ProtoLens.HasField "pokemonDataEgg"
+         FortSearchResponse FortSearchResponse where
+        field _
+          = (Prelude..) maybe'pokemonDataEgg
+              (Data.ProtoLens.maybeLens Data.Default.Class.def)
+
+type instance
+     Data.ProtoLens.Field "maybe'pokemonDataEgg" FortSearchResponse =
+     Prelude.Maybe Proto.POGOProtos.Data.PokemonData.PokemonData
+
+instance Data.ProtoLens.HasField "maybe'pokemonDataEgg"
+         FortSearchResponse FortSearchResponse where
+        field _
+          = Lens.Family2.Unchecked.lens _FortSearchResponse'pokemonDataEgg
+              (\ x__ y__ -> x__{_FortSearchResponse'pokemonDataEgg = y__})
+
+type instance
+     Data.ProtoLens.Field "experienceAwarded" FortSearchResponse =
+     Data.Int.Int32
+
+instance Data.ProtoLens.HasField "experienceAwarded"
+         FortSearchResponse FortSearchResponse where
+        field _
+          = Lens.Family2.Unchecked.lens _FortSearchResponse'experienceAwarded
+              (\ x__ y__ -> x__{_FortSearchResponse'experienceAwarded = y__})
+
+type instance
+     Data.ProtoLens.Field "cooldownCompleteTimestampMs"
+       FortSearchResponse
+     = Data.Int.Int64
+
+instance Data.ProtoLens.HasField "cooldownCompleteTimestampMs"
+         FortSearchResponse FortSearchResponse where
+        field _
+          = Lens.Family2.Unchecked.lens
+              _FortSearchResponse'cooldownCompleteTimestampMs
+              (\ x__ y__ ->
+                 x__{_FortSearchResponse'cooldownCompleteTimestampMs = y__})
+
+type instance
+     Data.ProtoLens.Field "chainHackSequenceNumber" FortSearchResponse =
+     Data.Int.Int32
+
+instance Data.ProtoLens.HasField "chainHackSequenceNumber"
+         FortSearchResponse FortSearchResponse where
+        field _
+          = Lens.Family2.Unchecked.lens
+              _FortSearchResponse'chainHackSequenceNumber
+              (\ x__ y__ ->
+                 x__{_FortSearchResponse'chainHackSequenceNumber = y__})
+
+instance Data.Default.Class.Default FortSearchResponse where
+        def
+          = FortSearchResponse{_FortSearchResponse'result =
+                                 Data.Default.Class.def,
+                               _FortSearchResponse'itemsAwarded = [],
+                               _FortSearchResponse'gemsAwarded = Data.ProtoLens.fieldDefault,
+                               _FortSearchResponse'pokemonDataEgg = Prelude.Nothing,
+                               _FortSearchResponse'experienceAwarded =
+                                 Data.ProtoLens.fieldDefault,
+                               _FortSearchResponse'cooldownCompleteTimestampMs =
+                                 Data.ProtoLens.fieldDefault,
+                               _FortSearchResponse'chainHackSequenceNumber =
+                                 Data.ProtoLens.fieldDefault}
+
+instance Data.ProtoLens.Message FortSearchResponse where
+        descriptor
+          = let result__field_descriptor
+                  = Data.ProtoLens.FieldDescriptor "result"
+                      (Data.ProtoLens.EnumField ::
+                         Data.ProtoLens.FieldTypeDescriptor FortSearchResponse'Result)
+                      (Data.ProtoLens.PlainField Data.ProtoLens.Optional result)
+                itemsAwarded__field_descriptor
+                  = Data.ProtoLens.FieldDescriptor "items_awarded"
+                      (Data.ProtoLens.MessageField ::
+                         Data.ProtoLens.FieldTypeDescriptor
+                           Proto.POGOProtos.Inventory.Item.ItemAward.ItemAward)
+                      (Data.ProtoLens.RepeatedField Data.ProtoLens.Unpacked itemsAwarded)
+                gemsAwarded__field_descriptor
+                  = Data.ProtoLens.FieldDescriptor "gems_awarded"
+                      (Data.ProtoLens.Int32Field ::
+                         Data.ProtoLens.FieldTypeDescriptor Data.Int.Int32)
+                      (Data.ProtoLens.PlainField Data.ProtoLens.Optional gemsAwarded)
+                pokemonDataEgg__field_descriptor
+                  = Data.ProtoLens.FieldDescriptor "pokemon_data_egg"
+                      (Data.ProtoLens.MessageField ::
+                         Data.ProtoLens.FieldTypeDescriptor
+                           Proto.POGOProtos.Data.PokemonData.PokemonData)
+                      (Data.ProtoLens.OptionalField maybe'pokemonDataEgg)
+                experienceAwarded__field_descriptor
+                  = Data.ProtoLens.FieldDescriptor "experience_awarded"
+                      (Data.ProtoLens.Int32Field ::
+                         Data.ProtoLens.FieldTypeDescriptor Data.Int.Int32)
+                      (Data.ProtoLens.PlainField Data.ProtoLens.Optional
+                         experienceAwarded)
+                cooldownCompleteTimestampMs__field_descriptor
+                  = Data.ProtoLens.FieldDescriptor "cooldown_complete_timestamp_ms"
+                      (Data.ProtoLens.Int64Field ::
+                         Data.ProtoLens.FieldTypeDescriptor Data.Int.Int64)
+                      (Data.ProtoLens.PlainField Data.ProtoLens.Optional
+                         cooldownCompleteTimestampMs)
+                chainHackSequenceNumber__field_descriptor
+                  = Data.ProtoLens.FieldDescriptor "chain_hack_sequence_number"
+                      (Data.ProtoLens.Int32Field ::
+                         Data.ProtoLens.FieldTypeDescriptor Data.Int.Int32)
+                      (Data.ProtoLens.PlainField Data.ProtoLens.Optional
+                         chainHackSequenceNumber)
+              in
+              Data.ProtoLens.MessageDescriptor
+                (Data.Map.fromList
+                   [(Data.ProtoLens.Tag 1, result__field_descriptor),
+                    (Data.ProtoLens.Tag 2, itemsAwarded__field_descriptor),
+                    (Data.ProtoLens.Tag 3, gemsAwarded__field_descriptor),
+                    (Data.ProtoLens.Tag 4, pokemonDataEgg__field_descriptor),
+                    (Data.ProtoLens.Tag 5, experienceAwarded__field_descriptor),
+                    (Data.ProtoLens.Tag 6,
+                     cooldownCompleteTimestampMs__field_descriptor),
+                    (Data.ProtoLens.Tag 7, chainHackSequenceNumber__field_descriptor)])
+                (Data.Map.fromList
+                   [("result", result__field_descriptor),
+                    ("items_awarded", itemsAwarded__field_descriptor),
+                    ("gems_awarded", gemsAwarded__field_descriptor),
+                    ("pokemon_data_egg", pokemonDataEgg__field_descriptor),
+                    ("experience_awarded", experienceAwarded__field_descriptor),
+                    ("cooldown_complete_timestamp_ms",
+                     cooldownCompleteTimestampMs__field_descriptor),
+                    ("chain_hack_sequence_number",
+                     chainHackSequenceNumber__field_descriptor)])
+
+data FortSearchResponse'Result = FortSearchResponse'NO_RESULT_SET
+                               | FortSearchResponse'SUCCESS
+                               | FortSearchResponse'OUT_OF_RANGE
+                               | FortSearchResponse'IN_COOLDOWN_PERIOD
+                               | FortSearchResponse'INVENTORY_FULL
+                               deriving (Prelude.Show, Prelude.Eq)
+
+instance Data.Default.Class.Default FortSearchResponse'Result where
+        def = FortSearchResponse'NO_RESULT_SET
+
+instance Data.ProtoLens.FieldDefault FortSearchResponse'Result
+         where
+        fieldDefault = FortSearchResponse'NO_RESULT_SET
+
+instance Data.ProtoLens.MessageEnum FortSearchResponse'Result where
+        maybeToEnum 0 = Prelude.Just FortSearchResponse'NO_RESULT_SET
+        maybeToEnum 1 = Prelude.Just FortSearchResponse'SUCCESS
+        maybeToEnum 2 = Prelude.Just FortSearchResponse'OUT_OF_RANGE
+        maybeToEnum 3 = Prelude.Just FortSearchResponse'IN_COOLDOWN_PERIOD
+        maybeToEnum 4 = Prelude.Just FortSearchResponse'INVENTORY_FULL
+        maybeToEnum _ = Prelude.Nothing
+        showEnum FortSearchResponse'NO_RESULT_SET = "NO_RESULT_SET"
+        showEnum FortSearchResponse'SUCCESS = "SUCCESS"
+        showEnum FortSearchResponse'OUT_OF_RANGE = "OUT_OF_RANGE"
+        showEnum FortSearchResponse'IN_COOLDOWN_PERIOD
+          = "IN_COOLDOWN_PERIOD"
+        showEnum FortSearchResponse'INVENTORY_FULL = "INVENTORY_FULL"
+        readEnum "NO_RESULT_SET"
+          = Prelude.Just FortSearchResponse'NO_RESULT_SET
+        readEnum "SUCCESS" = Prelude.Just FortSearchResponse'SUCCESS
+        readEnum "OUT_OF_RANGE"
+          = Prelude.Just FortSearchResponse'OUT_OF_RANGE
+        readEnum "IN_COOLDOWN_PERIOD"
+          = Prelude.Just FortSearchResponse'IN_COOLDOWN_PERIOD
+        readEnum "INVENTORY_FULL"
+          = Prelude.Just FortSearchResponse'INVENTORY_FULL
+        readEnum _ = Prelude.Nothing
+
+instance Prelude.Enum FortSearchResponse'Result where
+        toEnum k__
+          = Prelude.maybe
+              (Prelude.error
+                 ((Prelude.++) "toEnum: unknown value for enum Result: "
+                    (Prelude.show k__)))
+              Prelude.id
+              (Data.ProtoLens.maybeToEnum k__)
+        fromEnum FortSearchResponse'NO_RESULT_SET = 0
+        fromEnum FortSearchResponse'SUCCESS = 1
+        fromEnum FortSearchResponse'OUT_OF_RANGE = 2
+        fromEnum FortSearchResponse'IN_COOLDOWN_PERIOD = 3
+        fromEnum FortSearchResponse'INVENTORY_FULL = 4
+        succ FortSearchResponse'INVENTORY_FULL
+          = Prelude.error
+              "Ident \"FortSearchResponse'Result\".Ident \"succ\": bad argument Ident \"FortSearchResponse'INVENTORY_FULL\". This value would be out of bounds."
+        succ FortSearchResponse'NO_RESULT_SET = FortSearchResponse'SUCCESS
+        succ FortSearchResponse'SUCCESS = FortSearchResponse'OUT_OF_RANGE
+        succ FortSearchResponse'OUT_OF_RANGE
+          = FortSearchResponse'IN_COOLDOWN_PERIOD
+        succ FortSearchResponse'IN_COOLDOWN_PERIOD
+          = FortSearchResponse'INVENTORY_FULL
+        pred FortSearchResponse'NO_RESULT_SET
+          = Prelude.error
+              "Ident \"FortSearchResponse'Result\".Ident \"pred\": bad argument Ident \"FortSearchResponse'NO_RESULT_SET\". This value would be out of bounds."
+        pred FortSearchResponse'SUCCESS = FortSearchResponse'NO_RESULT_SET
+        pred FortSearchResponse'OUT_OF_RANGE = FortSearchResponse'SUCCESS
+        pred FortSearchResponse'IN_COOLDOWN_PERIOD
+          = FortSearchResponse'OUT_OF_RANGE
+        pred FortSearchResponse'INVENTORY_FULL
+          = FortSearchResponse'IN_COOLDOWN_PERIOD
+        enumFrom = Data.ProtoLens.Message.Enum.messageEnumFrom
+        enumFromTo = Data.ProtoLens.Message.Enum.messageEnumFromTo
+        enumFromThen = Data.ProtoLens.Message.Enum.messageEnumFromThen
+        enumFromThenTo = Data.ProtoLens.Message.Enum.messageEnumFromThenTo
+
+instance Prelude.Bounded FortSearchResponse'Result where
+        minBound = FortSearchResponse'NO_RESULT_SET
+        maxBound = FortSearchResponse'INVENTORY_FULL
+
+chainHackSequenceNumber ::
+                        forall msg msg' .
+                          Data.ProtoLens.HasField "chainHackSequenceNumber" msg msg' =>
+                          Lens.Family2.Lens msg msg'
+                            (Data.ProtoLens.Field "chainHackSequenceNumber" msg)
+                            (Data.ProtoLens.Field "chainHackSequenceNumber" msg')
+chainHackSequenceNumber
+  = Data.ProtoLens.field
+      (Data.ProtoLens.ProxySym ::
+         Data.ProtoLens.ProxySym "chainHackSequenceNumber")
+
+cooldownCompleteTimestampMs ::
+                            forall msg msg' .
+                              Data.ProtoLens.HasField "cooldownCompleteTimestampMs" msg msg' =>
+                              Lens.Family2.Lens msg msg'
+                                (Data.ProtoLens.Field "cooldownCompleteTimestampMs" msg)
+                                (Data.ProtoLens.Field "cooldownCompleteTimestampMs" msg')
+cooldownCompleteTimestampMs
+  = Data.ProtoLens.field
+      (Data.ProtoLens.ProxySym ::
+         Data.ProtoLens.ProxySym "cooldownCompleteTimestampMs")
+
+experienceAwarded ::
+                  forall msg msg' .
+                    Data.ProtoLens.HasField "experienceAwarded" msg msg' =>
+                    Lens.Family2.Lens msg msg'
+                      (Data.ProtoLens.Field "experienceAwarded" msg)
+                      (Data.ProtoLens.Field "experienceAwarded" msg')
+experienceAwarded
+  = Data.ProtoLens.field
+      (Data.ProtoLens.ProxySym ::
+         Data.ProtoLens.ProxySym "experienceAwarded")
+
+gemsAwarded ::
+            forall msg msg' . Data.ProtoLens.HasField "gemsAwarded" msg msg' =>
+              Lens.Family2.Lens msg msg' (Data.ProtoLens.Field "gemsAwarded" msg)
+                (Data.ProtoLens.Field "gemsAwarded" msg')
+gemsAwarded
+  = Data.ProtoLens.field
+      (Data.ProtoLens.ProxySym :: Data.ProtoLens.ProxySym "gemsAwarded")
+
+itemsAwarded ::
+             forall msg msg' .
+               Data.ProtoLens.HasField "itemsAwarded" msg msg' =>
+               Lens.Family2.Lens msg msg'
+                 (Data.ProtoLens.Field "itemsAwarded" msg)
+                 (Data.ProtoLens.Field "itemsAwarded" msg')
+itemsAwarded
+  = Data.ProtoLens.field
+      (Data.ProtoLens.ProxySym :: Data.ProtoLens.ProxySym "itemsAwarded")
+
+maybe'pokemonDataEgg ::
+                     forall msg msg' .
+                       Data.ProtoLens.HasField "maybe'pokemonDataEgg" msg msg' =>
+                       Lens.Family2.Lens msg msg'
+                         (Data.ProtoLens.Field "maybe'pokemonDataEgg" msg)
+                         (Data.ProtoLens.Field "maybe'pokemonDataEgg" msg')
+maybe'pokemonDataEgg
+  = Data.ProtoLens.field
+      (Data.ProtoLens.ProxySym ::
+         Data.ProtoLens.ProxySym "maybe'pokemonDataEgg")
+
+pokemonDataEgg ::
+               forall msg msg' .
+                 Data.ProtoLens.HasField "pokemonDataEgg" msg msg' =>
+                 Lens.Family2.Lens msg msg'
+                   (Data.ProtoLens.Field "pokemonDataEgg" msg)
+                   (Data.ProtoLens.Field "pokemonDataEgg" msg')
+pokemonDataEgg
+  = Data.ProtoLens.field
+      (Data.ProtoLens.ProxySym ::
+         Data.ProtoLens.ProxySym "pokemonDataEgg")
+
+result ::
+       forall msg msg' . Data.ProtoLens.HasField "result" msg msg' =>
+         Lens.Family2.Lens msg msg' (Data.ProtoLens.Field "result" msg)
+           (Data.ProtoLens.Field "result" msg')
+result
+  = Data.ProtoLens.field
+      (Data.ProtoLens.ProxySym :: Data.ProtoLens.ProxySym "result")
diff --git a/src/Proto/POGOProtos/Networking/Responses/GetAssetDigestResponse.hs b/src/Proto/POGOProtos/Networking/Responses/GetAssetDigestResponse.hs
new file mode 100644
--- /dev/null
+++ b/src/Proto/POGOProtos/Networking/Responses/GetAssetDigestResponse.hs
@@ -0,0 +1,88 @@
+{- This file was auto-generated from POGOProtos/Networking/Responses/GetAssetDigestResponse.proto by the proto-lens-protoc program. -}
+{-# LANGUAGE ScopedTypeVariables, DataKinds, TypeFamilies,
+  MultiParamTypeClasses, FlexibleContexts, FlexibleInstances #-}
+{-# OPTIONS_GHC -fno-warn-unused-imports#-}
+module Proto.POGOProtos.Networking.Responses.GetAssetDigestResponse
+       where
+import qualified Prelude
+import qualified Data.ProtoLens
+import qualified Data.ProtoLens.Message.Enum
+import qualified Lens.Family2
+import qualified Lens.Family2.Unchecked
+import qualified Data.Default.Class
+import qualified Data.Text
+import qualified Data.Int
+import qualified Data.Word
+import qualified Data.Map
+import qualified Data.ByteString
+import qualified Proto.POGOProtos.Data.AssetDigestEntry
+
+data GetAssetDigestResponse = GetAssetDigestResponse{_GetAssetDigestResponse'digest
+                                                     ::
+                                                     [Proto.POGOProtos.Data.AssetDigestEntry.AssetDigestEntry],
+                                                     _GetAssetDigestResponse'timestampMs ::
+                                                     Data.Word.Word64}
+                            deriving (Prelude.Show, Prelude.Eq)
+
+type instance Data.ProtoLens.Field "digest" GetAssetDigestResponse
+     = [Proto.POGOProtos.Data.AssetDigestEntry.AssetDigestEntry]
+
+instance Data.ProtoLens.HasField "digest" GetAssetDigestResponse
+         GetAssetDigestResponse where
+        field _
+          = Lens.Family2.Unchecked.lens _GetAssetDigestResponse'digest
+              (\ x__ y__ -> x__{_GetAssetDigestResponse'digest = y__})
+
+type instance
+     Data.ProtoLens.Field "timestampMs" GetAssetDigestResponse =
+     Data.Word.Word64
+
+instance Data.ProtoLens.HasField "timestampMs"
+         GetAssetDigestResponse GetAssetDigestResponse where
+        field _
+          = Lens.Family2.Unchecked.lens _GetAssetDigestResponse'timestampMs
+              (\ x__ y__ -> x__{_GetAssetDigestResponse'timestampMs = y__})
+
+instance Data.Default.Class.Default GetAssetDigestResponse where
+        def
+          = GetAssetDigestResponse{_GetAssetDigestResponse'digest = [],
+                                   _GetAssetDigestResponse'timestampMs =
+                                     Data.ProtoLens.fieldDefault}
+
+instance Data.ProtoLens.Message GetAssetDigestResponse where
+        descriptor
+          = let digest__field_descriptor
+                  = Data.ProtoLens.FieldDescriptor "digest"
+                      (Data.ProtoLens.MessageField ::
+                         Data.ProtoLens.FieldTypeDescriptor
+                           Proto.POGOProtos.Data.AssetDigestEntry.AssetDigestEntry)
+                      (Data.ProtoLens.RepeatedField Data.ProtoLens.Unpacked digest)
+                timestampMs__field_descriptor
+                  = Data.ProtoLens.FieldDescriptor "timestamp_ms"
+                      (Data.ProtoLens.UInt64Field ::
+                         Data.ProtoLens.FieldTypeDescriptor Data.Word.Word64)
+                      (Data.ProtoLens.PlainField Data.ProtoLens.Optional timestampMs)
+              in
+              Data.ProtoLens.MessageDescriptor
+                (Data.Map.fromList
+                   [(Data.ProtoLens.Tag 1, digest__field_descriptor),
+                    (Data.ProtoLens.Tag 2, timestampMs__field_descriptor)])
+                (Data.Map.fromList
+                   [("digest", digest__field_descriptor),
+                    ("timestamp_ms", timestampMs__field_descriptor)])
+
+digest ::
+       forall msg msg' . Data.ProtoLens.HasField "digest" msg msg' =>
+         Lens.Family2.Lens msg msg' (Data.ProtoLens.Field "digest" msg)
+           (Data.ProtoLens.Field "digest" msg')
+digest
+  = Data.ProtoLens.field
+      (Data.ProtoLens.ProxySym :: Data.ProtoLens.ProxySym "digest")
+
+timestampMs ::
+            forall msg msg' . Data.ProtoLens.HasField "timestampMs" msg msg' =>
+              Lens.Family2.Lens msg msg' (Data.ProtoLens.Field "timestampMs" msg)
+                (Data.ProtoLens.Field "timestampMs" msg')
+timestampMs
+  = Data.ProtoLens.field
+      (Data.ProtoLens.ProxySym :: Data.ProtoLens.ProxySym "timestampMs")
diff --git a/src/Proto/POGOProtos/Networking/Responses/GetDownloadUrlsResponse.hs b/src/Proto/POGOProtos/Networking/Responses/GetDownloadUrlsResponse.hs
new file mode 100644
--- /dev/null
+++ b/src/Proto/POGOProtos/Networking/Responses/GetDownloadUrlsResponse.hs
@@ -0,0 +1,63 @@
+{- This file was auto-generated from POGOProtos/Networking/Responses/GetDownloadUrlsResponse.proto by the proto-lens-protoc program. -}
+{-# LANGUAGE ScopedTypeVariables, DataKinds, TypeFamilies,
+  MultiParamTypeClasses, FlexibleContexts, FlexibleInstances #-}
+{-# OPTIONS_GHC -fno-warn-unused-imports#-}
+module Proto.POGOProtos.Networking.Responses.GetDownloadUrlsResponse
+       where
+import qualified Prelude
+import qualified Data.ProtoLens
+import qualified Data.ProtoLens.Message.Enum
+import qualified Lens.Family2
+import qualified Lens.Family2.Unchecked
+import qualified Data.Default.Class
+import qualified Data.Text
+import qualified Data.Int
+import qualified Data.Word
+import qualified Data.Map
+import qualified Data.ByteString
+import qualified Proto.POGOProtos.Data.DownloadUrlEntry
+
+data GetDownloadUrlsResponse = GetDownloadUrlsResponse{_GetDownloadUrlsResponse'downloadUrls
+                                                       ::
+                                                       [Proto.POGOProtos.Data.DownloadUrlEntry.DownloadUrlEntry]}
+                             deriving (Prelude.Show, Prelude.Eq)
+
+type instance
+     Data.ProtoLens.Field "downloadUrls" GetDownloadUrlsResponse =
+     [Proto.POGOProtos.Data.DownloadUrlEntry.DownloadUrlEntry]
+
+instance Data.ProtoLens.HasField "downloadUrls"
+         GetDownloadUrlsResponse GetDownloadUrlsResponse where
+        field _
+          = Lens.Family2.Unchecked.lens _GetDownloadUrlsResponse'downloadUrls
+              (\ x__ y__ -> x__{_GetDownloadUrlsResponse'downloadUrls = y__})
+
+instance Data.Default.Class.Default GetDownloadUrlsResponse where
+        def
+          = GetDownloadUrlsResponse{_GetDownloadUrlsResponse'downloadUrls =
+                                      []}
+
+instance Data.ProtoLens.Message GetDownloadUrlsResponse where
+        descriptor
+          = let downloadUrls__field_descriptor
+                  = Data.ProtoLens.FieldDescriptor "download_urls"
+                      (Data.ProtoLens.MessageField ::
+                         Data.ProtoLens.FieldTypeDescriptor
+                           Proto.POGOProtos.Data.DownloadUrlEntry.DownloadUrlEntry)
+                      (Data.ProtoLens.RepeatedField Data.ProtoLens.Unpacked downloadUrls)
+              in
+              Data.ProtoLens.MessageDescriptor
+                (Data.Map.fromList
+                   [(Data.ProtoLens.Tag 1, downloadUrls__field_descriptor)])
+                (Data.Map.fromList
+                   [("download_urls", downloadUrls__field_descriptor)])
+
+downloadUrls ::
+             forall msg msg' .
+               Data.ProtoLens.HasField "downloadUrls" msg msg' =>
+               Lens.Family2.Lens msg msg'
+                 (Data.ProtoLens.Field "downloadUrls" msg)
+                 (Data.ProtoLens.Field "downloadUrls" msg')
+downloadUrls
+  = Data.ProtoLens.field
+      (Data.ProtoLens.ProxySym :: Data.ProtoLens.ProxySym "downloadUrls")
diff --git a/src/Proto/POGOProtos/Networking/Responses/GetGymDetailsResponse.hs b/src/Proto/POGOProtos/Networking/Responses/GetGymDetailsResponse.hs
new file mode 100644
--- /dev/null
+++ b/src/Proto/POGOProtos/Networking/Responses/GetGymDetailsResponse.hs
@@ -0,0 +1,250 @@
+{- This file was auto-generated from POGOProtos/Networking/Responses/GetGymDetailsResponse.proto by the proto-lens-protoc program. -}
+{-# LANGUAGE ScopedTypeVariables, DataKinds, TypeFamilies,
+  MultiParamTypeClasses, FlexibleContexts, FlexibleInstances #-}
+{-# OPTIONS_GHC -fno-warn-unused-imports#-}
+module Proto.POGOProtos.Networking.Responses.GetGymDetailsResponse
+       where
+import qualified Prelude
+import qualified Data.ProtoLens
+import qualified Data.ProtoLens.Message.Enum
+import qualified Lens.Family2
+import qualified Lens.Family2.Unchecked
+import qualified Data.Default.Class
+import qualified Data.Text
+import qualified Data.Int
+import qualified Data.Word
+import qualified Data.Map
+import qualified Data.ByteString
+import qualified Proto.POGOProtos.Data.Gym.GymState
+
+data GetGymDetailsResponse = GetGymDetailsResponse{_GetGymDetailsResponse'gymState
+                                                   ::
+                                                   Prelude.Maybe
+                                                     Proto.POGOProtos.Data.Gym.GymState.GymState,
+                                                   _GetGymDetailsResponse'name :: Data.Text.Text,
+                                                   _GetGymDetailsResponse'urls :: [Data.Text.Text],
+                                                   _GetGymDetailsResponse'result ::
+                                                   GetGymDetailsResponse'Result,
+                                                   _GetGymDetailsResponse'description ::
+                                                   Data.Text.Text}
+                           deriving (Prelude.Show, Prelude.Eq)
+
+type instance Data.ProtoLens.Field "gymState" GetGymDetailsResponse
+     = Proto.POGOProtos.Data.Gym.GymState.GymState
+
+instance Data.ProtoLens.HasField "gymState" GetGymDetailsResponse
+         GetGymDetailsResponse where
+        field _
+          = (Prelude..) maybe'gymState
+              (Data.ProtoLens.maybeLens Data.Default.Class.def)
+
+type instance
+     Data.ProtoLens.Field "maybe'gymState" GetGymDetailsResponse =
+     Prelude.Maybe Proto.POGOProtos.Data.Gym.GymState.GymState
+
+instance Data.ProtoLens.HasField "maybe'gymState"
+         GetGymDetailsResponse GetGymDetailsResponse where
+        field _
+          = Lens.Family2.Unchecked.lens _GetGymDetailsResponse'gymState
+              (\ x__ y__ -> x__{_GetGymDetailsResponse'gymState = y__})
+
+type instance Data.ProtoLens.Field "name" GetGymDetailsResponse =
+     Data.Text.Text
+
+instance Data.ProtoLens.HasField "name" GetGymDetailsResponse
+         GetGymDetailsResponse where
+        field _
+          = Lens.Family2.Unchecked.lens _GetGymDetailsResponse'name
+              (\ x__ y__ -> x__{_GetGymDetailsResponse'name = y__})
+
+type instance Data.ProtoLens.Field "urls" GetGymDetailsResponse =
+     [Data.Text.Text]
+
+instance Data.ProtoLens.HasField "urls" GetGymDetailsResponse
+         GetGymDetailsResponse where
+        field _
+          = Lens.Family2.Unchecked.lens _GetGymDetailsResponse'urls
+              (\ x__ y__ -> x__{_GetGymDetailsResponse'urls = y__})
+
+type instance Data.ProtoLens.Field "result" GetGymDetailsResponse =
+     GetGymDetailsResponse'Result
+
+instance Data.ProtoLens.HasField "result" GetGymDetailsResponse
+         GetGymDetailsResponse where
+        field _
+          = Lens.Family2.Unchecked.lens _GetGymDetailsResponse'result
+              (\ x__ y__ -> x__{_GetGymDetailsResponse'result = y__})
+
+type instance
+     Data.ProtoLens.Field "description" GetGymDetailsResponse =
+     Data.Text.Text
+
+instance Data.ProtoLens.HasField "description"
+         GetGymDetailsResponse GetGymDetailsResponse where
+        field _
+          = Lens.Family2.Unchecked.lens _GetGymDetailsResponse'description
+              (\ x__ y__ -> x__{_GetGymDetailsResponse'description = y__})
+
+instance Data.Default.Class.Default GetGymDetailsResponse where
+        def
+          = GetGymDetailsResponse{_GetGymDetailsResponse'gymState =
+                                    Prelude.Nothing,
+                                  _GetGymDetailsResponse'name = Data.ProtoLens.fieldDefault,
+                                  _GetGymDetailsResponse'urls = [],
+                                  _GetGymDetailsResponse'result = Data.Default.Class.def,
+                                  _GetGymDetailsResponse'description = Data.ProtoLens.fieldDefault}
+
+instance Data.ProtoLens.Message GetGymDetailsResponse where
+        descriptor
+          = let gymState__field_descriptor
+                  = Data.ProtoLens.FieldDescriptor "gym_state"
+                      (Data.ProtoLens.MessageField ::
+                         Data.ProtoLens.FieldTypeDescriptor
+                           Proto.POGOProtos.Data.Gym.GymState.GymState)
+                      (Data.ProtoLens.OptionalField maybe'gymState)
+                name__field_descriptor
+                  = Data.ProtoLens.FieldDescriptor "name"
+                      (Data.ProtoLens.StringField ::
+                         Data.ProtoLens.FieldTypeDescriptor Data.Text.Text)
+                      (Data.ProtoLens.PlainField Data.ProtoLens.Optional name)
+                urls__field_descriptor
+                  = Data.ProtoLens.FieldDescriptor "urls"
+                      (Data.ProtoLens.StringField ::
+                         Data.ProtoLens.FieldTypeDescriptor Data.Text.Text)
+                      (Data.ProtoLens.RepeatedField Data.ProtoLens.Unpacked urls)
+                result__field_descriptor
+                  = Data.ProtoLens.FieldDescriptor "result"
+                      (Data.ProtoLens.EnumField ::
+                         Data.ProtoLens.FieldTypeDescriptor GetGymDetailsResponse'Result)
+                      (Data.ProtoLens.PlainField Data.ProtoLens.Optional result)
+                description__field_descriptor
+                  = Data.ProtoLens.FieldDescriptor "description"
+                      (Data.ProtoLens.StringField ::
+                         Data.ProtoLens.FieldTypeDescriptor Data.Text.Text)
+                      (Data.ProtoLens.PlainField Data.ProtoLens.Optional description)
+              in
+              Data.ProtoLens.MessageDescriptor
+                (Data.Map.fromList
+                   [(Data.ProtoLens.Tag 1, gymState__field_descriptor),
+                    (Data.ProtoLens.Tag 2, name__field_descriptor),
+                    (Data.ProtoLens.Tag 3, urls__field_descriptor),
+                    (Data.ProtoLens.Tag 4, result__field_descriptor),
+                    (Data.ProtoLens.Tag 5, description__field_descriptor)])
+                (Data.Map.fromList
+                   [("gym_state", gymState__field_descriptor),
+                    ("name", name__field_descriptor), ("urls", urls__field_descriptor),
+                    ("result", result__field_descriptor),
+                    ("description", description__field_descriptor)])
+
+data GetGymDetailsResponse'Result = GetGymDetailsResponse'UNSET
+                                  | GetGymDetailsResponse'SUCCESS
+                                  | GetGymDetailsResponse'ERROR_NOT_IN_RANGE
+                                  deriving (Prelude.Show, Prelude.Eq)
+
+instance Data.Default.Class.Default GetGymDetailsResponse'Result
+         where
+        def = GetGymDetailsResponse'UNSET
+
+instance Data.ProtoLens.FieldDefault GetGymDetailsResponse'Result
+         where
+        fieldDefault = GetGymDetailsResponse'UNSET
+
+instance Data.ProtoLens.MessageEnum GetGymDetailsResponse'Result
+         where
+        maybeToEnum 0 = Prelude.Just GetGymDetailsResponse'UNSET
+        maybeToEnum 1 = Prelude.Just GetGymDetailsResponse'SUCCESS
+        maybeToEnum 2
+          = Prelude.Just GetGymDetailsResponse'ERROR_NOT_IN_RANGE
+        maybeToEnum _ = Prelude.Nothing
+        showEnum GetGymDetailsResponse'UNSET = "UNSET"
+        showEnum GetGymDetailsResponse'SUCCESS = "SUCCESS"
+        showEnum GetGymDetailsResponse'ERROR_NOT_IN_RANGE
+          = "ERROR_NOT_IN_RANGE"
+        readEnum "UNSET" = Prelude.Just GetGymDetailsResponse'UNSET
+        readEnum "SUCCESS" = Prelude.Just GetGymDetailsResponse'SUCCESS
+        readEnum "ERROR_NOT_IN_RANGE"
+          = Prelude.Just GetGymDetailsResponse'ERROR_NOT_IN_RANGE
+        readEnum _ = Prelude.Nothing
+
+instance Prelude.Enum GetGymDetailsResponse'Result where
+        toEnum k__
+          = Prelude.maybe
+              (Prelude.error
+                 ((Prelude.++) "toEnum: unknown value for enum Result: "
+                    (Prelude.show k__)))
+              Prelude.id
+              (Data.ProtoLens.maybeToEnum k__)
+        fromEnum GetGymDetailsResponse'UNSET = 0
+        fromEnum GetGymDetailsResponse'SUCCESS = 1
+        fromEnum GetGymDetailsResponse'ERROR_NOT_IN_RANGE = 2
+        succ GetGymDetailsResponse'ERROR_NOT_IN_RANGE
+          = Prelude.error
+              "Ident \"GetGymDetailsResponse'Result\".Ident \"succ\": bad argument Ident \"GetGymDetailsResponse'ERROR_NOT_IN_RANGE\". This value would be out of bounds."
+        succ GetGymDetailsResponse'UNSET = GetGymDetailsResponse'SUCCESS
+        succ GetGymDetailsResponse'SUCCESS
+          = GetGymDetailsResponse'ERROR_NOT_IN_RANGE
+        pred GetGymDetailsResponse'UNSET
+          = Prelude.error
+              "Ident \"GetGymDetailsResponse'Result\".Ident \"pred\": bad argument Ident \"GetGymDetailsResponse'UNSET\". This value would be out of bounds."
+        pred GetGymDetailsResponse'SUCCESS = GetGymDetailsResponse'UNSET
+        pred GetGymDetailsResponse'ERROR_NOT_IN_RANGE
+          = GetGymDetailsResponse'SUCCESS
+        enumFrom = Data.ProtoLens.Message.Enum.messageEnumFrom
+        enumFromTo = Data.ProtoLens.Message.Enum.messageEnumFromTo
+        enumFromThen = Data.ProtoLens.Message.Enum.messageEnumFromThen
+        enumFromThenTo = Data.ProtoLens.Message.Enum.messageEnumFromThenTo
+
+instance Prelude.Bounded GetGymDetailsResponse'Result where
+        minBound = GetGymDetailsResponse'UNSET
+        maxBound = GetGymDetailsResponse'ERROR_NOT_IN_RANGE
+
+description ::
+            forall msg msg' . Data.ProtoLens.HasField "description" msg msg' =>
+              Lens.Family2.Lens msg msg' (Data.ProtoLens.Field "description" msg)
+                (Data.ProtoLens.Field "description" msg')
+description
+  = Data.ProtoLens.field
+      (Data.ProtoLens.ProxySym :: Data.ProtoLens.ProxySym "description")
+
+gymState ::
+         forall msg msg' . Data.ProtoLens.HasField "gymState" msg msg' =>
+           Lens.Family2.Lens msg msg' (Data.ProtoLens.Field "gymState" msg)
+             (Data.ProtoLens.Field "gymState" msg')
+gymState
+  = Data.ProtoLens.field
+      (Data.ProtoLens.ProxySym :: Data.ProtoLens.ProxySym "gymState")
+
+maybe'gymState ::
+               forall msg msg' .
+                 Data.ProtoLens.HasField "maybe'gymState" msg msg' =>
+                 Lens.Family2.Lens msg msg'
+                   (Data.ProtoLens.Field "maybe'gymState" msg)
+                   (Data.ProtoLens.Field "maybe'gymState" msg')
+maybe'gymState
+  = Data.ProtoLens.field
+      (Data.ProtoLens.ProxySym ::
+         Data.ProtoLens.ProxySym "maybe'gymState")
+
+name ::
+     forall msg msg' . Data.ProtoLens.HasField "name" msg msg' =>
+       Lens.Family2.Lens msg msg' (Data.ProtoLens.Field "name" msg)
+         (Data.ProtoLens.Field "name" msg')
+name
+  = Data.ProtoLens.field
+      (Data.ProtoLens.ProxySym :: Data.ProtoLens.ProxySym "name")
+
+result ::
+       forall msg msg' . Data.ProtoLens.HasField "result" msg msg' =>
+         Lens.Family2.Lens msg msg' (Data.ProtoLens.Field "result" msg)
+           (Data.ProtoLens.Field "result" msg')
+result
+  = Data.ProtoLens.field
+      (Data.ProtoLens.ProxySym :: Data.ProtoLens.ProxySym "result")
+
+urls ::
+     forall msg msg' . Data.ProtoLens.HasField "urls" msg msg' =>
+       Lens.Family2.Lens msg msg' (Data.ProtoLens.Field "urls" msg)
+         (Data.ProtoLens.Field "urls" msg')
+urls
+  = Data.ProtoLens.field
+      (Data.ProtoLens.ProxySym :: Data.ProtoLens.ProxySym "urls")
diff --git a/src/Proto/POGOProtos/Networking/Responses/GetHatchedEggsResponse.hs b/src/Proto/POGOProtos/Networking/Responses/GetHatchedEggsResponse.hs
new file mode 100644
--- /dev/null
+++ b/src/Proto/POGOProtos/Networking/Responses/GetHatchedEggsResponse.hs
@@ -0,0 +1,181 @@
+{- This file was auto-generated from POGOProtos/Networking/Responses/GetHatchedEggsResponse.proto by the proto-lens-protoc program. -}
+{-# LANGUAGE ScopedTypeVariables, DataKinds, TypeFamilies,
+  MultiParamTypeClasses, FlexibleContexts, FlexibleInstances #-}
+{-# OPTIONS_GHC -fno-warn-unused-imports#-}
+module Proto.POGOProtos.Networking.Responses.GetHatchedEggsResponse
+       where
+import qualified Prelude
+import qualified Data.ProtoLens
+import qualified Data.ProtoLens.Message.Enum
+import qualified Lens.Family2
+import qualified Lens.Family2.Unchecked
+import qualified Data.Default.Class
+import qualified Data.Text
+import qualified Data.Int
+import qualified Data.Word
+import qualified Data.Map
+import qualified Data.ByteString
+
+data GetHatchedEggsResponse = GetHatchedEggsResponse{_GetHatchedEggsResponse'success
+                                                     :: Prelude.Bool,
+                                                     _GetHatchedEggsResponse'pokemonId ::
+                                                     [Data.Word.Word64],
+                                                     _GetHatchedEggsResponse'experienceAwarded ::
+                                                     [Data.Int.Int32],
+                                                     _GetHatchedEggsResponse'candyAwarded ::
+                                                     [Data.Int.Int32],
+                                                     _GetHatchedEggsResponse'stardustAwarded ::
+                                                     [Data.Int.Int32]}
+                            deriving (Prelude.Show, Prelude.Eq)
+
+type instance Data.ProtoLens.Field "success" GetHatchedEggsResponse
+     = Prelude.Bool
+
+instance Data.ProtoLens.HasField "success" GetHatchedEggsResponse
+         GetHatchedEggsResponse where
+        field _
+          = Lens.Family2.Unchecked.lens _GetHatchedEggsResponse'success
+              (\ x__ y__ -> x__{_GetHatchedEggsResponse'success = y__})
+
+type instance
+     Data.ProtoLens.Field "pokemonId" GetHatchedEggsResponse =
+     [Data.Word.Word64]
+
+instance Data.ProtoLens.HasField "pokemonId" GetHatchedEggsResponse
+         GetHatchedEggsResponse where
+        field _
+          = Lens.Family2.Unchecked.lens _GetHatchedEggsResponse'pokemonId
+              (\ x__ y__ -> x__{_GetHatchedEggsResponse'pokemonId = y__})
+
+type instance
+     Data.ProtoLens.Field "experienceAwarded" GetHatchedEggsResponse =
+     [Data.Int.Int32]
+
+instance Data.ProtoLens.HasField "experienceAwarded"
+         GetHatchedEggsResponse GetHatchedEggsResponse where
+        field _
+          = Lens.Family2.Unchecked.lens
+              _GetHatchedEggsResponse'experienceAwarded
+              (\ x__ y__ -> x__{_GetHatchedEggsResponse'experienceAwarded = y__})
+
+type instance
+     Data.ProtoLens.Field "candyAwarded" GetHatchedEggsResponse =
+     [Data.Int.Int32]
+
+instance Data.ProtoLens.HasField "candyAwarded"
+         GetHatchedEggsResponse GetHatchedEggsResponse where
+        field _
+          = Lens.Family2.Unchecked.lens _GetHatchedEggsResponse'candyAwarded
+              (\ x__ y__ -> x__{_GetHatchedEggsResponse'candyAwarded = y__})
+
+type instance
+     Data.ProtoLens.Field "stardustAwarded" GetHatchedEggsResponse =
+     [Data.Int.Int32]
+
+instance Data.ProtoLens.HasField "stardustAwarded"
+         GetHatchedEggsResponse GetHatchedEggsResponse where
+        field _
+          = Lens.Family2.Unchecked.lens
+              _GetHatchedEggsResponse'stardustAwarded
+              (\ x__ y__ -> x__{_GetHatchedEggsResponse'stardustAwarded = y__})
+
+instance Data.Default.Class.Default GetHatchedEggsResponse where
+        def
+          = GetHatchedEggsResponse{_GetHatchedEggsResponse'success =
+                                     Data.ProtoLens.fieldDefault,
+                                   _GetHatchedEggsResponse'pokemonId = [],
+                                   _GetHatchedEggsResponse'experienceAwarded = [],
+                                   _GetHatchedEggsResponse'candyAwarded = [],
+                                   _GetHatchedEggsResponse'stardustAwarded = []}
+
+instance Data.ProtoLens.Message GetHatchedEggsResponse where
+        descriptor
+          = let success__field_descriptor
+                  = Data.ProtoLens.FieldDescriptor "success"
+                      (Data.ProtoLens.BoolField ::
+                         Data.ProtoLens.FieldTypeDescriptor Prelude.Bool)
+                      (Data.ProtoLens.PlainField Data.ProtoLens.Optional success)
+                pokemonId__field_descriptor
+                  = Data.ProtoLens.FieldDescriptor "pokemon_id"
+                      (Data.ProtoLens.Fixed64Field ::
+                         Data.ProtoLens.FieldTypeDescriptor Data.Word.Word64)
+                      (Data.ProtoLens.RepeatedField Data.ProtoLens.Packed pokemonId)
+                experienceAwarded__field_descriptor
+                  = Data.ProtoLens.FieldDescriptor "experience_awarded"
+                      (Data.ProtoLens.Int32Field ::
+                         Data.ProtoLens.FieldTypeDescriptor Data.Int.Int32)
+                      (Data.ProtoLens.RepeatedField Data.ProtoLens.Unpacked
+                         experienceAwarded)
+                candyAwarded__field_descriptor
+                  = Data.ProtoLens.FieldDescriptor "candy_awarded"
+                      (Data.ProtoLens.Int32Field ::
+                         Data.ProtoLens.FieldTypeDescriptor Data.Int.Int32)
+                      (Data.ProtoLens.RepeatedField Data.ProtoLens.Unpacked candyAwarded)
+                stardustAwarded__field_descriptor
+                  = Data.ProtoLens.FieldDescriptor "stardust_awarded"
+                      (Data.ProtoLens.Int32Field ::
+                         Data.ProtoLens.FieldTypeDescriptor Data.Int.Int32)
+                      (Data.ProtoLens.RepeatedField Data.ProtoLens.Unpacked
+                         stardustAwarded)
+              in
+              Data.ProtoLens.MessageDescriptor
+                (Data.Map.fromList
+                   [(Data.ProtoLens.Tag 1, success__field_descriptor),
+                    (Data.ProtoLens.Tag 2, pokemonId__field_descriptor),
+                    (Data.ProtoLens.Tag 3, experienceAwarded__field_descriptor),
+                    (Data.ProtoLens.Tag 4, candyAwarded__field_descriptor),
+                    (Data.ProtoLens.Tag 5, stardustAwarded__field_descriptor)])
+                (Data.Map.fromList
+                   [("success", success__field_descriptor),
+                    ("pokemon_id", pokemonId__field_descriptor),
+                    ("experience_awarded", experienceAwarded__field_descriptor),
+                    ("candy_awarded", candyAwarded__field_descriptor),
+                    ("stardust_awarded", stardustAwarded__field_descriptor)])
+
+candyAwarded ::
+             forall msg msg' .
+               Data.ProtoLens.HasField "candyAwarded" msg msg' =>
+               Lens.Family2.Lens msg msg'
+                 (Data.ProtoLens.Field "candyAwarded" msg)
+                 (Data.ProtoLens.Field "candyAwarded" msg')
+candyAwarded
+  = Data.ProtoLens.field
+      (Data.ProtoLens.ProxySym :: Data.ProtoLens.ProxySym "candyAwarded")
+
+experienceAwarded ::
+                  forall msg msg' .
+                    Data.ProtoLens.HasField "experienceAwarded" msg msg' =>
+                    Lens.Family2.Lens msg msg'
+                      (Data.ProtoLens.Field "experienceAwarded" msg)
+                      (Data.ProtoLens.Field "experienceAwarded" msg')
+experienceAwarded
+  = Data.ProtoLens.field
+      (Data.ProtoLens.ProxySym ::
+         Data.ProtoLens.ProxySym "experienceAwarded")
+
+pokemonId ::
+          forall msg msg' . Data.ProtoLens.HasField "pokemonId" msg msg' =>
+            Lens.Family2.Lens msg msg' (Data.ProtoLens.Field "pokemonId" msg)
+              (Data.ProtoLens.Field "pokemonId" msg')
+pokemonId
+  = Data.ProtoLens.field
+      (Data.ProtoLens.ProxySym :: Data.ProtoLens.ProxySym "pokemonId")
+
+stardustAwarded ::
+                forall msg msg' .
+                  Data.ProtoLens.HasField "stardustAwarded" msg msg' =>
+                  Lens.Family2.Lens msg msg'
+                    (Data.ProtoLens.Field "stardustAwarded" msg)
+                    (Data.ProtoLens.Field "stardustAwarded" msg')
+stardustAwarded
+  = Data.ProtoLens.field
+      (Data.ProtoLens.ProxySym ::
+         Data.ProtoLens.ProxySym "stardustAwarded")
+
+success ::
+        forall msg msg' . Data.ProtoLens.HasField "success" msg msg' =>
+          Lens.Family2.Lens msg msg' (Data.ProtoLens.Field "success" msg)
+            (Data.ProtoLens.Field "success" msg')
+success
+  = Data.ProtoLens.field
+      (Data.ProtoLens.ProxySym :: Data.ProtoLens.ProxySym "success")
diff --git a/src/Proto/POGOProtos/Networking/Responses/GetIncensePokemonResponse.hs b/src/Proto/POGOProtos/Networking/Responses/GetIncensePokemonResponse.hs
new file mode 100644
--- /dev/null
+++ b/src/Proto/POGOProtos/Networking/Responses/GetIncensePokemonResponse.hs
@@ -0,0 +1,325 @@
+{- This file was auto-generated from POGOProtos/Networking/Responses/GetIncensePokemonResponse.proto by the proto-lens-protoc program. -}
+{-# LANGUAGE ScopedTypeVariables, DataKinds, TypeFamilies,
+  MultiParamTypeClasses, FlexibleContexts, FlexibleInstances #-}
+{-# OPTIONS_GHC -fno-warn-unused-imports#-}
+module Proto.POGOProtos.Networking.Responses.GetIncensePokemonResponse
+       where
+import qualified Prelude
+import qualified Data.ProtoLens
+import qualified Data.ProtoLens.Message.Enum
+import qualified Lens.Family2
+import qualified Lens.Family2.Unchecked
+import qualified Data.Default.Class
+import qualified Data.Text
+import qualified Data.Int
+import qualified Data.Word
+import qualified Data.Map
+import qualified Data.ByteString
+import qualified Proto.POGOProtos.Enums.PokemonId
+
+data GetIncensePokemonResponse = GetIncensePokemonResponse{_GetIncensePokemonResponse'result
+                                                           :: GetIncensePokemonResponse'Result,
+                                                           _GetIncensePokemonResponse'pokemonId ::
+                                                           Proto.POGOProtos.Enums.PokemonId.PokemonId,
+                                                           _GetIncensePokemonResponse'latitude ::
+                                                           Prelude.Double,
+                                                           _GetIncensePokemonResponse'longitude ::
+                                                           Prelude.Double,
+                                                           _GetIncensePokemonResponse'encounterLocation
+                                                           :: Data.Text.Text,
+                                                           _GetIncensePokemonResponse'encounterId ::
+                                                           Data.Word.Word64,
+                                                           _GetIncensePokemonResponse'disappearTimestampMs
+                                                           :: Data.Int.Int64}
+                               deriving (Prelude.Show, Prelude.Eq)
+
+type instance
+     Data.ProtoLens.Field "result" GetIncensePokemonResponse =
+     GetIncensePokemonResponse'Result
+
+instance Data.ProtoLens.HasField "result" GetIncensePokemonResponse
+         GetIncensePokemonResponse where
+        field _
+          = Lens.Family2.Unchecked.lens _GetIncensePokemonResponse'result
+              (\ x__ y__ -> x__{_GetIncensePokemonResponse'result = y__})
+
+type instance
+     Data.ProtoLens.Field "pokemonId" GetIncensePokemonResponse =
+     Proto.POGOProtos.Enums.PokemonId.PokemonId
+
+instance Data.ProtoLens.HasField "pokemonId"
+         GetIncensePokemonResponse GetIncensePokemonResponse where
+        field _
+          = Lens.Family2.Unchecked.lens _GetIncensePokemonResponse'pokemonId
+              (\ x__ y__ -> x__{_GetIncensePokemonResponse'pokemonId = y__})
+
+type instance
+     Data.ProtoLens.Field "latitude" GetIncensePokemonResponse =
+     Prelude.Double
+
+instance Data.ProtoLens.HasField "latitude"
+         GetIncensePokemonResponse GetIncensePokemonResponse where
+        field _
+          = Lens.Family2.Unchecked.lens _GetIncensePokemonResponse'latitude
+              (\ x__ y__ -> x__{_GetIncensePokemonResponse'latitude = y__})
+
+type instance
+     Data.ProtoLens.Field "longitude" GetIncensePokemonResponse =
+     Prelude.Double
+
+instance Data.ProtoLens.HasField "longitude"
+         GetIncensePokemonResponse GetIncensePokemonResponse where
+        field _
+          = Lens.Family2.Unchecked.lens _GetIncensePokemonResponse'longitude
+              (\ x__ y__ -> x__{_GetIncensePokemonResponse'longitude = y__})
+
+type instance
+     Data.ProtoLens.Field "encounterLocation" GetIncensePokemonResponse
+     = Data.Text.Text
+
+instance Data.ProtoLens.HasField "encounterLocation"
+         GetIncensePokemonResponse GetIncensePokemonResponse where
+        field _
+          = Lens.Family2.Unchecked.lens
+              _GetIncensePokemonResponse'encounterLocation
+              (\ x__ y__ ->
+                 x__{_GetIncensePokemonResponse'encounterLocation = y__})
+
+type instance
+     Data.ProtoLens.Field "encounterId" GetIncensePokemonResponse =
+     Data.Word.Word64
+
+instance Data.ProtoLens.HasField "encounterId"
+         GetIncensePokemonResponse GetIncensePokemonResponse where
+        field _
+          = Lens.Family2.Unchecked.lens
+              _GetIncensePokemonResponse'encounterId
+              (\ x__ y__ -> x__{_GetIncensePokemonResponse'encounterId = y__})
+
+type instance
+     Data.ProtoLens.Field "disappearTimestampMs"
+       GetIncensePokemonResponse
+     = Data.Int.Int64
+
+instance Data.ProtoLens.HasField "disappearTimestampMs"
+         GetIncensePokemonResponse GetIncensePokemonResponse where
+        field _
+          = Lens.Family2.Unchecked.lens
+              _GetIncensePokemonResponse'disappearTimestampMs
+              (\ x__ y__ ->
+                 x__{_GetIncensePokemonResponse'disappearTimestampMs = y__})
+
+instance Data.Default.Class.Default GetIncensePokemonResponse where
+        def
+          = GetIncensePokemonResponse{_GetIncensePokemonResponse'result =
+                                        Data.Default.Class.def,
+                                      _GetIncensePokemonResponse'pokemonId = Data.Default.Class.def,
+                                      _GetIncensePokemonResponse'latitude =
+                                        Data.ProtoLens.fieldDefault,
+                                      _GetIncensePokemonResponse'longitude =
+                                        Data.ProtoLens.fieldDefault,
+                                      _GetIncensePokemonResponse'encounterLocation =
+                                        Data.ProtoLens.fieldDefault,
+                                      _GetIncensePokemonResponse'encounterId =
+                                        Data.ProtoLens.fieldDefault,
+                                      _GetIncensePokemonResponse'disappearTimestampMs =
+                                        Data.ProtoLens.fieldDefault}
+
+instance Data.ProtoLens.Message GetIncensePokemonResponse where
+        descriptor
+          = let result__field_descriptor
+                  = Data.ProtoLens.FieldDescriptor "result"
+                      (Data.ProtoLens.EnumField ::
+                         Data.ProtoLens.FieldTypeDescriptor
+                           GetIncensePokemonResponse'Result)
+                      (Data.ProtoLens.PlainField Data.ProtoLens.Optional result)
+                pokemonId__field_descriptor
+                  = Data.ProtoLens.FieldDescriptor "pokemon_id"
+                      (Data.ProtoLens.EnumField ::
+                         Data.ProtoLens.FieldTypeDescriptor
+                           Proto.POGOProtos.Enums.PokemonId.PokemonId)
+                      (Data.ProtoLens.PlainField Data.ProtoLens.Optional pokemonId)
+                latitude__field_descriptor
+                  = Data.ProtoLens.FieldDescriptor "latitude"
+                      (Data.ProtoLens.DoubleField ::
+                         Data.ProtoLens.FieldTypeDescriptor Prelude.Double)
+                      (Data.ProtoLens.PlainField Data.ProtoLens.Optional latitude)
+                longitude__field_descriptor
+                  = Data.ProtoLens.FieldDescriptor "longitude"
+                      (Data.ProtoLens.DoubleField ::
+                         Data.ProtoLens.FieldTypeDescriptor Prelude.Double)
+                      (Data.ProtoLens.PlainField Data.ProtoLens.Optional longitude)
+                encounterLocation__field_descriptor
+                  = Data.ProtoLens.FieldDescriptor "encounter_location"
+                      (Data.ProtoLens.StringField ::
+                         Data.ProtoLens.FieldTypeDescriptor Data.Text.Text)
+                      (Data.ProtoLens.PlainField Data.ProtoLens.Optional
+                         encounterLocation)
+                encounterId__field_descriptor
+                  = Data.ProtoLens.FieldDescriptor "encounter_id"
+                      (Data.ProtoLens.Fixed64Field ::
+                         Data.ProtoLens.FieldTypeDescriptor Data.Word.Word64)
+                      (Data.ProtoLens.PlainField Data.ProtoLens.Optional encounterId)
+                disappearTimestampMs__field_descriptor
+                  = Data.ProtoLens.FieldDescriptor "disappear_timestamp_ms"
+                      (Data.ProtoLens.Int64Field ::
+                         Data.ProtoLens.FieldTypeDescriptor Data.Int.Int64)
+                      (Data.ProtoLens.PlainField Data.ProtoLens.Optional
+                         disappearTimestampMs)
+              in
+              Data.ProtoLens.MessageDescriptor
+                (Data.Map.fromList
+                   [(Data.ProtoLens.Tag 1, result__field_descriptor),
+                    (Data.ProtoLens.Tag 2, pokemonId__field_descriptor),
+                    (Data.ProtoLens.Tag 3, latitude__field_descriptor),
+                    (Data.ProtoLens.Tag 4, longitude__field_descriptor),
+                    (Data.ProtoLens.Tag 5, encounterLocation__field_descriptor),
+                    (Data.ProtoLens.Tag 6, encounterId__field_descriptor),
+                    (Data.ProtoLens.Tag 7, disappearTimestampMs__field_descriptor)])
+                (Data.Map.fromList
+                   [("result", result__field_descriptor),
+                    ("pokemon_id", pokemonId__field_descriptor),
+                    ("latitude", latitude__field_descriptor),
+                    ("longitude", longitude__field_descriptor),
+                    ("encounter_location", encounterLocation__field_descriptor),
+                    ("encounter_id", encounterId__field_descriptor),
+                    ("disappear_timestamp_ms",
+                     disappearTimestampMs__field_descriptor)])
+
+data GetIncensePokemonResponse'Result = GetIncensePokemonResponse'INCENSE_ENCOUNTER_UNKNOWN
+                                      | GetIncensePokemonResponse'INCENSE_ENCOUNTER_AVAILABLE
+                                      | GetIncensePokemonResponse'INCENSE_ENCOUNTER_NOT_AVAILABLE
+                                      deriving (Prelude.Show, Prelude.Eq)
+
+instance Data.Default.Class.Default
+         GetIncensePokemonResponse'Result where
+        def = GetIncensePokemonResponse'INCENSE_ENCOUNTER_UNKNOWN
+
+instance Data.ProtoLens.FieldDefault
+         GetIncensePokemonResponse'Result where
+        fieldDefault = GetIncensePokemonResponse'INCENSE_ENCOUNTER_UNKNOWN
+
+instance Data.ProtoLens.MessageEnum
+         GetIncensePokemonResponse'Result where
+        maybeToEnum 0
+          = Prelude.Just GetIncensePokemonResponse'INCENSE_ENCOUNTER_UNKNOWN
+        maybeToEnum 1
+          = Prelude.Just
+              GetIncensePokemonResponse'INCENSE_ENCOUNTER_AVAILABLE
+        maybeToEnum 2
+          = Prelude.Just
+              GetIncensePokemonResponse'INCENSE_ENCOUNTER_NOT_AVAILABLE
+        maybeToEnum _ = Prelude.Nothing
+        showEnum GetIncensePokemonResponse'INCENSE_ENCOUNTER_UNKNOWN
+          = "INCENSE_ENCOUNTER_UNKNOWN"
+        showEnum GetIncensePokemonResponse'INCENSE_ENCOUNTER_AVAILABLE
+          = "INCENSE_ENCOUNTER_AVAILABLE"
+        showEnum GetIncensePokemonResponse'INCENSE_ENCOUNTER_NOT_AVAILABLE
+          = "INCENSE_ENCOUNTER_NOT_AVAILABLE"
+        readEnum "INCENSE_ENCOUNTER_UNKNOWN"
+          = Prelude.Just GetIncensePokemonResponse'INCENSE_ENCOUNTER_UNKNOWN
+        readEnum "INCENSE_ENCOUNTER_AVAILABLE"
+          = Prelude.Just
+              GetIncensePokemonResponse'INCENSE_ENCOUNTER_AVAILABLE
+        readEnum "INCENSE_ENCOUNTER_NOT_AVAILABLE"
+          = Prelude.Just
+              GetIncensePokemonResponse'INCENSE_ENCOUNTER_NOT_AVAILABLE
+        readEnum _ = Prelude.Nothing
+
+instance Prelude.Enum GetIncensePokemonResponse'Result where
+        toEnum k__
+          = Prelude.maybe
+              (Prelude.error
+                 ((Prelude.++) "toEnum: unknown value for enum Result: "
+                    (Prelude.show k__)))
+              Prelude.id
+              (Data.ProtoLens.maybeToEnum k__)
+        fromEnum GetIncensePokemonResponse'INCENSE_ENCOUNTER_UNKNOWN = 0
+        fromEnum GetIncensePokemonResponse'INCENSE_ENCOUNTER_AVAILABLE = 1
+        fromEnum GetIncensePokemonResponse'INCENSE_ENCOUNTER_NOT_AVAILABLE
+          = 2
+        succ GetIncensePokemonResponse'INCENSE_ENCOUNTER_NOT_AVAILABLE
+          = Prelude.error
+              "Ident \"GetIncensePokemonResponse'Result\".Ident \"succ\": bad argument Ident \"GetIncensePokemonResponse'INCENSE_ENCOUNTER_NOT_AVAILABLE\". This value would be out of bounds."
+        succ GetIncensePokemonResponse'INCENSE_ENCOUNTER_UNKNOWN
+          = GetIncensePokemonResponse'INCENSE_ENCOUNTER_AVAILABLE
+        succ GetIncensePokemonResponse'INCENSE_ENCOUNTER_AVAILABLE
+          = GetIncensePokemonResponse'INCENSE_ENCOUNTER_NOT_AVAILABLE
+        pred GetIncensePokemonResponse'INCENSE_ENCOUNTER_UNKNOWN
+          = Prelude.error
+              "Ident \"GetIncensePokemonResponse'Result\".Ident \"pred\": bad argument Ident \"GetIncensePokemonResponse'INCENSE_ENCOUNTER_UNKNOWN\". This value would be out of bounds."
+        pred GetIncensePokemonResponse'INCENSE_ENCOUNTER_AVAILABLE
+          = GetIncensePokemonResponse'INCENSE_ENCOUNTER_UNKNOWN
+        pred GetIncensePokemonResponse'INCENSE_ENCOUNTER_NOT_AVAILABLE
+          = GetIncensePokemonResponse'INCENSE_ENCOUNTER_AVAILABLE
+        enumFrom = Data.ProtoLens.Message.Enum.messageEnumFrom
+        enumFromTo = Data.ProtoLens.Message.Enum.messageEnumFromTo
+        enumFromThen = Data.ProtoLens.Message.Enum.messageEnumFromThen
+        enumFromThenTo = Data.ProtoLens.Message.Enum.messageEnumFromThenTo
+
+instance Prelude.Bounded GetIncensePokemonResponse'Result where
+        minBound = GetIncensePokemonResponse'INCENSE_ENCOUNTER_UNKNOWN
+        maxBound
+          = GetIncensePokemonResponse'INCENSE_ENCOUNTER_NOT_AVAILABLE
+
+disappearTimestampMs ::
+                     forall msg msg' .
+                       Data.ProtoLens.HasField "disappearTimestampMs" msg msg' =>
+                       Lens.Family2.Lens msg msg'
+                         (Data.ProtoLens.Field "disappearTimestampMs" msg)
+                         (Data.ProtoLens.Field "disappearTimestampMs" msg')
+disappearTimestampMs
+  = Data.ProtoLens.field
+      (Data.ProtoLens.ProxySym ::
+         Data.ProtoLens.ProxySym "disappearTimestampMs")
+
+encounterId ::
+            forall msg msg' . Data.ProtoLens.HasField "encounterId" msg msg' =>
+              Lens.Family2.Lens msg msg' (Data.ProtoLens.Field "encounterId" msg)
+                (Data.ProtoLens.Field "encounterId" msg')
+encounterId
+  = Data.ProtoLens.field
+      (Data.ProtoLens.ProxySym :: Data.ProtoLens.ProxySym "encounterId")
+
+encounterLocation ::
+                  forall msg msg' .
+                    Data.ProtoLens.HasField "encounterLocation" msg msg' =>
+                    Lens.Family2.Lens msg msg'
+                      (Data.ProtoLens.Field "encounterLocation" msg)
+                      (Data.ProtoLens.Field "encounterLocation" msg')
+encounterLocation
+  = Data.ProtoLens.field
+      (Data.ProtoLens.ProxySym ::
+         Data.ProtoLens.ProxySym "encounterLocation")
+
+latitude ::
+         forall msg msg' . Data.ProtoLens.HasField "latitude" msg msg' =>
+           Lens.Family2.Lens msg msg' (Data.ProtoLens.Field "latitude" msg)
+             (Data.ProtoLens.Field "latitude" msg')
+latitude
+  = Data.ProtoLens.field
+      (Data.ProtoLens.ProxySym :: Data.ProtoLens.ProxySym "latitude")
+
+longitude ::
+          forall msg msg' . Data.ProtoLens.HasField "longitude" msg msg' =>
+            Lens.Family2.Lens msg msg' (Data.ProtoLens.Field "longitude" msg)
+              (Data.ProtoLens.Field "longitude" msg')
+longitude
+  = Data.ProtoLens.field
+      (Data.ProtoLens.ProxySym :: Data.ProtoLens.ProxySym "longitude")
+
+pokemonId ::
+          forall msg msg' . Data.ProtoLens.HasField "pokemonId" msg msg' =>
+            Lens.Family2.Lens msg msg' (Data.ProtoLens.Field "pokemonId" msg)
+              (Data.ProtoLens.Field "pokemonId" msg')
+pokemonId
+  = Data.ProtoLens.field
+      (Data.ProtoLens.ProxySym :: Data.ProtoLens.ProxySym "pokemonId")
+
+result ::
+       forall msg msg' . Data.ProtoLens.HasField "result" msg msg' =>
+         Lens.Family2.Lens msg msg' (Data.ProtoLens.Field "result" msg)
+           (Data.ProtoLens.Field "result" msg')
+result
+  = Data.ProtoLens.field
+      (Data.ProtoLens.ProxySym :: Data.ProtoLens.ProxySym "result")
diff --git a/src/Proto/POGOProtos/Networking/Responses/GetInventoryResponse.hs b/src/Proto/POGOProtos/Networking/Responses/GetInventoryResponse.hs
new file mode 100644
--- /dev/null
+++ b/src/Proto/POGOProtos/Networking/Responses/GetInventoryResponse.hs
@@ -0,0 +1,113 @@
+{- This file was auto-generated from POGOProtos/Networking/Responses/GetInventoryResponse.proto by the proto-lens-protoc program. -}
+{-# LANGUAGE ScopedTypeVariables, DataKinds, TypeFamilies,
+  MultiParamTypeClasses, FlexibleContexts, FlexibleInstances #-}
+{-# OPTIONS_GHC -fno-warn-unused-imports#-}
+module Proto.POGOProtos.Networking.Responses.GetInventoryResponse
+       where
+import qualified Prelude
+import qualified Data.ProtoLens
+import qualified Data.ProtoLens.Message.Enum
+import qualified Lens.Family2
+import qualified Lens.Family2.Unchecked
+import qualified Data.Default.Class
+import qualified Data.Text
+import qualified Data.Int
+import qualified Data.Word
+import qualified Data.Map
+import qualified Data.ByteString
+import qualified Proto.POGOProtos.Inventory.InventoryDelta
+
+data GetInventoryResponse = GetInventoryResponse{_GetInventoryResponse'success
+                                                 :: Prelude.Bool,
+                                                 _GetInventoryResponse'inventoryDelta ::
+                                                 Prelude.Maybe
+                                                   Proto.POGOProtos.Inventory.InventoryDelta.InventoryDelta}
+                          deriving (Prelude.Show, Prelude.Eq)
+
+type instance Data.ProtoLens.Field "success" GetInventoryResponse =
+     Prelude.Bool
+
+instance Data.ProtoLens.HasField "success" GetInventoryResponse
+         GetInventoryResponse where
+        field _
+          = Lens.Family2.Unchecked.lens _GetInventoryResponse'success
+              (\ x__ y__ -> x__{_GetInventoryResponse'success = y__})
+
+type instance
+     Data.ProtoLens.Field "inventoryDelta" GetInventoryResponse =
+     Proto.POGOProtos.Inventory.InventoryDelta.InventoryDelta
+
+instance Data.ProtoLens.HasField "inventoryDelta"
+         GetInventoryResponse GetInventoryResponse where
+        field _
+          = (Prelude..) maybe'inventoryDelta
+              (Data.ProtoLens.maybeLens Data.Default.Class.def)
+
+type instance
+     Data.ProtoLens.Field "maybe'inventoryDelta" GetInventoryResponse =
+     Prelude.Maybe
+       Proto.POGOProtos.Inventory.InventoryDelta.InventoryDelta
+
+instance Data.ProtoLens.HasField "maybe'inventoryDelta"
+         GetInventoryResponse GetInventoryResponse where
+        field _
+          = Lens.Family2.Unchecked.lens _GetInventoryResponse'inventoryDelta
+              (\ x__ y__ -> x__{_GetInventoryResponse'inventoryDelta = y__})
+
+instance Data.Default.Class.Default GetInventoryResponse where
+        def
+          = GetInventoryResponse{_GetInventoryResponse'success =
+                                   Data.ProtoLens.fieldDefault,
+                                 _GetInventoryResponse'inventoryDelta = Prelude.Nothing}
+
+instance Data.ProtoLens.Message GetInventoryResponse where
+        descriptor
+          = let success__field_descriptor
+                  = Data.ProtoLens.FieldDescriptor "success"
+                      (Data.ProtoLens.BoolField ::
+                         Data.ProtoLens.FieldTypeDescriptor Prelude.Bool)
+                      (Data.ProtoLens.PlainField Data.ProtoLens.Optional success)
+                inventoryDelta__field_descriptor
+                  = Data.ProtoLens.FieldDescriptor "inventory_delta"
+                      (Data.ProtoLens.MessageField ::
+                         Data.ProtoLens.FieldTypeDescriptor
+                           Proto.POGOProtos.Inventory.InventoryDelta.InventoryDelta)
+                      (Data.ProtoLens.OptionalField maybe'inventoryDelta)
+              in
+              Data.ProtoLens.MessageDescriptor
+                (Data.Map.fromList
+                   [(Data.ProtoLens.Tag 1, success__field_descriptor),
+                    (Data.ProtoLens.Tag 2, inventoryDelta__field_descriptor)])
+                (Data.Map.fromList
+                   [("success", success__field_descriptor),
+                    ("inventory_delta", inventoryDelta__field_descriptor)])
+
+inventoryDelta ::
+               forall msg msg' .
+                 Data.ProtoLens.HasField "inventoryDelta" msg msg' =>
+                 Lens.Family2.Lens msg msg'
+                   (Data.ProtoLens.Field "inventoryDelta" msg)
+                   (Data.ProtoLens.Field "inventoryDelta" msg')
+inventoryDelta
+  = Data.ProtoLens.field
+      (Data.ProtoLens.ProxySym ::
+         Data.ProtoLens.ProxySym "inventoryDelta")
+
+maybe'inventoryDelta ::
+                     forall msg msg' .
+                       Data.ProtoLens.HasField "maybe'inventoryDelta" msg msg' =>
+                       Lens.Family2.Lens msg msg'
+                         (Data.ProtoLens.Field "maybe'inventoryDelta" msg)
+                         (Data.ProtoLens.Field "maybe'inventoryDelta" msg')
+maybe'inventoryDelta
+  = Data.ProtoLens.field
+      (Data.ProtoLens.ProxySym ::
+         Data.ProtoLens.ProxySym "maybe'inventoryDelta")
+
+success ::
+        forall msg msg' . Data.ProtoLens.HasField "success" msg msg' =>
+          Lens.Family2.Lens msg msg' (Data.ProtoLens.Field "success" msg)
+            (Data.ProtoLens.Field "success" msg')
+success
+  = Data.ProtoLens.field
+      (Data.ProtoLens.ProxySym :: Data.ProtoLens.ProxySym "success")
diff --git a/src/Proto/POGOProtos/Networking/Responses/GetMapObjectsResponse.hs b/src/Proto/POGOProtos/Networking/Responses/GetMapObjectsResponse.hs
new file mode 100644
--- /dev/null
+++ b/src/Proto/POGOProtos/Networking/Responses/GetMapObjectsResponse.hs
@@ -0,0 +1,87 @@
+{- This file was auto-generated from POGOProtos/Networking/Responses/GetMapObjectsResponse.proto by the proto-lens-protoc program. -}
+{-# LANGUAGE ScopedTypeVariables, DataKinds, TypeFamilies,
+  MultiParamTypeClasses, FlexibleContexts, FlexibleInstances #-}
+{-# OPTIONS_GHC -fno-warn-unused-imports#-}
+module Proto.POGOProtos.Networking.Responses.GetMapObjectsResponse
+       where
+import qualified Prelude
+import qualified Data.ProtoLens
+import qualified Data.ProtoLens.Message.Enum
+import qualified Lens.Family2
+import qualified Lens.Family2.Unchecked
+import qualified Data.Default.Class
+import qualified Data.Text
+import qualified Data.Int
+import qualified Data.Word
+import qualified Data.Map
+import qualified Data.ByteString
+import qualified Proto.POGOProtos.Map.MapCell
+import qualified Proto.POGOProtos.Map.MapObjectsStatus
+
+data GetMapObjectsResponse = GetMapObjectsResponse{_GetMapObjectsResponse'mapCells
+                                                   :: [Proto.POGOProtos.Map.MapCell.MapCell],
+                                                   _GetMapObjectsResponse'status ::
+                                                   Proto.POGOProtos.Map.MapObjectsStatus.MapObjectsStatus}
+                           deriving (Prelude.Show, Prelude.Eq)
+
+type instance Data.ProtoLens.Field "mapCells" GetMapObjectsResponse
+     = [Proto.POGOProtos.Map.MapCell.MapCell]
+
+instance Data.ProtoLens.HasField "mapCells" GetMapObjectsResponse
+         GetMapObjectsResponse where
+        field _
+          = Lens.Family2.Unchecked.lens _GetMapObjectsResponse'mapCells
+              (\ x__ y__ -> x__{_GetMapObjectsResponse'mapCells = y__})
+
+type instance Data.ProtoLens.Field "status" GetMapObjectsResponse =
+     Proto.POGOProtos.Map.MapObjectsStatus.MapObjectsStatus
+
+instance Data.ProtoLens.HasField "status" GetMapObjectsResponse
+         GetMapObjectsResponse where
+        field _
+          = Lens.Family2.Unchecked.lens _GetMapObjectsResponse'status
+              (\ x__ y__ -> x__{_GetMapObjectsResponse'status = y__})
+
+instance Data.Default.Class.Default GetMapObjectsResponse where
+        def
+          = GetMapObjectsResponse{_GetMapObjectsResponse'mapCells = [],
+                                  _GetMapObjectsResponse'status = Data.Default.Class.def}
+
+instance Data.ProtoLens.Message GetMapObjectsResponse where
+        descriptor
+          = let mapCells__field_descriptor
+                  = Data.ProtoLens.FieldDescriptor "map_cells"
+                      (Data.ProtoLens.MessageField ::
+                         Data.ProtoLens.FieldTypeDescriptor
+                           Proto.POGOProtos.Map.MapCell.MapCell)
+                      (Data.ProtoLens.RepeatedField Data.ProtoLens.Unpacked mapCells)
+                status__field_descriptor
+                  = Data.ProtoLens.FieldDescriptor "status"
+                      (Data.ProtoLens.EnumField ::
+                         Data.ProtoLens.FieldTypeDescriptor
+                           Proto.POGOProtos.Map.MapObjectsStatus.MapObjectsStatus)
+                      (Data.ProtoLens.PlainField Data.ProtoLens.Optional status)
+              in
+              Data.ProtoLens.MessageDescriptor
+                (Data.Map.fromList
+                   [(Data.ProtoLens.Tag 1, mapCells__field_descriptor),
+                    (Data.ProtoLens.Tag 2, status__field_descriptor)])
+                (Data.Map.fromList
+                   [("map_cells", mapCells__field_descriptor),
+                    ("status", status__field_descriptor)])
+
+mapCells ::
+         forall msg msg' . Data.ProtoLens.HasField "mapCells" msg msg' =>
+           Lens.Family2.Lens msg msg' (Data.ProtoLens.Field "mapCells" msg)
+             (Data.ProtoLens.Field "mapCells" msg')
+mapCells
+  = Data.ProtoLens.field
+      (Data.ProtoLens.ProxySym :: Data.ProtoLens.ProxySym "mapCells")
+
+status ::
+       forall msg msg' . Data.ProtoLens.HasField "status" msg msg' =>
+         Lens.Family2.Lens msg msg' (Data.ProtoLens.Field "status" msg)
+           (Data.ProtoLens.Field "status" msg')
+status
+  = Data.ProtoLens.field
+      (Data.ProtoLens.ProxySym :: Data.ProtoLens.ProxySym "status")
diff --git a/src/Proto/POGOProtos/Networking/Responses/GetPlayerProfileResponse.hs b/src/Proto/POGOProtos/Networking/Responses/GetPlayerProfileResponse.hs
new file mode 100644
--- /dev/null
+++ b/src/Proto/POGOProtos/Networking/Responses/GetPlayerProfileResponse.hs
@@ -0,0 +1,169 @@
+{- This file was auto-generated from POGOProtos/Networking/Responses/GetPlayerProfileResponse.proto by the proto-lens-protoc program. -}
+{-# LANGUAGE ScopedTypeVariables, DataKinds, TypeFamilies,
+  MultiParamTypeClasses, FlexibleContexts, FlexibleInstances #-}
+{-# OPTIONS_GHC -fno-warn-unused-imports#-}
+module Proto.POGOProtos.Networking.Responses.GetPlayerProfileResponse
+       where
+import qualified Prelude
+import qualified Data.ProtoLens
+import qualified Data.ProtoLens.Message.Enum
+import qualified Lens.Family2
+import qualified Lens.Family2.Unchecked
+import qualified Data.Default.Class
+import qualified Data.Text
+import qualified Data.Int
+import qualified Data.Word
+import qualified Data.Map
+import qualified Data.ByteString
+import qualified Proto.POGOProtos.Data.PlayerBadge
+
+data GetPlayerProfileResponse = GetPlayerProfileResponse{_GetPlayerProfileResponse'result
+                                                         :: GetPlayerProfileResponse'Result,
+                                                         _GetPlayerProfileResponse'startTime ::
+                                                         Data.Int.Int64,
+                                                         _GetPlayerProfileResponse'badges ::
+                                                         [Proto.POGOProtos.Data.PlayerBadge.PlayerBadge]}
+                              deriving (Prelude.Show, Prelude.Eq)
+
+type instance
+     Data.ProtoLens.Field "result" GetPlayerProfileResponse =
+     GetPlayerProfileResponse'Result
+
+instance Data.ProtoLens.HasField "result" GetPlayerProfileResponse
+         GetPlayerProfileResponse where
+        field _
+          = Lens.Family2.Unchecked.lens _GetPlayerProfileResponse'result
+              (\ x__ y__ -> x__{_GetPlayerProfileResponse'result = y__})
+
+type instance
+     Data.ProtoLens.Field "startTime" GetPlayerProfileResponse =
+     Data.Int.Int64
+
+instance Data.ProtoLens.HasField "startTime"
+         GetPlayerProfileResponse GetPlayerProfileResponse where
+        field _
+          = Lens.Family2.Unchecked.lens _GetPlayerProfileResponse'startTime
+              (\ x__ y__ -> x__{_GetPlayerProfileResponse'startTime = y__})
+
+type instance
+     Data.ProtoLens.Field "badges" GetPlayerProfileResponse =
+     [Proto.POGOProtos.Data.PlayerBadge.PlayerBadge]
+
+instance Data.ProtoLens.HasField "badges" GetPlayerProfileResponse
+         GetPlayerProfileResponse where
+        field _
+          = Lens.Family2.Unchecked.lens _GetPlayerProfileResponse'badges
+              (\ x__ y__ -> x__{_GetPlayerProfileResponse'badges = y__})
+
+instance Data.Default.Class.Default GetPlayerProfileResponse where
+        def
+          = GetPlayerProfileResponse{_GetPlayerProfileResponse'result =
+                                       Data.Default.Class.def,
+                                     _GetPlayerProfileResponse'startTime =
+                                       Data.ProtoLens.fieldDefault,
+                                     _GetPlayerProfileResponse'badges = []}
+
+instance Data.ProtoLens.Message GetPlayerProfileResponse where
+        descriptor
+          = let result__field_descriptor
+                  = Data.ProtoLens.FieldDescriptor "result"
+                      (Data.ProtoLens.EnumField ::
+                         Data.ProtoLens.FieldTypeDescriptor GetPlayerProfileResponse'Result)
+                      (Data.ProtoLens.PlainField Data.ProtoLens.Optional result)
+                startTime__field_descriptor
+                  = Data.ProtoLens.FieldDescriptor "start_time"
+                      (Data.ProtoLens.Int64Field ::
+                         Data.ProtoLens.FieldTypeDescriptor Data.Int.Int64)
+                      (Data.ProtoLens.PlainField Data.ProtoLens.Optional startTime)
+                badges__field_descriptor
+                  = Data.ProtoLens.FieldDescriptor "badges"
+                      (Data.ProtoLens.MessageField ::
+                         Data.ProtoLens.FieldTypeDescriptor
+                           Proto.POGOProtos.Data.PlayerBadge.PlayerBadge)
+                      (Data.ProtoLens.RepeatedField Data.ProtoLens.Unpacked badges)
+              in
+              Data.ProtoLens.MessageDescriptor
+                (Data.Map.fromList
+                   [(Data.ProtoLens.Tag 1, result__field_descriptor),
+                    (Data.ProtoLens.Tag 2, startTime__field_descriptor),
+                    (Data.ProtoLens.Tag 3, badges__field_descriptor)])
+                (Data.Map.fromList
+                   [("result", result__field_descriptor),
+                    ("start_time", startTime__field_descriptor),
+                    ("badges", badges__field_descriptor)])
+
+data GetPlayerProfileResponse'Result = GetPlayerProfileResponse'UNSET
+                                     | GetPlayerProfileResponse'SUCCESS
+                                     deriving (Prelude.Show, Prelude.Eq)
+
+instance Data.Default.Class.Default GetPlayerProfileResponse'Result
+         where
+        def = GetPlayerProfileResponse'UNSET
+
+instance Data.ProtoLens.FieldDefault
+         GetPlayerProfileResponse'Result where
+        fieldDefault = GetPlayerProfileResponse'UNSET
+
+instance Data.ProtoLens.MessageEnum GetPlayerProfileResponse'Result
+         where
+        maybeToEnum 0 = Prelude.Just GetPlayerProfileResponse'UNSET
+        maybeToEnum 1 = Prelude.Just GetPlayerProfileResponse'SUCCESS
+        maybeToEnum _ = Prelude.Nothing
+        showEnum GetPlayerProfileResponse'UNSET = "UNSET"
+        showEnum GetPlayerProfileResponse'SUCCESS = "SUCCESS"
+        readEnum "UNSET" = Prelude.Just GetPlayerProfileResponse'UNSET
+        readEnum "SUCCESS" = Prelude.Just GetPlayerProfileResponse'SUCCESS
+        readEnum _ = Prelude.Nothing
+
+instance Prelude.Enum GetPlayerProfileResponse'Result where
+        toEnum k__
+          = Prelude.maybe
+              (Prelude.error
+                 ((Prelude.++) "toEnum: unknown value for enum Result: "
+                    (Prelude.show k__)))
+              Prelude.id
+              (Data.ProtoLens.maybeToEnum k__)
+        fromEnum GetPlayerProfileResponse'UNSET = 0
+        fromEnum GetPlayerProfileResponse'SUCCESS = 1
+        succ GetPlayerProfileResponse'SUCCESS
+          = Prelude.error
+              "Ident \"GetPlayerProfileResponse'Result\".Ident \"succ\": bad argument Ident \"GetPlayerProfileResponse'SUCCESS\". This value would be out of bounds."
+        succ GetPlayerProfileResponse'UNSET
+          = GetPlayerProfileResponse'SUCCESS
+        pred GetPlayerProfileResponse'UNSET
+          = Prelude.error
+              "Ident \"GetPlayerProfileResponse'Result\".Ident \"pred\": bad argument Ident \"GetPlayerProfileResponse'UNSET\". This value would be out of bounds."
+        pred GetPlayerProfileResponse'SUCCESS
+          = GetPlayerProfileResponse'UNSET
+        enumFrom = Data.ProtoLens.Message.Enum.messageEnumFrom
+        enumFromTo = Data.ProtoLens.Message.Enum.messageEnumFromTo
+        enumFromThen = Data.ProtoLens.Message.Enum.messageEnumFromThen
+        enumFromThenTo = Data.ProtoLens.Message.Enum.messageEnumFromThenTo
+
+instance Prelude.Bounded GetPlayerProfileResponse'Result where
+        minBound = GetPlayerProfileResponse'UNSET
+        maxBound = GetPlayerProfileResponse'SUCCESS
+
+badges ::
+       forall msg msg' . Data.ProtoLens.HasField "badges" msg msg' =>
+         Lens.Family2.Lens msg msg' (Data.ProtoLens.Field "badges" msg)
+           (Data.ProtoLens.Field "badges" msg')
+badges
+  = Data.ProtoLens.field
+      (Data.ProtoLens.ProxySym :: Data.ProtoLens.ProxySym "badges")
+
+result ::
+       forall msg msg' . Data.ProtoLens.HasField "result" msg msg' =>
+         Lens.Family2.Lens msg msg' (Data.ProtoLens.Field "result" msg)
+           (Data.ProtoLens.Field "result" msg')
+result
+  = Data.ProtoLens.field
+      (Data.ProtoLens.ProxySym :: Data.ProtoLens.ProxySym "result")
+
+startTime ::
+          forall msg msg' . Data.ProtoLens.HasField "startTime" msg msg' =>
+            Lens.Family2.Lens msg msg' (Data.ProtoLens.Field "startTime" msg)
+              (Data.ProtoLens.Field "startTime" msg')
+startTime
+  = Data.ProtoLens.field
+      (Data.ProtoLens.ProxySym :: Data.ProtoLens.ProxySym "startTime")
diff --git a/src/Proto/POGOProtos/Networking/Responses/GetPlayerResponse.hs b/src/Proto/POGOProtos/Networking/Responses/GetPlayerResponse.hs
new file mode 100644
--- /dev/null
+++ b/src/Proto/POGOProtos/Networking/Responses/GetPlayerResponse.hs
@@ -0,0 +1,108 @@
+{- This file was auto-generated from POGOProtos/Networking/Responses/GetPlayerResponse.proto by the proto-lens-protoc program. -}
+{-# LANGUAGE ScopedTypeVariables, DataKinds, TypeFamilies,
+  MultiParamTypeClasses, FlexibleContexts, FlexibleInstances #-}
+{-# OPTIONS_GHC -fno-warn-unused-imports#-}
+module Proto.POGOProtos.Networking.Responses.GetPlayerResponse
+       where
+import qualified Prelude
+import qualified Data.ProtoLens
+import qualified Data.ProtoLens.Message.Enum
+import qualified Lens.Family2
+import qualified Lens.Family2.Unchecked
+import qualified Data.Default.Class
+import qualified Data.Text
+import qualified Data.Int
+import qualified Data.Word
+import qualified Data.Map
+import qualified Data.ByteString
+import qualified Proto.POGOProtos.Data.PlayerData
+
+data GetPlayerResponse = GetPlayerResponse{_GetPlayerResponse'success
+                                           :: Prelude.Bool,
+                                           _GetPlayerResponse'playerData ::
+                                           Prelude.Maybe
+                                             Proto.POGOProtos.Data.PlayerData.PlayerData}
+                       deriving (Prelude.Show, Prelude.Eq)
+
+type instance Data.ProtoLens.Field "success" GetPlayerResponse =
+     Prelude.Bool
+
+instance Data.ProtoLens.HasField "success" GetPlayerResponse
+         GetPlayerResponse where
+        field _
+          = Lens.Family2.Unchecked.lens _GetPlayerResponse'success
+              (\ x__ y__ -> x__{_GetPlayerResponse'success = y__})
+
+type instance Data.ProtoLens.Field "playerData" GetPlayerResponse =
+     Proto.POGOProtos.Data.PlayerData.PlayerData
+
+instance Data.ProtoLens.HasField "playerData" GetPlayerResponse
+         GetPlayerResponse where
+        field _
+          = (Prelude..) maybe'playerData
+              (Data.ProtoLens.maybeLens Data.Default.Class.def)
+
+type instance
+     Data.ProtoLens.Field "maybe'playerData" GetPlayerResponse =
+     Prelude.Maybe Proto.POGOProtos.Data.PlayerData.PlayerData
+
+instance Data.ProtoLens.HasField "maybe'playerData"
+         GetPlayerResponse GetPlayerResponse where
+        field _
+          = Lens.Family2.Unchecked.lens _GetPlayerResponse'playerData
+              (\ x__ y__ -> x__{_GetPlayerResponse'playerData = y__})
+
+instance Data.Default.Class.Default GetPlayerResponse where
+        def
+          = GetPlayerResponse{_GetPlayerResponse'success =
+                                Data.ProtoLens.fieldDefault,
+                              _GetPlayerResponse'playerData = Prelude.Nothing}
+
+instance Data.ProtoLens.Message GetPlayerResponse where
+        descriptor
+          = let success__field_descriptor
+                  = Data.ProtoLens.FieldDescriptor "success"
+                      (Data.ProtoLens.BoolField ::
+                         Data.ProtoLens.FieldTypeDescriptor Prelude.Bool)
+                      (Data.ProtoLens.PlainField Data.ProtoLens.Optional success)
+                playerData__field_descriptor
+                  = Data.ProtoLens.FieldDescriptor "player_data"
+                      (Data.ProtoLens.MessageField ::
+                         Data.ProtoLens.FieldTypeDescriptor
+                           Proto.POGOProtos.Data.PlayerData.PlayerData)
+                      (Data.ProtoLens.OptionalField maybe'playerData)
+              in
+              Data.ProtoLens.MessageDescriptor
+                (Data.Map.fromList
+                   [(Data.ProtoLens.Tag 1, success__field_descriptor),
+                    (Data.ProtoLens.Tag 2, playerData__field_descriptor)])
+                (Data.Map.fromList
+                   [("success", success__field_descriptor),
+                    ("player_data", playerData__field_descriptor)])
+
+maybe'playerData ::
+                 forall msg msg' .
+                   Data.ProtoLens.HasField "maybe'playerData" msg msg' =>
+                   Lens.Family2.Lens msg msg'
+                     (Data.ProtoLens.Field "maybe'playerData" msg)
+                     (Data.ProtoLens.Field "maybe'playerData" msg')
+maybe'playerData
+  = Data.ProtoLens.field
+      (Data.ProtoLens.ProxySym ::
+         Data.ProtoLens.ProxySym "maybe'playerData")
+
+playerData ::
+           forall msg msg' . Data.ProtoLens.HasField "playerData" msg msg' =>
+             Lens.Family2.Lens msg msg' (Data.ProtoLens.Field "playerData" msg)
+               (Data.ProtoLens.Field "playerData" msg')
+playerData
+  = Data.ProtoLens.field
+      (Data.ProtoLens.ProxySym :: Data.ProtoLens.ProxySym "playerData")
+
+success ::
+        forall msg msg' . Data.ProtoLens.HasField "success" msg msg' =>
+          Lens.Family2.Lens msg msg' (Data.ProtoLens.Field "success" msg)
+            (Data.ProtoLens.Field "success" msg')
+success
+  = Data.ProtoLens.field
+      (Data.ProtoLens.ProxySym :: Data.ProtoLens.ProxySym "success")
diff --git a/src/Proto/POGOProtos/Networking/Responses/GetSuggestedCodenamesResponse.hs b/src/Proto/POGOProtos/Networking/Responses/GetSuggestedCodenamesResponse.hs
new file mode 100644
--- /dev/null
+++ b/src/Proto/POGOProtos/Networking/Responses/GetSuggestedCodenamesResponse.hs
@@ -0,0 +1,90 @@
+{- This file was auto-generated from POGOProtos/Networking/Responses/GetSuggestedCodenamesResponse.proto by the proto-lens-protoc program. -}
+{-# LANGUAGE ScopedTypeVariables, DataKinds, TypeFamilies,
+  MultiParamTypeClasses, FlexibleContexts, FlexibleInstances #-}
+{-# OPTIONS_GHC -fno-warn-unused-imports#-}
+module Proto.POGOProtos.Networking.Responses.GetSuggestedCodenamesResponse
+       where
+import qualified Prelude
+import qualified Data.ProtoLens
+import qualified Data.ProtoLens.Message.Enum
+import qualified Lens.Family2
+import qualified Lens.Family2.Unchecked
+import qualified Data.Default.Class
+import qualified Data.Text
+import qualified Data.Int
+import qualified Data.Word
+import qualified Data.Map
+import qualified Data.ByteString
+
+data GetSuggestedCodenamesResponse = GetSuggestedCodenamesResponse{_GetSuggestedCodenamesResponse'codenames
+                                                                   :: [Data.Text.Text],
+                                                                   _GetSuggestedCodenamesResponse'success
+                                                                   :: Prelude.Bool}
+                                   deriving (Prelude.Show, Prelude.Eq)
+
+type instance
+     Data.ProtoLens.Field "codenames" GetSuggestedCodenamesResponse =
+     [Data.Text.Text]
+
+instance Data.ProtoLens.HasField "codenames"
+         GetSuggestedCodenamesResponse GetSuggestedCodenamesResponse where
+        field _
+          = Lens.Family2.Unchecked.lens
+              _GetSuggestedCodenamesResponse'codenames
+              (\ x__ y__ -> x__{_GetSuggestedCodenamesResponse'codenames = y__})
+
+type instance
+     Data.ProtoLens.Field "success" GetSuggestedCodenamesResponse =
+     Prelude.Bool
+
+instance Data.ProtoLens.HasField "success"
+         GetSuggestedCodenamesResponse GetSuggestedCodenamesResponse where
+        field _
+          = Lens.Family2.Unchecked.lens
+              _GetSuggestedCodenamesResponse'success
+              (\ x__ y__ -> x__{_GetSuggestedCodenamesResponse'success = y__})
+
+instance Data.Default.Class.Default GetSuggestedCodenamesResponse
+         where
+        def
+          = GetSuggestedCodenamesResponse{_GetSuggestedCodenamesResponse'codenames
+                                            = [],
+                                          _GetSuggestedCodenamesResponse'success =
+                                            Data.ProtoLens.fieldDefault}
+
+instance Data.ProtoLens.Message GetSuggestedCodenamesResponse where
+        descriptor
+          = let codenames__field_descriptor
+                  = Data.ProtoLens.FieldDescriptor "codenames"
+                      (Data.ProtoLens.StringField ::
+                         Data.ProtoLens.FieldTypeDescriptor Data.Text.Text)
+                      (Data.ProtoLens.RepeatedField Data.ProtoLens.Unpacked codenames)
+                success__field_descriptor
+                  = Data.ProtoLens.FieldDescriptor "success"
+                      (Data.ProtoLens.BoolField ::
+                         Data.ProtoLens.FieldTypeDescriptor Prelude.Bool)
+                      (Data.ProtoLens.PlainField Data.ProtoLens.Optional success)
+              in
+              Data.ProtoLens.MessageDescriptor
+                (Data.Map.fromList
+                   [(Data.ProtoLens.Tag 1, codenames__field_descriptor),
+                    (Data.ProtoLens.Tag 2, success__field_descriptor)])
+                (Data.Map.fromList
+                   [("codenames", codenames__field_descriptor),
+                    ("success", success__field_descriptor)])
+
+codenames ::
+          forall msg msg' . Data.ProtoLens.HasField "codenames" msg msg' =>
+            Lens.Family2.Lens msg msg' (Data.ProtoLens.Field "codenames" msg)
+              (Data.ProtoLens.Field "codenames" msg')
+codenames
+  = Data.ProtoLens.field
+      (Data.ProtoLens.ProxySym :: Data.ProtoLens.ProxySym "codenames")
+
+success ::
+        forall msg msg' . Data.ProtoLens.HasField "success" msg msg' =>
+          Lens.Family2.Lens msg msg' (Data.ProtoLens.Field "success" msg)
+            (Data.ProtoLens.Field "success" msg')
+success
+  = Data.ProtoLens.field
+      (Data.ProtoLens.ProxySym :: Data.ProtoLens.ProxySym "success")
diff --git a/src/Proto/POGOProtos/Networking/Responses/IncenseEncounterResponse.hs b/src/Proto/POGOProtos/Networking/Responses/IncenseEncounterResponse.hs
new file mode 100644
--- /dev/null
+++ b/src/Proto/POGOProtos/Networking/Responses/IncenseEncounterResponse.hs
@@ -0,0 +1,257 @@
+{- This file was auto-generated from POGOProtos/Networking/Responses/IncenseEncounterResponse.proto by the proto-lens-protoc program. -}
+{-# LANGUAGE ScopedTypeVariables, DataKinds, TypeFamilies,
+  MultiParamTypeClasses, FlexibleContexts, FlexibleInstances #-}
+{-# OPTIONS_GHC -fno-warn-unused-imports#-}
+module Proto.POGOProtos.Networking.Responses.IncenseEncounterResponse
+       where
+import qualified Prelude
+import qualified Data.ProtoLens
+import qualified Data.ProtoLens.Message.Enum
+import qualified Lens.Family2
+import qualified Lens.Family2.Unchecked
+import qualified Data.Default.Class
+import qualified Data.Text
+import qualified Data.Int
+import qualified Data.Word
+import qualified Data.Map
+import qualified Data.ByteString
+import qualified Proto.POGOProtos.Data.Capture.CaptureProbability
+import qualified Proto.POGOProtos.Data.PokemonData
+
+data IncenseEncounterResponse = IncenseEncounterResponse{_IncenseEncounterResponse'result
+                                                         :: IncenseEncounterResponse'Result,
+                                                         _IncenseEncounterResponse'pokemonData ::
+                                                         Prelude.Maybe
+                                                           Proto.POGOProtos.Data.PokemonData.PokemonData,
+                                                         _IncenseEncounterResponse'captureProbability
+                                                         ::
+                                                         Prelude.Maybe
+                                                           Proto.POGOProtos.Data.Capture.CaptureProbability.CaptureProbability}
+                              deriving (Prelude.Show, Prelude.Eq)
+
+type instance
+     Data.ProtoLens.Field "result" IncenseEncounterResponse =
+     IncenseEncounterResponse'Result
+
+instance Data.ProtoLens.HasField "result" IncenseEncounterResponse
+         IncenseEncounterResponse where
+        field _
+          = Lens.Family2.Unchecked.lens _IncenseEncounterResponse'result
+              (\ x__ y__ -> x__{_IncenseEncounterResponse'result = y__})
+
+type instance
+     Data.ProtoLens.Field "pokemonData" IncenseEncounterResponse =
+     Proto.POGOProtos.Data.PokemonData.PokemonData
+
+instance Data.ProtoLens.HasField "pokemonData"
+         IncenseEncounterResponse IncenseEncounterResponse where
+        field _
+          = (Prelude..) maybe'pokemonData
+              (Data.ProtoLens.maybeLens Data.Default.Class.def)
+
+type instance
+     Data.ProtoLens.Field "maybe'pokemonData" IncenseEncounterResponse =
+     Prelude.Maybe Proto.POGOProtos.Data.PokemonData.PokemonData
+
+instance Data.ProtoLens.HasField "maybe'pokemonData"
+         IncenseEncounterResponse IncenseEncounterResponse where
+        field _
+          = Lens.Family2.Unchecked.lens _IncenseEncounterResponse'pokemonData
+              (\ x__ y__ -> x__{_IncenseEncounterResponse'pokemonData = y__})
+
+type instance
+     Data.ProtoLens.Field "captureProbability" IncenseEncounterResponse
+     =
+     Proto.POGOProtos.Data.Capture.CaptureProbability.CaptureProbability
+
+instance Data.ProtoLens.HasField "captureProbability"
+         IncenseEncounterResponse IncenseEncounterResponse where
+        field _
+          = (Prelude..) maybe'captureProbability
+              (Data.ProtoLens.maybeLens Data.Default.Class.def)
+
+type instance
+     Data.ProtoLens.Field "maybe'captureProbability"
+       IncenseEncounterResponse
+     =
+     Prelude.Maybe
+       Proto.POGOProtos.Data.Capture.CaptureProbability.CaptureProbability
+
+instance Data.ProtoLens.HasField "maybe'captureProbability"
+         IncenseEncounterResponse IncenseEncounterResponse where
+        field _
+          = Lens.Family2.Unchecked.lens
+              _IncenseEncounterResponse'captureProbability
+              (\ x__ y__ ->
+                 x__{_IncenseEncounterResponse'captureProbability = y__})
+
+instance Data.Default.Class.Default IncenseEncounterResponse where
+        def
+          = IncenseEncounterResponse{_IncenseEncounterResponse'result =
+                                       Data.Default.Class.def,
+                                     _IncenseEncounterResponse'pokemonData = Prelude.Nothing,
+                                     _IncenseEncounterResponse'captureProbability = Prelude.Nothing}
+
+instance Data.ProtoLens.Message IncenseEncounterResponse where
+        descriptor
+          = let result__field_descriptor
+                  = Data.ProtoLens.FieldDescriptor "result"
+                      (Data.ProtoLens.EnumField ::
+                         Data.ProtoLens.FieldTypeDescriptor IncenseEncounterResponse'Result)
+                      (Data.ProtoLens.PlainField Data.ProtoLens.Optional result)
+                pokemonData__field_descriptor
+                  = Data.ProtoLens.FieldDescriptor "pokemon_data"
+                      (Data.ProtoLens.MessageField ::
+                         Data.ProtoLens.FieldTypeDescriptor
+                           Proto.POGOProtos.Data.PokemonData.PokemonData)
+                      (Data.ProtoLens.OptionalField maybe'pokemonData)
+                captureProbability__field_descriptor
+                  = Data.ProtoLens.FieldDescriptor "capture_probability"
+                      (Data.ProtoLens.MessageField ::
+                         Data.ProtoLens.FieldTypeDescriptor
+                           Proto.POGOProtos.Data.Capture.CaptureProbability.CaptureProbability)
+                      (Data.ProtoLens.OptionalField maybe'captureProbability)
+              in
+              Data.ProtoLens.MessageDescriptor
+                (Data.Map.fromList
+                   [(Data.ProtoLens.Tag 1, result__field_descriptor),
+                    (Data.ProtoLens.Tag 2, pokemonData__field_descriptor),
+                    (Data.ProtoLens.Tag 3, captureProbability__field_descriptor)])
+                (Data.Map.fromList
+                   [("result", result__field_descriptor),
+                    ("pokemon_data", pokemonData__field_descriptor),
+                    ("capture_probability", captureProbability__field_descriptor)])
+
+data IncenseEncounterResponse'Result = IncenseEncounterResponse'INCENSE_ENCOUNTER_UNKNOWN
+                                     | IncenseEncounterResponse'INCENSE_ENCOUNTER_SUCCESS
+                                     | IncenseEncounterResponse'INCENSE_ENCOUNTER_NOT_AVAILABLE
+                                     | IncenseEncounterResponse'POKEMON_INVENTORY_FULL
+                                     deriving (Prelude.Show, Prelude.Eq)
+
+instance Data.Default.Class.Default IncenseEncounterResponse'Result
+         where
+        def = IncenseEncounterResponse'INCENSE_ENCOUNTER_UNKNOWN
+
+instance Data.ProtoLens.FieldDefault
+         IncenseEncounterResponse'Result where
+        fieldDefault = IncenseEncounterResponse'INCENSE_ENCOUNTER_UNKNOWN
+
+instance Data.ProtoLens.MessageEnum IncenseEncounterResponse'Result
+         where
+        maybeToEnum 0
+          = Prelude.Just IncenseEncounterResponse'INCENSE_ENCOUNTER_UNKNOWN
+        maybeToEnum 1
+          = Prelude.Just IncenseEncounterResponse'INCENSE_ENCOUNTER_SUCCESS
+        maybeToEnum 2
+          = Prelude.Just
+              IncenseEncounterResponse'INCENSE_ENCOUNTER_NOT_AVAILABLE
+        maybeToEnum 3
+          = Prelude.Just IncenseEncounterResponse'POKEMON_INVENTORY_FULL
+        maybeToEnum _ = Prelude.Nothing
+        showEnum IncenseEncounterResponse'INCENSE_ENCOUNTER_UNKNOWN
+          = "INCENSE_ENCOUNTER_UNKNOWN"
+        showEnum IncenseEncounterResponse'INCENSE_ENCOUNTER_SUCCESS
+          = "INCENSE_ENCOUNTER_SUCCESS"
+        showEnum IncenseEncounterResponse'INCENSE_ENCOUNTER_NOT_AVAILABLE
+          = "INCENSE_ENCOUNTER_NOT_AVAILABLE"
+        showEnum IncenseEncounterResponse'POKEMON_INVENTORY_FULL
+          = "POKEMON_INVENTORY_FULL"
+        readEnum "INCENSE_ENCOUNTER_UNKNOWN"
+          = Prelude.Just IncenseEncounterResponse'INCENSE_ENCOUNTER_UNKNOWN
+        readEnum "INCENSE_ENCOUNTER_SUCCESS"
+          = Prelude.Just IncenseEncounterResponse'INCENSE_ENCOUNTER_SUCCESS
+        readEnum "INCENSE_ENCOUNTER_NOT_AVAILABLE"
+          = Prelude.Just
+              IncenseEncounterResponse'INCENSE_ENCOUNTER_NOT_AVAILABLE
+        readEnum "POKEMON_INVENTORY_FULL"
+          = Prelude.Just IncenseEncounterResponse'POKEMON_INVENTORY_FULL
+        readEnum _ = Prelude.Nothing
+
+instance Prelude.Enum IncenseEncounterResponse'Result where
+        toEnum k__
+          = Prelude.maybe
+              (Prelude.error
+                 ((Prelude.++) "toEnum: unknown value for enum Result: "
+                    (Prelude.show k__)))
+              Prelude.id
+              (Data.ProtoLens.maybeToEnum k__)
+        fromEnum IncenseEncounterResponse'INCENSE_ENCOUNTER_UNKNOWN = 0
+        fromEnum IncenseEncounterResponse'INCENSE_ENCOUNTER_SUCCESS = 1
+        fromEnum IncenseEncounterResponse'INCENSE_ENCOUNTER_NOT_AVAILABLE
+          = 2
+        fromEnum IncenseEncounterResponse'POKEMON_INVENTORY_FULL = 3
+        succ IncenseEncounterResponse'POKEMON_INVENTORY_FULL
+          = Prelude.error
+              "Ident \"IncenseEncounterResponse'Result\".Ident \"succ\": bad argument Ident \"IncenseEncounterResponse'POKEMON_INVENTORY_FULL\". This value would be out of bounds."
+        succ IncenseEncounterResponse'INCENSE_ENCOUNTER_UNKNOWN
+          = IncenseEncounterResponse'INCENSE_ENCOUNTER_SUCCESS
+        succ IncenseEncounterResponse'INCENSE_ENCOUNTER_SUCCESS
+          = IncenseEncounterResponse'INCENSE_ENCOUNTER_NOT_AVAILABLE
+        succ IncenseEncounterResponse'INCENSE_ENCOUNTER_NOT_AVAILABLE
+          = IncenseEncounterResponse'POKEMON_INVENTORY_FULL
+        pred IncenseEncounterResponse'INCENSE_ENCOUNTER_UNKNOWN
+          = Prelude.error
+              "Ident \"IncenseEncounterResponse'Result\".Ident \"pred\": bad argument Ident \"IncenseEncounterResponse'INCENSE_ENCOUNTER_UNKNOWN\". This value would be out of bounds."
+        pred IncenseEncounterResponse'INCENSE_ENCOUNTER_SUCCESS
+          = IncenseEncounterResponse'INCENSE_ENCOUNTER_UNKNOWN
+        pred IncenseEncounterResponse'INCENSE_ENCOUNTER_NOT_AVAILABLE
+          = IncenseEncounterResponse'INCENSE_ENCOUNTER_SUCCESS
+        pred IncenseEncounterResponse'POKEMON_INVENTORY_FULL
+          = IncenseEncounterResponse'INCENSE_ENCOUNTER_NOT_AVAILABLE
+        enumFrom = Data.ProtoLens.Message.Enum.messageEnumFrom
+        enumFromTo = Data.ProtoLens.Message.Enum.messageEnumFromTo
+        enumFromThen = Data.ProtoLens.Message.Enum.messageEnumFromThen
+        enumFromThenTo = Data.ProtoLens.Message.Enum.messageEnumFromThenTo
+
+instance Prelude.Bounded IncenseEncounterResponse'Result where
+        minBound = IncenseEncounterResponse'INCENSE_ENCOUNTER_UNKNOWN
+        maxBound = IncenseEncounterResponse'POKEMON_INVENTORY_FULL
+
+captureProbability ::
+                   forall msg msg' .
+                     Data.ProtoLens.HasField "captureProbability" msg msg' =>
+                     Lens.Family2.Lens msg msg'
+                       (Data.ProtoLens.Field "captureProbability" msg)
+                       (Data.ProtoLens.Field "captureProbability" msg')
+captureProbability
+  = Data.ProtoLens.field
+      (Data.ProtoLens.ProxySym ::
+         Data.ProtoLens.ProxySym "captureProbability")
+
+maybe'captureProbability ::
+                         forall msg msg' .
+                           Data.ProtoLens.HasField "maybe'captureProbability" msg msg' =>
+                           Lens.Family2.Lens msg msg'
+                             (Data.ProtoLens.Field "maybe'captureProbability" msg)
+                             (Data.ProtoLens.Field "maybe'captureProbability" msg')
+maybe'captureProbability
+  = Data.ProtoLens.field
+      (Data.ProtoLens.ProxySym ::
+         Data.ProtoLens.ProxySym "maybe'captureProbability")
+
+maybe'pokemonData ::
+                  forall msg msg' .
+                    Data.ProtoLens.HasField "maybe'pokemonData" msg msg' =>
+                    Lens.Family2.Lens msg msg'
+                      (Data.ProtoLens.Field "maybe'pokemonData" msg)
+                      (Data.ProtoLens.Field "maybe'pokemonData" msg')
+maybe'pokemonData
+  = Data.ProtoLens.field
+      (Data.ProtoLens.ProxySym ::
+         Data.ProtoLens.ProxySym "maybe'pokemonData")
+
+pokemonData ::
+            forall msg msg' . Data.ProtoLens.HasField "pokemonData" msg msg' =>
+              Lens.Family2.Lens msg msg' (Data.ProtoLens.Field "pokemonData" msg)
+                (Data.ProtoLens.Field "pokemonData" msg')
+pokemonData
+  = Data.ProtoLens.field
+      (Data.ProtoLens.ProxySym :: Data.ProtoLens.ProxySym "pokemonData")
+
+result ::
+       forall msg msg' . Data.ProtoLens.HasField "result" msg msg' =>
+         Lens.Family2.Lens msg msg' (Data.ProtoLens.Field "result" msg)
+           (Data.ProtoLens.Field "result" msg')
+result
+  = Data.ProtoLens.field
+      (Data.ProtoLens.ProxySym :: Data.ProtoLens.ProxySym "result")
diff --git a/src/Proto/POGOProtos/Networking/Responses/LevelUpRewardsResponse.hs b/src/Proto/POGOProtos/Networking/Responses/LevelUpRewardsResponse.hs
new file mode 100644
--- /dev/null
+++ b/src/Proto/POGOProtos/Networking/Responses/LevelUpRewardsResponse.hs
@@ -0,0 +1,183 @@
+{- This file was auto-generated from POGOProtos/Networking/Responses/LevelUpRewardsResponse.proto by the proto-lens-protoc program. -}
+{-# LANGUAGE ScopedTypeVariables, DataKinds, TypeFamilies,
+  MultiParamTypeClasses, FlexibleContexts, FlexibleInstances #-}
+{-# OPTIONS_GHC -fno-warn-unused-imports#-}
+module Proto.POGOProtos.Networking.Responses.LevelUpRewardsResponse
+       where
+import qualified Prelude
+import qualified Data.ProtoLens
+import qualified Data.ProtoLens.Message.Enum
+import qualified Lens.Family2
+import qualified Lens.Family2.Unchecked
+import qualified Data.Default.Class
+import qualified Data.Text
+import qualified Data.Int
+import qualified Data.Word
+import qualified Data.Map
+import qualified Data.ByteString
+import qualified Proto.POGOProtos.Inventory.Item.ItemAward
+import qualified Proto.POGOProtos.Inventory.Item.ItemId
+
+data LevelUpRewardsResponse = LevelUpRewardsResponse{_LevelUpRewardsResponse'result
+                                                     :: LevelUpRewardsResponse'Result,
+                                                     _LevelUpRewardsResponse'itemsAwarded ::
+                                                     [Proto.POGOProtos.Inventory.Item.ItemAward.ItemAward],
+                                                     _LevelUpRewardsResponse'itemsUnlocked ::
+                                                     [Proto.POGOProtos.Inventory.Item.ItemId.ItemId]}
+                            deriving (Prelude.Show, Prelude.Eq)
+
+type instance Data.ProtoLens.Field "result" LevelUpRewardsResponse
+     = LevelUpRewardsResponse'Result
+
+instance Data.ProtoLens.HasField "result" LevelUpRewardsResponse
+         LevelUpRewardsResponse where
+        field _
+          = Lens.Family2.Unchecked.lens _LevelUpRewardsResponse'result
+              (\ x__ y__ -> x__{_LevelUpRewardsResponse'result = y__})
+
+type instance
+     Data.ProtoLens.Field "itemsAwarded" LevelUpRewardsResponse =
+     [Proto.POGOProtos.Inventory.Item.ItemAward.ItemAward]
+
+instance Data.ProtoLens.HasField "itemsAwarded"
+         LevelUpRewardsResponse LevelUpRewardsResponse where
+        field _
+          = Lens.Family2.Unchecked.lens _LevelUpRewardsResponse'itemsAwarded
+              (\ x__ y__ -> x__{_LevelUpRewardsResponse'itemsAwarded = y__})
+
+type instance
+     Data.ProtoLens.Field "itemsUnlocked" LevelUpRewardsResponse =
+     [Proto.POGOProtos.Inventory.Item.ItemId.ItemId]
+
+instance Data.ProtoLens.HasField "itemsUnlocked"
+         LevelUpRewardsResponse LevelUpRewardsResponse where
+        field _
+          = Lens.Family2.Unchecked.lens _LevelUpRewardsResponse'itemsUnlocked
+              (\ x__ y__ -> x__{_LevelUpRewardsResponse'itemsUnlocked = y__})
+
+instance Data.Default.Class.Default LevelUpRewardsResponse where
+        def
+          = LevelUpRewardsResponse{_LevelUpRewardsResponse'result =
+                                     Data.Default.Class.def,
+                                   _LevelUpRewardsResponse'itemsAwarded = [],
+                                   _LevelUpRewardsResponse'itemsUnlocked = []}
+
+instance Data.ProtoLens.Message LevelUpRewardsResponse where
+        descriptor
+          = let result__field_descriptor
+                  = Data.ProtoLens.FieldDescriptor "result"
+                      (Data.ProtoLens.EnumField ::
+                         Data.ProtoLens.FieldTypeDescriptor LevelUpRewardsResponse'Result)
+                      (Data.ProtoLens.PlainField Data.ProtoLens.Optional result)
+                itemsAwarded__field_descriptor
+                  = Data.ProtoLens.FieldDescriptor "items_awarded"
+                      (Data.ProtoLens.MessageField ::
+                         Data.ProtoLens.FieldTypeDescriptor
+                           Proto.POGOProtos.Inventory.Item.ItemAward.ItemAward)
+                      (Data.ProtoLens.RepeatedField Data.ProtoLens.Unpacked itemsAwarded)
+                itemsUnlocked__field_descriptor
+                  = Data.ProtoLens.FieldDescriptor "items_unlocked"
+                      (Data.ProtoLens.EnumField ::
+                         Data.ProtoLens.FieldTypeDescriptor
+                           Proto.POGOProtos.Inventory.Item.ItemId.ItemId)
+                      (Data.ProtoLens.RepeatedField Data.ProtoLens.Unpacked
+                         itemsUnlocked)
+              in
+              Data.ProtoLens.MessageDescriptor
+                (Data.Map.fromList
+                   [(Data.ProtoLens.Tag 1, result__field_descriptor),
+                    (Data.ProtoLens.Tag 2, itemsAwarded__field_descriptor),
+                    (Data.ProtoLens.Tag 4, itemsUnlocked__field_descriptor)])
+                (Data.Map.fromList
+                   [("result", result__field_descriptor),
+                    ("items_awarded", itemsAwarded__field_descriptor),
+                    ("items_unlocked", itemsUnlocked__field_descriptor)])
+
+data LevelUpRewardsResponse'Result = LevelUpRewardsResponse'UNSET
+                                   | LevelUpRewardsResponse'SUCCESS
+                                   | LevelUpRewardsResponse'AWARDED_ALREADY
+                                   deriving (Prelude.Show, Prelude.Eq)
+
+instance Data.Default.Class.Default LevelUpRewardsResponse'Result
+         where
+        def = LevelUpRewardsResponse'UNSET
+
+instance Data.ProtoLens.FieldDefault LevelUpRewardsResponse'Result
+         where
+        fieldDefault = LevelUpRewardsResponse'UNSET
+
+instance Data.ProtoLens.MessageEnum LevelUpRewardsResponse'Result
+         where
+        maybeToEnum 0 = Prelude.Just LevelUpRewardsResponse'UNSET
+        maybeToEnum 1 = Prelude.Just LevelUpRewardsResponse'SUCCESS
+        maybeToEnum 2 = Prelude.Just LevelUpRewardsResponse'AWARDED_ALREADY
+        maybeToEnum _ = Prelude.Nothing
+        showEnum LevelUpRewardsResponse'UNSET = "UNSET"
+        showEnum LevelUpRewardsResponse'SUCCESS = "SUCCESS"
+        showEnum LevelUpRewardsResponse'AWARDED_ALREADY = "AWARDED_ALREADY"
+        readEnum "UNSET" = Prelude.Just LevelUpRewardsResponse'UNSET
+        readEnum "SUCCESS" = Prelude.Just LevelUpRewardsResponse'SUCCESS
+        readEnum "AWARDED_ALREADY"
+          = Prelude.Just LevelUpRewardsResponse'AWARDED_ALREADY
+        readEnum _ = Prelude.Nothing
+
+instance Prelude.Enum LevelUpRewardsResponse'Result where
+        toEnum k__
+          = Prelude.maybe
+              (Prelude.error
+                 ((Prelude.++) "toEnum: unknown value for enum Result: "
+                    (Prelude.show k__)))
+              Prelude.id
+              (Data.ProtoLens.maybeToEnum k__)
+        fromEnum LevelUpRewardsResponse'UNSET = 0
+        fromEnum LevelUpRewardsResponse'SUCCESS = 1
+        fromEnum LevelUpRewardsResponse'AWARDED_ALREADY = 2
+        succ LevelUpRewardsResponse'AWARDED_ALREADY
+          = Prelude.error
+              "Ident \"LevelUpRewardsResponse'Result\".Ident \"succ\": bad argument Ident \"LevelUpRewardsResponse'AWARDED_ALREADY\". This value would be out of bounds."
+        succ LevelUpRewardsResponse'UNSET = LevelUpRewardsResponse'SUCCESS
+        succ LevelUpRewardsResponse'SUCCESS
+          = LevelUpRewardsResponse'AWARDED_ALREADY
+        pred LevelUpRewardsResponse'UNSET
+          = Prelude.error
+              "Ident \"LevelUpRewardsResponse'Result\".Ident \"pred\": bad argument Ident \"LevelUpRewardsResponse'UNSET\". This value would be out of bounds."
+        pred LevelUpRewardsResponse'SUCCESS = LevelUpRewardsResponse'UNSET
+        pred LevelUpRewardsResponse'AWARDED_ALREADY
+          = LevelUpRewardsResponse'SUCCESS
+        enumFrom = Data.ProtoLens.Message.Enum.messageEnumFrom
+        enumFromTo = Data.ProtoLens.Message.Enum.messageEnumFromTo
+        enumFromThen = Data.ProtoLens.Message.Enum.messageEnumFromThen
+        enumFromThenTo = Data.ProtoLens.Message.Enum.messageEnumFromThenTo
+
+instance Prelude.Bounded LevelUpRewardsResponse'Result where
+        minBound = LevelUpRewardsResponse'UNSET
+        maxBound = LevelUpRewardsResponse'AWARDED_ALREADY
+
+itemsAwarded ::
+             forall msg msg' .
+               Data.ProtoLens.HasField "itemsAwarded" msg msg' =>
+               Lens.Family2.Lens msg msg'
+                 (Data.ProtoLens.Field "itemsAwarded" msg)
+                 (Data.ProtoLens.Field "itemsAwarded" msg')
+itemsAwarded
+  = Data.ProtoLens.field
+      (Data.ProtoLens.ProxySym :: Data.ProtoLens.ProxySym "itemsAwarded")
+
+itemsUnlocked ::
+              forall msg msg' .
+                Data.ProtoLens.HasField "itemsUnlocked" msg msg' =>
+                Lens.Family2.Lens msg msg'
+                  (Data.ProtoLens.Field "itemsUnlocked" msg)
+                  (Data.ProtoLens.Field "itemsUnlocked" msg')
+itemsUnlocked
+  = Data.ProtoLens.field
+      (Data.ProtoLens.ProxySym ::
+         Data.ProtoLens.ProxySym "itemsUnlocked")
+
+result ::
+       forall msg msg' . Data.ProtoLens.HasField "result" msg msg' =>
+         Lens.Family2.Lens msg msg' (Data.ProtoLens.Field "result" msg)
+           (Data.ProtoLens.Field "result" msg')
+result
+  = Data.ProtoLens.field
+      (Data.ProtoLens.ProxySym :: Data.ProtoLens.ProxySym "result")
diff --git a/src/Proto/POGOProtos/Networking/Responses/MarkTutorialCompleteResponse.hs b/src/Proto/POGOProtos/Networking/Responses/MarkTutorialCompleteResponse.hs
new file mode 100644
--- /dev/null
+++ b/src/Proto/POGOProtos/Networking/Responses/MarkTutorialCompleteResponse.hs
@@ -0,0 +1,114 @@
+{- This file was auto-generated from POGOProtos/Networking/Responses/MarkTutorialCompleteResponse.proto by the proto-lens-protoc program. -}
+{-# LANGUAGE ScopedTypeVariables, DataKinds, TypeFamilies,
+  MultiParamTypeClasses, FlexibleContexts, FlexibleInstances #-}
+{-# OPTIONS_GHC -fno-warn-unused-imports#-}
+module Proto.POGOProtos.Networking.Responses.MarkTutorialCompleteResponse
+       where
+import qualified Prelude
+import qualified Data.ProtoLens
+import qualified Data.ProtoLens.Message.Enum
+import qualified Lens.Family2
+import qualified Lens.Family2.Unchecked
+import qualified Data.Default.Class
+import qualified Data.Text
+import qualified Data.Int
+import qualified Data.Word
+import qualified Data.Map
+import qualified Data.ByteString
+import qualified Proto.POGOProtos.Data.PlayerData
+
+data MarkTutorialCompleteResponse = MarkTutorialCompleteResponse{_MarkTutorialCompleteResponse'success
+                                                                 :: Prelude.Bool,
+                                                                 _MarkTutorialCompleteResponse'playerData
+                                                                 ::
+                                                                 Prelude.Maybe
+                                                                   Proto.POGOProtos.Data.PlayerData.PlayerData}
+                                  deriving (Prelude.Show, Prelude.Eq)
+
+type instance
+     Data.ProtoLens.Field "success" MarkTutorialCompleteResponse =
+     Prelude.Bool
+
+instance Data.ProtoLens.HasField "success"
+         MarkTutorialCompleteResponse MarkTutorialCompleteResponse where
+        field _
+          = Lens.Family2.Unchecked.lens _MarkTutorialCompleteResponse'success
+              (\ x__ y__ -> x__{_MarkTutorialCompleteResponse'success = y__})
+
+type instance
+     Data.ProtoLens.Field "playerData" MarkTutorialCompleteResponse =
+     Proto.POGOProtos.Data.PlayerData.PlayerData
+
+instance Data.ProtoLens.HasField "playerData"
+         MarkTutorialCompleteResponse MarkTutorialCompleteResponse where
+        field _
+          = (Prelude..) maybe'playerData
+              (Data.ProtoLens.maybeLens Data.Default.Class.def)
+
+type instance
+     Data.ProtoLens.Field "maybe'playerData"
+       MarkTutorialCompleteResponse
+     = Prelude.Maybe Proto.POGOProtos.Data.PlayerData.PlayerData
+
+instance Data.ProtoLens.HasField "maybe'playerData"
+         MarkTutorialCompleteResponse MarkTutorialCompleteResponse where
+        field _
+          = Lens.Family2.Unchecked.lens
+              _MarkTutorialCompleteResponse'playerData
+              (\ x__ y__ -> x__{_MarkTutorialCompleteResponse'playerData = y__})
+
+instance Data.Default.Class.Default MarkTutorialCompleteResponse
+         where
+        def
+          = MarkTutorialCompleteResponse{_MarkTutorialCompleteResponse'success
+                                           = Data.ProtoLens.fieldDefault,
+                                         _MarkTutorialCompleteResponse'playerData = Prelude.Nothing}
+
+instance Data.ProtoLens.Message MarkTutorialCompleteResponse where
+        descriptor
+          = let success__field_descriptor
+                  = Data.ProtoLens.FieldDescriptor "success"
+                      (Data.ProtoLens.BoolField ::
+                         Data.ProtoLens.FieldTypeDescriptor Prelude.Bool)
+                      (Data.ProtoLens.PlainField Data.ProtoLens.Optional success)
+                playerData__field_descriptor
+                  = Data.ProtoLens.FieldDescriptor "player_data"
+                      (Data.ProtoLens.MessageField ::
+                         Data.ProtoLens.FieldTypeDescriptor
+                           Proto.POGOProtos.Data.PlayerData.PlayerData)
+                      (Data.ProtoLens.OptionalField maybe'playerData)
+              in
+              Data.ProtoLens.MessageDescriptor
+                (Data.Map.fromList
+                   [(Data.ProtoLens.Tag 1, success__field_descriptor),
+                    (Data.ProtoLens.Tag 2, playerData__field_descriptor)])
+                (Data.Map.fromList
+                   [("success", success__field_descriptor),
+                    ("player_data", playerData__field_descriptor)])
+
+maybe'playerData ::
+                 forall msg msg' .
+                   Data.ProtoLens.HasField "maybe'playerData" msg msg' =>
+                   Lens.Family2.Lens msg msg'
+                     (Data.ProtoLens.Field "maybe'playerData" msg)
+                     (Data.ProtoLens.Field "maybe'playerData" msg')
+maybe'playerData
+  = Data.ProtoLens.field
+      (Data.ProtoLens.ProxySym ::
+         Data.ProtoLens.ProxySym "maybe'playerData")
+
+playerData ::
+           forall msg msg' . Data.ProtoLens.HasField "playerData" msg msg' =>
+             Lens.Family2.Lens msg msg' (Data.ProtoLens.Field "playerData" msg)
+               (Data.ProtoLens.Field "playerData" msg')
+playerData
+  = Data.ProtoLens.field
+      (Data.ProtoLens.ProxySym :: Data.ProtoLens.ProxySym "playerData")
+
+success ::
+        forall msg msg' . Data.ProtoLens.HasField "success" msg msg' =>
+          Lens.Family2.Lens msg msg' (Data.ProtoLens.Field "success" msg)
+            (Data.ProtoLens.Field "success" msg')
+success
+  = Data.ProtoLens.field
+      (Data.ProtoLens.ProxySym :: Data.ProtoLens.ProxySym "success")
diff --git a/src/Proto/POGOProtos/Networking/Responses/NicknamePokemonResponse.hs b/src/Proto/POGOProtos/Networking/Responses/NicknamePokemonResponse.hs
new file mode 100644
--- /dev/null
+++ b/src/Proto/POGOProtos/Networking/Responses/NicknamePokemonResponse.hs
@@ -0,0 +1,144 @@
+{- This file was auto-generated from POGOProtos/Networking/Responses/NicknamePokemonResponse.proto by the proto-lens-protoc program. -}
+{-# LANGUAGE ScopedTypeVariables, DataKinds, TypeFamilies,
+  MultiParamTypeClasses, FlexibleContexts, FlexibleInstances #-}
+{-# OPTIONS_GHC -fno-warn-unused-imports#-}
+module Proto.POGOProtos.Networking.Responses.NicknamePokemonResponse
+       where
+import qualified Prelude
+import qualified Data.ProtoLens
+import qualified Data.ProtoLens.Message.Enum
+import qualified Lens.Family2
+import qualified Lens.Family2.Unchecked
+import qualified Data.Default.Class
+import qualified Data.Text
+import qualified Data.Int
+import qualified Data.Word
+import qualified Data.Map
+import qualified Data.ByteString
+
+data NicknamePokemonResponse = NicknamePokemonResponse{_NicknamePokemonResponse'result
+                                                       :: NicknamePokemonResponse'Result}
+                             deriving (Prelude.Show, Prelude.Eq)
+
+type instance Data.ProtoLens.Field "result" NicknamePokemonResponse
+     = NicknamePokemonResponse'Result
+
+instance Data.ProtoLens.HasField "result" NicknamePokemonResponse
+         NicknamePokemonResponse where
+        field _
+          = Lens.Family2.Unchecked.lens _NicknamePokemonResponse'result
+              (\ x__ y__ -> x__{_NicknamePokemonResponse'result = y__})
+
+instance Data.Default.Class.Default NicknamePokemonResponse where
+        def
+          = NicknamePokemonResponse{_NicknamePokemonResponse'result =
+                                      Data.Default.Class.def}
+
+instance Data.ProtoLens.Message NicknamePokemonResponse where
+        descriptor
+          = let result__field_descriptor
+                  = Data.ProtoLens.FieldDescriptor "result"
+                      (Data.ProtoLens.EnumField ::
+                         Data.ProtoLens.FieldTypeDescriptor NicknamePokemonResponse'Result)
+                      (Data.ProtoLens.PlainField Data.ProtoLens.Optional result)
+              in
+              Data.ProtoLens.MessageDescriptor
+                (Data.Map.fromList
+                   [(Data.ProtoLens.Tag 1, result__field_descriptor)])
+                (Data.Map.fromList [("result", result__field_descriptor)])
+
+data NicknamePokemonResponse'Result = NicknamePokemonResponse'UNSET
+                                    | NicknamePokemonResponse'SUCCESS
+                                    | NicknamePokemonResponse'ERROR_INVALID_NICKNAME
+                                    | NicknamePokemonResponse'ERROR_POKEMON_NOT_FOUND
+                                    | NicknamePokemonResponse'ERROR_POKEMON_IS_EGG
+                                    deriving (Prelude.Show, Prelude.Eq)
+
+instance Data.Default.Class.Default NicknamePokemonResponse'Result
+         where
+        def = NicknamePokemonResponse'UNSET
+
+instance Data.ProtoLens.FieldDefault NicknamePokemonResponse'Result
+         where
+        fieldDefault = NicknamePokemonResponse'UNSET
+
+instance Data.ProtoLens.MessageEnum NicknamePokemonResponse'Result
+         where
+        maybeToEnum 0 = Prelude.Just NicknamePokemonResponse'UNSET
+        maybeToEnum 1 = Prelude.Just NicknamePokemonResponse'SUCCESS
+        maybeToEnum 2
+          = Prelude.Just NicknamePokemonResponse'ERROR_INVALID_NICKNAME
+        maybeToEnum 3
+          = Prelude.Just NicknamePokemonResponse'ERROR_POKEMON_NOT_FOUND
+        maybeToEnum 4
+          = Prelude.Just NicknamePokemonResponse'ERROR_POKEMON_IS_EGG
+        maybeToEnum _ = Prelude.Nothing
+        showEnum NicknamePokemonResponse'UNSET = "UNSET"
+        showEnum NicknamePokemonResponse'SUCCESS = "SUCCESS"
+        showEnum NicknamePokemonResponse'ERROR_INVALID_NICKNAME
+          = "ERROR_INVALID_NICKNAME"
+        showEnum NicknamePokemonResponse'ERROR_POKEMON_NOT_FOUND
+          = "ERROR_POKEMON_NOT_FOUND"
+        showEnum NicknamePokemonResponse'ERROR_POKEMON_IS_EGG
+          = "ERROR_POKEMON_IS_EGG"
+        readEnum "UNSET" = Prelude.Just NicknamePokemonResponse'UNSET
+        readEnum "SUCCESS" = Prelude.Just NicknamePokemonResponse'SUCCESS
+        readEnum "ERROR_INVALID_NICKNAME"
+          = Prelude.Just NicknamePokemonResponse'ERROR_INVALID_NICKNAME
+        readEnum "ERROR_POKEMON_NOT_FOUND"
+          = Prelude.Just NicknamePokemonResponse'ERROR_POKEMON_NOT_FOUND
+        readEnum "ERROR_POKEMON_IS_EGG"
+          = Prelude.Just NicknamePokemonResponse'ERROR_POKEMON_IS_EGG
+        readEnum _ = Prelude.Nothing
+
+instance Prelude.Enum NicknamePokemonResponse'Result where
+        toEnum k__
+          = Prelude.maybe
+              (Prelude.error
+                 ((Prelude.++) "toEnum: unknown value for enum Result: "
+                    (Prelude.show k__)))
+              Prelude.id
+              (Data.ProtoLens.maybeToEnum k__)
+        fromEnum NicknamePokemonResponse'UNSET = 0
+        fromEnum NicknamePokemonResponse'SUCCESS = 1
+        fromEnum NicknamePokemonResponse'ERROR_INVALID_NICKNAME = 2
+        fromEnum NicknamePokemonResponse'ERROR_POKEMON_NOT_FOUND = 3
+        fromEnum NicknamePokemonResponse'ERROR_POKEMON_IS_EGG = 4
+        succ NicknamePokemonResponse'ERROR_POKEMON_IS_EGG
+          = Prelude.error
+              "Ident \"NicknamePokemonResponse'Result\".Ident \"succ\": bad argument Ident \"NicknamePokemonResponse'ERROR_POKEMON_IS_EGG\". This value would be out of bounds."
+        succ NicknamePokemonResponse'UNSET
+          = NicknamePokemonResponse'SUCCESS
+        succ NicknamePokemonResponse'SUCCESS
+          = NicknamePokemonResponse'ERROR_INVALID_NICKNAME
+        succ NicknamePokemonResponse'ERROR_INVALID_NICKNAME
+          = NicknamePokemonResponse'ERROR_POKEMON_NOT_FOUND
+        succ NicknamePokemonResponse'ERROR_POKEMON_NOT_FOUND
+          = NicknamePokemonResponse'ERROR_POKEMON_IS_EGG
+        pred NicknamePokemonResponse'UNSET
+          = Prelude.error
+              "Ident \"NicknamePokemonResponse'Result\".Ident \"pred\": bad argument Ident \"NicknamePokemonResponse'UNSET\". This value would be out of bounds."
+        pred NicknamePokemonResponse'SUCCESS
+          = NicknamePokemonResponse'UNSET
+        pred NicknamePokemonResponse'ERROR_INVALID_NICKNAME
+          = NicknamePokemonResponse'SUCCESS
+        pred NicknamePokemonResponse'ERROR_POKEMON_NOT_FOUND
+          = NicknamePokemonResponse'ERROR_INVALID_NICKNAME
+        pred NicknamePokemonResponse'ERROR_POKEMON_IS_EGG
+          = NicknamePokemonResponse'ERROR_POKEMON_NOT_FOUND
+        enumFrom = Data.ProtoLens.Message.Enum.messageEnumFrom
+        enumFromTo = Data.ProtoLens.Message.Enum.messageEnumFromTo
+        enumFromThen = Data.ProtoLens.Message.Enum.messageEnumFromThen
+        enumFromThenTo = Data.ProtoLens.Message.Enum.messageEnumFromThenTo
+
+instance Prelude.Bounded NicknamePokemonResponse'Result where
+        minBound = NicknamePokemonResponse'UNSET
+        maxBound = NicknamePokemonResponse'ERROR_POKEMON_IS_EGG
+
+result ::
+       forall msg msg' . Data.ProtoLens.HasField "result" msg msg' =>
+         Lens.Family2.Lens msg msg' (Data.ProtoLens.Field "result" msg)
+           (Data.ProtoLens.Field "result" msg')
+result
+  = Data.ProtoLens.field
+      (Data.ProtoLens.ProxySym :: Data.ProtoLens.ProxySym "result")
diff --git a/src/Proto/POGOProtos/Networking/Responses/PlayerUpdateResponse.hs b/src/Proto/POGOProtos/Networking/Responses/PlayerUpdateResponse.hs
new file mode 100644
--- /dev/null
+++ b/src/Proto/POGOProtos/Networking/Responses/PlayerUpdateResponse.hs
@@ -0,0 +1,119 @@
+{- This file was auto-generated from POGOProtos/Networking/Responses/PlayerUpdateResponse.proto by the proto-lens-protoc program. -}
+{-# LANGUAGE ScopedTypeVariables, DataKinds, TypeFamilies,
+  MultiParamTypeClasses, FlexibleContexts, FlexibleInstances #-}
+{-# OPTIONS_GHC -fno-warn-unused-imports#-}
+module Proto.POGOProtos.Networking.Responses.PlayerUpdateResponse
+       where
+import qualified Prelude
+import qualified Data.ProtoLens
+import qualified Data.ProtoLens.Message.Enum
+import qualified Lens.Family2
+import qualified Lens.Family2.Unchecked
+import qualified Data.Default.Class
+import qualified Data.Text
+import qualified Data.Int
+import qualified Data.Word
+import qualified Data.Map
+import qualified Data.ByteString
+import qualified Proto.POGOProtos.Map.Fort.FortData
+import qualified Proto.POGOProtos.Map.Pokemon.WildPokemon
+
+data PlayerUpdateResponse = PlayerUpdateResponse{_PlayerUpdateResponse'wildPokemons
+                                                 ::
+                                                 [Proto.POGOProtos.Map.Pokemon.WildPokemon.WildPokemon],
+                                                 _PlayerUpdateResponse'forts ::
+                                                 [Proto.POGOProtos.Map.Fort.FortData.FortData],
+                                                 _PlayerUpdateResponse'fortsNearby ::
+                                                 Data.Int.Int32}
+                          deriving (Prelude.Show, Prelude.Eq)
+
+type instance
+     Data.ProtoLens.Field "wildPokemons" PlayerUpdateResponse =
+     [Proto.POGOProtos.Map.Pokemon.WildPokemon.WildPokemon]
+
+instance Data.ProtoLens.HasField "wildPokemons"
+         PlayerUpdateResponse PlayerUpdateResponse where
+        field _
+          = Lens.Family2.Unchecked.lens _PlayerUpdateResponse'wildPokemons
+              (\ x__ y__ -> x__{_PlayerUpdateResponse'wildPokemons = y__})
+
+type instance Data.ProtoLens.Field "forts" PlayerUpdateResponse =
+     [Proto.POGOProtos.Map.Fort.FortData.FortData]
+
+instance Data.ProtoLens.HasField "forts" PlayerUpdateResponse
+         PlayerUpdateResponse where
+        field _
+          = Lens.Family2.Unchecked.lens _PlayerUpdateResponse'forts
+              (\ x__ y__ -> x__{_PlayerUpdateResponse'forts = y__})
+
+type instance
+     Data.ProtoLens.Field "fortsNearby" PlayerUpdateResponse =
+     Data.Int.Int32
+
+instance Data.ProtoLens.HasField "fortsNearby" PlayerUpdateResponse
+         PlayerUpdateResponse where
+        field _
+          = Lens.Family2.Unchecked.lens _PlayerUpdateResponse'fortsNearby
+              (\ x__ y__ -> x__{_PlayerUpdateResponse'fortsNearby = y__})
+
+instance Data.Default.Class.Default PlayerUpdateResponse where
+        def
+          = PlayerUpdateResponse{_PlayerUpdateResponse'wildPokemons = [],
+                                 _PlayerUpdateResponse'forts = [],
+                                 _PlayerUpdateResponse'fortsNearby = Data.ProtoLens.fieldDefault}
+
+instance Data.ProtoLens.Message PlayerUpdateResponse where
+        descriptor
+          = let wildPokemons__field_descriptor
+                  = Data.ProtoLens.FieldDescriptor "wild_pokemons"
+                      (Data.ProtoLens.MessageField ::
+                         Data.ProtoLens.FieldTypeDescriptor
+                           Proto.POGOProtos.Map.Pokemon.WildPokemon.WildPokemon)
+                      (Data.ProtoLens.RepeatedField Data.ProtoLens.Unpacked wildPokemons)
+                forts__field_descriptor
+                  = Data.ProtoLens.FieldDescriptor "forts"
+                      (Data.ProtoLens.MessageField ::
+                         Data.ProtoLens.FieldTypeDescriptor
+                           Proto.POGOProtos.Map.Fort.FortData.FortData)
+                      (Data.ProtoLens.RepeatedField Data.ProtoLens.Unpacked forts)
+                fortsNearby__field_descriptor
+                  = Data.ProtoLens.FieldDescriptor "forts_nearby"
+                      (Data.ProtoLens.Int32Field ::
+                         Data.ProtoLens.FieldTypeDescriptor Data.Int.Int32)
+                      (Data.ProtoLens.PlainField Data.ProtoLens.Optional fortsNearby)
+              in
+              Data.ProtoLens.MessageDescriptor
+                (Data.Map.fromList
+                   [(Data.ProtoLens.Tag 1, wildPokemons__field_descriptor),
+                    (Data.ProtoLens.Tag 2, forts__field_descriptor),
+                    (Data.ProtoLens.Tag 3, fortsNearby__field_descriptor)])
+                (Data.Map.fromList
+                   [("wild_pokemons", wildPokemons__field_descriptor),
+                    ("forts", forts__field_descriptor),
+                    ("forts_nearby", fortsNearby__field_descriptor)])
+
+forts ::
+      forall msg msg' . Data.ProtoLens.HasField "forts" msg msg' =>
+        Lens.Family2.Lens msg msg' (Data.ProtoLens.Field "forts" msg)
+          (Data.ProtoLens.Field "forts" msg')
+forts
+  = Data.ProtoLens.field
+      (Data.ProtoLens.ProxySym :: Data.ProtoLens.ProxySym "forts")
+
+fortsNearby ::
+            forall msg msg' . Data.ProtoLens.HasField "fortsNearby" msg msg' =>
+              Lens.Family2.Lens msg msg' (Data.ProtoLens.Field "fortsNearby" msg)
+                (Data.ProtoLens.Field "fortsNearby" msg')
+fortsNearby
+  = Data.ProtoLens.field
+      (Data.ProtoLens.ProxySym :: Data.ProtoLens.ProxySym "fortsNearby")
+
+wildPokemons ::
+             forall msg msg' .
+               Data.ProtoLens.HasField "wildPokemons" msg msg' =>
+               Lens.Family2.Lens msg msg'
+                 (Data.ProtoLens.Field "wildPokemons" msg)
+                 (Data.ProtoLens.Field "wildPokemons" msg')
+wildPokemons
+  = Data.ProtoLens.field
+      (Data.ProtoLens.ProxySym :: Data.ProtoLens.ProxySym "wildPokemons")
diff --git a/src/Proto/POGOProtos/Networking/Responses/RecycleInventoryItemResponse.hs b/src/Proto/POGOProtos/Networking/Responses/RecycleInventoryItemResponse.hs
new file mode 100644
--- /dev/null
+++ b/src/Proto/POGOProtos/Networking/Responses/RecycleInventoryItemResponse.hs
@@ -0,0 +1,173 @@
+{- This file was auto-generated from POGOProtos/Networking/Responses/RecycleInventoryItemResponse.proto by the proto-lens-protoc program. -}
+{-# LANGUAGE ScopedTypeVariables, DataKinds, TypeFamilies,
+  MultiParamTypeClasses, FlexibleContexts, FlexibleInstances #-}
+{-# OPTIONS_GHC -fno-warn-unused-imports#-}
+module Proto.POGOProtos.Networking.Responses.RecycleInventoryItemResponse
+       where
+import qualified Prelude
+import qualified Data.ProtoLens
+import qualified Data.ProtoLens.Message.Enum
+import qualified Lens.Family2
+import qualified Lens.Family2.Unchecked
+import qualified Data.Default.Class
+import qualified Data.Text
+import qualified Data.Int
+import qualified Data.Word
+import qualified Data.Map
+import qualified Data.ByteString
+
+data RecycleInventoryItemResponse = RecycleInventoryItemResponse{_RecycleInventoryItemResponse'result
+                                                                 ::
+                                                                 RecycleInventoryItemResponse'Result,
+                                                                 _RecycleInventoryItemResponse'newCount
+                                                                 :: Data.Int.Int32}
+                                  deriving (Prelude.Show, Prelude.Eq)
+
+type instance
+     Data.ProtoLens.Field "result" RecycleInventoryItemResponse =
+     RecycleInventoryItemResponse'Result
+
+instance Data.ProtoLens.HasField "result"
+         RecycleInventoryItemResponse RecycleInventoryItemResponse where
+        field _
+          = Lens.Family2.Unchecked.lens _RecycleInventoryItemResponse'result
+              (\ x__ y__ -> x__{_RecycleInventoryItemResponse'result = y__})
+
+type instance
+     Data.ProtoLens.Field "newCount" RecycleInventoryItemResponse =
+     Data.Int.Int32
+
+instance Data.ProtoLens.HasField "newCount"
+         RecycleInventoryItemResponse RecycleInventoryItemResponse where
+        field _
+          = Lens.Family2.Unchecked.lens
+              _RecycleInventoryItemResponse'newCount
+              (\ x__ y__ -> x__{_RecycleInventoryItemResponse'newCount = y__})
+
+instance Data.Default.Class.Default RecycleInventoryItemResponse
+         where
+        def
+          = RecycleInventoryItemResponse{_RecycleInventoryItemResponse'result
+                                           = Data.Default.Class.def,
+                                         _RecycleInventoryItemResponse'newCount =
+                                           Data.ProtoLens.fieldDefault}
+
+instance Data.ProtoLens.Message RecycleInventoryItemResponse where
+        descriptor
+          = let result__field_descriptor
+                  = Data.ProtoLens.FieldDescriptor "result"
+                      (Data.ProtoLens.EnumField ::
+                         Data.ProtoLens.FieldTypeDescriptor
+                           RecycleInventoryItemResponse'Result)
+                      (Data.ProtoLens.PlainField Data.ProtoLens.Optional result)
+                newCount__field_descriptor
+                  = Data.ProtoLens.FieldDescriptor "new_count"
+                      (Data.ProtoLens.Int32Field ::
+                         Data.ProtoLens.FieldTypeDescriptor Data.Int.Int32)
+                      (Data.ProtoLens.PlainField Data.ProtoLens.Optional newCount)
+              in
+              Data.ProtoLens.MessageDescriptor
+                (Data.Map.fromList
+                   [(Data.ProtoLens.Tag 1, result__field_descriptor),
+                    (Data.ProtoLens.Tag 2, newCount__field_descriptor)])
+                (Data.Map.fromList
+                   [("result", result__field_descriptor),
+                    ("new_count", newCount__field_descriptor)])
+
+data RecycleInventoryItemResponse'Result = RecycleInventoryItemResponse'UNSET
+                                         | RecycleInventoryItemResponse'SUCCESS
+                                         | RecycleInventoryItemResponse'ERROR_NOT_ENOUGH_COPIES
+                                         | RecycleInventoryItemResponse'ERROR_CANNOT_RECYCLE_INCUBATORS
+                                         deriving (Prelude.Show, Prelude.Eq)
+
+instance Data.Default.Class.Default
+         RecycleInventoryItemResponse'Result where
+        def = RecycleInventoryItemResponse'UNSET
+
+instance Data.ProtoLens.FieldDefault
+         RecycleInventoryItemResponse'Result where
+        fieldDefault = RecycleInventoryItemResponse'UNSET
+
+instance Data.ProtoLens.MessageEnum
+         RecycleInventoryItemResponse'Result where
+        maybeToEnum 0 = Prelude.Just RecycleInventoryItemResponse'UNSET
+        maybeToEnum 1 = Prelude.Just RecycleInventoryItemResponse'SUCCESS
+        maybeToEnum 2
+          = Prelude.Just RecycleInventoryItemResponse'ERROR_NOT_ENOUGH_COPIES
+        maybeToEnum 3
+          = Prelude.Just
+              RecycleInventoryItemResponse'ERROR_CANNOT_RECYCLE_INCUBATORS
+        maybeToEnum _ = Prelude.Nothing
+        showEnum RecycleInventoryItemResponse'UNSET = "UNSET"
+        showEnum RecycleInventoryItemResponse'SUCCESS = "SUCCESS"
+        showEnum RecycleInventoryItemResponse'ERROR_NOT_ENOUGH_COPIES
+          = "ERROR_NOT_ENOUGH_COPIES"
+        showEnum
+          RecycleInventoryItemResponse'ERROR_CANNOT_RECYCLE_INCUBATORS
+          = "ERROR_CANNOT_RECYCLE_INCUBATORS"
+        readEnum "UNSET" = Prelude.Just RecycleInventoryItemResponse'UNSET
+        readEnum "SUCCESS"
+          = Prelude.Just RecycleInventoryItemResponse'SUCCESS
+        readEnum "ERROR_NOT_ENOUGH_COPIES"
+          = Prelude.Just RecycleInventoryItemResponse'ERROR_NOT_ENOUGH_COPIES
+        readEnum "ERROR_CANNOT_RECYCLE_INCUBATORS"
+          = Prelude.Just
+              RecycleInventoryItemResponse'ERROR_CANNOT_RECYCLE_INCUBATORS
+        readEnum _ = Prelude.Nothing
+
+instance Prelude.Enum RecycleInventoryItemResponse'Result where
+        toEnum k__
+          = Prelude.maybe
+              (Prelude.error
+                 ((Prelude.++) "toEnum: unknown value for enum Result: "
+                    (Prelude.show k__)))
+              Prelude.id
+              (Data.ProtoLens.maybeToEnum k__)
+        fromEnum RecycleInventoryItemResponse'UNSET = 0
+        fromEnum RecycleInventoryItemResponse'SUCCESS = 1
+        fromEnum RecycleInventoryItemResponse'ERROR_NOT_ENOUGH_COPIES = 2
+        fromEnum
+          RecycleInventoryItemResponse'ERROR_CANNOT_RECYCLE_INCUBATORS = 3
+        succ RecycleInventoryItemResponse'ERROR_CANNOT_RECYCLE_INCUBATORS
+          = Prelude.error
+              "Ident \"RecycleInventoryItemResponse'Result\".Ident \"succ\": bad argument Ident \"RecycleInventoryItemResponse'ERROR_CANNOT_RECYCLE_INCUBATORS\". This value would be out of bounds."
+        succ RecycleInventoryItemResponse'UNSET
+          = RecycleInventoryItemResponse'SUCCESS
+        succ RecycleInventoryItemResponse'SUCCESS
+          = RecycleInventoryItemResponse'ERROR_NOT_ENOUGH_COPIES
+        succ RecycleInventoryItemResponse'ERROR_NOT_ENOUGH_COPIES
+          = RecycleInventoryItemResponse'ERROR_CANNOT_RECYCLE_INCUBATORS
+        pred RecycleInventoryItemResponse'UNSET
+          = Prelude.error
+              "Ident \"RecycleInventoryItemResponse'Result\".Ident \"pred\": bad argument Ident \"RecycleInventoryItemResponse'UNSET\". This value would be out of bounds."
+        pred RecycleInventoryItemResponse'SUCCESS
+          = RecycleInventoryItemResponse'UNSET
+        pred RecycleInventoryItemResponse'ERROR_NOT_ENOUGH_COPIES
+          = RecycleInventoryItemResponse'SUCCESS
+        pred RecycleInventoryItemResponse'ERROR_CANNOT_RECYCLE_INCUBATORS
+          = RecycleInventoryItemResponse'ERROR_NOT_ENOUGH_COPIES
+        enumFrom = Data.ProtoLens.Message.Enum.messageEnumFrom
+        enumFromTo = Data.ProtoLens.Message.Enum.messageEnumFromTo
+        enumFromThen = Data.ProtoLens.Message.Enum.messageEnumFromThen
+        enumFromThenTo = Data.ProtoLens.Message.Enum.messageEnumFromThenTo
+
+instance Prelude.Bounded RecycleInventoryItemResponse'Result where
+        minBound = RecycleInventoryItemResponse'UNSET
+        maxBound
+          = RecycleInventoryItemResponse'ERROR_CANNOT_RECYCLE_INCUBATORS
+
+newCount ::
+         forall msg msg' . Data.ProtoLens.HasField "newCount" msg msg' =>
+           Lens.Family2.Lens msg msg' (Data.ProtoLens.Field "newCount" msg)
+             (Data.ProtoLens.Field "newCount" msg')
+newCount
+  = Data.ProtoLens.field
+      (Data.ProtoLens.ProxySym :: Data.ProtoLens.ProxySym "newCount")
+
+result ::
+       forall msg msg' . Data.ProtoLens.HasField "result" msg msg' =>
+         Lens.Family2.Lens msg msg' (Data.ProtoLens.Field "result" msg)
+           (Data.ProtoLens.Field "result" msg')
+result
+  = Data.ProtoLens.field
+      (Data.ProtoLens.ProxySym :: Data.ProtoLens.ProxySym "result")
diff --git a/src/Proto/POGOProtos/Networking/Responses/ReleasePokemonResponse.hs b/src/Proto/POGOProtos/Networking/Responses/ReleasePokemonResponse.hs
new file mode 100644
--- /dev/null
+++ b/src/Proto/POGOProtos/Networking/Responses/ReleasePokemonResponse.hs
@@ -0,0 +1,171 @@
+{- This file was auto-generated from POGOProtos/Networking/Responses/ReleasePokemonResponse.proto by the proto-lens-protoc program. -}
+{-# LANGUAGE ScopedTypeVariables, DataKinds, TypeFamilies,
+  MultiParamTypeClasses, FlexibleContexts, FlexibleInstances #-}
+{-# OPTIONS_GHC -fno-warn-unused-imports#-}
+module Proto.POGOProtos.Networking.Responses.ReleasePokemonResponse
+       where
+import qualified Prelude
+import qualified Data.ProtoLens
+import qualified Data.ProtoLens.Message.Enum
+import qualified Lens.Family2
+import qualified Lens.Family2.Unchecked
+import qualified Data.Default.Class
+import qualified Data.Text
+import qualified Data.Int
+import qualified Data.Word
+import qualified Data.Map
+import qualified Data.ByteString
+
+data ReleasePokemonResponse = ReleasePokemonResponse{_ReleasePokemonResponse'result
+                                                     :: ReleasePokemonResponse'Result,
+                                                     _ReleasePokemonResponse'candyAwarded ::
+                                                     Data.Int.Int32}
+                            deriving (Prelude.Show, Prelude.Eq)
+
+type instance Data.ProtoLens.Field "result" ReleasePokemonResponse
+     = ReleasePokemonResponse'Result
+
+instance Data.ProtoLens.HasField "result" ReleasePokemonResponse
+         ReleasePokemonResponse where
+        field _
+          = Lens.Family2.Unchecked.lens _ReleasePokemonResponse'result
+              (\ x__ y__ -> x__{_ReleasePokemonResponse'result = y__})
+
+type instance
+     Data.ProtoLens.Field "candyAwarded" ReleasePokemonResponse =
+     Data.Int.Int32
+
+instance Data.ProtoLens.HasField "candyAwarded"
+         ReleasePokemonResponse ReleasePokemonResponse where
+        field _
+          = Lens.Family2.Unchecked.lens _ReleasePokemonResponse'candyAwarded
+              (\ x__ y__ -> x__{_ReleasePokemonResponse'candyAwarded = y__})
+
+instance Data.Default.Class.Default ReleasePokemonResponse where
+        def
+          = ReleasePokemonResponse{_ReleasePokemonResponse'result =
+                                     Data.Default.Class.def,
+                                   _ReleasePokemonResponse'candyAwarded =
+                                     Data.ProtoLens.fieldDefault}
+
+instance Data.ProtoLens.Message ReleasePokemonResponse where
+        descriptor
+          = let result__field_descriptor
+                  = Data.ProtoLens.FieldDescriptor "result"
+                      (Data.ProtoLens.EnumField ::
+                         Data.ProtoLens.FieldTypeDescriptor ReleasePokemonResponse'Result)
+                      (Data.ProtoLens.PlainField Data.ProtoLens.Optional result)
+                candyAwarded__field_descriptor
+                  = Data.ProtoLens.FieldDescriptor "candy_awarded"
+                      (Data.ProtoLens.Int32Field ::
+                         Data.ProtoLens.FieldTypeDescriptor Data.Int.Int32)
+                      (Data.ProtoLens.PlainField Data.ProtoLens.Optional candyAwarded)
+              in
+              Data.ProtoLens.MessageDescriptor
+                (Data.Map.fromList
+                   [(Data.ProtoLens.Tag 1, result__field_descriptor),
+                    (Data.ProtoLens.Tag 2, candyAwarded__field_descriptor)])
+                (Data.Map.fromList
+                   [("result", result__field_descriptor),
+                    ("candy_awarded", candyAwarded__field_descriptor)])
+
+data ReleasePokemonResponse'Result = ReleasePokemonResponse'UNSET
+                                   | ReleasePokemonResponse'SUCCESS
+                                   | ReleasePokemonResponse'POKEMON_DEPLOYED
+                                   | ReleasePokemonResponse'FAILED
+                                   | ReleasePokemonResponse'ERROR_POKEMON_IS_EGG
+                                   deriving (Prelude.Show, Prelude.Eq)
+
+instance Data.Default.Class.Default ReleasePokemonResponse'Result
+         where
+        def = ReleasePokemonResponse'UNSET
+
+instance Data.ProtoLens.FieldDefault ReleasePokemonResponse'Result
+         where
+        fieldDefault = ReleasePokemonResponse'UNSET
+
+instance Data.ProtoLens.MessageEnum ReleasePokemonResponse'Result
+         where
+        maybeToEnum 0 = Prelude.Just ReleasePokemonResponse'UNSET
+        maybeToEnum 1 = Prelude.Just ReleasePokemonResponse'SUCCESS
+        maybeToEnum 2
+          = Prelude.Just ReleasePokemonResponse'POKEMON_DEPLOYED
+        maybeToEnum 3 = Prelude.Just ReleasePokemonResponse'FAILED
+        maybeToEnum 4
+          = Prelude.Just ReleasePokemonResponse'ERROR_POKEMON_IS_EGG
+        maybeToEnum _ = Prelude.Nothing
+        showEnum ReleasePokemonResponse'UNSET = "UNSET"
+        showEnum ReleasePokemonResponse'SUCCESS = "SUCCESS"
+        showEnum ReleasePokemonResponse'POKEMON_DEPLOYED
+          = "POKEMON_DEPLOYED"
+        showEnum ReleasePokemonResponse'FAILED = "FAILED"
+        showEnum ReleasePokemonResponse'ERROR_POKEMON_IS_EGG
+          = "ERROR_POKEMON_IS_EGG"
+        readEnum "UNSET" = Prelude.Just ReleasePokemonResponse'UNSET
+        readEnum "SUCCESS" = Prelude.Just ReleasePokemonResponse'SUCCESS
+        readEnum "POKEMON_DEPLOYED"
+          = Prelude.Just ReleasePokemonResponse'POKEMON_DEPLOYED
+        readEnum "FAILED" = Prelude.Just ReleasePokemonResponse'FAILED
+        readEnum "ERROR_POKEMON_IS_EGG"
+          = Prelude.Just ReleasePokemonResponse'ERROR_POKEMON_IS_EGG
+        readEnum _ = Prelude.Nothing
+
+instance Prelude.Enum ReleasePokemonResponse'Result where
+        toEnum k__
+          = Prelude.maybe
+              (Prelude.error
+                 ((Prelude.++) "toEnum: unknown value for enum Result: "
+                    (Prelude.show k__)))
+              Prelude.id
+              (Data.ProtoLens.maybeToEnum k__)
+        fromEnum ReleasePokemonResponse'UNSET = 0
+        fromEnum ReleasePokemonResponse'SUCCESS = 1
+        fromEnum ReleasePokemonResponse'POKEMON_DEPLOYED = 2
+        fromEnum ReleasePokemonResponse'FAILED = 3
+        fromEnum ReleasePokemonResponse'ERROR_POKEMON_IS_EGG = 4
+        succ ReleasePokemonResponse'ERROR_POKEMON_IS_EGG
+          = Prelude.error
+              "Ident \"ReleasePokemonResponse'Result\".Ident \"succ\": bad argument Ident \"ReleasePokemonResponse'ERROR_POKEMON_IS_EGG\". This value would be out of bounds."
+        succ ReleasePokemonResponse'UNSET = ReleasePokemonResponse'SUCCESS
+        succ ReleasePokemonResponse'SUCCESS
+          = ReleasePokemonResponse'POKEMON_DEPLOYED
+        succ ReleasePokemonResponse'POKEMON_DEPLOYED
+          = ReleasePokemonResponse'FAILED
+        succ ReleasePokemonResponse'FAILED
+          = ReleasePokemonResponse'ERROR_POKEMON_IS_EGG
+        pred ReleasePokemonResponse'UNSET
+          = Prelude.error
+              "Ident \"ReleasePokemonResponse'Result\".Ident \"pred\": bad argument Ident \"ReleasePokemonResponse'UNSET\". This value would be out of bounds."
+        pred ReleasePokemonResponse'SUCCESS = ReleasePokemonResponse'UNSET
+        pred ReleasePokemonResponse'POKEMON_DEPLOYED
+          = ReleasePokemonResponse'SUCCESS
+        pred ReleasePokemonResponse'FAILED
+          = ReleasePokemonResponse'POKEMON_DEPLOYED
+        pred ReleasePokemonResponse'ERROR_POKEMON_IS_EGG
+          = ReleasePokemonResponse'FAILED
+        enumFrom = Data.ProtoLens.Message.Enum.messageEnumFrom
+        enumFromTo = Data.ProtoLens.Message.Enum.messageEnumFromTo
+        enumFromThen = Data.ProtoLens.Message.Enum.messageEnumFromThen
+        enumFromThenTo = Data.ProtoLens.Message.Enum.messageEnumFromThenTo
+
+instance Prelude.Bounded ReleasePokemonResponse'Result where
+        minBound = ReleasePokemonResponse'UNSET
+        maxBound = ReleasePokemonResponse'ERROR_POKEMON_IS_EGG
+
+candyAwarded ::
+             forall msg msg' .
+               Data.ProtoLens.HasField "candyAwarded" msg msg' =>
+               Lens.Family2.Lens msg msg'
+                 (Data.ProtoLens.Field "candyAwarded" msg)
+                 (Data.ProtoLens.Field "candyAwarded" msg')
+candyAwarded
+  = Data.ProtoLens.field
+      (Data.ProtoLens.ProxySym :: Data.ProtoLens.ProxySym "candyAwarded")
+
+result ::
+       forall msg msg' . Data.ProtoLens.HasField "result" msg msg' =>
+         Lens.Family2.Lens msg msg' (Data.ProtoLens.Field "result" msg)
+           (Data.ProtoLens.Field "result" msg')
+result
+  = Data.ProtoLens.field
+      (Data.ProtoLens.ProxySym :: Data.ProtoLens.ProxySym "result")
diff --git a/src/Proto/POGOProtos/Networking/Responses/SetAvatarResponse.hs b/src/Proto/POGOProtos/Networking/Responses/SetAvatarResponse.hs
new file mode 100644
--- /dev/null
+++ b/src/Proto/POGOProtos/Networking/Responses/SetAvatarResponse.hs
@@ -0,0 +1,175 @@
+{- This file was auto-generated from POGOProtos/Networking/Responses/SetAvatarResponse.proto by the proto-lens-protoc program. -}
+{-# LANGUAGE ScopedTypeVariables, DataKinds, TypeFamilies,
+  MultiParamTypeClasses, FlexibleContexts, FlexibleInstances #-}
+{-# OPTIONS_GHC -fno-warn-unused-imports#-}
+module Proto.POGOProtos.Networking.Responses.SetAvatarResponse
+       where
+import qualified Prelude
+import qualified Data.ProtoLens
+import qualified Data.ProtoLens.Message.Enum
+import qualified Lens.Family2
+import qualified Lens.Family2.Unchecked
+import qualified Data.Default.Class
+import qualified Data.Text
+import qualified Data.Int
+import qualified Data.Word
+import qualified Data.Map
+import qualified Data.ByteString
+import qualified Proto.POGOProtos.Data.PlayerData
+
+data SetAvatarResponse = SetAvatarResponse{_SetAvatarResponse'status
+                                           :: SetAvatarResponse'Status,
+                                           _SetAvatarResponse'playerData ::
+                                           Prelude.Maybe
+                                             Proto.POGOProtos.Data.PlayerData.PlayerData}
+                       deriving (Prelude.Show, Prelude.Eq)
+
+type instance Data.ProtoLens.Field "status" SetAvatarResponse =
+     SetAvatarResponse'Status
+
+instance Data.ProtoLens.HasField "status" SetAvatarResponse
+         SetAvatarResponse where
+        field _
+          = Lens.Family2.Unchecked.lens _SetAvatarResponse'status
+              (\ x__ y__ -> x__{_SetAvatarResponse'status = y__})
+
+type instance Data.ProtoLens.Field "playerData" SetAvatarResponse =
+     Proto.POGOProtos.Data.PlayerData.PlayerData
+
+instance Data.ProtoLens.HasField "playerData" SetAvatarResponse
+         SetAvatarResponse where
+        field _
+          = (Prelude..) maybe'playerData
+              (Data.ProtoLens.maybeLens Data.Default.Class.def)
+
+type instance
+     Data.ProtoLens.Field "maybe'playerData" SetAvatarResponse =
+     Prelude.Maybe Proto.POGOProtos.Data.PlayerData.PlayerData
+
+instance Data.ProtoLens.HasField "maybe'playerData"
+         SetAvatarResponse SetAvatarResponse where
+        field _
+          = Lens.Family2.Unchecked.lens _SetAvatarResponse'playerData
+              (\ x__ y__ -> x__{_SetAvatarResponse'playerData = y__})
+
+instance Data.Default.Class.Default SetAvatarResponse where
+        def
+          = SetAvatarResponse{_SetAvatarResponse'status =
+                                Data.Default.Class.def,
+                              _SetAvatarResponse'playerData = Prelude.Nothing}
+
+instance Data.ProtoLens.Message SetAvatarResponse where
+        descriptor
+          = let status__field_descriptor
+                  = Data.ProtoLens.FieldDescriptor "status"
+                      (Data.ProtoLens.EnumField ::
+                         Data.ProtoLens.FieldTypeDescriptor SetAvatarResponse'Status)
+                      (Data.ProtoLens.PlainField Data.ProtoLens.Optional status)
+                playerData__field_descriptor
+                  = Data.ProtoLens.FieldDescriptor "player_data"
+                      (Data.ProtoLens.MessageField ::
+                         Data.ProtoLens.FieldTypeDescriptor
+                           Proto.POGOProtos.Data.PlayerData.PlayerData)
+                      (Data.ProtoLens.OptionalField maybe'playerData)
+              in
+              Data.ProtoLens.MessageDescriptor
+                (Data.Map.fromList
+                   [(Data.ProtoLens.Tag 1, status__field_descriptor),
+                    (Data.ProtoLens.Tag 2, playerData__field_descriptor)])
+                (Data.Map.fromList
+                   [("status", status__field_descriptor),
+                    ("player_data", playerData__field_descriptor)])
+
+data SetAvatarResponse'Status = SetAvatarResponse'UNSET
+                              | SetAvatarResponse'SUCCESS
+                              | SetAvatarResponse'AVATAR_ALREADY_SET
+                              | SetAvatarResponse'FAILURE
+                              deriving (Prelude.Show, Prelude.Eq)
+
+instance Data.Default.Class.Default SetAvatarResponse'Status where
+        def = SetAvatarResponse'UNSET
+
+instance Data.ProtoLens.FieldDefault SetAvatarResponse'Status where
+        fieldDefault = SetAvatarResponse'UNSET
+
+instance Data.ProtoLens.MessageEnum SetAvatarResponse'Status where
+        maybeToEnum 0 = Prelude.Just SetAvatarResponse'UNSET
+        maybeToEnum 1 = Prelude.Just SetAvatarResponse'SUCCESS
+        maybeToEnum 2 = Prelude.Just SetAvatarResponse'AVATAR_ALREADY_SET
+        maybeToEnum 3 = Prelude.Just SetAvatarResponse'FAILURE
+        maybeToEnum _ = Prelude.Nothing
+        showEnum SetAvatarResponse'UNSET = "UNSET"
+        showEnum SetAvatarResponse'SUCCESS = "SUCCESS"
+        showEnum SetAvatarResponse'AVATAR_ALREADY_SET
+          = "AVATAR_ALREADY_SET"
+        showEnum SetAvatarResponse'FAILURE = "FAILURE"
+        readEnum "UNSET" = Prelude.Just SetAvatarResponse'UNSET
+        readEnum "SUCCESS" = Prelude.Just SetAvatarResponse'SUCCESS
+        readEnum "AVATAR_ALREADY_SET"
+          = Prelude.Just SetAvatarResponse'AVATAR_ALREADY_SET
+        readEnum "FAILURE" = Prelude.Just SetAvatarResponse'FAILURE
+        readEnum _ = Prelude.Nothing
+
+instance Prelude.Enum SetAvatarResponse'Status where
+        toEnum k__
+          = Prelude.maybe
+              (Prelude.error
+                 ((Prelude.++) "toEnum: unknown value for enum Status: "
+                    (Prelude.show k__)))
+              Prelude.id
+              (Data.ProtoLens.maybeToEnum k__)
+        fromEnum SetAvatarResponse'UNSET = 0
+        fromEnum SetAvatarResponse'SUCCESS = 1
+        fromEnum SetAvatarResponse'AVATAR_ALREADY_SET = 2
+        fromEnum SetAvatarResponse'FAILURE = 3
+        succ SetAvatarResponse'FAILURE
+          = Prelude.error
+              "Ident \"SetAvatarResponse'Status\".Ident \"succ\": bad argument Ident \"SetAvatarResponse'FAILURE\". This value would be out of bounds."
+        succ SetAvatarResponse'UNSET = SetAvatarResponse'SUCCESS
+        succ SetAvatarResponse'SUCCESS
+          = SetAvatarResponse'AVATAR_ALREADY_SET
+        succ SetAvatarResponse'AVATAR_ALREADY_SET
+          = SetAvatarResponse'FAILURE
+        pred SetAvatarResponse'UNSET
+          = Prelude.error
+              "Ident \"SetAvatarResponse'Status\".Ident \"pred\": bad argument Ident \"SetAvatarResponse'UNSET\". This value would be out of bounds."
+        pred SetAvatarResponse'SUCCESS = SetAvatarResponse'UNSET
+        pred SetAvatarResponse'AVATAR_ALREADY_SET
+          = SetAvatarResponse'SUCCESS
+        pred SetAvatarResponse'FAILURE
+          = SetAvatarResponse'AVATAR_ALREADY_SET
+        enumFrom = Data.ProtoLens.Message.Enum.messageEnumFrom
+        enumFromTo = Data.ProtoLens.Message.Enum.messageEnumFromTo
+        enumFromThen = Data.ProtoLens.Message.Enum.messageEnumFromThen
+        enumFromThenTo = Data.ProtoLens.Message.Enum.messageEnumFromThenTo
+
+instance Prelude.Bounded SetAvatarResponse'Status where
+        minBound = SetAvatarResponse'UNSET
+        maxBound = SetAvatarResponse'FAILURE
+
+maybe'playerData ::
+                 forall msg msg' .
+                   Data.ProtoLens.HasField "maybe'playerData" msg msg' =>
+                   Lens.Family2.Lens msg msg'
+                     (Data.ProtoLens.Field "maybe'playerData" msg)
+                     (Data.ProtoLens.Field "maybe'playerData" msg')
+maybe'playerData
+  = Data.ProtoLens.field
+      (Data.ProtoLens.ProxySym ::
+         Data.ProtoLens.ProxySym "maybe'playerData")
+
+playerData ::
+           forall msg msg' . Data.ProtoLens.HasField "playerData" msg msg' =>
+             Lens.Family2.Lens msg msg' (Data.ProtoLens.Field "playerData" msg)
+               (Data.ProtoLens.Field "playerData" msg')
+playerData
+  = Data.ProtoLens.field
+      (Data.ProtoLens.ProxySym :: Data.ProtoLens.ProxySym "playerData")
+
+status ::
+       forall msg msg' . Data.ProtoLens.HasField "status" msg msg' =>
+         Lens.Family2.Lens msg msg' (Data.ProtoLens.Field "status" msg)
+           (Data.ProtoLens.Field "status" msg')
+status
+  = Data.ProtoLens.field
+      (Data.ProtoLens.ProxySym :: Data.ProtoLens.ProxySym "status")
diff --git a/src/Proto/POGOProtos/Networking/Responses/SetContactSettingsResponse.hs b/src/Proto/POGOProtos/Networking/Responses/SetContactSettingsResponse.hs
new file mode 100644
--- /dev/null
+++ b/src/Proto/POGOProtos/Networking/Responses/SetContactSettingsResponse.hs
@@ -0,0 +1,177 @@
+{- This file was auto-generated from POGOProtos/Networking/Responses/SetContactSettingsResponse.proto by the proto-lens-protoc program. -}
+{-# LANGUAGE ScopedTypeVariables, DataKinds, TypeFamilies,
+  MultiParamTypeClasses, FlexibleContexts, FlexibleInstances #-}
+{-# OPTIONS_GHC -fno-warn-unused-imports#-}
+module Proto.POGOProtos.Networking.Responses.SetContactSettingsResponse
+       where
+import qualified Prelude
+import qualified Data.ProtoLens
+import qualified Data.ProtoLens.Message.Enum
+import qualified Lens.Family2
+import qualified Lens.Family2.Unchecked
+import qualified Data.Default.Class
+import qualified Data.Text
+import qualified Data.Int
+import qualified Data.Word
+import qualified Data.Map
+import qualified Data.ByteString
+import qualified Proto.POGOProtos.Data.PlayerData
+
+data SetContactSettingsResponse = SetContactSettingsResponse{_SetContactSettingsResponse'status
+                                                             :: SetContactSettingsResponse'Status,
+                                                             _SetContactSettingsResponse'playerData
+                                                             ::
+                                                             Prelude.Maybe
+                                                               Proto.POGOProtos.Data.PlayerData.PlayerData}
+                                deriving (Prelude.Show, Prelude.Eq)
+
+type instance
+     Data.ProtoLens.Field "status" SetContactSettingsResponse =
+     SetContactSettingsResponse'Status
+
+instance Data.ProtoLens.HasField "status"
+         SetContactSettingsResponse SetContactSettingsResponse where
+        field _
+          = Lens.Family2.Unchecked.lens _SetContactSettingsResponse'status
+              (\ x__ y__ -> x__{_SetContactSettingsResponse'status = y__})
+
+type instance
+     Data.ProtoLens.Field "playerData" SetContactSettingsResponse =
+     Proto.POGOProtos.Data.PlayerData.PlayerData
+
+instance Data.ProtoLens.HasField "playerData"
+         SetContactSettingsResponse SetContactSettingsResponse where
+        field _
+          = (Prelude..) maybe'playerData
+              (Data.ProtoLens.maybeLens Data.Default.Class.def)
+
+type instance
+     Data.ProtoLens.Field "maybe'playerData" SetContactSettingsResponse
+     = Prelude.Maybe Proto.POGOProtos.Data.PlayerData.PlayerData
+
+instance Data.ProtoLens.HasField "maybe'playerData"
+         SetContactSettingsResponse SetContactSettingsResponse where
+        field _
+          = Lens.Family2.Unchecked.lens
+              _SetContactSettingsResponse'playerData
+              (\ x__ y__ -> x__{_SetContactSettingsResponse'playerData = y__})
+
+instance Data.Default.Class.Default SetContactSettingsResponse
+         where
+        def
+          = SetContactSettingsResponse{_SetContactSettingsResponse'status =
+                                         Data.Default.Class.def,
+                                       _SetContactSettingsResponse'playerData = Prelude.Nothing}
+
+instance Data.ProtoLens.Message SetContactSettingsResponse where
+        descriptor
+          = let status__field_descriptor
+                  = Data.ProtoLens.FieldDescriptor "status"
+                      (Data.ProtoLens.EnumField ::
+                         Data.ProtoLens.FieldTypeDescriptor
+                           SetContactSettingsResponse'Status)
+                      (Data.ProtoLens.PlainField Data.ProtoLens.Optional status)
+                playerData__field_descriptor
+                  = Data.ProtoLens.FieldDescriptor "player_data"
+                      (Data.ProtoLens.MessageField ::
+                         Data.ProtoLens.FieldTypeDescriptor
+                           Proto.POGOProtos.Data.PlayerData.PlayerData)
+                      (Data.ProtoLens.OptionalField maybe'playerData)
+              in
+              Data.ProtoLens.MessageDescriptor
+                (Data.Map.fromList
+                   [(Data.ProtoLens.Tag 1, status__field_descriptor),
+                    (Data.ProtoLens.Tag 2, playerData__field_descriptor)])
+                (Data.Map.fromList
+                   [("status", status__field_descriptor),
+                    ("player_data", playerData__field_descriptor)])
+
+data SetContactSettingsResponse'Status = SetContactSettingsResponse'UNSET
+                                       | SetContactSettingsResponse'SUCCESS
+                                       | SetContactSettingsResponse'FAILURE
+                                       deriving (Prelude.Show, Prelude.Eq)
+
+instance Data.Default.Class.Default
+         SetContactSettingsResponse'Status where
+        def = SetContactSettingsResponse'UNSET
+
+instance Data.ProtoLens.FieldDefault
+         SetContactSettingsResponse'Status where
+        fieldDefault = SetContactSettingsResponse'UNSET
+
+instance Data.ProtoLens.MessageEnum
+         SetContactSettingsResponse'Status where
+        maybeToEnum 0 = Prelude.Just SetContactSettingsResponse'UNSET
+        maybeToEnum 1 = Prelude.Just SetContactSettingsResponse'SUCCESS
+        maybeToEnum 2 = Prelude.Just SetContactSettingsResponse'FAILURE
+        maybeToEnum _ = Prelude.Nothing
+        showEnum SetContactSettingsResponse'UNSET = "UNSET"
+        showEnum SetContactSettingsResponse'SUCCESS = "SUCCESS"
+        showEnum SetContactSettingsResponse'FAILURE = "FAILURE"
+        readEnum "UNSET" = Prelude.Just SetContactSettingsResponse'UNSET
+        readEnum "SUCCESS"
+          = Prelude.Just SetContactSettingsResponse'SUCCESS
+        readEnum "FAILURE"
+          = Prelude.Just SetContactSettingsResponse'FAILURE
+        readEnum _ = Prelude.Nothing
+
+instance Prelude.Enum SetContactSettingsResponse'Status where
+        toEnum k__
+          = Prelude.maybe
+              (Prelude.error
+                 ((Prelude.++) "toEnum: unknown value for enum Status: "
+                    (Prelude.show k__)))
+              Prelude.id
+              (Data.ProtoLens.maybeToEnum k__)
+        fromEnum SetContactSettingsResponse'UNSET = 0
+        fromEnum SetContactSettingsResponse'SUCCESS = 1
+        fromEnum SetContactSettingsResponse'FAILURE = 2
+        succ SetContactSettingsResponse'FAILURE
+          = Prelude.error
+              "Ident \"SetContactSettingsResponse'Status\".Ident \"succ\": bad argument Ident \"SetContactSettingsResponse'FAILURE\". This value would be out of bounds."
+        succ SetContactSettingsResponse'UNSET
+          = SetContactSettingsResponse'SUCCESS
+        succ SetContactSettingsResponse'SUCCESS
+          = SetContactSettingsResponse'FAILURE
+        pred SetContactSettingsResponse'UNSET
+          = Prelude.error
+              "Ident \"SetContactSettingsResponse'Status\".Ident \"pred\": bad argument Ident \"SetContactSettingsResponse'UNSET\". This value would be out of bounds."
+        pred SetContactSettingsResponse'SUCCESS
+          = SetContactSettingsResponse'UNSET
+        pred SetContactSettingsResponse'FAILURE
+          = SetContactSettingsResponse'SUCCESS
+        enumFrom = Data.ProtoLens.Message.Enum.messageEnumFrom
+        enumFromTo = Data.ProtoLens.Message.Enum.messageEnumFromTo
+        enumFromThen = Data.ProtoLens.Message.Enum.messageEnumFromThen
+        enumFromThenTo = Data.ProtoLens.Message.Enum.messageEnumFromThenTo
+
+instance Prelude.Bounded SetContactSettingsResponse'Status where
+        minBound = SetContactSettingsResponse'UNSET
+        maxBound = SetContactSettingsResponse'FAILURE
+
+maybe'playerData ::
+                 forall msg msg' .
+                   Data.ProtoLens.HasField "maybe'playerData" msg msg' =>
+                   Lens.Family2.Lens msg msg'
+                     (Data.ProtoLens.Field "maybe'playerData" msg)
+                     (Data.ProtoLens.Field "maybe'playerData" msg')
+maybe'playerData
+  = Data.ProtoLens.field
+      (Data.ProtoLens.ProxySym ::
+         Data.ProtoLens.ProxySym "maybe'playerData")
+
+playerData ::
+           forall msg msg' . Data.ProtoLens.HasField "playerData" msg msg' =>
+             Lens.Family2.Lens msg msg' (Data.ProtoLens.Field "playerData" msg)
+               (Data.ProtoLens.Field "playerData" msg')
+playerData
+  = Data.ProtoLens.field
+      (Data.ProtoLens.ProxySym :: Data.ProtoLens.ProxySym "playerData")
+
+status ::
+       forall msg msg' . Data.ProtoLens.HasField "status" msg msg' =>
+         Lens.Family2.Lens msg msg' (Data.ProtoLens.Field "status" msg)
+           (Data.ProtoLens.Field "status" msg')
+status
+  = Data.ProtoLens.field
+      (Data.ProtoLens.ProxySym :: Data.ProtoLens.ProxySym "status")
diff --git a/src/Proto/POGOProtos/Networking/Responses/SetFavoritePokemonResponse.hs b/src/Proto/POGOProtos/Networking/Responses/SetFavoritePokemonResponse.hs
new file mode 100644
--- /dev/null
+++ b/src/Proto/POGOProtos/Networking/Responses/SetFavoritePokemonResponse.hs
@@ -0,0 +1,136 @@
+{- This file was auto-generated from POGOProtos/Networking/Responses/SetFavoritePokemonResponse.proto by the proto-lens-protoc program. -}
+{-# LANGUAGE ScopedTypeVariables, DataKinds, TypeFamilies,
+  MultiParamTypeClasses, FlexibleContexts, FlexibleInstances #-}
+{-# OPTIONS_GHC -fno-warn-unused-imports#-}
+module Proto.POGOProtos.Networking.Responses.SetFavoritePokemonResponse
+       where
+import qualified Prelude
+import qualified Data.ProtoLens
+import qualified Data.ProtoLens.Message.Enum
+import qualified Lens.Family2
+import qualified Lens.Family2.Unchecked
+import qualified Data.Default.Class
+import qualified Data.Text
+import qualified Data.Int
+import qualified Data.Word
+import qualified Data.Map
+import qualified Data.ByteString
+
+data SetFavoritePokemonResponse = SetFavoritePokemonResponse{_SetFavoritePokemonResponse'result
+                                                             :: SetFavoritePokemonResponse'Result}
+                                deriving (Prelude.Show, Prelude.Eq)
+
+type instance
+     Data.ProtoLens.Field "result" SetFavoritePokemonResponse =
+     SetFavoritePokemonResponse'Result
+
+instance Data.ProtoLens.HasField "result"
+         SetFavoritePokemonResponse SetFavoritePokemonResponse where
+        field _
+          = Lens.Family2.Unchecked.lens _SetFavoritePokemonResponse'result
+              (\ x__ y__ -> x__{_SetFavoritePokemonResponse'result = y__})
+
+instance Data.Default.Class.Default SetFavoritePokemonResponse
+         where
+        def
+          = SetFavoritePokemonResponse{_SetFavoritePokemonResponse'result =
+                                         Data.Default.Class.def}
+
+instance Data.ProtoLens.Message SetFavoritePokemonResponse where
+        descriptor
+          = let result__field_descriptor
+                  = Data.ProtoLens.FieldDescriptor "result"
+                      (Data.ProtoLens.EnumField ::
+                         Data.ProtoLens.FieldTypeDescriptor
+                           SetFavoritePokemonResponse'Result)
+                      (Data.ProtoLens.PlainField Data.ProtoLens.Optional result)
+              in
+              Data.ProtoLens.MessageDescriptor
+                (Data.Map.fromList
+                   [(Data.ProtoLens.Tag 1, result__field_descriptor)])
+                (Data.Map.fromList [("result", result__field_descriptor)])
+
+data SetFavoritePokemonResponse'Result = SetFavoritePokemonResponse'UNSET
+                                       | SetFavoritePokemonResponse'SUCCESS
+                                       | SetFavoritePokemonResponse'ERROR_POKEMON_NOT_FOUND
+                                       | SetFavoritePokemonResponse'ERROR_POKEMON_IS_EGG
+                                       deriving (Prelude.Show, Prelude.Eq)
+
+instance Data.Default.Class.Default
+         SetFavoritePokemonResponse'Result where
+        def = SetFavoritePokemonResponse'UNSET
+
+instance Data.ProtoLens.FieldDefault
+         SetFavoritePokemonResponse'Result where
+        fieldDefault = SetFavoritePokemonResponse'UNSET
+
+instance Data.ProtoLens.MessageEnum
+         SetFavoritePokemonResponse'Result where
+        maybeToEnum 0 = Prelude.Just SetFavoritePokemonResponse'UNSET
+        maybeToEnum 1 = Prelude.Just SetFavoritePokemonResponse'SUCCESS
+        maybeToEnum 2
+          = Prelude.Just SetFavoritePokemonResponse'ERROR_POKEMON_NOT_FOUND
+        maybeToEnum 3
+          = Prelude.Just SetFavoritePokemonResponse'ERROR_POKEMON_IS_EGG
+        maybeToEnum _ = Prelude.Nothing
+        showEnum SetFavoritePokemonResponse'UNSET = "UNSET"
+        showEnum SetFavoritePokemonResponse'SUCCESS = "SUCCESS"
+        showEnum SetFavoritePokemonResponse'ERROR_POKEMON_NOT_FOUND
+          = "ERROR_POKEMON_NOT_FOUND"
+        showEnum SetFavoritePokemonResponse'ERROR_POKEMON_IS_EGG
+          = "ERROR_POKEMON_IS_EGG"
+        readEnum "UNSET" = Prelude.Just SetFavoritePokemonResponse'UNSET
+        readEnum "SUCCESS"
+          = Prelude.Just SetFavoritePokemonResponse'SUCCESS
+        readEnum "ERROR_POKEMON_NOT_FOUND"
+          = Prelude.Just SetFavoritePokemonResponse'ERROR_POKEMON_NOT_FOUND
+        readEnum "ERROR_POKEMON_IS_EGG"
+          = Prelude.Just SetFavoritePokemonResponse'ERROR_POKEMON_IS_EGG
+        readEnum _ = Prelude.Nothing
+
+instance Prelude.Enum SetFavoritePokemonResponse'Result where
+        toEnum k__
+          = Prelude.maybe
+              (Prelude.error
+                 ((Prelude.++) "toEnum: unknown value for enum Result: "
+                    (Prelude.show k__)))
+              Prelude.id
+              (Data.ProtoLens.maybeToEnum k__)
+        fromEnum SetFavoritePokemonResponse'UNSET = 0
+        fromEnum SetFavoritePokemonResponse'SUCCESS = 1
+        fromEnum SetFavoritePokemonResponse'ERROR_POKEMON_NOT_FOUND = 2
+        fromEnum SetFavoritePokemonResponse'ERROR_POKEMON_IS_EGG = 3
+        succ SetFavoritePokemonResponse'ERROR_POKEMON_IS_EGG
+          = Prelude.error
+              "Ident \"SetFavoritePokemonResponse'Result\".Ident \"succ\": bad argument Ident \"SetFavoritePokemonResponse'ERROR_POKEMON_IS_EGG\". This value would be out of bounds."
+        succ SetFavoritePokemonResponse'UNSET
+          = SetFavoritePokemonResponse'SUCCESS
+        succ SetFavoritePokemonResponse'SUCCESS
+          = SetFavoritePokemonResponse'ERROR_POKEMON_NOT_FOUND
+        succ SetFavoritePokemonResponse'ERROR_POKEMON_NOT_FOUND
+          = SetFavoritePokemonResponse'ERROR_POKEMON_IS_EGG
+        pred SetFavoritePokemonResponse'UNSET
+          = Prelude.error
+              "Ident \"SetFavoritePokemonResponse'Result\".Ident \"pred\": bad argument Ident \"SetFavoritePokemonResponse'UNSET\". This value would be out of bounds."
+        pred SetFavoritePokemonResponse'SUCCESS
+          = SetFavoritePokemonResponse'UNSET
+        pred SetFavoritePokemonResponse'ERROR_POKEMON_NOT_FOUND
+          = SetFavoritePokemonResponse'SUCCESS
+        pred SetFavoritePokemonResponse'ERROR_POKEMON_IS_EGG
+          = SetFavoritePokemonResponse'ERROR_POKEMON_NOT_FOUND
+        enumFrom = Data.ProtoLens.Message.Enum.messageEnumFrom
+        enumFromTo = Data.ProtoLens.Message.Enum.messageEnumFromTo
+        enumFromThen = Data.ProtoLens.Message.Enum.messageEnumFromThen
+        enumFromThenTo = Data.ProtoLens.Message.Enum.messageEnumFromThenTo
+
+instance Prelude.Bounded SetFavoritePokemonResponse'Result where
+        minBound = SetFavoritePokemonResponse'UNSET
+        maxBound = SetFavoritePokemonResponse'ERROR_POKEMON_IS_EGG
+
+result ::
+       forall msg msg' . Data.ProtoLens.HasField "result" msg msg' =>
+         Lens.Family2.Lens msg msg' (Data.ProtoLens.Field "result" msg)
+           (Data.ProtoLens.Field "result" msg')
+result
+  = Data.ProtoLens.field
+      (Data.ProtoLens.ProxySym :: Data.ProtoLens.ProxySym "result")
diff --git a/src/Proto/POGOProtos/Networking/Responses/SetPlayerTeamResponse.hs b/src/Proto/POGOProtos/Networking/Responses/SetPlayerTeamResponse.hs
new file mode 100644
--- /dev/null
+++ b/src/Proto/POGOProtos/Networking/Responses/SetPlayerTeamResponse.hs
@@ -0,0 +1,179 @@
+{- This file was auto-generated from POGOProtos/Networking/Responses/SetPlayerTeamResponse.proto by the proto-lens-protoc program. -}
+{-# LANGUAGE ScopedTypeVariables, DataKinds, TypeFamilies,
+  MultiParamTypeClasses, FlexibleContexts, FlexibleInstances #-}
+{-# OPTIONS_GHC -fno-warn-unused-imports#-}
+module Proto.POGOProtos.Networking.Responses.SetPlayerTeamResponse
+       where
+import qualified Prelude
+import qualified Data.ProtoLens
+import qualified Data.ProtoLens.Message.Enum
+import qualified Lens.Family2
+import qualified Lens.Family2.Unchecked
+import qualified Data.Default.Class
+import qualified Data.Text
+import qualified Data.Int
+import qualified Data.Word
+import qualified Data.Map
+import qualified Data.ByteString
+import qualified Proto.POGOProtos.Data.PlayerData
+
+data SetPlayerTeamResponse = SetPlayerTeamResponse{_SetPlayerTeamResponse'status
+                                                   :: SetPlayerTeamResponse'Status,
+                                                   _SetPlayerTeamResponse'playerData ::
+                                                   Prelude.Maybe
+                                                     Proto.POGOProtos.Data.PlayerData.PlayerData}
+                           deriving (Prelude.Show, Prelude.Eq)
+
+type instance Data.ProtoLens.Field "status" SetPlayerTeamResponse =
+     SetPlayerTeamResponse'Status
+
+instance Data.ProtoLens.HasField "status" SetPlayerTeamResponse
+         SetPlayerTeamResponse where
+        field _
+          = Lens.Family2.Unchecked.lens _SetPlayerTeamResponse'status
+              (\ x__ y__ -> x__{_SetPlayerTeamResponse'status = y__})
+
+type instance
+     Data.ProtoLens.Field "playerData" SetPlayerTeamResponse =
+     Proto.POGOProtos.Data.PlayerData.PlayerData
+
+instance Data.ProtoLens.HasField "playerData" SetPlayerTeamResponse
+         SetPlayerTeamResponse where
+        field _
+          = (Prelude..) maybe'playerData
+              (Data.ProtoLens.maybeLens Data.Default.Class.def)
+
+type instance
+     Data.ProtoLens.Field "maybe'playerData" SetPlayerTeamResponse =
+     Prelude.Maybe Proto.POGOProtos.Data.PlayerData.PlayerData
+
+instance Data.ProtoLens.HasField "maybe'playerData"
+         SetPlayerTeamResponse SetPlayerTeamResponse where
+        field _
+          = Lens.Family2.Unchecked.lens _SetPlayerTeamResponse'playerData
+              (\ x__ y__ -> x__{_SetPlayerTeamResponse'playerData = y__})
+
+instance Data.Default.Class.Default SetPlayerTeamResponse where
+        def
+          = SetPlayerTeamResponse{_SetPlayerTeamResponse'status =
+                                    Data.Default.Class.def,
+                                  _SetPlayerTeamResponse'playerData = Prelude.Nothing}
+
+instance Data.ProtoLens.Message SetPlayerTeamResponse where
+        descriptor
+          = let status__field_descriptor
+                  = Data.ProtoLens.FieldDescriptor "status"
+                      (Data.ProtoLens.EnumField ::
+                         Data.ProtoLens.FieldTypeDescriptor SetPlayerTeamResponse'Status)
+                      (Data.ProtoLens.PlainField Data.ProtoLens.Optional status)
+                playerData__field_descriptor
+                  = Data.ProtoLens.FieldDescriptor "player_data"
+                      (Data.ProtoLens.MessageField ::
+                         Data.ProtoLens.FieldTypeDescriptor
+                           Proto.POGOProtos.Data.PlayerData.PlayerData)
+                      (Data.ProtoLens.OptionalField maybe'playerData)
+              in
+              Data.ProtoLens.MessageDescriptor
+                (Data.Map.fromList
+                   [(Data.ProtoLens.Tag 1, status__field_descriptor),
+                    (Data.ProtoLens.Tag 2, playerData__field_descriptor)])
+                (Data.Map.fromList
+                   [("status", status__field_descriptor),
+                    ("player_data", playerData__field_descriptor)])
+
+data SetPlayerTeamResponse'Status = SetPlayerTeamResponse'UNSET
+                                  | SetPlayerTeamResponse'SUCCESS
+                                  | SetPlayerTeamResponse'TEAM_ALREADY_SET
+                                  | SetPlayerTeamResponse'FAILURE
+                                  deriving (Prelude.Show, Prelude.Eq)
+
+instance Data.Default.Class.Default SetPlayerTeamResponse'Status
+         where
+        def = SetPlayerTeamResponse'UNSET
+
+instance Data.ProtoLens.FieldDefault SetPlayerTeamResponse'Status
+         where
+        fieldDefault = SetPlayerTeamResponse'UNSET
+
+instance Data.ProtoLens.MessageEnum SetPlayerTeamResponse'Status
+         where
+        maybeToEnum 0 = Prelude.Just SetPlayerTeamResponse'UNSET
+        maybeToEnum 1 = Prelude.Just SetPlayerTeamResponse'SUCCESS
+        maybeToEnum 2 = Prelude.Just SetPlayerTeamResponse'TEAM_ALREADY_SET
+        maybeToEnum 3 = Prelude.Just SetPlayerTeamResponse'FAILURE
+        maybeToEnum _ = Prelude.Nothing
+        showEnum SetPlayerTeamResponse'UNSET = "UNSET"
+        showEnum SetPlayerTeamResponse'SUCCESS = "SUCCESS"
+        showEnum SetPlayerTeamResponse'TEAM_ALREADY_SET
+          = "TEAM_ALREADY_SET"
+        showEnum SetPlayerTeamResponse'FAILURE = "FAILURE"
+        readEnum "UNSET" = Prelude.Just SetPlayerTeamResponse'UNSET
+        readEnum "SUCCESS" = Prelude.Just SetPlayerTeamResponse'SUCCESS
+        readEnum "TEAM_ALREADY_SET"
+          = Prelude.Just SetPlayerTeamResponse'TEAM_ALREADY_SET
+        readEnum "FAILURE" = Prelude.Just SetPlayerTeamResponse'FAILURE
+        readEnum _ = Prelude.Nothing
+
+instance Prelude.Enum SetPlayerTeamResponse'Status where
+        toEnum k__
+          = Prelude.maybe
+              (Prelude.error
+                 ((Prelude.++) "toEnum: unknown value for enum Status: "
+                    (Prelude.show k__)))
+              Prelude.id
+              (Data.ProtoLens.maybeToEnum k__)
+        fromEnum SetPlayerTeamResponse'UNSET = 0
+        fromEnum SetPlayerTeamResponse'SUCCESS = 1
+        fromEnum SetPlayerTeamResponse'TEAM_ALREADY_SET = 2
+        fromEnum SetPlayerTeamResponse'FAILURE = 3
+        succ SetPlayerTeamResponse'FAILURE
+          = Prelude.error
+              "Ident \"SetPlayerTeamResponse'Status\".Ident \"succ\": bad argument Ident \"SetPlayerTeamResponse'FAILURE\". This value would be out of bounds."
+        succ SetPlayerTeamResponse'UNSET = SetPlayerTeamResponse'SUCCESS
+        succ SetPlayerTeamResponse'SUCCESS
+          = SetPlayerTeamResponse'TEAM_ALREADY_SET
+        succ SetPlayerTeamResponse'TEAM_ALREADY_SET
+          = SetPlayerTeamResponse'FAILURE
+        pred SetPlayerTeamResponse'UNSET
+          = Prelude.error
+              "Ident \"SetPlayerTeamResponse'Status\".Ident \"pred\": bad argument Ident \"SetPlayerTeamResponse'UNSET\". This value would be out of bounds."
+        pred SetPlayerTeamResponse'SUCCESS = SetPlayerTeamResponse'UNSET
+        pred SetPlayerTeamResponse'TEAM_ALREADY_SET
+          = SetPlayerTeamResponse'SUCCESS
+        pred SetPlayerTeamResponse'FAILURE
+          = SetPlayerTeamResponse'TEAM_ALREADY_SET
+        enumFrom = Data.ProtoLens.Message.Enum.messageEnumFrom
+        enumFromTo = Data.ProtoLens.Message.Enum.messageEnumFromTo
+        enumFromThen = Data.ProtoLens.Message.Enum.messageEnumFromThen
+        enumFromThenTo = Data.ProtoLens.Message.Enum.messageEnumFromThenTo
+
+instance Prelude.Bounded SetPlayerTeamResponse'Status where
+        minBound = SetPlayerTeamResponse'UNSET
+        maxBound = SetPlayerTeamResponse'FAILURE
+
+maybe'playerData ::
+                 forall msg msg' .
+                   Data.ProtoLens.HasField "maybe'playerData" msg msg' =>
+                   Lens.Family2.Lens msg msg'
+                     (Data.ProtoLens.Field "maybe'playerData" msg)
+                     (Data.ProtoLens.Field "maybe'playerData" msg')
+maybe'playerData
+  = Data.ProtoLens.field
+      (Data.ProtoLens.ProxySym ::
+         Data.ProtoLens.ProxySym "maybe'playerData")
+
+playerData ::
+           forall msg msg' . Data.ProtoLens.HasField "playerData" msg msg' =>
+             Lens.Family2.Lens msg msg' (Data.ProtoLens.Field "playerData" msg)
+               (Data.ProtoLens.Field "playerData" msg')
+playerData
+  = Data.ProtoLens.field
+      (Data.ProtoLens.ProxySym :: Data.ProtoLens.ProxySym "playerData")
+
+status ::
+       forall msg msg' . Data.ProtoLens.HasField "status" msg msg' =>
+         Lens.Family2.Lens msg msg' (Data.ProtoLens.Field "status" msg)
+           (Data.ProtoLens.Field "status" msg')
+status
+  = Data.ProtoLens.field
+      (Data.ProtoLens.ProxySym :: Data.ProtoLens.ProxySym "status")
diff --git a/src/Proto/POGOProtos/Networking/Responses/SfidaActionLogResponse.hs b/src/Proto/POGOProtos/Networking/Responses/SfidaActionLogResponse.hs
new file mode 100644
--- /dev/null
+++ b/src/Proto/POGOProtos/Networking/Responses/SfidaActionLogResponse.hs
@@ -0,0 +1,137 @@
+{- This file was auto-generated from POGOProtos/Networking/Responses/SfidaActionLogResponse.proto by the proto-lens-protoc program. -}
+{-# LANGUAGE ScopedTypeVariables, DataKinds, TypeFamilies,
+  MultiParamTypeClasses, FlexibleContexts, FlexibleInstances #-}
+{-# OPTIONS_GHC -fno-warn-unused-imports#-}
+module Proto.POGOProtos.Networking.Responses.SfidaActionLogResponse
+       where
+import qualified Prelude
+import qualified Data.ProtoLens
+import qualified Data.ProtoLens.Message.Enum
+import qualified Lens.Family2
+import qualified Lens.Family2.Unchecked
+import qualified Data.Default.Class
+import qualified Data.Text
+import qualified Data.Int
+import qualified Data.Word
+import qualified Data.Map
+import qualified Data.ByteString
+import qualified Proto.POGOProtos.Data.Logs.ActionLogEntry
+
+data SfidaActionLogResponse = SfidaActionLogResponse{_SfidaActionLogResponse'result
+                                                     :: SfidaActionLogResponse'Result,
+                                                     _SfidaActionLogResponse'logEntries ::
+                                                     [Proto.POGOProtos.Data.Logs.ActionLogEntry.ActionLogEntry]}
+                            deriving (Prelude.Show, Prelude.Eq)
+
+type instance Data.ProtoLens.Field "result" SfidaActionLogResponse
+     = SfidaActionLogResponse'Result
+
+instance Data.ProtoLens.HasField "result" SfidaActionLogResponse
+         SfidaActionLogResponse where
+        field _
+          = Lens.Family2.Unchecked.lens _SfidaActionLogResponse'result
+              (\ x__ y__ -> x__{_SfidaActionLogResponse'result = y__})
+
+type instance
+     Data.ProtoLens.Field "logEntries" SfidaActionLogResponse =
+     [Proto.POGOProtos.Data.Logs.ActionLogEntry.ActionLogEntry]
+
+instance Data.ProtoLens.HasField "logEntries"
+         SfidaActionLogResponse SfidaActionLogResponse where
+        field _
+          = Lens.Family2.Unchecked.lens _SfidaActionLogResponse'logEntries
+              (\ x__ y__ -> x__{_SfidaActionLogResponse'logEntries = y__})
+
+instance Data.Default.Class.Default SfidaActionLogResponse where
+        def
+          = SfidaActionLogResponse{_SfidaActionLogResponse'result =
+                                     Data.Default.Class.def,
+                                   _SfidaActionLogResponse'logEntries = []}
+
+instance Data.ProtoLens.Message SfidaActionLogResponse where
+        descriptor
+          = let result__field_descriptor
+                  = Data.ProtoLens.FieldDescriptor "result"
+                      (Data.ProtoLens.EnumField ::
+                         Data.ProtoLens.FieldTypeDescriptor SfidaActionLogResponse'Result)
+                      (Data.ProtoLens.PlainField Data.ProtoLens.Optional result)
+                logEntries__field_descriptor
+                  = Data.ProtoLens.FieldDescriptor "log_entries"
+                      (Data.ProtoLens.MessageField ::
+                         Data.ProtoLens.FieldTypeDescriptor
+                           Proto.POGOProtos.Data.Logs.ActionLogEntry.ActionLogEntry)
+                      (Data.ProtoLens.RepeatedField Data.ProtoLens.Unpacked logEntries)
+              in
+              Data.ProtoLens.MessageDescriptor
+                (Data.Map.fromList
+                   [(Data.ProtoLens.Tag 1, result__field_descriptor),
+                    (Data.ProtoLens.Tag 2, logEntries__field_descriptor)])
+                (Data.Map.fromList
+                   [("result", result__field_descriptor),
+                    ("log_entries", logEntries__field_descriptor)])
+
+data SfidaActionLogResponse'Result = SfidaActionLogResponse'UNSET
+                                   | SfidaActionLogResponse'SUCCESS
+                                   deriving (Prelude.Show, Prelude.Eq)
+
+instance Data.Default.Class.Default SfidaActionLogResponse'Result
+         where
+        def = SfidaActionLogResponse'UNSET
+
+instance Data.ProtoLens.FieldDefault SfidaActionLogResponse'Result
+         where
+        fieldDefault = SfidaActionLogResponse'UNSET
+
+instance Data.ProtoLens.MessageEnum SfidaActionLogResponse'Result
+         where
+        maybeToEnum 0 = Prelude.Just SfidaActionLogResponse'UNSET
+        maybeToEnum 1 = Prelude.Just SfidaActionLogResponse'SUCCESS
+        maybeToEnum _ = Prelude.Nothing
+        showEnum SfidaActionLogResponse'UNSET = "UNSET"
+        showEnum SfidaActionLogResponse'SUCCESS = "SUCCESS"
+        readEnum "UNSET" = Prelude.Just SfidaActionLogResponse'UNSET
+        readEnum "SUCCESS" = Prelude.Just SfidaActionLogResponse'SUCCESS
+        readEnum _ = Prelude.Nothing
+
+instance Prelude.Enum SfidaActionLogResponse'Result where
+        toEnum k__
+          = Prelude.maybe
+              (Prelude.error
+                 ((Prelude.++) "toEnum: unknown value for enum Result: "
+                    (Prelude.show k__)))
+              Prelude.id
+              (Data.ProtoLens.maybeToEnum k__)
+        fromEnum SfidaActionLogResponse'UNSET = 0
+        fromEnum SfidaActionLogResponse'SUCCESS = 1
+        succ SfidaActionLogResponse'SUCCESS
+          = Prelude.error
+              "Ident \"SfidaActionLogResponse'Result\".Ident \"succ\": bad argument Ident \"SfidaActionLogResponse'SUCCESS\". This value would be out of bounds."
+        succ SfidaActionLogResponse'UNSET = SfidaActionLogResponse'SUCCESS
+        pred SfidaActionLogResponse'UNSET
+          = Prelude.error
+              "Ident \"SfidaActionLogResponse'Result\".Ident \"pred\": bad argument Ident \"SfidaActionLogResponse'UNSET\". This value would be out of bounds."
+        pred SfidaActionLogResponse'SUCCESS = SfidaActionLogResponse'UNSET
+        enumFrom = Data.ProtoLens.Message.Enum.messageEnumFrom
+        enumFromTo = Data.ProtoLens.Message.Enum.messageEnumFromTo
+        enumFromThen = Data.ProtoLens.Message.Enum.messageEnumFromThen
+        enumFromThenTo = Data.ProtoLens.Message.Enum.messageEnumFromThenTo
+
+instance Prelude.Bounded SfidaActionLogResponse'Result where
+        minBound = SfidaActionLogResponse'UNSET
+        maxBound = SfidaActionLogResponse'SUCCESS
+
+logEntries ::
+           forall msg msg' . Data.ProtoLens.HasField "logEntries" msg msg' =>
+             Lens.Family2.Lens msg msg' (Data.ProtoLens.Field "logEntries" msg)
+               (Data.ProtoLens.Field "logEntries" msg')
+logEntries
+  = Data.ProtoLens.field
+      (Data.ProtoLens.ProxySym :: Data.ProtoLens.ProxySym "logEntries")
+
+result ::
+       forall msg msg' . Data.ProtoLens.HasField "result" msg msg' =>
+         Lens.Family2.Lens msg msg' (Data.ProtoLens.Field "result" msg)
+           (Data.ProtoLens.Field "result" msg')
+result
+  = Data.ProtoLens.field
+      (Data.ProtoLens.ProxySym :: Data.ProtoLens.ProxySym "result")
diff --git a/src/Proto/POGOProtos/Networking/Responses/StartGymBattleResponse.hs b/src/Proto/POGOProtos/Networking/Responses/StartGymBattleResponse.hs
new file mode 100644
--- /dev/null
+++ b/src/Proto/POGOProtos/Networking/Responses/StartGymBattleResponse.hs
@@ -0,0 +1,462 @@
+{- This file was auto-generated from POGOProtos/Networking/Responses/StartGymBattleResponse.proto by the proto-lens-protoc program. -}
+{-# LANGUAGE ScopedTypeVariables, DataKinds, TypeFamilies,
+  MultiParamTypeClasses, FlexibleContexts, FlexibleInstances #-}
+{-# OPTIONS_GHC -fno-warn-unused-imports#-}
+module Proto.POGOProtos.Networking.Responses.StartGymBattleResponse
+       where
+import qualified Prelude
+import qualified Data.ProtoLens
+import qualified Data.ProtoLens.Message.Enum
+import qualified Lens.Family2
+import qualified Lens.Family2.Unchecked
+import qualified Data.Default.Class
+import qualified Data.Text
+import qualified Data.Int
+import qualified Data.Word
+import qualified Data.Map
+import qualified Data.ByteString
+import qualified Proto.POGOProtos.Data.Battle.BattleLog
+import qualified Proto.POGOProtos.Data.Battle.BattleParticipant
+
+data StartGymBattleResponse = StartGymBattleResponse{_StartGymBattleResponse'result
+                                                     :: StartGymBattleResponse'Result,
+                                                     _StartGymBattleResponse'battleStartTimestampMs
+                                                     :: Data.Int.Int64,
+                                                     _StartGymBattleResponse'battleEndTimestampMs ::
+                                                     Data.Int.Int64,
+                                                     _StartGymBattleResponse'battleId ::
+                                                     Data.Text.Text,
+                                                     _StartGymBattleResponse'defender ::
+                                                     Prelude.Maybe
+                                                       Proto.POGOProtos.Data.Battle.BattleParticipant.BattleParticipant,
+                                                     _StartGymBattleResponse'battleLog ::
+                                                     Prelude.Maybe
+                                                       Proto.POGOProtos.Data.Battle.BattleLog.BattleLog}
+                            deriving (Prelude.Show, Prelude.Eq)
+
+type instance Data.ProtoLens.Field "result" StartGymBattleResponse
+     = StartGymBattleResponse'Result
+
+instance Data.ProtoLens.HasField "result" StartGymBattleResponse
+         StartGymBattleResponse where
+        field _
+          = Lens.Family2.Unchecked.lens _StartGymBattleResponse'result
+              (\ x__ y__ -> x__{_StartGymBattleResponse'result = y__})
+
+type instance
+     Data.ProtoLens.Field "battleStartTimestampMs"
+       StartGymBattleResponse
+     = Data.Int.Int64
+
+instance Data.ProtoLens.HasField "battleStartTimestampMs"
+         StartGymBattleResponse StartGymBattleResponse where
+        field _
+          = Lens.Family2.Unchecked.lens
+              _StartGymBattleResponse'battleStartTimestampMs
+              (\ x__ y__ ->
+                 x__{_StartGymBattleResponse'battleStartTimestampMs = y__})
+
+type instance
+     Data.ProtoLens.Field "battleEndTimestampMs" StartGymBattleResponse
+     = Data.Int.Int64
+
+instance Data.ProtoLens.HasField "battleEndTimestampMs"
+         StartGymBattleResponse StartGymBattleResponse where
+        field _
+          = Lens.Family2.Unchecked.lens
+              _StartGymBattleResponse'battleEndTimestampMs
+              (\ x__ y__ ->
+                 x__{_StartGymBattleResponse'battleEndTimestampMs = y__})
+
+type instance
+     Data.ProtoLens.Field "battleId" StartGymBattleResponse =
+     Data.Text.Text
+
+instance Data.ProtoLens.HasField "battleId" StartGymBattleResponse
+         StartGymBattleResponse where
+        field _
+          = Lens.Family2.Unchecked.lens _StartGymBattleResponse'battleId
+              (\ x__ y__ -> x__{_StartGymBattleResponse'battleId = y__})
+
+type instance
+     Data.ProtoLens.Field "defender" StartGymBattleResponse =
+     Proto.POGOProtos.Data.Battle.BattleParticipant.BattleParticipant
+
+instance Data.ProtoLens.HasField "defender" StartGymBattleResponse
+         StartGymBattleResponse where
+        field _
+          = (Prelude..) maybe'defender
+              (Data.ProtoLens.maybeLens Data.Default.Class.def)
+
+type instance
+     Data.ProtoLens.Field "maybe'defender" StartGymBattleResponse =
+     Prelude.Maybe
+       Proto.POGOProtos.Data.Battle.BattleParticipant.BattleParticipant
+
+instance Data.ProtoLens.HasField "maybe'defender"
+         StartGymBattleResponse StartGymBattleResponse where
+        field _
+          = Lens.Family2.Unchecked.lens _StartGymBattleResponse'defender
+              (\ x__ y__ -> x__{_StartGymBattleResponse'defender = y__})
+
+type instance
+     Data.ProtoLens.Field "battleLog" StartGymBattleResponse =
+     Proto.POGOProtos.Data.Battle.BattleLog.BattleLog
+
+instance Data.ProtoLens.HasField "battleLog" StartGymBattleResponse
+         StartGymBattleResponse where
+        field _
+          = (Prelude..) maybe'battleLog
+              (Data.ProtoLens.maybeLens Data.Default.Class.def)
+
+type instance
+     Data.ProtoLens.Field "maybe'battleLog" StartGymBattleResponse =
+     Prelude.Maybe Proto.POGOProtos.Data.Battle.BattleLog.BattleLog
+
+instance Data.ProtoLens.HasField "maybe'battleLog"
+         StartGymBattleResponse StartGymBattleResponse where
+        field _
+          = Lens.Family2.Unchecked.lens _StartGymBattleResponse'battleLog
+              (\ x__ y__ -> x__{_StartGymBattleResponse'battleLog = y__})
+
+instance Data.Default.Class.Default StartGymBattleResponse where
+        def
+          = StartGymBattleResponse{_StartGymBattleResponse'result =
+                                     Data.Default.Class.def,
+                                   _StartGymBattleResponse'battleStartTimestampMs =
+                                     Data.ProtoLens.fieldDefault,
+                                   _StartGymBattleResponse'battleEndTimestampMs =
+                                     Data.ProtoLens.fieldDefault,
+                                   _StartGymBattleResponse'battleId = Data.ProtoLens.fieldDefault,
+                                   _StartGymBattleResponse'defender = Prelude.Nothing,
+                                   _StartGymBattleResponse'battleLog = Prelude.Nothing}
+
+instance Data.ProtoLens.Message StartGymBattleResponse where
+        descriptor
+          = let result__field_descriptor
+                  = Data.ProtoLens.FieldDescriptor "result"
+                      (Data.ProtoLens.EnumField ::
+                         Data.ProtoLens.FieldTypeDescriptor StartGymBattleResponse'Result)
+                      (Data.ProtoLens.PlainField Data.ProtoLens.Optional result)
+                battleStartTimestampMs__field_descriptor
+                  = Data.ProtoLens.FieldDescriptor "battle_start_timestamp_ms"
+                      (Data.ProtoLens.Int64Field ::
+                         Data.ProtoLens.FieldTypeDescriptor Data.Int.Int64)
+                      (Data.ProtoLens.PlainField Data.ProtoLens.Optional
+                         battleStartTimestampMs)
+                battleEndTimestampMs__field_descriptor
+                  = Data.ProtoLens.FieldDescriptor "battle_end_timestamp_ms"
+                      (Data.ProtoLens.Int64Field ::
+                         Data.ProtoLens.FieldTypeDescriptor Data.Int.Int64)
+                      (Data.ProtoLens.PlainField Data.ProtoLens.Optional
+                         battleEndTimestampMs)
+                battleId__field_descriptor
+                  = Data.ProtoLens.FieldDescriptor "battle_id"
+                      (Data.ProtoLens.StringField ::
+                         Data.ProtoLens.FieldTypeDescriptor Data.Text.Text)
+                      (Data.ProtoLens.PlainField Data.ProtoLens.Optional battleId)
+                defender__field_descriptor
+                  = Data.ProtoLens.FieldDescriptor "defender"
+                      (Data.ProtoLens.MessageField ::
+                         Data.ProtoLens.FieldTypeDescriptor
+                           Proto.POGOProtos.Data.Battle.BattleParticipant.BattleParticipant)
+                      (Data.ProtoLens.OptionalField maybe'defender)
+                battleLog__field_descriptor
+                  = Data.ProtoLens.FieldDescriptor "battle_log"
+                      (Data.ProtoLens.MessageField ::
+                         Data.ProtoLens.FieldTypeDescriptor
+                           Proto.POGOProtos.Data.Battle.BattleLog.BattleLog)
+                      (Data.ProtoLens.OptionalField maybe'battleLog)
+              in
+              Data.ProtoLens.MessageDescriptor
+                (Data.Map.fromList
+                   [(Data.ProtoLens.Tag 1, result__field_descriptor),
+                    (Data.ProtoLens.Tag 2, battleStartTimestampMs__field_descriptor),
+                    (Data.ProtoLens.Tag 3, battleEndTimestampMs__field_descriptor),
+                    (Data.ProtoLens.Tag 4, battleId__field_descriptor),
+                    (Data.ProtoLens.Tag 5, defender__field_descriptor),
+                    (Data.ProtoLens.Tag 6, battleLog__field_descriptor)])
+                (Data.Map.fromList
+                   [("result", result__field_descriptor),
+                    ("battle_start_timestamp_ms",
+                     battleStartTimestampMs__field_descriptor),
+                    ("battle_end_timestamp_ms",
+                     battleEndTimestampMs__field_descriptor),
+                    ("battle_id", battleId__field_descriptor),
+                    ("defender", defender__field_descriptor),
+                    ("battle_log", battleLog__field_descriptor)])
+
+data StartGymBattleResponse'Result = StartGymBattleResponse'UNSET
+                                   | StartGymBattleResponse'SUCCESS
+                                   | StartGymBattleResponse'ERROR_GYM_NOT_FOUND
+                                   | StartGymBattleResponse'ERROR_GYM_NEUTRAL
+                                   | StartGymBattleResponse'ERROR_GYM_WRONG_TEAM
+                                   | StartGymBattleResponse'ERROR_GYM_EMPTY
+                                   | StartGymBattleResponse'ERROR_INVALID_DEFENDER
+                                   | StartGymBattleResponse'ERROR_TRAINING_INVALID_ATTACKER_COUNT
+                                   | StartGymBattleResponse'ERROR_ALL_POKEMON_FAINTED
+                                   | StartGymBattleResponse'ERROR_TOO_MANY_BATTLES
+                                   | StartGymBattleResponse'ERROR_TOO_MANY_PLAYERS
+                                   | StartGymBattleResponse'ERROR_GYM_BATTLE_LOCKOUT
+                                   | StartGymBattleResponse'ERROR_PLAYER_BELOW_MINIMUM_LEVEL
+                                   | StartGymBattleResponse'ERROR_NOT_IN_RANGE
+                                   deriving (Prelude.Show, Prelude.Eq)
+
+instance Data.Default.Class.Default StartGymBattleResponse'Result
+         where
+        def = StartGymBattleResponse'UNSET
+
+instance Data.ProtoLens.FieldDefault StartGymBattleResponse'Result
+         where
+        fieldDefault = StartGymBattleResponse'UNSET
+
+instance Data.ProtoLens.MessageEnum StartGymBattleResponse'Result
+         where
+        maybeToEnum 0 = Prelude.Just StartGymBattleResponse'UNSET
+        maybeToEnum 1 = Prelude.Just StartGymBattleResponse'SUCCESS
+        maybeToEnum 2
+          = Prelude.Just StartGymBattleResponse'ERROR_GYM_NOT_FOUND
+        maybeToEnum 3
+          = Prelude.Just StartGymBattleResponse'ERROR_GYM_NEUTRAL
+        maybeToEnum 4
+          = Prelude.Just StartGymBattleResponse'ERROR_GYM_WRONG_TEAM
+        maybeToEnum 5 = Prelude.Just StartGymBattleResponse'ERROR_GYM_EMPTY
+        maybeToEnum 6
+          = Prelude.Just StartGymBattleResponse'ERROR_INVALID_DEFENDER
+        maybeToEnum 7
+          = Prelude.Just
+              StartGymBattleResponse'ERROR_TRAINING_INVALID_ATTACKER_COUNT
+        maybeToEnum 8
+          = Prelude.Just StartGymBattleResponse'ERROR_ALL_POKEMON_FAINTED
+        maybeToEnum 9
+          = Prelude.Just StartGymBattleResponse'ERROR_TOO_MANY_BATTLES
+        maybeToEnum 10
+          = Prelude.Just StartGymBattleResponse'ERROR_TOO_MANY_PLAYERS
+        maybeToEnum 11
+          = Prelude.Just StartGymBattleResponse'ERROR_GYM_BATTLE_LOCKOUT
+        maybeToEnum 12
+          = Prelude.Just
+              StartGymBattleResponse'ERROR_PLAYER_BELOW_MINIMUM_LEVEL
+        maybeToEnum 13
+          = Prelude.Just StartGymBattleResponse'ERROR_NOT_IN_RANGE
+        maybeToEnum _ = Prelude.Nothing
+        showEnum StartGymBattleResponse'UNSET = "UNSET"
+        showEnum StartGymBattleResponse'SUCCESS = "SUCCESS"
+        showEnum StartGymBattleResponse'ERROR_GYM_NOT_FOUND
+          = "ERROR_GYM_NOT_FOUND"
+        showEnum StartGymBattleResponse'ERROR_GYM_NEUTRAL
+          = "ERROR_GYM_NEUTRAL"
+        showEnum StartGymBattleResponse'ERROR_GYM_WRONG_TEAM
+          = "ERROR_GYM_WRONG_TEAM"
+        showEnum StartGymBattleResponse'ERROR_GYM_EMPTY = "ERROR_GYM_EMPTY"
+        showEnum StartGymBattleResponse'ERROR_INVALID_DEFENDER
+          = "ERROR_INVALID_DEFENDER"
+        showEnum
+          StartGymBattleResponse'ERROR_TRAINING_INVALID_ATTACKER_COUNT
+          = "ERROR_TRAINING_INVALID_ATTACKER_COUNT"
+        showEnum StartGymBattleResponse'ERROR_ALL_POKEMON_FAINTED
+          = "ERROR_ALL_POKEMON_FAINTED"
+        showEnum StartGymBattleResponse'ERROR_TOO_MANY_BATTLES
+          = "ERROR_TOO_MANY_BATTLES"
+        showEnum StartGymBattleResponse'ERROR_TOO_MANY_PLAYERS
+          = "ERROR_TOO_MANY_PLAYERS"
+        showEnum StartGymBattleResponse'ERROR_GYM_BATTLE_LOCKOUT
+          = "ERROR_GYM_BATTLE_LOCKOUT"
+        showEnum StartGymBattleResponse'ERROR_PLAYER_BELOW_MINIMUM_LEVEL
+          = "ERROR_PLAYER_BELOW_MINIMUM_LEVEL"
+        showEnum StartGymBattleResponse'ERROR_NOT_IN_RANGE
+          = "ERROR_NOT_IN_RANGE"
+        readEnum "UNSET" = Prelude.Just StartGymBattleResponse'UNSET
+        readEnum "SUCCESS" = Prelude.Just StartGymBattleResponse'SUCCESS
+        readEnum "ERROR_GYM_NOT_FOUND"
+          = Prelude.Just StartGymBattleResponse'ERROR_GYM_NOT_FOUND
+        readEnum "ERROR_GYM_NEUTRAL"
+          = Prelude.Just StartGymBattleResponse'ERROR_GYM_NEUTRAL
+        readEnum "ERROR_GYM_WRONG_TEAM"
+          = Prelude.Just StartGymBattleResponse'ERROR_GYM_WRONG_TEAM
+        readEnum "ERROR_GYM_EMPTY"
+          = Prelude.Just StartGymBattleResponse'ERROR_GYM_EMPTY
+        readEnum "ERROR_INVALID_DEFENDER"
+          = Prelude.Just StartGymBattleResponse'ERROR_INVALID_DEFENDER
+        readEnum "ERROR_TRAINING_INVALID_ATTACKER_COUNT"
+          = Prelude.Just
+              StartGymBattleResponse'ERROR_TRAINING_INVALID_ATTACKER_COUNT
+        readEnum "ERROR_ALL_POKEMON_FAINTED"
+          = Prelude.Just StartGymBattleResponse'ERROR_ALL_POKEMON_FAINTED
+        readEnum "ERROR_TOO_MANY_BATTLES"
+          = Prelude.Just StartGymBattleResponse'ERROR_TOO_MANY_BATTLES
+        readEnum "ERROR_TOO_MANY_PLAYERS"
+          = Prelude.Just StartGymBattleResponse'ERROR_TOO_MANY_PLAYERS
+        readEnum "ERROR_GYM_BATTLE_LOCKOUT"
+          = Prelude.Just StartGymBattleResponse'ERROR_GYM_BATTLE_LOCKOUT
+        readEnum "ERROR_PLAYER_BELOW_MINIMUM_LEVEL"
+          = Prelude.Just
+              StartGymBattleResponse'ERROR_PLAYER_BELOW_MINIMUM_LEVEL
+        readEnum "ERROR_NOT_IN_RANGE"
+          = Prelude.Just StartGymBattleResponse'ERROR_NOT_IN_RANGE
+        readEnum _ = Prelude.Nothing
+
+instance Prelude.Enum StartGymBattleResponse'Result where
+        toEnum k__
+          = Prelude.maybe
+              (Prelude.error
+                 ((Prelude.++) "toEnum: unknown value for enum Result: "
+                    (Prelude.show k__)))
+              Prelude.id
+              (Data.ProtoLens.maybeToEnum k__)
+        fromEnum StartGymBattleResponse'UNSET = 0
+        fromEnum StartGymBattleResponse'SUCCESS = 1
+        fromEnum StartGymBattleResponse'ERROR_GYM_NOT_FOUND = 2
+        fromEnum StartGymBattleResponse'ERROR_GYM_NEUTRAL = 3
+        fromEnum StartGymBattleResponse'ERROR_GYM_WRONG_TEAM = 4
+        fromEnum StartGymBattleResponse'ERROR_GYM_EMPTY = 5
+        fromEnum StartGymBattleResponse'ERROR_INVALID_DEFENDER = 6
+        fromEnum
+          StartGymBattleResponse'ERROR_TRAINING_INVALID_ATTACKER_COUNT = 7
+        fromEnum StartGymBattleResponse'ERROR_ALL_POKEMON_FAINTED = 8
+        fromEnum StartGymBattleResponse'ERROR_TOO_MANY_BATTLES = 9
+        fromEnum StartGymBattleResponse'ERROR_TOO_MANY_PLAYERS = 10
+        fromEnum StartGymBattleResponse'ERROR_GYM_BATTLE_LOCKOUT = 11
+        fromEnum StartGymBattleResponse'ERROR_PLAYER_BELOW_MINIMUM_LEVEL
+          = 12
+        fromEnum StartGymBattleResponse'ERROR_NOT_IN_RANGE = 13
+        succ StartGymBattleResponse'ERROR_NOT_IN_RANGE
+          = Prelude.error
+              "Ident \"StartGymBattleResponse'Result\".Ident \"succ\": bad argument Ident \"StartGymBattleResponse'ERROR_NOT_IN_RANGE\". This value would be out of bounds."
+        succ StartGymBattleResponse'UNSET = StartGymBattleResponse'SUCCESS
+        succ StartGymBattleResponse'SUCCESS
+          = StartGymBattleResponse'ERROR_GYM_NOT_FOUND
+        succ StartGymBattleResponse'ERROR_GYM_NOT_FOUND
+          = StartGymBattleResponse'ERROR_GYM_NEUTRAL
+        succ StartGymBattleResponse'ERROR_GYM_NEUTRAL
+          = StartGymBattleResponse'ERROR_GYM_WRONG_TEAM
+        succ StartGymBattleResponse'ERROR_GYM_WRONG_TEAM
+          = StartGymBattleResponse'ERROR_GYM_EMPTY
+        succ StartGymBattleResponse'ERROR_GYM_EMPTY
+          = StartGymBattleResponse'ERROR_INVALID_DEFENDER
+        succ StartGymBattleResponse'ERROR_INVALID_DEFENDER
+          = StartGymBattleResponse'ERROR_TRAINING_INVALID_ATTACKER_COUNT
+        succ StartGymBattleResponse'ERROR_TRAINING_INVALID_ATTACKER_COUNT
+          = StartGymBattleResponse'ERROR_ALL_POKEMON_FAINTED
+        succ StartGymBattleResponse'ERROR_ALL_POKEMON_FAINTED
+          = StartGymBattleResponse'ERROR_TOO_MANY_BATTLES
+        succ StartGymBattleResponse'ERROR_TOO_MANY_BATTLES
+          = StartGymBattleResponse'ERROR_TOO_MANY_PLAYERS
+        succ StartGymBattleResponse'ERROR_TOO_MANY_PLAYERS
+          = StartGymBattleResponse'ERROR_GYM_BATTLE_LOCKOUT
+        succ StartGymBattleResponse'ERROR_GYM_BATTLE_LOCKOUT
+          = StartGymBattleResponse'ERROR_PLAYER_BELOW_MINIMUM_LEVEL
+        succ StartGymBattleResponse'ERROR_PLAYER_BELOW_MINIMUM_LEVEL
+          = StartGymBattleResponse'ERROR_NOT_IN_RANGE
+        pred StartGymBattleResponse'UNSET
+          = Prelude.error
+              "Ident \"StartGymBattleResponse'Result\".Ident \"pred\": bad argument Ident \"StartGymBattleResponse'UNSET\". This value would be out of bounds."
+        pred StartGymBattleResponse'SUCCESS = StartGymBattleResponse'UNSET
+        pred StartGymBattleResponse'ERROR_GYM_NOT_FOUND
+          = StartGymBattleResponse'SUCCESS
+        pred StartGymBattleResponse'ERROR_GYM_NEUTRAL
+          = StartGymBattleResponse'ERROR_GYM_NOT_FOUND
+        pred StartGymBattleResponse'ERROR_GYM_WRONG_TEAM
+          = StartGymBattleResponse'ERROR_GYM_NEUTRAL
+        pred StartGymBattleResponse'ERROR_GYM_EMPTY
+          = StartGymBattleResponse'ERROR_GYM_WRONG_TEAM
+        pred StartGymBattleResponse'ERROR_INVALID_DEFENDER
+          = StartGymBattleResponse'ERROR_GYM_EMPTY
+        pred StartGymBattleResponse'ERROR_TRAINING_INVALID_ATTACKER_COUNT
+          = StartGymBattleResponse'ERROR_INVALID_DEFENDER
+        pred StartGymBattleResponse'ERROR_ALL_POKEMON_FAINTED
+          = StartGymBattleResponse'ERROR_TRAINING_INVALID_ATTACKER_COUNT
+        pred StartGymBattleResponse'ERROR_TOO_MANY_BATTLES
+          = StartGymBattleResponse'ERROR_ALL_POKEMON_FAINTED
+        pred StartGymBattleResponse'ERROR_TOO_MANY_PLAYERS
+          = StartGymBattleResponse'ERROR_TOO_MANY_BATTLES
+        pred StartGymBattleResponse'ERROR_GYM_BATTLE_LOCKOUT
+          = StartGymBattleResponse'ERROR_TOO_MANY_PLAYERS
+        pred StartGymBattleResponse'ERROR_PLAYER_BELOW_MINIMUM_LEVEL
+          = StartGymBattleResponse'ERROR_GYM_BATTLE_LOCKOUT
+        pred StartGymBattleResponse'ERROR_NOT_IN_RANGE
+          = StartGymBattleResponse'ERROR_PLAYER_BELOW_MINIMUM_LEVEL
+        enumFrom = Data.ProtoLens.Message.Enum.messageEnumFrom
+        enumFromTo = Data.ProtoLens.Message.Enum.messageEnumFromTo
+        enumFromThen = Data.ProtoLens.Message.Enum.messageEnumFromThen
+        enumFromThenTo = Data.ProtoLens.Message.Enum.messageEnumFromThenTo
+
+instance Prelude.Bounded StartGymBattleResponse'Result where
+        minBound = StartGymBattleResponse'UNSET
+        maxBound = StartGymBattleResponse'ERROR_NOT_IN_RANGE
+
+battleEndTimestampMs ::
+                     forall msg msg' .
+                       Data.ProtoLens.HasField "battleEndTimestampMs" msg msg' =>
+                       Lens.Family2.Lens msg msg'
+                         (Data.ProtoLens.Field "battleEndTimestampMs" msg)
+                         (Data.ProtoLens.Field "battleEndTimestampMs" msg')
+battleEndTimestampMs
+  = Data.ProtoLens.field
+      (Data.ProtoLens.ProxySym ::
+         Data.ProtoLens.ProxySym "battleEndTimestampMs")
+
+battleId ::
+         forall msg msg' . Data.ProtoLens.HasField "battleId" msg msg' =>
+           Lens.Family2.Lens msg msg' (Data.ProtoLens.Field "battleId" msg)
+             (Data.ProtoLens.Field "battleId" msg')
+battleId
+  = Data.ProtoLens.field
+      (Data.ProtoLens.ProxySym :: Data.ProtoLens.ProxySym "battleId")
+
+battleLog ::
+          forall msg msg' . Data.ProtoLens.HasField "battleLog" msg msg' =>
+            Lens.Family2.Lens msg msg' (Data.ProtoLens.Field "battleLog" msg)
+              (Data.ProtoLens.Field "battleLog" msg')
+battleLog
+  = Data.ProtoLens.field
+      (Data.ProtoLens.ProxySym :: Data.ProtoLens.ProxySym "battleLog")
+
+battleStartTimestampMs ::
+                       forall msg msg' .
+                         Data.ProtoLens.HasField "battleStartTimestampMs" msg msg' =>
+                         Lens.Family2.Lens msg msg'
+                           (Data.ProtoLens.Field "battleStartTimestampMs" msg)
+                           (Data.ProtoLens.Field "battleStartTimestampMs" msg')
+battleStartTimestampMs
+  = Data.ProtoLens.field
+      (Data.ProtoLens.ProxySym ::
+         Data.ProtoLens.ProxySym "battleStartTimestampMs")
+
+defender ::
+         forall msg msg' . Data.ProtoLens.HasField "defender" msg msg' =>
+           Lens.Family2.Lens msg msg' (Data.ProtoLens.Field "defender" msg)
+             (Data.ProtoLens.Field "defender" msg')
+defender
+  = Data.ProtoLens.field
+      (Data.ProtoLens.ProxySym :: Data.ProtoLens.ProxySym "defender")
+
+maybe'battleLog ::
+                forall msg msg' .
+                  Data.ProtoLens.HasField "maybe'battleLog" msg msg' =>
+                  Lens.Family2.Lens msg msg'
+                    (Data.ProtoLens.Field "maybe'battleLog" msg)
+                    (Data.ProtoLens.Field "maybe'battleLog" msg')
+maybe'battleLog
+  = Data.ProtoLens.field
+      (Data.ProtoLens.ProxySym ::
+         Data.ProtoLens.ProxySym "maybe'battleLog")
+
+maybe'defender ::
+               forall msg msg' .
+                 Data.ProtoLens.HasField "maybe'defender" msg msg' =>
+                 Lens.Family2.Lens msg msg'
+                   (Data.ProtoLens.Field "maybe'defender" msg)
+                   (Data.ProtoLens.Field "maybe'defender" msg')
+maybe'defender
+  = Data.ProtoLens.field
+      (Data.ProtoLens.ProxySym ::
+         Data.ProtoLens.ProxySym "maybe'defender")
+
+result ::
+       forall msg msg' . Data.ProtoLens.HasField "result" msg msg' =>
+         Lens.Family2.Lens msg msg' (Data.ProtoLens.Field "result" msg)
+           (Data.ProtoLens.Field "result" msg')
+result
+  = Data.ProtoLens.field
+      (Data.ProtoLens.ProxySym :: Data.ProtoLens.ProxySym "result")
diff --git a/src/Proto/POGOProtos/Networking/Responses/UpgradePokemonResponse.hs b/src/Proto/POGOProtos/Networking/Responses/UpgradePokemonResponse.hs
new file mode 100644
--- /dev/null
+++ b/src/Proto/POGOProtos/Networking/Responses/UpgradePokemonResponse.hs
@@ -0,0 +1,211 @@
+{- This file was auto-generated from POGOProtos/Networking/Responses/UpgradePokemonResponse.proto by the proto-lens-protoc program. -}
+{-# LANGUAGE ScopedTypeVariables, DataKinds, TypeFamilies,
+  MultiParamTypeClasses, FlexibleContexts, FlexibleInstances #-}
+{-# OPTIONS_GHC -fno-warn-unused-imports#-}
+module Proto.POGOProtos.Networking.Responses.UpgradePokemonResponse
+       where
+import qualified Prelude
+import qualified Data.ProtoLens
+import qualified Data.ProtoLens.Message.Enum
+import qualified Lens.Family2
+import qualified Lens.Family2.Unchecked
+import qualified Data.Default.Class
+import qualified Data.Text
+import qualified Data.Int
+import qualified Data.Word
+import qualified Data.Map
+import qualified Data.ByteString
+import qualified Proto.POGOProtos.Data.PokemonData
+
+data UpgradePokemonResponse = UpgradePokemonResponse{_UpgradePokemonResponse'result
+                                                     :: UpgradePokemonResponse'Result,
+                                                     _UpgradePokemonResponse'upgradedPokemon ::
+                                                     Prelude.Maybe
+                                                       Proto.POGOProtos.Data.PokemonData.PokemonData}
+                            deriving (Prelude.Show, Prelude.Eq)
+
+type instance Data.ProtoLens.Field "result" UpgradePokemonResponse
+     = UpgradePokemonResponse'Result
+
+instance Data.ProtoLens.HasField "result" UpgradePokemonResponse
+         UpgradePokemonResponse where
+        field _
+          = Lens.Family2.Unchecked.lens _UpgradePokemonResponse'result
+              (\ x__ y__ -> x__{_UpgradePokemonResponse'result = y__})
+
+type instance
+     Data.ProtoLens.Field "upgradedPokemon" UpgradePokemonResponse =
+     Proto.POGOProtos.Data.PokemonData.PokemonData
+
+instance Data.ProtoLens.HasField "upgradedPokemon"
+         UpgradePokemonResponse UpgradePokemonResponse where
+        field _
+          = (Prelude..) maybe'upgradedPokemon
+              (Data.ProtoLens.maybeLens Data.Default.Class.def)
+
+type instance
+     Data.ProtoLens.Field "maybe'upgradedPokemon" UpgradePokemonResponse
+     = Prelude.Maybe Proto.POGOProtos.Data.PokemonData.PokemonData
+
+instance Data.ProtoLens.HasField "maybe'upgradedPokemon"
+         UpgradePokemonResponse UpgradePokemonResponse where
+        field _
+          = Lens.Family2.Unchecked.lens
+              _UpgradePokemonResponse'upgradedPokemon
+              (\ x__ y__ -> x__{_UpgradePokemonResponse'upgradedPokemon = y__})
+
+instance Data.Default.Class.Default UpgradePokemonResponse where
+        def
+          = UpgradePokemonResponse{_UpgradePokemonResponse'result =
+                                     Data.Default.Class.def,
+                                   _UpgradePokemonResponse'upgradedPokemon = Prelude.Nothing}
+
+instance Data.ProtoLens.Message UpgradePokemonResponse where
+        descriptor
+          = let result__field_descriptor
+                  = Data.ProtoLens.FieldDescriptor "result"
+                      (Data.ProtoLens.EnumField ::
+                         Data.ProtoLens.FieldTypeDescriptor UpgradePokemonResponse'Result)
+                      (Data.ProtoLens.PlainField Data.ProtoLens.Optional result)
+                upgradedPokemon__field_descriptor
+                  = Data.ProtoLens.FieldDescriptor "upgraded_pokemon"
+                      (Data.ProtoLens.MessageField ::
+                         Data.ProtoLens.FieldTypeDescriptor
+                           Proto.POGOProtos.Data.PokemonData.PokemonData)
+                      (Data.ProtoLens.OptionalField maybe'upgradedPokemon)
+              in
+              Data.ProtoLens.MessageDescriptor
+                (Data.Map.fromList
+                   [(Data.ProtoLens.Tag 1, result__field_descriptor),
+                    (Data.ProtoLens.Tag 2, upgradedPokemon__field_descriptor)])
+                (Data.Map.fromList
+                   [("result", result__field_descriptor),
+                    ("upgraded_pokemon", upgradedPokemon__field_descriptor)])
+
+data UpgradePokemonResponse'Result = UpgradePokemonResponse'UNSET
+                                   | UpgradePokemonResponse'SUCCESS
+                                   | UpgradePokemonResponse'ERROR_POKEMON_NOT_FOUND
+                                   | UpgradePokemonResponse'ERROR_INSUFFICIENT_RESOURCES
+                                   | UpgradePokemonResponse'ERROR_UPGRADE_NOT_AVAILABLE
+                                   | UpgradePokemonResponse'ERROR_POKEMON_IS_DEPLOYED
+                                   deriving (Prelude.Show, Prelude.Eq)
+
+instance Data.Default.Class.Default UpgradePokemonResponse'Result
+         where
+        def = UpgradePokemonResponse'UNSET
+
+instance Data.ProtoLens.FieldDefault UpgradePokemonResponse'Result
+         where
+        fieldDefault = UpgradePokemonResponse'UNSET
+
+instance Data.ProtoLens.MessageEnum UpgradePokemonResponse'Result
+         where
+        maybeToEnum 0 = Prelude.Just UpgradePokemonResponse'UNSET
+        maybeToEnum 1 = Prelude.Just UpgradePokemonResponse'SUCCESS
+        maybeToEnum 2
+          = Prelude.Just UpgradePokemonResponse'ERROR_POKEMON_NOT_FOUND
+        maybeToEnum 3
+          = Prelude.Just UpgradePokemonResponse'ERROR_INSUFFICIENT_RESOURCES
+        maybeToEnum 4
+          = Prelude.Just UpgradePokemonResponse'ERROR_UPGRADE_NOT_AVAILABLE
+        maybeToEnum 5
+          = Prelude.Just UpgradePokemonResponse'ERROR_POKEMON_IS_DEPLOYED
+        maybeToEnum _ = Prelude.Nothing
+        showEnum UpgradePokemonResponse'UNSET = "UNSET"
+        showEnum UpgradePokemonResponse'SUCCESS = "SUCCESS"
+        showEnum UpgradePokemonResponse'ERROR_POKEMON_NOT_FOUND
+          = "ERROR_POKEMON_NOT_FOUND"
+        showEnum UpgradePokemonResponse'ERROR_INSUFFICIENT_RESOURCES
+          = "ERROR_INSUFFICIENT_RESOURCES"
+        showEnum UpgradePokemonResponse'ERROR_UPGRADE_NOT_AVAILABLE
+          = "ERROR_UPGRADE_NOT_AVAILABLE"
+        showEnum UpgradePokemonResponse'ERROR_POKEMON_IS_DEPLOYED
+          = "ERROR_POKEMON_IS_DEPLOYED"
+        readEnum "UNSET" = Prelude.Just UpgradePokemonResponse'UNSET
+        readEnum "SUCCESS" = Prelude.Just UpgradePokemonResponse'SUCCESS
+        readEnum "ERROR_POKEMON_NOT_FOUND"
+          = Prelude.Just UpgradePokemonResponse'ERROR_POKEMON_NOT_FOUND
+        readEnum "ERROR_INSUFFICIENT_RESOURCES"
+          = Prelude.Just UpgradePokemonResponse'ERROR_INSUFFICIENT_RESOURCES
+        readEnum "ERROR_UPGRADE_NOT_AVAILABLE"
+          = Prelude.Just UpgradePokemonResponse'ERROR_UPGRADE_NOT_AVAILABLE
+        readEnum "ERROR_POKEMON_IS_DEPLOYED"
+          = Prelude.Just UpgradePokemonResponse'ERROR_POKEMON_IS_DEPLOYED
+        readEnum _ = Prelude.Nothing
+
+instance Prelude.Enum UpgradePokemonResponse'Result where
+        toEnum k__
+          = Prelude.maybe
+              (Prelude.error
+                 ((Prelude.++) "toEnum: unknown value for enum Result: "
+                    (Prelude.show k__)))
+              Prelude.id
+              (Data.ProtoLens.maybeToEnum k__)
+        fromEnum UpgradePokemonResponse'UNSET = 0
+        fromEnum UpgradePokemonResponse'SUCCESS = 1
+        fromEnum UpgradePokemonResponse'ERROR_POKEMON_NOT_FOUND = 2
+        fromEnum UpgradePokemonResponse'ERROR_INSUFFICIENT_RESOURCES = 3
+        fromEnum UpgradePokemonResponse'ERROR_UPGRADE_NOT_AVAILABLE = 4
+        fromEnum UpgradePokemonResponse'ERROR_POKEMON_IS_DEPLOYED = 5
+        succ UpgradePokemonResponse'ERROR_POKEMON_IS_DEPLOYED
+          = Prelude.error
+              "Ident \"UpgradePokemonResponse'Result\".Ident \"succ\": bad argument Ident \"UpgradePokemonResponse'ERROR_POKEMON_IS_DEPLOYED\". This value would be out of bounds."
+        succ UpgradePokemonResponse'UNSET = UpgradePokemonResponse'SUCCESS
+        succ UpgradePokemonResponse'SUCCESS
+          = UpgradePokemonResponse'ERROR_POKEMON_NOT_FOUND
+        succ UpgradePokemonResponse'ERROR_POKEMON_NOT_FOUND
+          = UpgradePokemonResponse'ERROR_INSUFFICIENT_RESOURCES
+        succ UpgradePokemonResponse'ERROR_INSUFFICIENT_RESOURCES
+          = UpgradePokemonResponse'ERROR_UPGRADE_NOT_AVAILABLE
+        succ UpgradePokemonResponse'ERROR_UPGRADE_NOT_AVAILABLE
+          = UpgradePokemonResponse'ERROR_POKEMON_IS_DEPLOYED
+        pred UpgradePokemonResponse'UNSET
+          = Prelude.error
+              "Ident \"UpgradePokemonResponse'Result\".Ident \"pred\": bad argument Ident \"UpgradePokemonResponse'UNSET\". This value would be out of bounds."
+        pred UpgradePokemonResponse'SUCCESS = UpgradePokemonResponse'UNSET
+        pred UpgradePokemonResponse'ERROR_POKEMON_NOT_FOUND
+          = UpgradePokemonResponse'SUCCESS
+        pred UpgradePokemonResponse'ERROR_INSUFFICIENT_RESOURCES
+          = UpgradePokemonResponse'ERROR_POKEMON_NOT_FOUND
+        pred UpgradePokemonResponse'ERROR_UPGRADE_NOT_AVAILABLE
+          = UpgradePokemonResponse'ERROR_INSUFFICIENT_RESOURCES
+        pred UpgradePokemonResponse'ERROR_POKEMON_IS_DEPLOYED
+          = UpgradePokemonResponse'ERROR_UPGRADE_NOT_AVAILABLE
+        enumFrom = Data.ProtoLens.Message.Enum.messageEnumFrom
+        enumFromTo = Data.ProtoLens.Message.Enum.messageEnumFromTo
+        enumFromThen = Data.ProtoLens.Message.Enum.messageEnumFromThen
+        enumFromThenTo = Data.ProtoLens.Message.Enum.messageEnumFromThenTo
+
+instance Prelude.Bounded UpgradePokemonResponse'Result where
+        minBound = UpgradePokemonResponse'UNSET
+        maxBound = UpgradePokemonResponse'ERROR_POKEMON_IS_DEPLOYED
+
+maybe'upgradedPokemon ::
+                      forall msg msg' .
+                        Data.ProtoLens.HasField "maybe'upgradedPokemon" msg msg' =>
+                        Lens.Family2.Lens msg msg'
+                          (Data.ProtoLens.Field "maybe'upgradedPokemon" msg)
+                          (Data.ProtoLens.Field "maybe'upgradedPokemon" msg')
+maybe'upgradedPokemon
+  = Data.ProtoLens.field
+      (Data.ProtoLens.ProxySym ::
+         Data.ProtoLens.ProxySym "maybe'upgradedPokemon")
+
+result ::
+       forall msg msg' . Data.ProtoLens.HasField "result" msg msg' =>
+         Lens.Family2.Lens msg msg' (Data.ProtoLens.Field "result" msg)
+           (Data.ProtoLens.Field "result" msg')
+result
+  = Data.ProtoLens.field
+      (Data.ProtoLens.ProxySym :: Data.ProtoLens.ProxySym "result")
+
+upgradedPokemon ::
+                forall msg msg' .
+                  Data.ProtoLens.HasField "upgradedPokemon" msg msg' =>
+                  Lens.Family2.Lens msg msg'
+                    (Data.ProtoLens.Field "upgradedPokemon" msg)
+                    (Data.ProtoLens.Field "upgradedPokemon" msg')
+upgradedPokemon
+  = Data.ProtoLens.field
+      (Data.ProtoLens.ProxySym ::
+         Data.ProtoLens.ProxySym "upgradedPokemon")
diff --git a/src/Proto/POGOProtos/Networking/Responses/UseIncenseResponse.hs b/src/Proto/POGOProtos/Networking/Responses/UseIncenseResponse.hs
new file mode 100644
--- /dev/null
+++ b/src/Proto/POGOProtos/Networking/Responses/UseIncenseResponse.hs
@@ -0,0 +1,192 @@
+{- This file was auto-generated from POGOProtos/Networking/Responses/UseIncenseResponse.proto by the proto-lens-protoc program. -}
+{-# LANGUAGE ScopedTypeVariables, DataKinds, TypeFamilies,
+  MultiParamTypeClasses, FlexibleContexts, FlexibleInstances #-}
+{-# OPTIONS_GHC -fno-warn-unused-imports#-}
+module Proto.POGOProtos.Networking.Responses.UseIncenseResponse
+       where
+import qualified Prelude
+import qualified Data.ProtoLens
+import qualified Data.ProtoLens.Message.Enum
+import qualified Lens.Family2
+import qualified Lens.Family2.Unchecked
+import qualified Data.Default.Class
+import qualified Data.Text
+import qualified Data.Int
+import qualified Data.Word
+import qualified Data.Map
+import qualified Data.ByteString
+import qualified Proto.POGOProtos.Inventory.AppliedItem
+
+data UseIncenseResponse = UseIncenseResponse{_UseIncenseResponse'result
+                                             :: UseIncenseResponse'Result,
+                                             _UseIncenseResponse'appliedIncense ::
+                                             Prelude.Maybe
+                                               Proto.POGOProtos.Inventory.AppliedItem.AppliedItem}
+                        deriving (Prelude.Show, Prelude.Eq)
+
+type instance Data.ProtoLens.Field "result" UseIncenseResponse =
+     UseIncenseResponse'Result
+
+instance Data.ProtoLens.HasField "result" UseIncenseResponse
+         UseIncenseResponse where
+        field _
+          = Lens.Family2.Unchecked.lens _UseIncenseResponse'result
+              (\ x__ y__ -> x__{_UseIncenseResponse'result = y__})
+
+type instance
+     Data.ProtoLens.Field "appliedIncense" UseIncenseResponse =
+     Proto.POGOProtos.Inventory.AppliedItem.AppliedItem
+
+instance Data.ProtoLens.HasField "appliedIncense"
+         UseIncenseResponse UseIncenseResponse where
+        field _
+          = (Prelude..) maybe'appliedIncense
+              (Data.ProtoLens.maybeLens Data.Default.Class.def)
+
+type instance
+     Data.ProtoLens.Field "maybe'appliedIncense" UseIncenseResponse =
+     Prelude.Maybe Proto.POGOProtos.Inventory.AppliedItem.AppliedItem
+
+instance Data.ProtoLens.HasField "maybe'appliedIncense"
+         UseIncenseResponse UseIncenseResponse where
+        field _
+          = Lens.Family2.Unchecked.lens _UseIncenseResponse'appliedIncense
+              (\ x__ y__ -> x__{_UseIncenseResponse'appliedIncense = y__})
+
+instance Data.Default.Class.Default UseIncenseResponse where
+        def
+          = UseIncenseResponse{_UseIncenseResponse'result =
+                                 Data.Default.Class.def,
+                               _UseIncenseResponse'appliedIncense = Prelude.Nothing}
+
+instance Data.ProtoLens.Message UseIncenseResponse where
+        descriptor
+          = let result__field_descriptor
+                  = Data.ProtoLens.FieldDescriptor "result"
+                      (Data.ProtoLens.EnumField ::
+                         Data.ProtoLens.FieldTypeDescriptor UseIncenseResponse'Result)
+                      (Data.ProtoLens.PlainField Data.ProtoLens.Optional result)
+                appliedIncense__field_descriptor
+                  = Data.ProtoLens.FieldDescriptor "applied_incense"
+                      (Data.ProtoLens.MessageField ::
+                         Data.ProtoLens.FieldTypeDescriptor
+                           Proto.POGOProtos.Inventory.AppliedItem.AppliedItem)
+                      (Data.ProtoLens.OptionalField maybe'appliedIncense)
+              in
+              Data.ProtoLens.MessageDescriptor
+                (Data.Map.fromList
+                   [(Data.ProtoLens.Tag 1, result__field_descriptor),
+                    (Data.ProtoLens.Tag 2, appliedIncense__field_descriptor)])
+                (Data.Map.fromList
+                   [("result", result__field_descriptor),
+                    ("applied_incense", appliedIncense__field_descriptor)])
+
+data UseIncenseResponse'Result = UseIncenseResponse'UNKNOWN
+                               | UseIncenseResponse'SUCCESS
+                               | UseIncenseResponse'INCENSE_ALREADY_ACTIVE
+                               | UseIncenseResponse'NONE_IN_INVENTORY
+                               | UseIncenseResponse'LOCATION_UNSET
+                               deriving (Prelude.Show, Prelude.Eq)
+
+instance Data.Default.Class.Default UseIncenseResponse'Result where
+        def = UseIncenseResponse'UNKNOWN
+
+instance Data.ProtoLens.FieldDefault UseIncenseResponse'Result
+         where
+        fieldDefault = UseIncenseResponse'UNKNOWN
+
+instance Data.ProtoLens.MessageEnum UseIncenseResponse'Result where
+        maybeToEnum 0 = Prelude.Just UseIncenseResponse'UNKNOWN
+        maybeToEnum 1 = Prelude.Just UseIncenseResponse'SUCCESS
+        maybeToEnum 2
+          = Prelude.Just UseIncenseResponse'INCENSE_ALREADY_ACTIVE
+        maybeToEnum 3 = Prelude.Just UseIncenseResponse'NONE_IN_INVENTORY
+        maybeToEnum 4 = Prelude.Just UseIncenseResponse'LOCATION_UNSET
+        maybeToEnum _ = Prelude.Nothing
+        showEnum UseIncenseResponse'UNKNOWN = "UNKNOWN"
+        showEnum UseIncenseResponse'SUCCESS = "SUCCESS"
+        showEnum UseIncenseResponse'INCENSE_ALREADY_ACTIVE
+          = "INCENSE_ALREADY_ACTIVE"
+        showEnum UseIncenseResponse'NONE_IN_INVENTORY = "NONE_IN_INVENTORY"
+        showEnum UseIncenseResponse'LOCATION_UNSET = "LOCATION_UNSET"
+        readEnum "UNKNOWN" = Prelude.Just UseIncenseResponse'UNKNOWN
+        readEnum "SUCCESS" = Prelude.Just UseIncenseResponse'SUCCESS
+        readEnum "INCENSE_ALREADY_ACTIVE"
+          = Prelude.Just UseIncenseResponse'INCENSE_ALREADY_ACTIVE
+        readEnum "NONE_IN_INVENTORY"
+          = Prelude.Just UseIncenseResponse'NONE_IN_INVENTORY
+        readEnum "LOCATION_UNSET"
+          = Prelude.Just UseIncenseResponse'LOCATION_UNSET
+        readEnum _ = Prelude.Nothing
+
+instance Prelude.Enum UseIncenseResponse'Result where
+        toEnum k__
+          = Prelude.maybe
+              (Prelude.error
+                 ((Prelude.++) "toEnum: unknown value for enum Result: "
+                    (Prelude.show k__)))
+              Prelude.id
+              (Data.ProtoLens.maybeToEnum k__)
+        fromEnum UseIncenseResponse'UNKNOWN = 0
+        fromEnum UseIncenseResponse'SUCCESS = 1
+        fromEnum UseIncenseResponse'INCENSE_ALREADY_ACTIVE = 2
+        fromEnum UseIncenseResponse'NONE_IN_INVENTORY = 3
+        fromEnum UseIncenseResponse'LOCATION_UNSET = 4
+        succ UseIncenseResponse'LOCATION_UNSET
+          = Prelude.error
+              "Ident \"UseIncenseResponse'Result\".Ident \"succ\": bad argument Ident \"UseIncenseResponse'LOCATION_UNSET\". This value would be out of bounds."
+        succ UseIncenseResponse'UNKNOWN = UseIncenseResponse'SUCCESS
+        succ UseIncenseResponse'SUCCESS
+          = UseIncenseResponse'INCENSE_ALREADY_ACTIVE
+        succ UseIncenseResponse'INCENSE_ALREADY_ACTIVE
+          = UseIncenseResponse'NONE_IN_INVENTORY
+        succ UseIncenseResponse'NONE_IN_INVENTORY
+          = UseIncenseResponse'LOCATION_UNSET
+        pred UseIncenseResponse'UNKNOWN
+          = Prelude.error
+              "Ident \"UseIncenseResponse'Result\".Ident \"pred\": bad argument Ident \"UseIncenseResponse'UNKNOWN\". This value would be out of bounds."
+        pred UseIncenseResponse'SUCCESS = UseIncenseResponse'UNKNOWN
+        pred UseIncenseResponse'INCENSE_ALREADY_ACTIVE
+          = UseIncenseResponse'SUCCESS
+        pred UseIncenseResponse'NONE_IN_INVENTORY
+          = UseIncenseResponse'INCENSE_ALREADY_ACTIVE
+        pred UseIncenseResponse'LOCATION_UNSET
+          = UseIncenseResponse'NONE_IN_INVENTORY
+        enumFrom = Data.ProtoLens.Message.Enum.messageEnumFrom
+        enumFromTo = Data.ProtoLens.Message.Enum.messageEnumFromTo
+        enumFromThen = Data.ProtoLens.Message.Enum.messageEnumFromThen
+        enumFromThenTo = Data.ProtoLens.Message.Enum.messageEnumFromThenTo
+
+instance Prelude.Bounded UseIncenseResponse'Result where
+        minBound = UseIncenseResponse'UNKNOWN
+        maxBound = UseIncenseResponse'LOCATION_UNSET
+
+appliedIncense ::
+               forall msg msg' .
+                 Data.ProtoLens.HasField "appliedIncense" msg msg' =>
+                 Lens.Family2.Lens msg msg'
+                   (Data.ProtoLens.Field "appliedIncense" msg)
+                   (Data.ProtoLens.Field "appliedIncense" msg')
+appliedIncense
+  = Data.ProtoLens.field
+      (Data.ProtoLens.ProxySym ::
+         Data.ProtoLens.ProxySym "appliedIncense")
+
+maybe'appliedIncense ::
+                     forall msg msg' .
+                       Data.ProtoLens.HasField "maybe'appliedIncense" msg msg' =>
+                       Lens.Family2.Lens msg msg'
+                         (Data.ProtoLens.Field "maybe'appliedIncense" msg)
+                         (Data.ProtoLens.Field "maybe'appliedIncense" msg')
+maybe'appliedIncense
+  = Data.ProtoLens.field
+      (Data.ProtoLens.ProxySym ::
+         Data.ProtoLens.ProxySym "maybe'appliedIncense")
+
+result ::
+       forall msg msg' . Data.ProtoLens.HasField "result" msg msg' =>
+         Lens.Family2.Lens msg msg' (Data.ProtoLens.Field "result" msg)
+           (Data.ProtoLens.Field "result" msg')
+result
+  = Data.ProtoLens.field
+      (Data.ProtoLens.ProxySym :: Data.ProtoLens.ProxySym "result")
diff --git a/src/Proto/POGOProtos/Networking/Responses/UseItemCaptureResponse.hs b/src/Proto/POGOProtos/Networking/Responses/UseItemCaptureResponse.hs
new file mode 100644
--- /dev/null
+++ b/src/Proto/POGOProtos/Networking/Responses/UseItemCaptureResponse.hs
@@ -0,0 +1,236 @@
+{- This file was auto-generated from POGOProtos/Networking/Responses/UseItemCaptureResponse.proto by the proto-lens-protoc program. -}
+{-# LANGUAGE ScopedTypeVariables, DataKinds, TypeFamilies,
+  MultiParamTypeClasses, FlexibleContexts, FlexibleInstances #-}
+{-# OPTIONS_GHC -fno-warn-unused-imports#-}
+module Proto.POGOProtos.Networking.Responses.UseItemCaptureResponse
+       where
+import qualified Prelude
+import qualified Data.ProtoLens
+import qualified Data.ProtoLens.Message.Enum
+import qualified Lens.Family2
+import qualified Lens.Family2.Unchecked
+import qualified Data.Default.Class
+import qualified Data.Text
+import qualified Data.Int
+import qualified Data.Word
+import qualified Data.Map
+import qualified Data.ByteString
+
+data UseItemCaptureResponse = UseItemCaptureResponse{_UseItemCaptureResponse'success
+                                                     :: Prelude.Bool,
+                                                     _UseItemCaptureResponse'itemCaptureMult ::
+                                                     Prelude.Double,
+                                                     _UseItemCaptureResponse'itemFleeMult ::
+                                                     Prelude.Double,
+                                                     _UseItemCaptureResponse'stopMovement ::
+                                                     Prelude.Bool,
+                                                     _UseItemCaptureResponse'stopAttack ::
+                                                     Prelude.Bool,
+                                                     _UseItemCaptureResponse'targetMax ::
+                                                     Prelude.Bool,
+                                                     _UseItemCaptureResponse'targetSlow ::
+                                                     Prelude.Bool}
+                            deriving (Prelude.Show, Prelude.Eq)
+
+type instance Data.ProtoLens.Field "success" UseItemCaptureResponse
+     = Prelude.Bool
+
+instance Data.ProtoLens.HasField "success" UseItemCaptureResponse
+         UseItemCaptureResponse where
+        field _
+          = Lens.Family2.Unchecked.lens _UseItemCaptureResponse'success
+              (\ x__ y__ -> x__{_UseItemCaptureResponse'success = y__})
+
+type instance
+     Data.ProtoLens.Field "itemCaptureMult" UseItemCaptureResponse =
+     Prelude.Double
+
+instance Data.ProtoLens.HasField "itemCaptureMult"
+         UseItemCaptureResponse UseItemCaptureResponse where
+        field _
+          = Lens.Family2.Unchecked.lens
+              _UseItemCaptureResponse'itemCaptureMult
+              (\ x__ y__ -> x__{_UseItemCaptureResponse'itemCaptureMult = y__})
+
+type instance
+     Data.ProtoLens.Field "itemFleeMult" UseItemCaptureResponse =
+     Prelude.Double
+
+instance Data.ProtoLens.HasField "itemFleeMult"
+         UseItemCaptureResponse UseItemCaptureResponse where
+        field _
+          = Lens.Family2.Unchecked.lens _UseItemCaptureResponse'itemFleeMult
+              (\ x__ y__ -> x__{_UseItemCaptureResponse'itemFleeMult = y__})
+
+type instance
+     Data.ProtoLens.Field "stopMovement" UseItemCaptureResponse =
+     Prelude.Bool
+
+instance Data.ProtoLens.HasField "stopMovement"
+         UseItemCaptureResponse UseItemCaptureResponse where
+        field _
+          = Lens.Family2.Unchecked.lens _UseItemCaptureResponse'stopMovement
+              (\ x__ y__ -> x__{_UseItemCaptureResponse'stopMovement = y__})
+
+type instance
+     Data.ProtoLens.Field "stopAttack" UseItemCaptureResponse =
+     Prelude.Bool
+
+instance Data.ProtoLens.HasField "stopAttack"
+         UseItemCaptureResponse UseItemCaptureResponse where
+        field _
+          = Lens.Family2.Unchecked.lens _UseItemCaptureResponse'stopAttack
+              (\ x__ y__ -> x__{_UseItemCaptureResponse'stopAttack = y__})
+
+type instance
+     Data.ProtoLens.Field "targetMax" UseItemCaptureResponse =
+     Prelude.Bool
+
+instance Data.ProtoLens.HasField "targetMax" UseItemCaptureResponse
+         UseItemCaptureResponse where
+        field _
+          = Lens.Family2.Unchecked.lens _UseItemCaptureResponse'targetMax
+              (\ x__ y__ -> x__{_UseItemCaptureResponse'targetMax = y__})
+
+type instance
+     Data.ProtoLens.Field "targetSlow" UseItemCaptureResponse =
+     Prelude.Bool
+
+instance Data.ProtoLens.HasField "targetSlow"
+         UseItemCaptureResponse UseItemCaptureResponse where
+        field _
+          = Lens.Family2.Unchecked.lens _UseItemCaptureResponse'targetSlow
+              (\ x__ y__ -> x__{_UseItemCaptureResponse'targetSlow = y__})
+
+instance Data.Default.Class.Default UseItemCaptureResponse where
+        def
+          = UseItemCaptureResponse{_UseItemCaptureResponse'success =
+                                     Data.ProtoLens.fieldDefault,
+                                   _UseItemCaptureResponse'itemCaptureMult =
+                                     Data.ProtoLens.fieldDefault,
+                                   _UseItemCaptureResponse'itemFleeMult =
+                                     Data.ProtoLens.fieldDefault,
+                                   _UseItemCaptureResponse'stopMovement =
+                                     Data.ProtoLens.fieldDefault,
+                                   _UseItemCaptureResponse'stopAttack = Data.ProtoLens.fieldDefault,
+                                   _UseItemCaptureResponse'targetMax = Data.ProtoLens.fieldDefault,
+                                   _UseItemCaptureResponse'targetSlow = Data.ProtoLens.fieldDefault}
+
+instance Data.ProtoLens.Message UseItemCaptureResponse where
+        descriptor
+          = let success__field_descriptor
+                  = Data.ProtoLens.FieldDescriptor "success"
+                      (Data.ProtoLens.BoolField ::
+                         Data.ProtoLens.FieldTypeDescriptor Prelude.Bool)
+                      (Data.ProtoLens.PlainField Data.ProtoLens.Optional success)
+                itemCaptureMult__field_descriptor
+                  = Data.ProtoLens.FieldDescriptor "item_capture_mult"
+                      (Data.ProtoLens.DoubleField ::
+                         Data.ProtoLens.FieldTypeDescriptor Prelude.Double)
+                      (Data.ProtoLens.PlainField Data.ProtoLens.Optional itemCaptureMult)
+                itemFleeMult__field_descriptor
+                  = Data.ProtoLens.FieldDescriptor "item_flee_mult"
+                      (Data.ProtoLens.DoubleField ::
+                         Data.ProtoLens.FieldTypeDescriptor Prelude.Double)
+                      (Data.ProtoLens.PlainField Data.ProtoLens.Optional itemFleeMult)
+                stopMovement__field_descriptor
+                  = Data.ProtoLens.FieldDescriptor "stop_movement"
+                      (Data.ProtoLens.BoolField ::
+                         Data.ProtoLens.FieldTypeDescriptor Prelude.Bool)
+                      (Data.ProtoLens.PlainField Data.ProtoLens.Optional stopMovement)
+                stopAttack__field_descriptor
+                  = Data.ProtoLens.FieldDescriptor "stop_attack"
+                      (Data.ProtoLens.BoolField ::
+                         Data.ProtoLens.FieldTypeDescriptor Prelude.Bool)
+                      (Data.ProtoLens.PlainField Data.ProtoLens.Optional stopAttack)
+                targetMax__field_descriptor
+                  = Data.ProtoLens.FieldDescriptor "target_max"
+                      (Data.ProtoLens.BoolField ::
+                         Data.ProtoLens.FieldTypeDescriptor Prelude.Bool)
+                      (Data.ProtoLens.PlainField Data.ProtoLens.Optional targetMax)
+                targetSlow__field_descriptor
+                  = Data.ProtoLens.FieldDescriptor "target_slow"
+                      (Data.ProtoLens.BoolField ::
+                         Data.ProtoLens.FieldTypeDescriptor Prelude.Bool)
+                      (Data.ProtoLens.PlainField Data.ProtoLens.Optional targetSlow)
+              in
+              Data.ProtoLens.MessageDescriptor
+                (Data.Map.fromList
+                   [(Data.ProtoLens.Tag 1, success__field_descriptor),
+                    (Data.ProtoLens.Tag 2, itemCaptureMult__field_descriptor),
+                    (Data.ProtoLens.Tag 3, itemFleeMult__field_descriptor),
+                    (Data.ProtoLens.Tag 4, stopMovement__field_descriptor),
+                    (Data.ProtoLens.Tag 5, stopAttack__field_descriptor),
+                    (Data.ProtoLens.Tag 6, targetMax__field_descriptor),
+                    (Data.ProtoLens.Tag 7, targetSlow__field_descriptor)])
+                (Data.Map.fromList
+                   [("success", success__field_descriptor),
+                    ("item_capture_mult", itemCaptureMult__field_descriptor),
+                    ("item_flee_mult", itemFleeMult__field_descriptor),
+                    ("stop_movement", stopMovement__field_descriptor),
+                    ("stop_attack", stopAttack__field_descriptor),
+                    ("target_max", targetMax__field_descriptor),
+                    ("target_slow", targetSlow__field_descriptor)])
+
+itemCaptureMult ::
+                forall msg msg' .
+                  Data.ProtoLens.HasField "itemCaptureMult" msg msg' =>
+                  Lens.Family2.Lens msg msg'
+                    (Data.ProtoLens.Field "itemCaptureMult" msg)
+                    (Data.ProtoLens.Field "itemCaptureMult" msg')
+itemCaptureMult
+  = Data.ProtoLens.field
+      (Data.ProtoLens.ProxySym ::
+         Data.ProtoLens.ProxySym "itemCaptureMult")
+
+itemFleeMult ::
+             forall msg msg' .
+               Data.ProtoLens.HasField "itemFleeMult" msg msg' =>
+               Lens.Family2.Lens msg msg'
+                 (Data.ProtoLens.Field "itemFleeMult" msg)
+                 (Data.ProtoLens.Field "itemFleeMult" msg')
+itemFleeMult
+  = Data.ProtoLens.field
+      (Data.ProtoLens.ProxySym :: Data.ProtoLens.ProxySym "itemFleeMult")
+
+stopAttack ::
+           forall msg msg' . Data.ProtoLens.HasField "stopAttack" msg msg' =>
+             Lens.Family2.Lens msg msg' (Data.ProtoLens.Field "stopAttack" msg)
+               (Data.ProtoLens.Field "stopAttack" msg')
+stopAttack
+  = Data.ProtoLens.field
+      (Data.ProtoLens.ProxySym :: Data.ProtoLens.ProxySym "stopAttack")
+
+stopMovement ::
+             forall msg msg' .
+               Data.ProtoLens.HasField "stopMovement" msg msg' =>
+               Lens.Family2.Lens msg msg'
+                 (Data.ProtoLens.Field "stopMovement" msg)
+                 (Data.ProtoLens.Field "stopMovement" msg')
+stopMovement
+  = Data.ProtoLens.field
+      (Data.ProtoLens.ProxySym :: Data.ProtoLens.ProxySym "stopMovement")
+
+success ::
+        forall msg msg' . Data.ProtoLens.HasField "success" msg msg' =>
+          Lens.Family2.Lens msg msg' (Data.ProtoLens.Field "success" msg)
+            (Data.ProtoLens.Field "success" msg')
+success
+  = Data.ProtoLens.field
+      (Data.ProtoLens.ProxySym :: Data.ProtoLens.ProxySym "success")
+
+targetMax ::
+          forall msg msg' . Data.ProtoLens.HasField "targetMax" msg msg' =>
+            Lens.Family2.Lens msg msg' (Data.ProtoLens.Field "targetMax" msg)
+              (Data.ProtoLens.Field "targetMax" msg')
+targetMax
+  = Data.ProtoLens.field
+      (Data.ProtoLens.ProxySym :: Data.ProtoLens.ProxySym "targetMax")
+
+targetSlow ::
+           forall msg msg' . Data.ProtoLens.HasField "targetSlow" msg msg' =>
+             Lens.Family2.Lens msg msg' (Data.ProtoLens.Field "targetSlow" msg)
+               (Data.ProtoLens.Field "targetSlow" msg')
+targetSlow
+  = Data.ProtoLens.field
+      (Data.ProtoLens.ProxySym :: Data.ProtoLens.ProxySym "targetSlow")
diff --git a/src/Proto/POGOProtos/Networking/Responses/UseItemEggIncubatorResponse.hs b/src/Proto/POGOProtos/Networking/Responses/UseItemEggIncubatorResponse.hs
new file mode 100644
--- /dev/null
+++ b/src/Proto/POGOProtos/Networking/Responses/UseItemEggIncubatorResponse.hs
@@ -0,0 +1,261 @@
+{- This file was auto-generated from POGOProtos/Networking/Responses/UseItemEggIncubatorResponse.proto by the proto-lens-protoc program. -}
+{-# LANGUAGE ScopedTypeVariables, DataKinds, TypeFamilies,
+  MultiParamTypeClasses, FlexibleContexts, FlexibleInstances #-}
+{-# OPTIONS_GHC -fno-warn-unused-imports#-}
+module Proto.POGOProtos.Networking.Responses.UseItemEggIncubatorResponse
+       where
+import qualified Prelude
+import qualified Data.ProtoLens
+import qualified Data.ProtoLens.Message.Enum
+import qualified Lens.Family2
+import qualified Lens.Family2.Unchecked
+import qualified Data.Default.Class
+import qualified Data.Text
+import qualified Data.Int
+import qualified Data.Word
+import qualified Data.Map
+import qualified Data.ByteString
+import qualified Proto.POGOProtos.Inventory.EggIncubator
+
+data UseItemEggIncubatorResponse = UseItemEggIncubatorResponse{_UseItemEggIncubatorResponse'result
+                                                               ::
+                                                               UseItemEggIncubatorResponse'Result,
+                                                               _UseItemEggIncubatorResponse'eggIncubator
+                                                               ::
+                                                               Prelude.Maybe
+                                                                 Proto.POGOProtos.Inventory.EggIncubator.EggIncubator}
+                                 deriving (Prelude.Show, Prelude.Eq)
+
+type instance
+     Data.ProtoLens.Field "result" UseItemEggIncubatorResponse =
+     UseItemEggIncubatorResponse'Result
+
+instance Data.ProtoLens.HasField "result"
+         UseItemEggIncubatorResponse UseItemEggIncubatorResponse where
+        field _
+          = Lens.Family2.Unchecked.lens _UseItemEggIncubatorResponse'result
+              (\ x__ y__ -> x__{_UseItemEggIncubatorResponse'result = y__})
+
+type instance
+     Data.ProtoLens.Field "eggIncubator" UseItemEggIncubatorResponse =
+     Proto.POGOProtos.Inventory.EggIncubator.EggIncubator
+
+instance Data.ProtoLens.HasField "eggIncubator"
+         UseItemEggIncubatorResponse UseItemEggIncubatorResponse where
+        field _
+          = (Prelude..) maybe'eggIncubator
+              (Data.ProtoLens.maybeLens Data.Default.Class.def)
+
+type instance
+     Data.ProtoLens.Field "maybe'eggIncubator"
+       UseItemEggIncubatorResponse
+     =
+     Prelude.Maybe Proto.POGOProtos.Inventory.EggIncubator.EggIncubator
+
+instance Data.ProtoLens.HasField "maybe'eggIncubator"
+         UseItemEggIncubatorResponse UseItemEggIncubatorResponse where
+        field _
+          = Lens.Family2.Unchecked.lens
+              _UseItemEggIncubatorResponse'eggIncubator
+              (\ x__ y__ -> x__{_UseItemEggIncubatorResponse'eggIncubator = y__})
+
+instance Data.Default.Class.Default UseItemEggIncubatorResponse
+         where
+        def
+          = UseItemEggIncubatorResponse{_UseItemEggIncubatorResponse'result =
+                                          Data.Default.Class.def,
+                                        _UseItemEggIncubatorResponse'eggIncubator = Prelude.Nothing}
+
+instance Data.ProtoLens.Message UseItemEggIncubatorResponse where
+        descriptor
+          = let result__field_descriptor
+                  = Data.ProtoLens.FieldDescriptor "result"
+                      (Data.ProtoLens.EnumField ::
+                         Data.ProtoLens.FieldTypeDescriptor
+                           UseItemEggIncubatorResponse'Result)
+                      (Data.ProtoLens.PlainField Data.ProtoLens.Optional result)
+                eggIncubator__field_descriptor
+                  = Data.ProtoLens.FieldDescriptor "egg_incubator"
+                      (Data.ProtoLens.MessageField ::
+                         Data.ProtoLens.FieldTypeDescriptor
+                           Proto.POGOProtos.Inventory.EggIncubator.EggIncubator)
+                      (Data.ProtoLens.OptionalField maybe'eggIncubator)
+              in
+              Data.ProtoLens.MessageDescriptor
+                (Data.Map.fromList
+                   [(Data.ProtoLens.Tag 1, result__field_descriptor),
+                    (Data.ProtoLens.Tag 2, eggIncubator__field_descriptor)])
+                (Data.Map.fromList
+                   [("result", result__field_descriptor),
+                    ("egg_incubator", eggIncubator__field_descriptor)])
+
+data UseItemEggIncubatorResponse'Result = UseItemEggIncubatorResponse'UNSET
+                                        | UseItemEggIncubatorResponse'SUCCESS
+                                        | UseItemEggIncubatorResponse'ERROR_INCUBATOR_NOT_FOUND
+                                        | UseItemEggIncubatorResponse'ERROR_POKEMON_EGG_NOT_FOUND
+                                        | UseItemEggIncubatorResponse'ERROR_POKEMON_ID_NOT_EGG
+                                        | UseItemEggIncubatorResponse'ERROR_INCUBATOR_ALREADY_IN_USE
+                                        | UseItemEggIncubatorResponse'ERROR_POKEMON_ALREADY_INCUBATING
+                                        | UseItemEggIncubatorResponse'ERROR_INCUBATOR_NO_USES_REMAINING
+                                        deriving (Prelude.Show, Prelude.Eq)
+
+instance Data.Default.Class.Default
+         UseItemEggIncubatorResponse'Result where
+        def = UseItemEggIncubatorResponse'UNSET
+
+instance Data.ProtoLens.FieldDefault
+         UseItemEggIncubatorResponse'Result where
+        fieldDefault = UseItemEggIncubatorResponse'UNSET
+
+instance Data.ProtoLens.MessageEnum
+         UseItemEggIncubatorResponse'Result where
+        maybeToEnum 0 = Prelude.Just UseItemEggIncubatorResponse'UNSET
+        maybeToEnum 1 = Prelude.Just UseItemEggIncubatorResponse'SUCCESS
+        maybeToEnum 2
+          = Prelude.Just
+              UseItemEggIncubatorResponse'ERROR_INCUBATOR_NOT_FOUND
+        maybeToEnum 3
+          = Prelude.Just
+              UseItemEggIncubatorResponse'ERROR_POKEMON_EGG_NOT_FOUND
+        maybeToEnum 4
+          = Prelude.Just UseItemEggIncubatorResponse'ERROR_POKEMON_ID_NOT_EGG
+        maybeToEnum 5
+          = Prelude.Just
+              UseItemEggIncubatorResponse'ERROR_INCUBATOR_ALREADY_IN_USE
+        maybeToEnum 6
+          = Prelude.Just
+              UseItemEggIncubatorResponse'ERROR_POKEMON_ALREADY_INCUBATING
+        maybeToEnum 7
+          = Prelude.Just
+              UseItemEggIncubatorResponse'ERROR_INCUBATOR_NO_USES_REMAINING
+        maybeToEnum _ = Prelude.Nothing
+        showEnum UseItemEggIncubatorResponse'UNSET = "UNSET"
+        showEnum UseItemEggIncubatorResponse'SUCCESS = "SUCCESS"
+        showEnum UseItemEggIncubatorResponse'ERROR_INCUBATOR_NOT_FOUND
+          = "ERROR_INCUBATOR_NOT_FOUND"
+        showEnum UseItemEggIncubatorResponse'ERROR_POKEMON_EGG_NOT_FOUND
+          = "ERROR_POKEMON_EGG_NOT_FOUND"
+        showEnum UseItemEggIncubatorResponse'ERROR_POKEMON_ID_NOT_EGG
+          = "ERROR_POKEMON_ID_NOT_EGG"
+        showEnum UseItemEggIncubatorResponse'ERROR_INCUBATOR_ALREADY_IN_USE
+          = "ERROR_INCUBATOR_ALREADY_IN_USE"
+        showEnum
+          UseItemEggIncubatorResponse'ERROR_POKEMON_ALREADY_INCUBATING
+          = "ERROR_POKEMON_ALREADY_INCUBATING"
+        showEnum
+          UseItemEggIncubatorResponse'ERROR_INCUBATOR_NO_USES_REMAINING
+          = "ERROR_INCUBATOR_NO_USES_REMAINING"
+        readEnum "UNSET" = Prelude.Just UseItemEggIncubatorResponse'UNSET
+        readEnum "SUCCESS"
+          = Prelude.Just UseItemEggIncubatorResponse'SUCCESS
+        readEnum "ERROR_INCUBATOR_NOT_FOUND"
+          = Prelude.Just
+              UseItemEggIncubatorResponse'ERROR_INCUBATOR_NOT_FOUND
+        readEnum "ERROR_POKEMON_EGG_NOT_FOUND"
+          = Prelude.Just
+              UseItemEggIncubatorResponse'ERROR_POKEMON_EGG_NOT_FOUND
+        readEnum "ERROR_POKEMON_ID_NOT_EGG"
+          = Prelude.Just UseItemEggIncubatorResponse'ERROR_POKEMON_ID_NOT_EGG
+        readEnum "ERROR_INCUBATOR_ALREADY_IN_USE"
+          = Prelude.Just
+              UseItemEggIncubatorResponse'ERROR_INCUBATOR_ALREADY_IN_USE
+        readEnum "ERROR_POKEMON_ALREADY_INCUBATING"
+          = Prelude.Just
+              UseItemEggIncubatorResponse'ERROR_POKEMON_ALREADY_INCUBATING
+        readEnum "ERROR_INCUBATOR_NO_USES_REMAINING"
+          = Prelude.Just
+              UseItemEggIncubatorResponse'ERROR_INCUBATOR_NO_USES_REMAINING
+        readEnum _ = Prelude.Nothing
+
+instance Prelude.Enum UseItemEggIncubatorResponse'Result where
+        toEnum k__
+          = Prelude.maybe
+              (Prelude.error
+                 ((Prelude.++) "toEnum: unknown value for enum Result: "
+                    (Prelude.show k__)))
+              Prelude.id
+              (Data.ProtoLens.maybeToEnum k__)
+        fromEnum UseItemEggIncubatorResponse'UNSET = 0
+        fromEnum UseItemEggIncubatorResponse'SUCCESS = 1
+        fromEnum UseItemEggIncubatorResponse'ERROR_INCUBATOR_NOT_FOUND = 2
+        fromEnum UseItemEggIncubatorResponse'ERROR_POKEMON_EGG_NOT_FOUND
+          = 3
+        fromEnum UseItemEggIncubatorResponse'ERROR_POKEMON_ID_NOT_EGG = 4
+        fromEnum UseItemEggIncubatorResponse'ERROR_INCUBATOR_ALREADY_IN_USE
+          = 5
+        fromEnum
+          UseItemEggIncubatorResponse'ERROR_POKEMON_ALREADY_INCUBATING = 6
+        fromEnum
+          UseItemEggIncubatorResponse'ERROR_INCUBATOR_NO_USES_REMAINING = 7
+        succ UseItemEggIncubatorResponse'ERROR_INCUBATOR_NO_USES_REMAINING
+          = Prelude.error
+              "Ident \"UseItemEggIncubatorResponse'Result\".Ident \"succ\": bad argument Ident \"UseItemEggIncubatorResponse'ERROR_INCUBATOR_NO_USES_REMAINING\". This value would be out of bounds."
+        succ UseItemEggIncubatorResponse'UNSET
+          = UseItemEggIncubatorResponse'SUCCESS
+        succ UseItemEggIncubatorResponse'SUCCESS
+          = UseItemEggIncubatorResponse'ERROR_INCUBATOR_NOT_FOUND
+        succ UseItemEggIncubatorResponse'ERROR_INCUBATOR_NOT_FOUND
+          = UseItemEggIncubatorResponse'ERROR_POKEMON_EGG_NOT_FOUND
+        succ UseItemEggIncubatorResponse'ERROR_POKEMON_EGG_NOT_FOUND
+          = UseItemEggIncubatorResponse'ERROR_POKEMON_ID_NOT_EGG
+        succ UseItemEggIncubatorResponse'ERROR_POKEMON_ID_NOT_EGG
+          = UseItemEggIncubatorResponse'ERROR_INCUBATOR_ALREADY_IN_USE
+        succ UseItemEggIncubatorResponse'ERROR_INCUBATOR_ALREADY_IN_USE
+          = UseItemEggIncubatorResponse'ERROR_POKEMON_ALREADY_INCUBATING
+        succ UseItemEggIncubatorResponse'ERROR_POKEMON_ALREADY_INCUBATING
+          = UseItemEggIncubatorResponse'ERROR_INCUBATOR_NO_USES_REMAINING
+        pred UseItemEggIncubatorResponse'UNSET
+          = Prelude.error
+              "Ident \"UseItemEggIncubatorResponse'Result\".Ident \"pred\": bad argument Ident \"UseItemEggIncubatorResponse'UNSET\". This value would be out of bounds."
+        pred UseItemEggIncubatorResponse'SUCCESS
+          = UseItemEggIncubatorResponse'UNSET
+        pred UseItemEggIncubatorResponse'ERROR_INCUBATOR_NOT_FOUND
+          = UseItemEggIncubatorResponse'SUCCESS
+        pred UseItemEggIncubatorResponse'ERROR_POKEMON_EGG_NOT_FOUND
+          = UseItemEggIncubatorResponse'ERROR_INCUBATOR_NOT_FOUND
+        pred UseItemEggIncubatorResponse'ERROR_POKEMON_ID_NOT_EGG
+          = UseItemEggIncubatorResponse'ERROR_POKEMON_EGG_NOT_FOUND
+        pred UseItemEggIncubatorResponse'ERROR_INCUBATOR_ALREADY_IN_USE
+          = UseItemEggIncubatorResponse'ERROR_POKEMON_ID_NOT_EGG
+        pred UseItemEggIncubatorResponse'ERROR_POKEMON_ALREADY_INCUBATING
+          = UseItemEggIncubatorResponse'ERROR_INCUBATOR_ALREADY_IN_USE
+        pred UseItemEggIncubatorResponse'ERROR_INCUBATOR_NO_USES_REMAINING
+          = UseItemEggIncubatorResponse'ERROR_POKEMON_ALREADY_INCUBATING
+        enumFrom = Data.ProtoLens.Message.Enum.messageEnumFrom
+        enumFromTo = Data.ProtoLens.Message.Enum.messageEnumFromTo
+        enumFromThen = Data.ProtoLens.Message.Enum.messageEnumFromThen
+        enumFromThenTo = Data.ProtoLens.Message.Enum.messageEnumFromThenTo
+
+instance Prelude.Bounded UseItemEggIncubatorResponse'Result where
+        minBound = UseItemEggIncubatorResponse'UNSET
+        maxBound
+          = UseItemEggIncubatorResponse'ERROR_INCUBATOR_NO_USES_REMAINING
+
+eggIncubator ::
+             forall msg msg' .
+               Data.ProtoLens.HasField "eggIncubator" msg msg' =>
+               Lens.Family2.Lens msg msg'
+                 (Data.ProtoLens.Field "eggIncubator" msg)
+                 (Data.ProtoLens.Field "eggIncubator" msg')
+eggIncubator
+  = Data.ProtoLens.field
+      (Data.ProtoLens.ProxySym :: Data.ProtoLens.ProxySym "eggIncubator")
+
+maybe'eggIncubator ::
+                   forall msg msg' .
+                     Data.ProtoLens.HasField "maybe'eggIncubator" msg msg' =>
+                     Lens.Family2.Lens msg msg'
+                       (Data.ProtoLens.Field "maybe'eggIncubator" msg)
+                       (Data.ProtoLens.Field "maybe'eggIncubator" msg')
+maybe'eggIncubator
+  = Data.ProtoLens.field
+      (Data.ProtoLens.ProxySym ::
+         Data.ProtoLens.ProxySym "maybe'eggIncubator")
+
+result ::
+       forall msg msg' . Data.ProtoLens.HasField "result" msg msg' =>
+         Lens.Family2.Lens msg msg' (Data.ProtoLens.Field "result" msg)
+           (Data.ProtoLens.Field "result" msg')
+result
+  = Data.ProtoLens.field
+      (Data.ProtoLens.ProxySym :: Data.ProtoLens.ProxySym "result")
diff --git a/src/Proto/POGOProtos/Networking/Responses/UseItemGymResponse.hs b/src/Proto/POGOProtos/Networking/Responses/UseItemGymResponse.hs
new file mode 100644
--- /dev/null
+++ b/src/Proto/POGOProtos/Networking/Responses/UseItemGymResponse.hs
@@ -0,0 +1,152 @@
+{- This file was auto-generated from POGOProtos/Networking/Responses/UseItemGymResponse.proto by the proto-lens-protoc program. -}
+{-# LANGUAGE ScopedTypeVariables, DataKinds, TypeFamilies,
+  MultiParamTypeClasses, FlexibleContexts, FlexibleInstances #-}
+{-# OPTIONS_GHC -fno-warn-unused-imports#-}
+module Proto.POGOProtos.Networking.Responses.UseItemGymResponse
+       where
+import qualified Prelude
+import qualified Data.ProtoLens
+import qualified Data.ProtoLens.Message.Enum
+import qualified Lens.Family2
+import qualified Lens.Family2.Unchecked
+import qualified Data.Default.Class
+import qualified Data.Text
+import qualified Data.Int
+import qualified Data.Word
+import qualified Data.Map
+import qualified Data.ByteString
+
+data UseItemGymResponse = UseItemGymResponse{_UseItemGymResponse'result
+                                             :: UseItemGymResponse'Result,
+                                             _UseItemGymResponse'updatedGp :: Data.Int.Int64}
+                        deriving (Prelude.Show, Prelude.Eq)
+
+type instance Data.ProtoLens.Field "result" UseItemGymResponse =
+     UseItemGymResponse'Result
+
+instance Data.ProtoLens.HasField "result" UseItemGymResponse
+         UseItemGymResponse where
+        field _
+          = Lens.Family2.Unchecked.lens _UseItemGymResponse'result
+              (\ x__ y__ -> x__{_UseItemGymResponse'result = y__})
+
+type instance Data.ProtoLens.Field "updatedGp" UseItemGymResponse =
+     Data.Int.Int64
+
+instance Data.ProtoLens.HasField "updatedGp" UseItemGymResponse
+         UseItemGymResponse where
+        field _
+          = Lens.Family2.Unchecked.lens _UseItemGymResponse'updatedGp
+              (\ x__ y__ -> x__{_UseItemGymResponse'updatedGp = y__})
+
+instance Data.Default.Class.Default UseItemGymResponse where
+        def
+          = UseItemGymResponse{_UseItemGymResponse'result =
+                                 Data.Default.Class.def,
+                               _UseItemGymResponse'updatedGp = Data.ProtoLens.fieldDefault}
+
+instance Data.ProtoLens.Message UseItemGymResponse where
+        descriptor
+          = let result__field_descriptor
+                  = Data.ProtoLens.FieldDescriptor "result"
+                      (Data.ProtoLens.EnumField ::
+                         Data.ProtoLens.FieldTypeDescriptor UseItemGymResponse'Result)
+                      (Data.ProtoLens.PlainField Data.ProtoLens.Optional result)
+                updatedGp__field_descriptor
+                  = Data.ProtoLens.FieldDescriptor "updated_gp"
+                      (Data.ProtoLens.Int64Field ::
+                         Data.ProtoLens.FieldTypeDescriptor Data.Int.Int64)
+                      (Data.ProtoLens.PlainField Data.ProtoLens.Optional updatedGp)
+              in
+              Data.ProtoLens.MessageDescriptor
+                (Data.Map.fromList
+                   [(Data.ProtoLens.Tag 1, result__field_descriptor),
+                    (Data.ProtoLens.Tag 2, updatedGp__field_descriptor)])
+                (Data.Map.fromList
+                   [("result", result__field_descriptor),
+                    ("updated_gp", updatedGp__field_descriptor)])
+
+data UseItemGymResponse'Result = UseItemGymResponse'UNSET
+                               | UseItemGymResponse'SUCCESS
+                               | UseItemGymResponse'ERROR_CANNOT_USE
+                               | UseItemGymResponse'ERROR_NOT_IN_RANGE
+                               deriving (Prelude.Show, Prelude.Eq)
+
+instance Data.Default.Class.Default UseItemGymResponse'Result where
+        def = UseItemGymResponse'UNSET
+
+instance Data.ProtoLens.FieldDefault UseItemGymResponse'Result
+         where
+        fieldDefault = UseItemGymResponse'UNSET
+
+instance Data.ProtoLens.MessageEnum UseItemGymResponse'Result where
+        maybeToEnum 0 = Prelude.Just UseItemGymResponse'UNSET
+        maybeToEnum 1 = Prelude.Just UseItemGymResponse'SUCCESS
+        maybeToEnum 2 = Prelude.Just UseItemGymResponse'ERROR_CANNOT_USE
+        maybeToEnum 3 = Prelude.Just UseItemGymResponse'ERROR_NOT_IN_RANGE
+        maybeToEnum _ = Prelude.Nothing
+        showEnum UseItemGymResponse'UNSET = "UNSET"
+        showEnum UseItemGymResponse'SUCCESS = "SUCCESS"
+        showEnum UseItemGymResponse'ERROR_CANNOT_USE = "ERROR_CANNOT_USE"
+        showEnum UseItemGymResponse'ERROR_NOT_IN_RANGE
+          = "ERROR_NOT_IN_RANGE"
+        readEnum "UNSET" = Prelude.Just UseItemGymResponse'UNSET
+        readEnum "SUCCESS" = Prelude.Just UseItemGymResponse'SUCCESS
+        readEnum "ERROR_CANNOT_USE"
+          = Prelude.Just UseItemGymResponse'ERROR_CANNOT_USE
+        readEnum "ERROR_NOT_IN_RANGE"
+          = Prelude.Just UseItemGymResponse'ERROR_NOT_IN_RANGE
+        readEnum _ = Prelude.Nothing
+
+instance Prelude.Enum UseItemGymResponse'Result where
+        toEnum k__
+          = Prelude.maybe
+              (Prelude.error
+                 ((Prelude.++) "toEnum: unknown value for enum Result: "
+                    (Prelude.show k__)))
+              Prelude.id
+              (Data.ProtoLens.maybeToEnum k__)
+        fromEnum UseItemGymResponse'UNSET = 0
+        fromEnum UseItemGymResponse'SUCCESS = 1
+        fromEnum UseItemGymResponse'ERROR_CANNOT_USE = 2
+        fromEnum UseItemGymResponse'ERROR_NOT_IN_RANGE = 3
+        succ UseItemGymResponse'ERROR_NOT_IN_RANGE
+          = Prelude.error
+              "Ident \"UseItemGymResponse'Result\".Ident \"succ\": bad argument Ident \"UseItemGymResponse'ERROR_NOT_IN_RANGE\". This value would be out of bounds."
+        succ UseItemGymResponse'UNSET = UseItemGymResponse'SUCCESS
+        succ UseItemGymResponse'SUCCESS
+          = UseItemGymResponse'ERROR_CANNOT_USE
+        succ UseItemGymResponse'ERROR_CANNOT_USE
+          = UseItemGymResponse'ERROR_NOT_IN_RANGE
+        pred UseItemGymResponse'UNSET
+          = Prelude.error
+              "Ident \"UseItemGymResponse'Result\".Ident \"pred\": bad argument Ident \"UseItemGymResponse'UNSET\". This value would be out of bounds."
+        pred UseItemGymResponse'SUCCESS = UseItemGymResponse'UNSET
+        pred UseItemGymResponse'ERROR_CANNOT_USE
+          = UseItemGymResponse'SUCCESS
+        pred UseItemGymResponse'ERROR_NOT_IN_RANGE
+          = UseItemGymResponse'ERROR_CANNOT_USE
+        enumFrom = Data.ProtoLens.Message.Enum.messageEnumFrom
+        enumFromTo = Data.ProtoLens.Message.Enum.messageEnumFromTo
+        enumFromThen = Data.ProtoLens.Message.Enum.messageEnumFromThen
+        enumFromThenTo = Data.ProtoLens.Message.Enum.messageEnumFromThenTo
+
+instance Prelude.Bounded UseItemGymResponse'Result where
+        minBound = UseItemGymResponse'UNSET
+        maxBound = UseItemGymResponse'ERROR_NOT_IN_RANGE
+
+result ::
+       forall msg msg' . Data.ProtoLens.HasField "result" msg msg' =>
+         Lens.Family2.Lens msg msg' (Data.ProtoLens.Field "result" msg)
+           (Data.ProtoLens.Field "result" msg')
+result
+  = Data.ProtoLens.field
+      (Data.ProtoLens.ProxySym :: Data.ProtoLens.ProxySym "result")
+
+updatedGp ::
+          forall msg msg' . Data.ProtoLens.HasField "updatedGp" msg msg' =>
+            Lens.Family2.Lens msg msg' (Data.ProtoLens.Field "updatedGp" msg)
+              (Data.ProtoLens.Field "updatedGp" msg')
+updatedGp
+  = Data.ProtoLens.field
+      (Data.ProtoLens.ProxySym :: Data.ProtoLens.ProxySym "updatedGp")
diff --git a/src/Proto/POGOProtos/Networking/Responses/UseItemPotionResponse.hs b/src/Proto/POGOProtos/Networking/Responses/UseItemPotionResponse.hs
new file mode 100644
--- /dev/null
+++ b/src/Proto/POGOProtos/Networking/Responses/UseItemPotionResponse.hs
@@ -0,0 +1,167 @@
+{- This file was auto-generated from POGOProtos/Networking/Responses/UseItemPotionResponse.proto by the proto-lens-protoc program. -}
+{-# LANGUAGE ScopedTypeVariables, DataKinds, TypeFamilies,
+  MultiParamTypeClasses, FlexibleContexts, FlexibleInstances #-}
+{-# OPTIONS_GHC -fno-warn-unused-imports#-}
+module Proto.POGOProtos.Networking.Responses.UseItemPotionResponse
+       where
+import qualified Prelude
+import qualified Data.ProtoLens
+import qualified Data.ProtoLens.Message.Enum
+import qualified Lens.Family2
+import qualified Lens.Family2.Unchecked
+import qualified Data.Default.Class
+import qualified Data.Text
+import qualified Data.Int
+import qualified Data.Word
+import qualified Data.Map
+import qualified Data.ByteString
+
+data UseItemPotionResponse = UseItemPotionResponse{_UseItemPotionResponse'result
+                                                   :: UseItemPotionResponse'Result,
+                                                   _UseItemPotionResponse'stamina :: Data.Int.Int32}
+                           deriving (Prelude.Show, Prelude.Eq)
+
+type instance Data.ProtoLens.Field "result" UseItemPotionResponse =
+     UseItemPotionResponse'Result
+
+instance Data.ProtoLens.HasField "result" UseItemPotionResponse
+         UseItemPotionResponse where
+        field _
+          = Lens.Family2.Unchecked.lens _UseItemPotionResponse'result
+              (\ x__ y__ -> x__{_UseItemPotionResponse'result = y__})
+
+type instance Data.ProtoLens.Field "stamina" UseItemPotionResponse
+     = Data.Int.Int32
+
+instance Data.ProtoLens.HasField "stamina" UseItemPotionResponse
+         UseItemPotionResponse where
+        field _
+          = Lens.Family2.Unchecked.lens _UseItemPotionResponse'stamina
+              (\ x__ y__ -> x__{_UseItemPotionResponse'stamina = y__})
+
+instance Data.Default.Class.Default UseItemPotionResponse where
+        def
+          = UseItemPotionResponse{_UseItemPotionResponse'result =
+                                    Data.Default.Class.def,
+                                  _UseItemPotionResponse'stamina = Data.ProtoLens.fieldDefault}
+
+instance Data.ProtoLens.Message UseItemPotionResponse where
+        descriptor
+          = let result__field_descriptor
+                  = Data.ProtoLens.FieldDescriptor "result"
+                      (Data.ProtoLens.EnumField ::
+                         Data.ProtoLens.FieldTypeDescriptor UseItemPotionResponse'Result)
+                      (Data.ProtoLens.PlainField Data.ProtoLens.Optional result)
+                stamina__field_descriptor
+                  = Data.ProtoLens.FieldDescriptor "stamina"
+                      (Data.ProtoLens.Int32Field ::
+                         Data.ProtoLens.FieldTypeDescriptor Data.Int.Int32)
+                      (Data.ProtoLens.PlainField Data.ProtoLens.Optional stamina)
+              in
+              Data.ProtoLens.MessageDescriptor
+                (Data.Map.fromList
+                   [(Data.ProtoLens.Tag 1, result__field_descriptor),
+                    (Data.ProtoLens.Tag 2, stamina__field_descriptor)])
+                (Data.Map.fromList
+                   [("result", result__field_descriptor),
+                    ("stamina", stamina__field_descriptor)])
+
+data UseItemPotionResponse'Result = UseItemPotionResponse'UNSET
+                                  | UseItemPotionResponse'SUCCESS
+                                  | UseItemPotionResponse'ERROR_NO_POKEMON
+                                  | UseItemPotionResponse'ERROR_CANNOT_USE
+                                  | UseItemPotionResponse'ERROR_DEPLOYED_TO_FORT
+                                  deriving (Prelude.Show, Prelude.Eq)
+
+instance Data.Default.Class.Default UseItemPotionResponse'Result
+         where
+        def = UseItemPotionResponse'UNSET
+
+instance Data.ProtoLens.FieldDefault UseItemPotionResponse'Result
+         where
+        fieldDefault = UseItemPotionResponse'UNSET
+
+instance Data.ProtoLens.MessageEnum UseItemPotionResponse'Result
+         where
+        maybeToEnum 0 = Prelude.Just UseItemPotionResponse'UNSET
+        maybeToEnum 1 = Prelude.Just UseItemPotionResponse'SUCCESS
+        maybeToEnum 2 = Prelude.Just UseItemPotionResponse'ERROR_NO_POKEMON
+        maybeToEnum 3 = Prelude.Just UseItemPotionResponse'ERROR_CANNOT_USE
+        maybeToEnum 4
+          = Prelude.Just UseItemPotionResponse'ERROR_DEPLOYED_TO_FORT
+        maybeToEnum _ = Prelude.Nothing
+        showEnum UseItemPotionResponse'UNSET = "UNSET"
+        showEnum UseItemPotionResponse'SUCCESS = "SUCCESS"
+        showEnum UseItemPotionResponse'ERROR_NO_POKEMON
+          = "ERROR_NO_POKEMON"
+        showEnum UseItemPotionResponse'ERROR_CANNOT_USE
+          = "ERROR_CANNOT_USE"
+        showEnum UseItemPotionResponse'ERROR_DEPLOYED_TO_FORT
+          = "ERROR_DEPLOYED_TO_FORT"
+        readEnum "UNSET" = Prelude.Just UseItemPotionResponse'UNSET
+        readEnum "SUCCESS" = Prelude.Just UseItemPotionResponse'SUCCESS
+        readEnum "ERROR_NO_POKEMON"
+          = Prelude.Just UseItemPotionResponse'ERROR_NO_POKEMON
+        readEnum "ERROR_CANNOT_USE"
+          = Prelude.Just UseItemPotionResponse'ERROR_CANNOT_USE
+        readEnum "ERROR_DEPLOYED_TO_FORT"
+          = Prelude.Just UseItemPotionResponse'ERROR_DEPLOYED_TO_FORT
+        readEnum _ = Prelude.Nothing
+
+instance Prelude.Enum UseItemPotionResponse'Result where
+        toEnum k__
+          = Prelude.maybe
+              (Prelude.error
+                 ((Prelude.++) "toEnum: unknown value for enum Result: "
+                    (Prelude.show k__)))
+              Prelude.id
+              (Data.ProtoLens.maybeToEnum k__)
+        fromEnum UseItemPotionResponse'UNSET = 0
+        fromEnum UseItemPotionResponse'SUCCESS = 1
+        fromEnum UseItemPotionResponse'ERROR_NO_POKEMON = 2
+        fromEnum UseItemPotionResponse'ERROR_CANNOT_USE = 3
+        fromEnum UseItemPotionResponse'ERROR_DEPLOYED_TO_FORT = 4
+        succ UseItemPotionResponse'ERROR_DEPLOYED_TO_FORT
+          = Prelude.error
+              "Ident \"UseItemPotionResponse'Result\".Ident \"succ\": bad argument Ident \"UseItemPotionResponse'ERROR_DEPLOYED_TO_FORT\". This value would be out of bounds."
+        succ UseItemPotionResponse'UNSET = UseItemPotionResponse'SUCCESS
+        succ UseItemPotionResponse'SUCCESS
+          = UseItemPotionResponse'ERROR_NO_POKEMON
+        succ UseItemPotionResponse'ERROR_NO_POKEMON
+          = UseItemPotionResponse'ERROR_CANNOT_USE
+        succ UseItemPotionResponse'ERROR_CANNOT_USE
+          = UseItemPotionResponse'ERROR_DEPLOYED_TO_FORT
+        pred UseItemPotionResponse'UNSET
+          = Prelude.error
+              "Ident \"UseItemPotionResponse'Result\".Ident \"pred\": bad argument Ident \"UseItemPotionResponse'UNSET\". This value would be out of bounds."
+        pred UseItemPotionResponse'SUCCESS = UseItemPotionResponse'UNSET
+        pred UseItemPotionResponse'ERROR_NO_POKEMON
+          = UseItemPotionResponse'SUCCESS
+        pred UseItemPotionResponse'ERROR_CANNOT_USE
+          = UseItemPotionResponse'ERROR_NO_POKEMON
+        pred UseItemPotionResponse'ERROR_DEPLOYED_TO_FORT
+          = UseItemPotionResponse'ERROR_CANNOT_USE
+        enumFrom = Data.ProtoLens.Message.Enum.messageEnumFrom
+        enumFromTo = Data.ProtoLens.Message.Enum.messageEnumFromTo
+        enumFromThen = Data.ProtoLens.Message.Enum.messageEnumFromThen
+        enumFromThenTo = Data.ProtoLens.Message.Enum.messageEnumFromThenTo
+
+instance Prelude.Bounded UseItemPotionResponse'Result where
+        minBound = UseItemPotionResponse'UNSET
+        maxBound = UseItemPotionResponse'ERROR_DEPLOYED_TO_FORT
+
+result ::
+       forall msg msg' . Data.ProtoLens.HasField "result" msg msg' =>
+         Lens.Family2.Lens msg msg' (Data.ProtoLens.Field "result" msg)
+           (Data.ProtoLens.Field "result" msg')
+result
+  = Data.ProtoLens.field
+      (Data.ProtoLens.ProxySym :: Data.ProtoLens.ProxySym "result")
+
+stamina ::
+        forall msg msg' . Data.ProtoLens.HasField "stamina" msg msg' =>
+          Lens.Family2.Lens msg msg' (Data.ProtoLens.Field "stamina" msg)
+            (Data.ProtoLens.Field "stamina" msg')
+stamina
+  = Data.ProtoLens.field
+      (Data.ProtoLens.ProxySym :: Data.ProtoLens.ProxySym "stamina")
diff --git a/src/Proto/POGOProtos/Networking/Responses/UseItemReviveResponse.hs b/src/Proto/POGOProtos/Networking/Responses/UseItemReviveResponse.hs
new file mode 100644
--- /dev/null
+++ b/src/Proto/POGOProtos/Networking/Responses/UseItemReviveResponse.hs
@@ -0,0 +1,167 @@
+{- This file was auto-generated from POGOProtos/Networking/Responses/UseItemReviveResponse.proto by the proto-lens-protoc program. -}
+{-# LANGUAGE ScopedTypeVariables, DataKinds, TypeFamilies,
+  MultiParamTypeClasses, FlexibleContexts, FlexibleInstances #-}
+{-# OPTIONS_GHC -fno-warn-unused-imports#-}
+module Proto.POGOProtos.Networking.Responses.UseItemReviveResponse
+       where
+import qualified Prelude
+import qualified Data.ProtoLens
+import qualified Data.ProtoLens.Message.Enum
+import qualified Lens.Family2
+import qualified Lens.Family2.Unchecked
+import qualified Data.Default.Class
+import qualified Data.Text
+import qualified Data.Int
+import qualified Data.Word
+import qualified Data.Map
+import qualified Data.ByteString
+
+data UseItemReviveResponse = UseItemReviveResponse{_UseItemReviveResponse'result
+                                                   :: UseItemReviveResponse'Result,
+                                                   _UseItemReviveResponse'stamina :: Data.Int.Int32}
+                           deriving (Prelude.Show, Prelude.Eq)
+
+type instance Data.ProtoLens.Field "result" UseItemReviveResponse =
+     UseItemReviveResponse'Result
+
+instance Data.ProtoLens.HasField "result" UseItemReviveResponse
+         UseItemReviveResponse where
+        field _
+          = Lens.Family2.Unchecked.lens _UseItemReviveResponse'result
+              (\ x__ y__ -> x__{_UseItemReviveResponse'result = y__})
+
+type instance Data.ProtoLens.Field "stamina" UseItemReviveResponse
+     = Data.Int.Int32
+
+instance Data.ProtoLens.HasField "stamina" UseItemReviveResponse
+         UseItemReviveResponse where
+        field _
+          = Lens.Family2.Unchecked.lens _UseItemReviveResponse'stamina
+              (\ x__ y__ -> x__{_UseItemReviveResponse'stamina = y__})
+
+instance Data.Default.Class.Default UseItemReviveResponse where
+        def
+          = UseItemReviveResponse{_UseItemReviveResponse'result =
+                                    Data.Default.Class.def,
+                                  _UseItemReviveResponse'stamina = Data.ProtoLens.fieldDefault}
+
+instance Data.ProtoLens.Message UseItemReviveResponse where
+        descriptor
+          = let result__field_descriptor
+                  = Data.ProtoLens.FieldDescriptor "result"
+                      (Data.ProtoLens.EnumField ::
+                         Data.ProtoLens.FieldTypeDescriptor UseItemReviveResponse'Result)
+                      (Data.ProtoLens.PlainField Data.ProtoLens.Optional result)
+                stamina__field_descriptor
+                  = Data.ProtoLens.FieldDescriptor "stamina"
+                      (Data.ProtoLens.Int32Field ::
+                         Data.ProtoLens.FieldTypeDescriptor Data.Int.Int32)
+                      (Data.ProtoLens.PlainField Data.ProtoLens.Optional stamina)
+              in
+              Data.ProtoLens.MessageDescriptor
+                (Data.Map.fromList
+                   [(Data.ProtoLens.Tag 1, result__field_descriptor),
+                    (Data.ProtoLens.Tag 2, stamina__field_descriptor)])
+                (Data.Map.fromList
+                   [("result", result__field_descriptor),
+                    ("stamina", stamina__field_descriptor)])
+
+data UseItemReviveResponse'Result = UseItemReviveResponse'UNSET
+                                  | UseItemReviveResponse'SUCCESS
+                                  | UseItemReviveResponse'ERROR_NO_POKEMON
+                                  | UseItemReviveResponse'ERROR_CANNOT_USE
+                                  | UseItemReviveResponse'ERROR_DEPLOYED_TO_FORT
+                                  deriving (Prelude.Show, Prelude.Eq)
+
+instance Data.Default.Class.Default UseItemReviveResponse'Result
+         where
+        def = UseItemReviveResponse'UNSET
+
+instance Data.ProtoLens.FieldDefault UseItemReviveResponse'Result
+         where
+        fieldDefault = UseItemReviveResponse'UNSET
+
+instance Data.ProtoLens.MessageEnum UseItemReviveResponse'Result
+         where
+        maybeToEnum 0 = Prelude.Just UseItemReviveResponse'UNSET
+        maybeToEnum 1 = Prelude.Just UseItemReviveResponse'SUCCESS
+        maybeToEnum 2 = Prelude.Just UseItemReviveResponse'ERROR_NO_POKEMON
+        maybeToEnum 3 = Prelude.Just UseItemReviveResponse'ERROR_CANNOT_USE
+        maybeToEnum 4
+          = Prelude.Just UseItemReviveResponse'ERROR_DEPLOYED_TO_FORT
+        maybeToEnum _ = Prelude.Nothing
+        showEnum UseItemReviveResponse'UNSET = "UNSET"
+        showEnum UseItemReviveResponse'SUCCESS = "SUCCESS"
+        showEnum UseItemReviveResponse'ERROR_NO_POKEMON
+          = "ERROR_NO_POKEMON"
+        showEnum UseItemReviveResponse'ERROR_CANNOT_USE
+          = "ERROR_CANNOT_USE"
+        showEnum UseItemReviveResponse'ERROR_DEPLOYED_TO_FORT
+          = "ERROR_DEPLOYED_TO_FORT"
+        readEnum "UNSET" = Prelude.Just UseItemReviveResponse'UNSET
+        readEnum "SUCCESS" = Prelude.Just UseItemReviveResponse'SUCCESS
+        readEnum "ERROR_NO_POKEMON"
+          = Prelude.Just UseItemReviveResponse'ERROR_NO_POKEMON
+        readEnum "ERROR_CANNOT_USE"
+          = Prelude.Just UseItemReviveResponse'ERROR_CANNOT_USE
+        readEnum "ERROR_DEPLOYED_TO_FORT"
+          = Prelude.Just UseItemReviveResponse'ERROR_DEPLOYED_TO_FORT
+        readEnum _ = Prelude.Nothing
+
+instance Prelude.Enum UseItemReviveResponse'Result where
+        toEnum k__
+          = Prelude.maybe
+              (Prelude.error
+                 ((Prelude.++) "toEnum: unknown value for enum Result: "
+                    (Prelude.show k__)))
+              Prelude.id
+              (Data.ProtoLens.maybeToEnum k__)
+        fromEnum UseItemReviveResponse'UNSET = 0
+        fromEnum UseItemReviveResponse'SUCCESS = 1
+        fromEnum UseItemReviveResponse'ERROR_NO_POKEMON = 2
+        fromEnum UseItemReviveResponse'ERROR_CANNOT_USE = 3
+        fromEnum UseItemReviveResponse'ERROR_DEPLOYED_TO_FORT = 4
+        succ UseItemReviveResponse'ERROR_DEPLOYED_TO_FORT
+          = Prelude.error
+              "Ident \"UseItemReviveResponse'Result\".Ident \"succ\": bad argument Ident \"UseItemReviveResponse'ERROR_DEPLOYED_TO_FORT\". This value would be out of bounds."
+        succ UseItemReviveResponse'UNSET = UseItemReviveResponse'SUCCESS
+        succ UseItemReviveResponse'SUCCESS
+          = UseItemReviveResponse'ERROR_NO_POKEMON
+        succ UseItemReviveResponse'ERROR_NO_POKEMON
+          = UseItemReviveResponse'ERROR_CANNOT_USE
+        succ UseItemReviveResponse'ERROR_CANNOT_USE
+          = UseItemReviveResponse'ERROR_DEPLOYED_TO_FORT
+        pred UseItemReviveResponse'UNSET
+          = Prelude.error
+              "Ident \"UseItemReviveResponse'Result\".Ident \"pred\": bad argument Ident \"UseItemReviveResponse'UNSET\". This value would be out of bounds."
+        pred UseItemReviveResponse'SUCCESS = UseItemReviveResponse'UNSET
+        pred UseItemReviveResponse'ERROR_NO_POKEMON
+          = UseItemReviveResponse'SUCCESS
+        pred UseItemReviveResponse'ERROR_CANNOT_USE
+          = UseItemReviveResponse'ERROR_NO_POKEMON
+        pred UseItemReviveResponse'ERROR_DEPLOYED_TO_FORT
+          = UseItemReviveResponse'ERROR_CANNOT_USE
+        enumFrom = Data.ProtoLens.Message.Enum.messageEnumFrom
+        enumFromTo = Data.ProtoLens.Message.Enum.messageEnumFromTo
+        enumFromThen = Data.ProtoLens.Message.Enum.messageEnumFromThen
+        enumFromThenTo = Data.ProtoLens.Message.Enum.messageEnumFromThenTo
+
+instance Prelude.Bounded UseItemReviveResponse'Result where
+        minBound = UseItemReviveResponse'UNSET
+        maxBound = UseItemReviveResponse'ERROR_DEPLOYED_TO_FORT
+
+result ::
+       forall msg msg' . Data.ProtoLens.HasField "result" msg msg' =>
+         Lens.Family2.Lens msg msg' (Data.ProtoLens.Field "result" msg)
+           (Data.ProtoLens.Field "result" msg')
+result
+  = Data.ProtoLens.field
+      (Data.ProtoLens.ProxySym :: Data.ProtoLens.ProxySym "result")
+
+stamina ::
+        forall msg msg' . Data.ProtoLens.HasField "stamina" msg msg' =>
+          Lens.Family2.Lens msg msg' (Data.ProtoLens.Field "stamina" msg)
+            (Data.ProtoLens.Field "stamina" msg')
+stamina
+  = Data.ProtoLens.field
+      (Data.ProtoLens.ProxySym :: Data.ProtoLens.ProxySym "stamina")
diff --git a/src/Proto/POGOProtos/Networking/Responses/UseItemXpBoostResponse.hs b/src/Proto/POGOProtos/Networking/Responses/UseItemXpBoostResponse.hs
new file mode 100644
--- /dev/null
+++ b/src/Proto/POGOProtos/Networking/Responses/UseItemXpBoostResponse.hs
@@ -0,0 +1,209 @@
+{- This file was auto-generated from POGOProtos/Networking/Responses/UseItemXpBoostResponse.proto by the proto-lens-protoc program. -}
+{-# LANGUAGE ScopedTypeVariables, DataKinds, TypeFamilies,
+  MultiParamTypeClasses, FlexibleContexts, FlexibleInstances #-}
+{-# OPTIONS_GHC -fno-warn-unused-imports#-}
+module Proto.POGOProtos.Networking.Responses.UseItemXpBoostResponse
+       where
+import qualified Prelude
+import qualified Data.ProtoLens
+import qualified Data.ProtoLens.Message.Enum
+import qualified Lens.Family2
+import qualified Lens.Family2.Unchecked
+import qualified Data.Default.Class
+import qualified Data.Text
+import qualified Data.Int
+import qualified Data.Word
+import qualified Data.Map
+import qualified Data.ByteString
+import qualified Proto.POGOProtos.Inventory.AppliedItems
+
+data UseItemXpBoostResponse = UseItemXpBoostResponse{_UseItemXpBoostResponse'result
+                                                     :: UseItemXpBoostResponse'Result,
+                                                     _UseItemXpBoostResponse'appliedItems ::
+                                                     Prelude.Maybe
+                                                       Proto.POGOProtos.Inventory.AppliedItems.AppliedItems}
+                            deriving (Prelude.Show, Prelude.Eq)
+
+type instance Data.ProtoLens.Field "result" UseItemXpBoostResponse
+     = UseItemXpBoostResponse'Result
+
+instance Data.ProtoLens.HasField "result" UseItemXpBoostResponse
+         UseItemXpBoostResponse where
+        field _
+          = Lens.Family2.Unchecked.lens _UseItemXpBoostResponse'result
+              (\ x__ y__ -> x__{_UseItemXpBoostResponse'result = y__})
+
+type instance
+     Data.ProtoLens.Field "appliedItems" UseItemXpBoostResponse =
+     Proto.POGOProtos.Inventory.AppliedItems.AppliedItems
+
+instance Data.ProtoLens.HasField "appliedItems"
+         UseItemXpBoostResponse UseItemXpBoostResponse where
+        field _
+          = (Prelude..) maybe'appliedItems
+              (Data.ProtoLens.maybeLens Data.Default.Class.def)
+
+type instance
+     Data.ProtoLens.Field "maybe'appliedItems" UseItemXpBoostResponse =
+     Prelude.Maybe Proto.POGOProtos.Inventory.AppliedItems.AppliedItems
+
+instance Data.ProtoLens.HasField "maybe'appliedItems"
+         UseItemXpBoostResponse UseItemXpBoostResponse where
+        field _
+          = Lens.Family2.Unchecked.lens _UseItemXpBoostResponse'appliedItems
+              (\ x__ y__ -> x__{_UseItemXpBoostResponse'appliedItems = y__})
+
+instance Data.Default.Class.Default UseItemXpBoostResponse where
+        def
+          = UseItemXpBoostResponse{_UseItemXpBoostResponse'result =
+                                     Data.Default.Class.def,
+                                   _UseItemXpBoostResponse'appliedItems = Prelude.Nothing}
+
+instance Data.ProtoLens.Message UseItemXpBoostResponse where
+        descriptor
+          = let result__field_descriptor
+                  = Data.ProtoLens.FieldDescriptor "result"
+                      (Data.ProtoLens.EnumField ::
+                         Data.ProtoLens.FieldTypeDescriptor UseItemXpBoostResponse'Result)
+                      (Data.ProtoLens.PlainField Data.ProtoLens.Optional result)
+                appliedItems__field_descriptor
+                  = Data.ProtoLens.FieldDescriptor "applied_items"
+                      (Data.ProtoLens.MessageField ::
+                         Data.ProtoLens.FieldTypeDescriptor
+                           Proto.POGOProtos.Inventory.AppliedItems.AppliedItems)
+                      (Data.ProtoLens.OptionalField maybe'appliedItems)
+              in
+              Data.ProtoLens.MessageDescriptor
+                (Data.Map.fromList
+                   [(Data.ProtoLens.Tag 1, result__field_descriptor),
+                    (Data.ProtoLens.Tag 2, appliedItems__field_descriptor)])
+                (Data.Map.fromList
+                   [("result", result__field_descriptor),
+                    ("applied_items", appliedItems__field_descriptor)])
+
+data UseItemXpBoostResponse'Result = UseItemXpBoostResponse'UNSET
+                                   | UseItemXpBoostResponse'SUCCESS
+                                   | UseItemXpBoostResponse'ERROR_INVALID_ITEM_TYPE
+                                   | UseItemXpBoostResponse'ERROR_XP_BOOST_ALREADY_ACTIVE
+                                   | UseItemXpBoostResponse'ERROR_NO_ITEMS_REMAINING
+                                   | UseItemXpBoostResponse'ERROR_LOCATION_UNSET
+                                   deriving (Prelude.Show, Prelude.Eq)
+
+instance Data.Default.Class.Default UseItemXpBoostResponse'Result
+         where
+        def = UseItemXpBoostResponse'UNSET
+
+instance Data.ProtoLens.FieldDefault UseItemXpBoostResponse'Result
+         where
+        fieldDefault = UseItemXpBoostResponse'UNSET
+
+instance Data.ProtoLens.MessageEnum UseItemXpBoostResponse'Result
+         where
+        maybeToEnum 0 = Prelude.Just UseItemXpBoostResponse'UNSET
+        maybeToEnum 1 = Prelude.Just UseItemXpBoostResponse'SUCCESS
+        maybeToEnum 2
+          = Prelude.Just UseItemXpBoostResponse'ERROR_INVALID_ITEM_TYPE
+        maybeToEnum 3
+          = Prelude.Just UseItemXpBoostResponse'ERROR_XP_BOOST_ALREADY_ACTIVE
+        maybeToEnum 4
+          = Prelude.Just UseItemXpBoostResponse'ERROR_NO_ITEMS_REMAINING
+        maybeToEnum 5
+          = Prelude.Just UseItemXpBoostResponse'ERROR_LOCATION_UNSET
+        maybeToEnum _ = Prelude.Nothing
+        showEnum UseItemXpBoostResponse'UNSET = "UNSET"
+        showEnum UseItemXpBoostResponse'SUCCESS = "SUCCESS"
+        showEnum UseItemXpBoostResponse'ERROR_INVALID_ITEM_TYPE
+          = "ERROR_INVALID_ITEM_TYPE"
+        showEnum UseItemXpBoostResponse'ERROR_XP_BOOST_ALREADY_ACTIVE
+          = "ERROR_XP_BOOST_ALREADY_ACTIVE"
+        showEnum UseItemXpBoostResponse'ERROR_NO_ITEMS_REMAINING
+          = "ERROR_NO_ITEMS_REMAINING"
+        showEnum UseItemXpBoostResponse'ERROR_LOCATION_UNSET
+          = "ERROR_LOCATION_UNSET"
+        readEnum "UNSET" = Prelude.Just UseItemXpBoostResponse'UNSET
+        readEnum "SUCCESS" = Prelude.Just UseItemXpBoostResponse'SUCCESS
+        readEnum "ERROR_INVALID_ITEM_TYPE"
+          = Prelude.Just UseItemXpBoostResponse'ERROR_INVALID_ITEM_TYPE
+        readEnum "ERROR_XP_BOOST_ALREADY_ACTIVE"
+          = Prelude.Just UseItemXpBoostResponse'ERROR_XP_BOOST_ALREADY_ACTIVE
+        readEnum "ERROR_NO_ITEMS_REMAINING"
+          = Prelude.Just UseItemXpBoostResponse'ERROR_NO_ITEMS_REMAINING
+        readEnum "ERROR_LOCATION_UNSET"
+          = Prelude.Just UseItemXpBoostResponse'ERROR_LOCATION_UNSET
+        readEnum _ = Prelude.Nothing
+
+instance Prelude.Enum UseItemXpBoostResponse'Result where
+        toEnum k__
+          = Prelude.maybe
+              (Prelude.error
+                 ((Prelude.++) "toEnum: unknown value for enum Result: "
+                    (Prelude.show k__)))
+              Prelude.id
+              (Data.ProtoLens.maybeToEnum k__)
+        fromEnum UseItemXpBoostResponse'UNSET = 0
+        fromEnum UseItemXpBoostResponse'SUCCESS = 1
+        fromEnum UseItemXpBoostResponse'ERROR_INVALID_ITEM_TYPE = 2
+        fromEnum UseItemXpBoostResponse'ERROR_XP_BOOST_ALREADY_ACTIVE = 3
+        fromEnum UseItemXpBoostResponse'ERROR_NO_ITEMS_REMAINING = 4
+        fromEnum UseItemXpBoostResponse'ERROR_LOCATION_UNSET = 5
+        succ UseItemXpBoostResponse'ERROR_LOCATION_UNSET
+          = Prelude.error
+              "Ident \"UseItemXpBoostResponse'Result\".Ident \"succ\": bad argument Ident \"UseItemXpBoostResponse'ERROR_LOCATION_UNSET\". This value would be out of bounds."
+        succ UseItemXpBoostResponse'UNSET = UseItemXpBoostResponse'SUCCESS
+        succ UseItemXpBoostResponse'SUCCESS
+          = UseItemXpBoostResponse'ERROR_INVALID_ITEM_TYPE
+        succ UseItemXpBoostResponse'ERROR_INVALID_ITEM_TYPE
+          = UseItemXpBoostResponse'ERROR_XP_BOOST_ALREADY_ACTIVE
+        succ UseItemXpBoostResponse'ERROR_XP_BOOST_ALREADY_ACTIVE
+          = UseItemXpBoostResponse'ERROR_NO_ITEMS_REMAINING
+        succ UseItemXpBoostResponse'ERROR_NO_ITEMS_REMAINING
+          = UseItemXpBoostResponse'ERROR_LOCATION_UNSET
+        pred UseItemXpBoostResponse'UNSET
+          = Prelude.error
+              "Ident \"UseItemXpBoostResponse'Result\".Ident \"pred\": bad argument Ident \"UseItemXpBoostResponse'UNSET\". This value would be out of bounds."
+        pred UseItemXpBoostResponse'SUCCESS = UseItemXpBoostResponse'UNSET
+        pred UseItemXpBoostResponse'ERROR_INVALID_ITEM_TYPE
+          = UseItemXpBoostResponse'SUCCESS
+        pred UseItemXpBoostResponse'ERROR_XP_BOOST_ALREADY_ACTIVE
+          = UseItemXpBoostResponse'ERROR_INVALID_ITEM_TYPE
+        pred UseItemXpBoostResponse'ERROR_NO_ITEMS_REMAINING
+          = UseItemXpBoostResponse'ERROR_XP_BOOST_ALREADY_ACTIVE
+        pred UseItemXpBoostResponse'ERROR_LOCATION_UNSET
+          = UseItemXpBoostResponse'ERROR_NO_ITEMS_REMAINING
+        enumFrom = Data.ProtoLens.Message.Enum.messageEnumFrom
+        enumFromTo = Data.ProtoLens.Message.Enum.messageEnumFromTo
+        enumFromThen = Data.ProtoLens.Message.Enum.messageEnumFromThen
+        enumFromThenTo = Data.ProtoLens.Message.Enum.messageEnumFromThenTo
+
+instance Prelude.Bounded UseItemXpBoostResponse'Result where
+        minBound = UseItemXpBoostResponse'UNSET
+        maxBound = UseItemXpBoostResponse'ERROR_LOCATION_UNSET
+
+appliedItems ::
+             forall msg msg' .
+               Data.ProtoLens.HasField "appliedItems" msg msg' =>
+               Lens.Family2.Lens msg msg'
+                 (Data.ProtoLens.Field "appliedItems" msg)
+                 (Data.ProtoLens.Field "appliedItems" msg')
+appliedItems
+  = Data.ProtoLens.field
+      (Data.ProtoLens.ProxySym :: Data.ProtoLens.ProxySym "appliedItems")
+
+maybe'appliedItems ::
+                   forall msg msg' .
+                     Data.ProtoLens.HasField "maybe'appliedItems" msg msg' =>
+                     Lens.Family2.Lens msg msg'
+                       (Data.ProtoLens.Field "maybe'appliedItems" msg)
+                       (Data.ProtoLens.Field "maybe'appliedItems" msg')
+maybe'appliedItems
+  = Data.ProtoLens.field
+      (Data.ProtoLens.ProxySym ::
+         Data.ProtoLens.ProxySym "maybe'appliedItems")
+
+result ::
+       forall msg msg' . Data.ProtoLens.HasField "result" msg msg' =>
+         Lens.Family2.Lens msg msg' (Data.ProtoLens.Field "result" msg)
+           (Data.ProtoLens.Field "result" msg')
+result
+  = Data.ProtoLens.field
+      (Data.ProtoLens.ProxySym :: Data.ProtoLens.ProxySym "result")
diff --git a/src/Proto/POGOProtos/Settings/DownloadSettingsAction.hs b/src/Proto/POGOProtos/Settings/DownloadSettingsAction.hs
new file mode 100644
--- /dev/null
+++ b/src/Proto/POGOProtos/Settings/DownloadSettingsAction.hs
@@ -0,0 +1,55 @@
+{- This file was auto-generated from POGOProtos/Settings/DownloadSettingsAction.proto by the proto-lens-protoc program. -}
+{-# LANGUAGE ScopedTypeVariables, DataKinds, TypeFamilies,
+  MultiParamTypeClasses, FlexibleContexts, FlexibleInstances #-}
+{-# OPTIONS_GHC -fno-warn-unused-imports#-}
+module Proto.POGOProtos.Settings.DownloadSettingsAction where
+import qualified Prelude
+import qualified Data.ProtoLens
+import qualified Data.ProtoLens.Message.Enum
+import qualified Lens.Family2
+import qualified Lens.Family2.Unchecked
+import qualified Data.Default.Class
+import qualified Data.Text
+import qualified Data.Int
+import qualified Data.Word
+import qualified Data.Map
+import qualified Data.ByteString
+
+data DownloadSettingsAction = DownloadSettingsAction{_DownloadSettingsAction'hash
+                                                     :: Data.Text.Text}
+                            deriving (Prelude.Show, Prelude.Eq)
+
+type instance Data.ProtoLens.Field "hash" DownloadSettingsAction =
+     Data.Text.Text
+
+instance Data.ProtoLens.HasField "hash" DownloadSettingsAction
+         DownloadSettingsAction where
+        field _
+          = Lens.Family2.Unchecked.lens _DownloadSettingsAction'hash
+              (\ x__ y__ -> x__{_DownloadSettingsAction'hash = y__})
+
+instance Data.Default.Class.Default DownloadSettingsAction where
+        def
+          = DownloadSettingsAction{_DownloadSettingsAction'hash =
+                                     Data.ProtoLens.fieldDefault}
+
+instance Data.ProtoLens.Message DownloadSettingsAction where
+        descriptor
+          = let hash__field_descriptor
+                  = Data.ProtoLens.FieldDescriptor "hash"
+                      (Data.ProtoLens.StringField ::
+                         Data.ProtoLens.FieldTypeDescriptor Data.Text.Text)
+                      (Data.ProtoLens.PlainField Data.ProtoLens.Optional hash)
+              in
+              Data.ProtoLens.MessageDescriptor
+                (Data.Map.fromList
+                   [(Data.ProtoLens.Tag 1, hash__field_descriptor)])
+                (Data.Map.fromList [("hash", hash__field_descriptor)])
+
+hash ::
+     forall msg msg' . Data.ProtoLens.HasField "hash" msg msg' =>
+       Lens.Family2.Lens msg msg' (Data.ProtoLens.Field "hash" msg)
+         (Data.ProtoLens.Field "hash" msg')
+hash
+  = Data.ProtoLens.field
+      (Data.ProtoLens.ProxySym :: Data.ProtoLens.ProxySym "hash")
diff --git a/src/Proto/POGOProtos/Settings/FortSettings.hs b/src/Proto/POGOProtos/Settings/FortSettings.hs
new file mode 100644
--- /dev/null
+++ b/src/Proto/POGOProtos/Settings/FortSettings.hs
@@ -0,0 +1,229 @@
+{- This file was auto-generated from POGOProtos/Settings/FortSettings.proto by the proto-lens-protoc program. -}
+{-# LANGUAGE ScopedTypeVariables, DataKinds, TypeFamilies,
+  MultiParamTypeClasses, FlexibleContexts, FlexibleInstances #-}
+{-# OPTIONS_GHC -fno-warn-unused-imports#-}
+module Proto.POGOProtos.Settings.FortSettings where
+import qualified Prelude
+import qualified Data.ProtoLens
+import qualified Data.ProtoLens.Message.Enum
+import qualified Lens.Family2
+import qualified Lens.Family2.Unchecked
+import qualified Data.Default.Class
+import qualified Data.Text
+import qualified Data.Int
+import qualified Data.Word
+import qualified Data.Map
+import qualified Data.ByteString
+
+data FortSettings = FortSettings{_FortSettings'interactionRangeMeters
+                                 :: Prelude.Double,
+                                 _FortSettings'maxTotalDeployedPokemon :: Data.Int.Int32,
+                                 _FortSettings'maxPlayerDeployedPokemon :: Data.Int.Int32,
+                                 _FortSettings'deployStaminaMultiplier :: Prelude.Double,
+                                 _FortSettings'deployAttackMultiplier :: Prelude.Double,
+                                 _FortSettings'farInteractionRangeMeters :: Prelude.Double}
+                  deriving (Prelude.Show, Prelude.Eq)
+
+type instance
+     Data.ProtoLens.Field "interactionRangeMeters" FortSettings =
+     Prelude.Double
+
+instance Data.ProtoLens.HasField "interactionRangeMeters"
+         FortSettings FortSettings where
+        field _
+          = Lens.Family2.Unchecked.lens _FortSettings'interactionRangeMeters
+              (\ x__ y__ -> x__{_FortSettings'interactionRangeMeters = y__})
+
+type instance
+     Data.ProtoLens.Field "maxTotalDeployedPokemon" FortSettings =
+     Data.Int.Int32
+
+instance Data.ProtoLens.HasField "maxTotalDeployedPokemon"
+         FortSettings FortSettings where
+        field _
+          = Lens.Family2.Unchecked.lens _FortSettings'maxTotalDeployedPokemon
+              (\ x__ y__ -> x__{_FortSettings'maxTotalDeployedPokemon = y__})
+
+type instance
+     Data.ProtoLens.Field "maxPlayerDeployedPokemon" FortSettings =
+     Data.Int.Int32
+
+instance Data.ProtoLens.HasField "maxPlayerDeployedPokemon"
+         FortSettings FortSettings where
+        field _
+          = Lens.Family2.Unchecked.lens
+              _FortSettings'maxPlayerDeployedPokemon
+              (\ x__ y__ -> x__{_FortSettings'maxPlayerDeployedPokemon = y__})
+
+type instance
+     Data.ProtoLens.Field "deployStaminaMultiplier" FortSettings =
+     Prelude.Double
+
+instance Data.ProtoLens.HasField "deployStaminaMultiplier"
+         FortSettings FortSettings where
+        field _
+          = Lens.Family2.Unchecked.lens _FortSettings'deployStaminaMultiplier
+              (\ x__ y__ -> x__{_FortSettings'deployStaminaMultiplier = y__})
+
+type instance
+     Data.ProtoLens.Field "deployAttackMultiplier" FortSettings =
+     Prelude.Double
+
+instance Data.ProtoLens.HasField "deployAttackMultiplier"
+         FortSettings FortSettings where
+        field _
+          = Lens.Family2.Unchecked.lens _FortSettings'deployAttackMultiplier
+              (\ x__ y__ -> x__{_FortSettings'deployAttackMultiplier = y__})
+
+type instance
+     Data.ProtoLens.Field "farInteractionRangeMeters" FortSettings =
+     Prelude.Double
+
+instance Data.ProtoLens.HasField "farInteractionRangeMeters"
+         FortSettings FortSettings where
+        field _
+          = Lens.Family2.Unchecked.lens
+              _FortSettings'farInteractionRangeMeters
+              (\ x__ y__ -> x__{_FortSettings'farInteractionRangeMeters = y__})
+
+instance Data.Default.Class.Default FortSettings where
+        def
+          = FortSettings{_FortSettings'interactionRangeMeters =
+                           Data.ProtoLens.fieldDefault,
+                         _FortSettings'maxTotalDeployedPokemon =
+                           Data.ProtoLens.fieldDefault,
+                         _FortSettings'maxPlayerDeployedPokemon =
+                           Data.ProtoLens.fieldDefault,
+                         _FortSettings'deployStaminaMultiplier =
+                           Data.ProtoLens.fieldDefault,
+                         _FortSettings'deployAttackMultiplier = Data.ProtoLens.fieldDefault,
+                         _FortSettings'farInteractionRangeMeters =
+                           Data.ProtoLens.fieldDefault}
+
+instance Data.ProtoLens.Message FortSettings where
+        descriptor
+          = let interactionRangeMeters__field_descriptor
+                  = Data.ProtoLens.FieldDescriptor "interaction_range_meters"
+                      (Data.ProtoLens.DoubleField ::
+                         Data.ProtoLens.FieldTypeDescriptor Prelude.Double)
+                      (Data.ProtoLens.PlainField Data.ProtoLens.Optional
+                         interactionRangeMeters)
+                maxTotalDeployedPokemon__field_descriptor
+                  = Data.ProtoLens.FieldDescriptor "max_total_deployed_pokemon"
+                      (Data.ProtoLens.Int32Field ::
+                         Data.ProtoLens.FieldTypeDescriptor Data.Int.Int32)
+                      (Data.ProtoLens.PlainField Data.ProtoLens.Optional
+                         maxTotalDeployedPokemon)
+                maxPlayerDeployedPokemon__field_descriptor
+                  = Data.ProtoLens.FieldDescriptor "max_player_deployed_pokemon"
+                      (Data.ProtoLens.Int32Field ::
+                         Data.ProtoLens.FieldTypeDescriptor Data.Int.Int32)
+                      (Data.ProtoLens.PlainField Data.ProtoLens.Optional
+                         maxPlayerDeployedPokemon)
+                deployStaminaMultiplier__field_descriptor
+                  = Data.ProtoLens.FieldDescriptor "deploy_stamina_multiplier"
+                      (Data.ProtoLens.DoubleField ::
+                         Data.ProtoLens.FieldTypeDescriptor Prelude.Double)
+                      (Data.ProtoLens.PlainField Data.ProtoLens.Optional
+                         deployStaminaMultiplier)
+                deployAttackMultiplier__field_descriptor
+                  = Data.ProtoLens.FieldDescriptor "deploy_attack_multiplier"
+                      (Data.ProtoLens.DoubleField ::
+                         Data.ProtoLens.FieldTypeDescriptor Prelude.Double)
+                      (Data.ProtoLens.PlainField Data.ProtoLens.Optional
+                         deployAttackMultiplier)
+                farInteractionRangeMeters__field_descriptor
+                  = Data.ProtoLens.FieldDescriptor "far_interaction_range_meters"
+                      (Data.ProtoLens.DoubleField ::
+                         Data.ProtoLens.FieldTypeDescriptor Prelude.Double)
+                      (Data.ProtoLens.PlainField Data.ProtoLens.Optional
+                         farInteractionRangeMeters)
+              in
+              Data.ProtoLens.MessageDescriptor
+                (Data.Map.fromList
+                   [(Data.ProtoLens.Tag 1, interactionRangeMeters__field_descriptor),
+                    (Data.ProtoLens.Tag 2, maxTotalDeployedPokemon__field_descriptor),
+                    (Data.ProtoLens.Tag 3, maxPlayerDeployedPokemon__field_descriptor),
+                    (Data.ProtoLens.Tag 4, deployStaminaMultiplier__field_descriptor),
+                    (Data.ProtoLens.Tag 5, deployAttackMultiplier__field_descriptor),
+                    (Data.ProtoLens.Tag 6,
+                     farInteractionRangeMeters__field_descriptor)])
+                (Data.Map.fromList
+                   [("interaction_range_meters",
+                     interactionRangeMeters__field_descriptor),
+                    ("max_total_deployed_pokemon",
+                     maxTotalDeployedPokemon__field_descriptor),
+                    ("max_player_deployed_pokemon",
+                     maxPlayerDeployedPokemon__field_descriptor),
+                    ("deploy_stamina_multiplier",
+                     deployStaminaMultiplier__field_descriptor),
+                    ("deploy_attack_multiplier",
+                     deployAttackMultiplier__field_descriptor),
+                    ("far_interaction_range_meters",
+                     farInteractionRangeMeters__field_descriptor)])
+
+deployAttackMultiplier ::
+                       forall msg msg' .
+                         Data.ProtoLens.HasField "deployAttackMultiplier" msg msg' =>
+                         Lens.Family2.Lens msg msg'
+                           (Data.ProtoLens.Field "deployAttackMultiplier" msg)
+                           (Data.ProtoLens.Field "deployAttackMultiplier" msg')
+deployAttackMultiplier
+  = Data.ProtoLens.field
+      (Data.ProtoLens.ProxySym ::
+         Data.ProtoLens.ProxySym "deployAttackMultiplier")
+
+deployStaminaMultiplier ::
+                        forall msg msg' .
+                          Data.ProtoLens.HasField "deployStaminaMultiplier" msg msg' =>
+                          Lens.Family2.Lens msg msg'
+                            (Data.ProtoLens.Field "deployStaminaMultiplier" msg)
+                            (Data.ProtoLens.Field "deployStaminaMultiplier" msg')
+deployStaminaMultiplier
+  = Data.ProtoLens.field
+      (Data.ProtoLens.ProxySym ::
+         Data.ProtoLens.ProxySym "deployStaminaMultiplier")
+
+farInteractionRangeMeters ::
+                          forall msg msg' .
+                            Data.ProtoLens.HasField "farInteractionRangeMeters" msg msg' =>
+                            Lens.Family2.Lens msg msg'
+                              (Data.ProtoLens.Field "farInteractionRangeMeters" msg)
+                              (Data.ProtoLens.Field "farInteractionRangeMeters" msg')
+farInteractionRangeMeters
+  = Data.ProtoLens.field
+      (Data.ProtoLens.ProxySym ::
+         Data.ProtoLens.ProxySym "farInteractionRangeMeters")
+
+interactionRangeMeters ::
+                       forall msg msg' .
+                         Data.ProtoLens.HasField "interactionRangeMeters" msg msg' =>
+                         Lens.Family2.Lens msg msg'
+                           (Data.ProtoLens.Field "interactionRangeMeters" msg)
+                           (Data.ProtoLens.Field "interactionRangeMeters" msg')
+interactionRangeMeters
+  = Data.ProtoLens.field
+      (Data.ProtoLens.ProxySym ::
+         Data.ProtoLens.ProxySym "interactionRangeMeters")
+
+maxPlayerDeployedPokemon ::
+                         forall msg msg' .
+                           Data.ProtoLens.HasField "maxPlayerDeployedPokemon" msg msg' =>
+                           Lens.Family2.Lens msg msg'
+                             (Data.ProtoLens.Field "maxPlayerDeployedPokemon" msg)
+                             (Data.ProtoLens.Field "maxPlayerDeployedPokemon" msg')
+maxPlayerDeployedPokemon
+  = Data.ProtoLens.field
+      (Data.ProtoLens.ProxySym ::
+         Data.ProtoLens.ProxySym "maxPlayerDeployedPokemon")
+
+maxTotalDeployedPokemon ::
+                        forall msg msg' .
+                          Data.ProtoLens.HasField "maxTotalDeployedPokemon" msg msg' =>
+                          Lens.Family2.Lens msg msg'
+                            (Data.ProtoLens.Field "maxTotalDeployedPokemon" msg)
+                            (Data.ProtoLens.Field "maxTotalDeployedPokemon" msg')
+maxTotalDeployedPokemon
+  = Data.ProtoLens.field
+      (Data.ProtoLens.ProxySym ::
+         Data.ProtoLens.ProxySym "maxTotalDeployedPokemon")
diff --git a/src/Proto/POGOProtos/Settings/GlobalSettings.hs b/src/Proto/POGOProtos/Settings/GlobalSettings.hs
new file mode 100644
--- /dev/null
+++ b/src/Proto/POGOProtos/Settings/GlobalSettings.hs
@@ -0,0 +1,275 @@
+{- This file was auto-generated from POGOProtos/Settings/GlobalSettings.proto by the proto-lens-protoc program. -}
+{-# LANGUAGE ScopedTypeVariables, DataKinds, TypeFamilies,
+  MultiParamTypeClasses, FlexibleContexts, FlexibleInstances #-}
+{-# OPTIONS_GHC -fno-warn-unused-imports#-}
+module Proto.POGOProtos.Settings.GlobalSettings where
+import qualified Prelude
+import qualified Data.ProtoLens
+import qualified Data.ProtoLens.Message.Enum
+import qualified Lens.Family2
+import qualified Lens.Family2.Unchecked
+import qualified Data.Default.Class
+import qualified Data.Text
+import qualified Data.Int
+import qualified Data.Word
+import qualified Data.Map
+import qualified Data.ByteString
+import qualified Proto.POGOProtos.Settings.FortSettings
+import qualified Proto.POGOProtos.Settings.InventorySettings
+import qualified Proto.POGOProtos.Settings.LevelSettings
+import qualified Proto.POGOProtos.Settings.MapSettings
+
+data GlobalSettings = GlobalSettings{_GlobalSettings'fortSettings
+                                     ::
+                                     Prelude.Maybe
+                                       Proto.POGOProtos.Settings.FortSettings.FortSettings,
+                                     _GlobalSettings'mapSettings ::
+                                     Prelude.Maybe
+                                       Proto.POGOProtos.Settings.MapSettings.MapSettings,
+                                     _GlobalSettings'levelSettings ::
+                                     Prelude.Maybe
+                                       Proto.POGOProtos.Settings.LevelSettings.LevelSettings,
+                                     _GlobalSettings'inventorySettings ::
+                                     Prelude.Maybe
+                                       Proto.POGOProtos.Settings.InventorySettings.InventorySettings,
+                                     _GlobalSettings'minimumClientVersion :: Data.Text.Text}
+                    deriving (Prelude.Show, Prelude.Eq)
+
+type instance Data.ProtoLens.Field "fortSettings" GlobalSettings =
+     Proto.POGOProtos.Settings.FortSettings.FortSettings
+
+instance Data.ProtoLens.HasField "fortSettings" GlobalSettings
+         GlobalSettings where
+        field _
+          = (Prelude..) maybe'fortSettings
+              (Data.ProtoLens.maybeLens Data.Default.Class.def)
+
+type instance
+     Data.ProtoLens.Field "maybe'fortSettings" GlobalSettings =
+     Prelude.Maybe Proto.POGOProtos.Settings.FortSettings.FortSettings
+
+instance Data.ProtoLens.HasField "maybe'fortSettings"
+         GlobalSettings GlobalSettings where
+        field _
+          = Lens.Family2.Unchecked.lens _GlobalSettings'fortSettings
+              (\ x__ y__ -> x__{_GlobalSettings'fortSettings = y__})
+
+type instance Data.ProtoLens.Field "mapSettings" GlobalSettings =
+     Proto.POGOProtos.Settings.MapSettings.MapSettings
+
+instance Data.ProtoLens.HasField "mapSettings" GlobalSettings
+         GlobalSettings where
+        field _
+          = (Prelude..) maybe'mapSettings
+              (Data.ProtoLens.maybeLens Data.Default.Class.def)
+
+type instance
+     Data.ProtoLens.Field "maybe'mapSettings" GlobalSettings =
+     Prelude.Maybe Proto.POGOProtos.Settings.MapSettings.MapSettings
+
+instance Data.ProtoLens.HasField "maybe'mapSettings" GlobalSettings
+         GlobalSettings where
+        field _
+          = Lens.Family2.Unchecked.lens _GlobalSettings'mapSettings
+              (\ x__ y__ -> x__{_GlobalSettings'mapSettings = y__})
+
+type instance Data.ProtoLens.Field "levelSettings" GlobalSettings =
+     Proto.POGOProtos.Settings.LevelSettings.LevelSettings
+
+instance Data.ProtoLens.HasField "levelSettings" GlobalSettings
+         GlobalSettings where
+        field _
+          = (Prelude..) maybe'levelSettings
+              (Data.ProtoLens.maybeLens Data.Default.Class.def)
+
+type instance
+     Data.ProtoLens.Field "maybe'levelSettings" GlobalSettings =
+     Prelude.Maybe Proto.POGOProtos.Settings.LevelSettings.LevelSettings
+
+instance Data.ProtoLens.HasField "maybe'levelSettings"
+         GlobalSettings GlobalSettings where
+        field _
+          = Lens.Family2.Unchecked.lens _GlobalSettings'levelSettings
+              (\ x__ y__ -> x__{_GlobalSettings'levelSettings = y__})
+
+type instance
+     Data.ProtoLens.Field "inventorySettings" GlobalSettings =
+     Proto.POGOProtos.Settings.InventorySettings.InventorySettings
+
+instance Data.ProtoLens.HasField "inventorySettings" GlobalSettings
+         GlobalSettings where
+        field _
+          = (Prelude..) maybe'inventorySettings
+              (Data.ProtoLens.maybeLens Data.Default.Class.def)
+
+type instance
+     Data.ProtoLens.Field "maybe'inventorySettings" GlobalSettings =
+     Prelude.Maybe
+       Proto.POGOProtos.Settings.InventorySettings.InventorySettings
+
+instance Data.ProtoLens.HasField "maybe'inventorySettings"
+         GlobalSettings GlobalSettings where
+        field _
+          = Lens.Family2.Unchecked.lens _GlobalSettings'inventorySettings
+              (\ x__ y__ -> x__{_GlobalSettings'inventorySettings = y__})
+
+type instance
+     Data.ProtoLens.Field "minimumClientVersion" GlobalSettings =
+     Data.Text.Text
+
+instance Data.ProtoLens.HasField "minimumClientVersion"
+         GlobalSettings GlobalSettings where
+        field _
+          = Lens.Family2.Unchecked.lens _GlobalSettings'minimumClientVersion
+              (\ x__ y__ -> x__{_GlobalSettings'minimumClientVersion = y__})
+
+instance Data.Default.Class.Default GlobalSettings where
+        def
+          = GlobalSettings{_GlobalSettings'fortSettings = Prelude.Nothing,
+                           _GlobalSettings'mapSettings = Prelude.Nothing,
+                           _GlobalSettings'levelSettings = Prelude.Nothing,
+                           _GlobalSettings'inventorySettings = Prelude.Nothing,
+                           _GlobalSettings'minimumClientVersion = Data.ProtoLens.fieldDefault}
+
+instance Data.ProtoLens.Message GlobalSettings where
+        descriptor
+          = let fortSettings__field_descriptor
+                  = Data.ProtoLens.FieldDescriptor "fort_settings"
+                      (Data.ProtoLens.MessageField ::
+                         Data.ProtoLens.FieldTypeDescriptor
+                           Proto.POGOProtos.Settings.FortSettings.FortSettings)
+                      (Data.ProtoLens.OptionalField maybe'fortSettings)
+                mapSettings__field_descriptor
+                  = Data.ProtoLens.FieldDescriptor "map_settings"
+                      (Data.ProtoLens.MessageField ::
+                         Data.ProtoLens.FieldTypeDescriptor
+                           Proto.POGOProtos.Settings.MapSettings.MapSettings)
+                      (Data.ProtoLens.OptionalField maybe'mapSettings)
+                levelSettings__field_descriptor
+                  = Data.ProtoLens.FieldDescriptor "level_settings"
+                      (Data.ProtoLens.MessageField ::
+                         Data.ProtoLens.FieldTypeDescriptor
+                           Proto.POGOProtos.Settings.LevelSettings.LevelSettings)
+                      (Data.ProtoLens.OptionalField maybe'levelSettings)
+                inventorySettings__field_descriptor
+                  = Data.ProtoLens.FieldDescriptor "inventory_settings"
+                      (Data.ProtoLens.MessageField ::
+                         Data.ProtoLens.FieldTypeDescriptor
+                           Proto.POGOProtos.Settings.InventorySettings.InventorySettings)
+                      (Data.ProtoLens.OptionalField maybe'inventorySettings)
+                minimumClientVersion__field_descriptor
+                  = Data.ProtoLens.FieldDescriptor "minimum_client_version"
+                      (Data.ProtoLens.StringField ::
+                         Data.ProtoLens.FieldTypeDescriptor Data.Text.Text)
+                      (Data.ProtoLens.PlainField Data.ProtoLens.Optional
+                         minimumClientVersion)
+              in
+              Data.ProtoLens.MessageDescriptor
+                (Data.Map.fromList
+                   [(Data.ProtoLens.Tag 2, fortSettings__field_descriptor),
+                    (Data.ProtoLens.Tag 3, mapSettings__field_descriptor),
+                    (Data.ProtoLens.Tag 4, levelSettings__field_descriptor),
+                    (Data.ProtoLens.Tag 5, inventorySettings__field_descriptor),
+                    (Data.ProtoLens.Tag 6, minimumClientVersion__field_descriptor)])
+                (Data.Map.fromList
+                   [("fort_settings", fortSettings__field_descriptor),
+                    ("map_settings", mapSettings__field_descriptor),
+                    ("level_settings", levelSettings__field_descriptor),
+                    ("inventory_settings", inventorySettings__field_descriptor),
+                    ("minimum_client_version",
+                     minimumClientVersion__field_descriptor)])
+
+fortSettings ::
+             forall msg msg' .
+               Data.ProtoLens.HasField "fortSettings" msg msg' =>
+               Lens.Family2.Lens msg msg'
+                 (Data.ProtoLens.Field "fortSettings" msg)
+                 (Data.ProtoLens.Field "fortSettings" msg')
+fortSettings
+  = Data.ProtoLens.field
+      (Data.ProtoLens.ProxySym :: Data.ProtoLens.ProxySym "fortSettings")
+
+inventorySettings ::
+                  forall msg msg' .
+                    Data.ProtoLens.HasField "inventorySettings" msg msg' =>
+                    Lens.Family2.Lens msg msg'
+                      (Data.ProtoLens.Field "inventorySettings" msg)
+                      (Data.ProtoLens.Field "inventorySettings" msg')
+inventorySettings
+  = Data.ProtoLens.field
+      (Data.ProtoLens.ProxySym ::
+         Data.ProtoLens.ProxySym "inventorySettings")
+
+levelSettings ::
+              forall msg msg' .
+                Data.ProtoLens.HasField "levelSettings" msg msg' =>
+                Lens.Family2.Lens msg msg'
+                  (Data.ProtoLens.Field "levelSettings" msg)
+                  (Data.ProtoLens.Field "levelSettings" msg')
+levelSettings
+  = Data.ProtoLens.field
+      (Data.ProtoLens.ProxySym ::
+         Data.ProtoLens.ProxySym "levelSettings")
+
+mapSettings ::
+            forall msg msg' . Data.ProtoLens.HasField "mapSettings" msg msg' =>
+              Lens.Family2.Lens msg msg' (Data.ProtoLens.Field "mapSettings" msg)
+                (Data.ProtoLens.Field "mapSettings" msg')
+mapSettings
+  = Data.ProtoLens.field
+      (Data.ProtoLens.ProxySym :: Data.ProtoLens.ProxySym "mapSettings")
+
+maybe'fortSettings ::
+                   forall msg msg' .
+                     Data.ProtoLens.HasField "maybe'fortSettings" msg msg' =>
+                     Lens.Family2.Lens msg msg'
+                       (Data.ProtoLens.Field "maybe'fortSettings" msg)
+                       (Data.ProtoLens.Field "maybe'fortSettings" msg')
+maybe'fortSettings
+  = Data.ProtoLens.field
+      (Data.ProtoLens.ProxySym ::
+         Data.ProtoLens.ProxySym "maybe'fortSettings")
+
+maybe'inventorySettings ::
+                        forall msg msg' .
+                          Data.ProtoLens.HasField "maybe'inventorySettings" msg msg' =>
+                          Lens.Family2.Lens msg msg'
+                            (Data.ProtoLens.Field "maybe'inventorySettings" msg)
+                            (Data.ProtoLens.Field "maybe'inventorySettings" msg')
+maybe'inventorySettings
+  = Data.ProtoLens.field
+      (Data.ProtoLens.ProxySym ::
+         Data.ProtoLens.ProxySym "maybe'inventorySettings")
+
+maybe'levelSettings ::
+                    forall msg msg' .
+                      Data.ProtoLens.HasField "maybe'levelSettings" msg msg' =>
+                      Lens.Family2.Lens msg msg'
+                        (Data.ProtoLens.Field "maybe'levelSettings" msg)
+                        (Data.ProtoLens.Field "maybe'levelSettings" msg')
+maybe'levelSettings
+  = Data.ProtoLens.field
+      (Data.ProtoLens.ProxySym ::
+         Data.ProtoLens.ProxySym "maybe'levelSettings")
+
+maybe'mapSettings ::
+                  forall msg msg' .
+                    Data.ProtoLens.HasField "maybe'mapSettings" msg msg' =>
+                    Lens.Family2.Lens msg msg'
+                      (Data.ProtoLens.Field "maybe'mapSettings" msg)
+                      (Data.ProtoLens.Field "maybe'mapSettings" msg')
+maybe'mapSettings
+  = Data.ProtoLens.field
+      (Data.ProtoLens.ProxySym ::
+         Data.ProtoLens.ProxySym "maybe'mapSettings")
+
+minimumClientVersion ::
+                     forall msg msg' .
+                       Data.ProtoLens.HasField "minimumClientVersion" msg msg' =>
+                       Lens.Family2.Lens msg msg'
+                         (Data.ProtoLens.Field "minimumClientVersion" msg)
+                         (Data.ProtoLens.Field "minimumClientVersion" msg')
+minimumClientVersion
+  = Data.ProtoLens.field
+      (Data.ProtoLens.ProxySym ::
+         Data.ProtoLens.ProxySym "minimumClientVersion")
diff --git a/src/Proto/POGOProtos/Settings/InventorySettings.hs b/src/Proto/POGOProtos/Settings/InventorySettings.hs
new file mode 100644
--- /dev/null
+++ b/src/Proto/POGOProtos/Settings/InventorySettings.hs
@@ -0,0 +1,162 @@
+{- This file was auto-generated from POGOProtos/Settings/InventorySettings.proto by the proto-lens-protoc program. -}
+{-# LANGUAGE ScopedTypeVariables, DataKinds, TypeFamilies,
+  MultiParamTypeClasses, FlexibleContexts, FlexibleInstances #-}
+{-# OPTIONS_GHC -fno-warn-unused-imports#-}
+module Proto.POGOProtos.Settings.InventorySettings where
+import qualified Prelude
+import qualified Data.ProtoLens
+import qualified Data.ProtoLens.Message.Enum
+import qualified Lens.Family2
+import qualified Lens.Family2.Unchecked
+import qualified Data.Default.Class
+import qualified Data.Text
+import qualified Data.Int
+import qualified Data.Word
+import qualified Data.Map
+import qualified Data.ByteString
+
+data InventorySettings = InventorySettings{_InventorySettings'maxPokemon
+                                           :: Data.Int.Int32,
+                                           _InventorySettings'maxBagItems :: Data.Int.Int32,
+                                           _InventorySettings'basePokemon :: Data.Int.Int32,
+                                           _InventorySettings'baseBagItems :: Data.Int.Int32,
+                                           _InventorySettings'baseEggs :: Data.Int.Int32}
+                       deriving (Prelude.Show, Prelude.Eq)
+
+type instance Data.ProtoLens.Field "maxPokemon" InventorySettings =
+     Data.Int.Int32
+
+instance Data.ProtoLens.HasField "maxPokemon" InventorySettings
+         InventorySettings where
+        field _
+          = Lens.Family2.Unchecked.lens _InventorySettings'maxPokemon
+              (\ x__ y__ -> x__{_InventorySettings'maxPokemon = y__})
+
+type instance Data.ProtoLens.Field "maxBagItems" InventorySettings
+     = Data.Int.Int32
+
+instance Data.ProtoLens.HasField "maxBagItems" InventorySettings
+         InventorySettings where
+        field _
+          = Lens.Family2.Unchecked.lens _InventorySettings'maxBagItems
+              (\ x__ y__ -> x__{_InventorySettings'maxBagItems = y__})
+
+type instance Data.ProtoLens.Field "basePokemon" InventorySettings
+     = Data.Int.Int32
+
+instance Data.ProtoLens.HasField "basePokemon" InventorySettings
+         InventorySettings where
+        field _
+          = Lens.Family2.Unchecked.lens _InventorySettings'basePokemon
+              (\ x__ y__ -> x__{_InventorySettings'basePokemon = y__})
+
+type instance Data.ProtoLens.Field "baseBagItems" InventorySettings
+     = Data.Int.Int32
+
+instance Data.ProtoLens.HasField "baseBagItems" InventorySettings
+         InventorySettings where
+        field _
+          = Lens.Family2.Unchecked.lens _InventorySettings'baseBagItems
+              (\ x__ y__ -> x__{_InventorySettings'baseBagItems = y__})
+
+type instance Data.ProtoLens.Field "baseEggs" InventorySettings =
+     Data.Int.Int32
+
+instance Data.ProtoLens.HasField "baseEggs" InventorySettings
+         InventorySettings where
+        field _
+          = Lens.Family2.Unchecked.lens _InventorySettings'baseEggs
+              (\ x__ y__ -> x__{_InventorySettings'baseEggs = y__})
+
+instance Data.Default.Class.Default InventorySettings where
+        def
+          = InventorySettings{_InventorySettings'maxPokemon =
+                                Data.ProtoLens.fieldDefault,
+                              _InventorySettings'maxBagItems = Data.ProtoLens.fieldDefault,
+                              _InventorySettings'basePokemon = Data.ProtoLens.fieldDefault,
+                              _InventorySettings'baseBagItems = Data.ProtoLens.fieldDefault,
+                              _InventorySettings'baseEggs = Data.ProtoLens.fieldDefault}
+
+instance Data.ProtoLens.Message InventorySettings where
+        descriptor
+          = let maxPokemon__field_descriptor
+                  = Data.ProtoLens.FieldDescriptor "max_pokemon"
+                      (Data.ProtoLens.Int32Field ::
+                         Data.ProtoLens.FieldTypeDescriptor Data.Int.Int32)
+                      (Data.ProtoLens.PlainField Data.ProtoLens.Optional maxPokemon)
+                maxBagItems__field_descriptor
+                  = Data.ProtoLens.FieldDescriptor "max_bag_items"
+                      (Data.ProtoLens.Int32Field ::
+                         Data.ProtoLens.FieldTypeDescriptor Data.Int.Int32)
+                      (Data.ProtoLens.PlainField Data.ProtoLens.Optional maxBagItems)
+                basePokemon__field_descriptor
+                  = Data.ProtoLens.FieldDescriptor "base_pokemon"
+                      (Data.ProtoLens.Int32Field ::
+                         Data.ProtoLens.FieldTypeDescriptor Data.Int.Int32)
+                      (Data.ProtoLens.PlainField Data.ProtoLens.Optional basePokemon)
+                baseBagItems__field_descriptor
+                  = Data.ProtoLens.FieldDescriptor "base_bag_items"
+                      (Data.ProtoLens.Int32Field ::
+                         Data.ProtoLens.FieldTypeDescriptor Data.Int.Int32)
+                      (Data.ProtoLens.PlainField Data.ProtoLens.Optional baseBagItems)
+                baseEggs__field_descriptor
+                  = Data.ProtoLens.FieldDescriptor "base_eggs"
+                      (Data.ProtoLens.Int32Field ::
+                         Data.ProtoLens.FieldTypeDescriptor Data.Int.Int32)
+                      (Data.ProtoLens.PlainField Data.ProtoLens.Optional baseEggs)
+              in
+              Data.ProtoLens.MessageDescriptor
+                (Data.Map.fromList
+                   [(Data.ProtoLens.Tag 1, maxPokemon__field_descriptor),
+                    (Data.ProtoLens.Tag 2, maxBagItems__field_descriptor),
+                    (Data.ProtoLens.Tag 3, basePokemon__field_descriptor),
+                    (Data.ProtoLens.Tag 4, baseBagItems__field_descriptor),
+                    (Data.ProtoLens.Tag 5, baseEggs__field_descriptor)])
+                (Data.Map.fromList
+                   [("max_pokemon", maxPokemon__field_descriptor),
+                    ("max_bag_items", maxBagItems__field_descriptor),
+                    ("base_pokemon", basePokemon__field_descriptor),
+                    ("base_bag_items", baseBagItems__field_descriptor),
+                    ("base_eggs", baseEggs__field_descriptor)])
+
+baseBagItems ::
+             forall msg msg' .
+               Data.ProtoLens.HasField "baseBagItems" msg msg' =>
+               Lens.Family2.Lens msg msg'
+                 (Data.ProtoLens.Field "baseBagItems" msg)
+                 (Data.ProtoLens.Field "baseBagItems" msg')
+baseBagItems
+  = Data.ProtoLens.field
+      (Data.ProtoLens.ProxySym :: Data.ProtoLens.ProxySym "baseBagItems")
+
+baseEggs ::
+         forall msg msg' . Data.ProtoLens.HasField "baseEggs" msg msg' =>
+           Lens.Family2.Lens msg msg' (Data.ProtoLens.Field "baseEggs" msg)
+             (Data.ProtoLens.Field "baseEggs" msg')
+baseEggs
+  = Data.ProtoLens.field
+      (Data.ProtoLens.ProxySym :: Data.ProtoLens.ProxySym "baseEggs")
+
+basePokemon ::
+            forall msg msg' . Data.ProtoLens.HasField "basePokemon" msg msg' =>
+              Lens.Family2.Lens msg msg' (Data.ProtoLens.Field "basePokemon" msg)
+                (Data.ProtoLens.Field "basePokemon" msg')
+basePokemon
+  = Data.ProtoLens.field
+      (Data.ProtoLens.ProxySym :: Data.ProtoLens.ProxySym "basePokemon")
+
+maxBagItems ::
+            forall msg msg' . Data.ProtoLens.HasField "maxBagItems" msg msg' =>
+              Lens.Family2.Lens msg msg' (Data.ProtoLens.Field "maxBagItems" msg)
+                (Data.ProtoLens.Field "maxBagItems" msg')
+maxBagItems
+  = Data.ProtoLens.field
+      (Data.ProtoLens.ProxySym :: Data.ProtoLens.ProxySym "maxBagItems")
+
+maxPokemon ::
+           forall msg msg' . Data.ProtoLens.HasField "maxPokemon" msg msg' =>
+             Lens.Family2.Lens msg msg' (Data.ProtoLens.Field "maxPokemon" msg)
+               (Data.ProtoLens.Field "maxPokemon" msg')
+maxPokemon
+  = Data.ProtoLens.field
+      (Data.ProtoLens.ProxySym :: Data.ProtoLens.ProxySym "maxPokemon")
diff --git a/src/Proto/POGOProtos/Settings/LevelSettings.hs b/src/Proto/POGOProtos/Settings/LevelSettings.hs
new file mode 100644
--- /dev/null
+++ b/src/Proto/POGOProtos/Settings/LevelSettings.hs
@@ -0,0 +1,96 @@
+{- This file was auto-generated from POGOProtos/Settings/LevelSettings.proto by the proto-lens-protoc program. -}
+{-# LANGUAGE ScopedTypeVariables, DataKinds, TypeFamilies,
+  MultiParamTypeClasses, FlexibleContexts, FlexibleInstances #-}
+{-# OPTIONS_GHC -fno-warn-unused-imports#-}
+module Proto.POGOProtos.Settings.LevelSettings where
+import qualified Prelude
+import qualified Data.ProtoLens
+import qualified Data.ProtoLens.Message.Enum
+import qualified Lens.Family2
+import qualified Lens.Family2.Unchecked
+import qualified Data.Default.Class
+import qualified Data.Text
+import qualified Data.Int
+import qualified Data.Word
+import qualified Data.Map
+import qualified Data.ByteString
+
+data LevelSettings = LevelSettings{_LevelSettings'trainerCpModifier
+                                   :: Prelude.Double,
+                                   _LevelSettings'trainerDifficultyModifier :: Prelude.Double}
+                   deriving (Prelude.Show, Prelude.Eq)
+
+type instance
+     Data.ProtoLens.Field "trainerCpModifier" LevelSettings =
+     Prelude.Double
+
+instance Data.ProtoLens.HasField "trainerCpModifier" LevelSettings
+         LevelSettings where
+        field _
+          = Lens.Family2.Unchecked.lens _LevelSettings'trainerCpModifier
+              (\ x__ y__ -> x__{_LevelSettings'trainerCpModifier = y__})
+
+type instance
+     Data.ProtoLens.Field "trainerDifficultyModifier" LevelSettings =
+     Prelude.Double
+
+instance Data.ProtoLens.HasField "trainerDifficultyModifier"
+         LevelSettings LevelSettings where
+        field _
+          = Lens.Family2.Unchecked.lens
+              _LevelSettings'trainerDifficultyModifier
+              (\ x__ y__ -> x__{_LevelSettings'trainerDifficultyModifier = y__})
+
+instance Data.Default.Class.Default LevelSettings where
+        def
+          = LevelSettings{_LevelSettings'trainerCpModifier =
+                            Data.ProtoLens.fieldDefault,
+                          _LevelSettings'trainerDifficultyModifier =
+                            Data.ProtoLens.fieldDefault}
+
+instance Data.ProtoLens.Message LevelSettings where
+        descriptor
+          = let trainerCpModifier__field_descriptor
+                  = Data.ProtoLens.FieldDescriptor "trainer_cp_modifier"
+                      (Data.ProtoLens.DoubleField ::
+                         Data.ProtoLens.FieldTypeDescriptor Prelude.Double)
+                      (Data.ProtoLens.PlainField Data.ProtoLens.Optional
+                         trainerCpModifier)
+                trainerDifficultyModifier__field_descriptor
+                  = Data.ProtoLens.FieldDescriptor "trainer_difficulty_modifier"
+                      (Data.ProtoLens.DoubleField ::
+                         Data.ProtoLens.FieldTypeDescriptor Prelude.Double)
+                      (Data.ProtoLens.PlainField Data.ProtoLens.Optional
+                         trainerDifficultyModifier)
+              in
+              Data.ProtoLens.MessageDescriptor
+                (Data.Map.fromList
+                   [(Data.ProtoLens.Tag 2, trainerCpModifier__field_descriptor),
+                    (Data.ProtoLens.Tag 3,
+                     trainerDifficultyModifier__field_descriptor)])
+                (Data.Map.fromList
+                   [("trainer_cp_modifier", trainerCpModifier__field_descriptor),
+                    ("trainer_difficulty_modifier",
+                     trainerDifficultyModifier__field_descriptor)])
+
+trainerCpModifier ::
+                  forall msg msg' .
+                    Data.ProtoLens.HasField "trainerCpModifier" msg msg' =>
+                    Lens.Family2.Lens msg msg'
+                      (Data.ProtoLens.Field "trainerCpModifier" msg)
+                      (Data.ProtoLens.Field "trainerCpModifier" msg')
+trainerCpModifier
+  = Data.ProtoLens.field
+      (Data.ProtoLens.ProxySym ::
+         Data.ProtoLens.ProxySym "trainerCpModifier")
+
+trainerDifficultyModifier ::
+                          forall msg msg' .
+                            Data.ProtoLens.HasField "trainerDifficultyModifier" msg msg' =>
+                            Lens.Family2.Lens msg msg'
+                              (Data.ProtoLens.Field "trainerDifficultyModifier" msg)
+                              (Data.ProtoLens.Field "trainerDifficultyModifier" msg')
+trainerDifficultyModifier
+  = Data.ProtoLens.field
+      (Data.ProtoLens.ProxySym ::
+         Data.ProtoLens.ProxySym "trainerDifficultyModifier")
diff --git a/src/Proto/POGOProtos/Settings/MapSettings.hs b/src/Proto/POGOProtos/Settings/MapSettings.hs
new file mode 100644
--- /dev/null
+++ b/src/Proto/POGOProtos/Settings/MapSettings.hs
@@ -0,0 +1,266 @@
+{- This file was auto-generated from POGOProtos/Settings/MapSettings.proto by the proto-lens-protoc program. -}
+{-# LANGUAGE ScopedTypeVariables, DataKinds, TypeFamilies,
+  MultiParamTypeClasses, FlexibleContexts, FlexibleInstances #-}
+{-# OPTIONS_GHC -fno-warn-unused-imports#-}
+module Proto.POGOProtos.Settings.MapSettings where
+import qualified Prelude
+import qualified Data.ProtoLens
+import qualified Data.ProtoLens.Message.Enum
+import qualified Lens.Family2
+import qualified Lens.Family2.Unchecked
+import qualified Data.Default.Class
+import qualified Data.Text
+import qualified Data.Int
+import qualified Data.Word
+import qualified Data.Map
+import qualified Data.ByteString
+
+data MapSettings = MapSettings{_MapSettings'pokemonVisibleRange ::
+                               Prelude.Double,
+                               _MapSettings'pokeNavRangeMeters :: Prelude.Double,
+                               _MapSettings'encounterRangeMeters :: Prelude.Double,
+                               _MapSettings'getMapObjectsMinRefreshSeconds :: Prelude.Float,
+                               _MapSettings'getMapObjectsMaxRefreshSeconds :: Prelude.Float,
+                               _MapSettings'getMapObjectsMinDistanceMeters :: Prelude.Float,
+                               _MapSettings'googleMapsApiKey :: Data.Text.Text}
+                 deriving (Prelude.Show, Prelude.Eq)
+
+type instance
+     Data.ProtoLens.Field "pokemonVisibleRange" MapSettings =
+     Prelude.Double
+
+instance Data.ProtoLens.HasField "pokemonVisibleRange" MapSettings
+         MapSettings where
+        field _
+          = Lens.Family2.Unchecked.lens _MapSettings'pokemonVisibleRange
+              (\ x__ y__ -> x__{_MapSettings'pokemonVisibleRange = y__})
+
+type instance Data.ProtoLens.Field "pokeNavRangeMeters" MapSettings
+     = Prelude.Double
+
+instance Data.ProtoLens.HasField "pokeNavRangeMeters" MapSettings
+         MapSettings where
+        field _
+          = Lens.Family2.Unchecked.lens _MapSettings'pokeNavRangeMeters
+              (\ x__ y__ -> x__{_MapSettings'pokeNavRangeMeters = y__})
+
+type instance
+     Data.ProtoLens.Field "encounterRangeMeters" MapSettings =
+     Prelude.Double
+
+instance Data.ProtoLens.HasField "encounterRangeMeters" MapSettings
+         MapSettings where
+        field _
+          = Lens.Family2.Unchecked.lens _MapSettings'encounterRangeMeters
+              (\ x__ y__ -> x__{_MapSettings'encounterRangeMeters = y__})
+
+type instance
+     Data.ProtoLens.Field "getMapObjectsMinRefreshSeconds" MapSettings =
+     Prelude.Float
+
+instance Data.ProtoLens.HasField "getMapObjectsMinRefreshSeconds"
+         MapSettings MapSettings where
+        field _
+          = Lens.Family2.Unchecked.lens
+              _MapSettings'getMapObjectsMinRefreshSeconds
+              (\ x__ y__ ->
+                 x__{_MapSettings'getMapObjectsMinRefreshSeconds = y__})
+
+type instance
+     Data.ProtoLens.Field "getMapObjectsMaxRefreshSeconds" MapSettings =
+     Prelude.Float
+
+instance Data.ProtoLens.HasField "getMapObjectsMaxRefreshSeconds"
+         MapSettings MapSettings where
+        field _
+          = Lens.Family2.Unchecked.lens
+              _MapSettings'getMapObjectsMaxRefreshSeconds
+              (\ x__ y__ ->
+                 x__{_MapSettings'getMapObjectsMaxRefreshSeconds = y__})
+
+type instance
+     Data.ProtoLens.Field "getMapObjectsMinDistanceMeters" MapSettings =
+     Prelude.Float
+
+instance Data.ProtoLens.HasField "getMapObjectsMinDistanceMeters"
+         MapSettings MapSettings where
+        field _
+          = Lens.Family2.Unchecked.lens
+              _MapSettings'getMapObjectsMinDistanceMeters
+              (\ x__ y__ ->
+                 x__{_MapSettings'getMapObjectsMinDistanceMeters = y__})
+
+type instance Data.ProtoLens.Field "googleMapsApiKey" MapSettings =
+     Data.Text.Text
+
+instance Data.ProtoLens.HasField "googleMapsApiKey" MapSettings
+         MapSettings where
+        field _
+          = Lens.Family2.Unchecked.lens _MapSettings'googleMapsApiKey
+              (\ x__ y__ -> x__{_MapSettings'googleMapsApiKey = y__})
+
+instance Data.Default.Class.Default MapSettings where
+        def
+          = MapSettings{_MapSettings'pokemonVisibleRange =
+                          Data.ProtoLens.fieldDefault,
+                        _MapSettings'pokeNavRangeMeters = Data.ProtoLens.fieldDefault,
+                        _MapSettings'encounterRangeMeters = Data.ProtoLens.fieldDefault,
+                        _MapSettings'getMapObjectsMinRefreshSeconds =
+                          Data.ProtoLens.fieldDefault,
+                        _MapSettings'getMapObjectsMaxRefreshSeconds =
+                          Data.ProtoLens.fieldDefault,
+                        _MapSettings'getMapObjectsMinDistanceMeters =
+                          Data.ProtoLens.fieldDefault,
+                        _MapSettings'googleMapsApiKey = Data.ProtoLens.fieldDefault}
+
+instance Data.ProtoLens.Message MapSettings where
+        descriptor
+          = let pokemonVisibleRange__field_descriptor
+                  = Data.ProtoLens.FieldDescriptor "pokemon_visible_range"
+                      (Data.ProtoLens.DoubleField ::
+                         Data.ProtoLens.FieldTypeDescriptor Prelude.Double)
+                      (Data.ProtoLens.PlainField Data.ProtoLens.Optional
+                         pokemonVisibleRange)
+                pokeNavRangeMeters__field_descriptor
+                  = Data.ProtoLens.FieldDescriptor "poke_nav_range_meters"
+                      (Data.ProtoLens.DoubleField ::
+                         Data.ProtoLens.FieldTypeDescriptor Prelude.Double)
+                      (Data.ProtoLens.PlainField Data.ProtoLens.Optional
+                         pokeNavRangeMeters)
+                encounterRangeMeters__field_descriptor
+                  = Data.ProtoLens.FieldDescriptor "encounter_range_meters"
+                      (Data.ProtoLens.DoubleField ::
+                         Data.ProtoLens.FieldTypeDescriptor Prelude.Double)
+                      (Data.ProtoLens.PlainField Data.ProtoLens.Optional
+                         encounterRangeMeters)
+                getMapObjectsMinRefreshSeconds__field_descriptor
+                  = Data.ProtoLens.FieldDescriptor
+                      "get_map_objects_min_refresh_seconds"
+                      (Data.ProtoLens.FloatField ::
+                         Data.ProtoLens.FieldTypeDescriptor Prelude.Float)
+                      (Data.ProtoLens.PlainField Data.ProtoLens.Optional
+                         getMapObjectsMinRefreshSeconds)
+                getMapObjectsMaxRefreshSeconds__field_descriptor
+                  = Data.ProtoLens.FieldDescriptor
+                      "get_map_objects_max_refresh_seconds"
+                      (Data.ProtoLens.FloatField ::
+                         Data.ProtoLens.FieldTypeDescriptor Prelude.Float)
+                      (Data.ProtoLens.PlainField Data.ProtoLens.Optional
+                         getMapObjectsMaxRefreshSeconds)
+                getMapObjectsMinDistanceMeters__field_descriptor
+                  = Data.ProtoLens.FieldDescriptor
+                      "get_map_objects_min_distance_meters"
+                      (Data.ProtoLens.FloatField ::
+                         Data.ProtoLens.FieldTypeDescriptor Prelude.Float)
+                      (Data.ProtoLens.PlainField Data.ProtoLens.Optional
+                         getMapObjectsMinDistanceMeters)
+                googleMapsApiKey__field_descriptor
+                  = Data.ProtoLens.FieldDescriptor "google_maps_api_key"
+                      (Data.ProtoLens.StringField ::
+                         Data.ProtoLens.FieldTypeDescriptor Data.Text.Text)
+                      (Data.ProtoLens.PlainField Data.ProtoLens.Optional
+                         googleMapsApiKey)
+              in
+              Data.ProtoLens.MessageDescriptor
+                (Data.Map.fromList
+                   [(Data.ProtoLens.Tag 1, pokemonVisibleRange__field_descriptor),
+                    (Data.ProtoLens.Tag 2, pokeNavRangeMeters__field_descriptor),
+                    (Data.ProtoLens.Tag 3, encounterRangeMeters__field_descriptor),
+                    (Data.ProtoLens.Tag 4,
+                     getMapObjectsMinRefreshSeconds__field_descriptor),
+                    (Data.ProtoLens.Tag 5,
+                     getMapObjectsMaxRefreshSeconds__field_descriptor),
+                    (Data.ProtoLens.Tag 6,
+                     getMapObjectsMinDistanceMeters__field_descriptor),
+                    (Data.ProtoLens.Tag 7, googleMapsApiKey__field_descriptor)])
+                (Data.Map.fromList
+                   [("pokemon_visible_range", pokemonVisibleRange__field_descriptor),
+                    ("poke_nav_range_meters", pokeNavRangeMeters__field_descriptor),
+                    ("encounter_range_meters", encounterRangeMeters__field_descriptor),
+                    ("get_map_objects_min_refresh_seconds",
+                     getMapObjectsMinRefreshSeconds__field_descriptor),
+                    ("get_map_objects_max_refresh_seconds",
+                     getMapObjectsMaxRefreshSeconds__field_descriptor),
+                    ("get_map_objects_min_distance_meters",
+                     getMapObjectsMinDistanceMeters__field_descriptor),
+                    ("google_maps_api_key", googleMapsApiKey__field_descriptor)])
+
+encounterRangeMeters ::
+                     forall msg msg' .
+                       Data.ProtoLens.HasField "encounterRangeMeters" msg msg' =>
+                       Lens.Family2.Lens msg msg'
+                         (Data.ProtoLens.Field "encounterRangeMeters" msg)
+                         (Data.ProtoLens.Field "encounterRangeMeters" msg')
+encounterRangeMeters
+  = Data.ProtoLens.field
+      (Data.ProtoLens.ProxySym ::
+         Data.ProtoLens.ProxySym "encounterRangeMeters")
+
+getMapObjectsMaxRefreshSeconds ::
+                               forall msg msg' .
+                                 Data.ProtoLens.HasField "getMapObjectsMaxRefreshSeconds" msg
+                                   msg' =>
+                                 Lens.Family2.Lens msg msg'
+                                   (Data.ProtoLens.Field "getMapObjectsMaxRefreshSeconds" msg)
+                                   (Data.ProtoLens.Field "getMapObjectsMaxRefreshSeconds" msg')
+getMapObjectsMaxRefreshSeconds
+  = Data.ProtoLens.field
+      (Data.ProtoLens.ProxySym ::
+         Data.ProtoLens.ProxySym "getMapObjectsMaxRefreshSeconds")
+
+getMapObjectsMinDistanceMeters ::
+                               forall msg msg' .
+                                 Data.ProtoLens.HasField "getMapObjectsMinDistanceMeters" msg
+                                   msg' =>
+                                 Lens.Family2.Lens msg msg'
+                                   (Data.ProtoLens.Field "getMapObjectsMinDistanceMeters" msg)
+                                   (Data.ProtoLens.Field "getMapObjectsMinDistanceMeters" msg')
+getMapObjectsMinDistanceMeters
+  = Data.ProtoLens.field
+      (Data.ProtoLens.ProxySym ::
+         Data.ProtoLens.ProxySym "getMapObjectsMinDistanceMeters")
+
+getMapObjectsMinRefreshSeconds ::
+                               forall msg msg' .
+                                 Data.ProtoLens.HasField "getMapObjectsMinRefreshSeconds" msg
+                                   msg' =>
+                                 Lens.Family2.Lens msg msg'
+                                   (Data.ProtoLens.Field "getMapObjectsMinRefreshSeconds" msg)
+                                   (Data.ProtoLens.Field "getMapObjectsMinRefreshSeconds" msg')
+getMapObjectsMinRefreshSeconds
+  = Data.ProtoLens.field
+      (Data.ProtoLens.ProxySym ::
+         Data.ProtoLens.ProxySym "getMapObjectsMinRefreshSeconds")
+
+googleMapsApiKey ::
+                 forall msg msg' .
+                   Data.ProtoLens.HasField "googleMapsApiKey" msg msg' =>
+                   Lens.Family2.Lens msg msg'
+                     (Data.ProtoLens.Field "googleMapsApiKey" msg)
+                     (Data.ProtoLens.Field "googleMapsApiKey" msg')
+googleMapsApiKey
+  = Data.ProtoLens.field
+      (Data.ProtoLens.ProxySym ::
+         Data.ProtoLens.ProxySym "googleMapsApiKey")
+
+pokeNavRangeMeters ::
+                   forall msg msg' .
+                     Data.ProtoLens.HasField "pokeNavRangeMeters" msg msg' =>
+                     Lens.Family2.Lens msg msg'
+                       (Data.ProtoLens.Field "pokeNavRangeMeters" msg)
+                       (Data.ProtoLens.Field "pokeNavRangeMeters" msg')
+pokeNavRangeMeters
+  = Data.ProtoLens.field
+      (Data.ProtoLens.ProxySym ::
+         Data.ProtoLens.ProxySym "pokeNavRangeMeters")
+
+pokemonVisibleRange ::
+                    forall msg msg' .
+                      Data.ProtoLens.HasField "pokemonVisibleRange" msg msg' =>
+                      Lens.Family2.Lens msg msg'
+                        (Data.ProtoLens.Field "pokemonVisibleRange" msg)
+                        (Data.ProtoLens.Field "pokemonVisibleRange" msg')
+pokemonVisibleRange
+  = Data.ProtoLens.field
+      (Data.ProtoLens.ProxySym ::
+         Data.ProtoLens.ProxySym "pokemonVisibleRange")
diff --git a/src/Proto/POGOProtos/Settings/Master/BadgeSettings.hs b/src/Proto/POGOProtos/Settings/Master/BadgeSettings.hs
new file mode 100644
--- /dev/null
+++ b/src/Proto/POGOProtos/Settings/Master/BadgeSettings.hs
@@ -0,0 +1,109 @@
+{- This file was auto-generated from POGOProtos/Settings/Master/BadgeSettings.proto by the proto-lens-protoc program. -}
+{-# LANGUAGE ScopedTypeVariables, DataKinds, TypeFamilies,
+  MultiParamTypeClasses, FlexibleContexts, FlexibleInstances #-}
+{-# OPTIONS_GHC -fno-warn-unused-imports#-}
+module Proto.POGOProtos.Settings.Master.BadgeSettings where
+import qualified Prelude
+import qualified Data.ProtoLens
+import qualified Data.ProtoLens.Message.Enum
+import qualified Lens.Family2
+import qualified Lens.Family2.Unchecked
+import qualified Data.Default.Class
+import qualified Data.Text
+import qualified Data.Int
+import qualified Data.Word
+import qualified Data.Map
+import qualified Data.ByteString
+import qualified Proto.POGOProtos.Enums.BadgeType
+
+data BadgeSettings = BadgeSettings{_BadgeSettings'badgeType ::
+                                   Proto.POGOProtos.Enums.BadgeType.BadgeType,
+                                   _BadgeSettings'badgeRank :: Data.Int.Int32,
+                                   _BadgeSettings'targets :: [Data.Int.Int32]}
+                   deriving (Prelude.Show, Prelude.Eq)
+
+type instance Data.ProtoLens.Field "badgeType" BadgeSettings =
+     Proto.POGOProtos.Enums.BadgeType.BadgeType
+
+instance Data.ProtoLens.HasField "badgeType" BadgeSettings
+         BadgeSettings where
+        field _
+          = Lens.Family2.Unchecked.lens _BadgeSettings'badgeType
+              (\ x__ y__ -> x__{_BadgeSettings'badgeType = y__})
+
+type instance Data.ProtoLens.Field "badgeRank" BadgeSettings =
+     Data.Int.Int32
+
+instance Data.ProtoLens.HasField "badgeRank" BadgeSettings
+         BadgeSettings where
+        field _
+          = Lens.Family2.Unchecked.lens _BadgeSettings'badgeRank
+              (\ x__ y__ -> x__{_BadgeSettings'badgeRank = y__})
+
+type instance Data.ProtoLens.Field "targets" BadgeSettings =
+     [Data.Int.Int32]
+
+instance Data.ProtoLens.HasField "targets" BadgeSettings
+         BadgeSettings where
+        field _
+          = Lens.Family2.Unchecked.lens _BadgeSettings'targets
+              (\ x__ y__ -> x__{_BadgeSettings'targets = y__})
+
+instance Data.Default.Class.Default BadgeSettings where
+        def
+          = BadgeSettings{_BadgeSettings'badgeType = Data.Default.Class.def,
+                          _BadgeSettings'badgeRank = Data.ProtoLens.fieldDefault,
+                          _BadgeSettings'targets = []}
+
+instance Data.ProtoLens.Message BadgeSettings where
+        descriptor
+          = let badgeType__field_descriptor
+                  = Data.ProtoLens.FieldDescriptor "badge_type"
+                      (Data.ProtoLens.EnumField ::
+                         Data.ProtoLens.FieldTypeDescriptor
+                           Proto.POGOProtos.Enums.BadgeType.BadgeType)
+                      (Data.ProtoLens.PlainField Data.ProtoLens.Optional badgeType)
+                badgeRank__field_descriptor
+                  = Data.ProtoLens.FieldDescriptor "badge_rank"
+                      (Data.ProtoLens.Int32Field ::
+                         Data.ProtoLens.FieldTypeDescriptor Data.Int.Int32)
+                      (Data.ProtoLens.PlainField Data.ProtoLens.Optional badgeRank)
+                targets__field_descriptor
+                  = Data.ProtoLens.FieldDescriptor "targets"
+                      (Data.ProtoLens.Int32Field ::
+                         Data.ProtoLens.FieldTypeDescriptor Data.Int.Int32)
+                      (Data.ProtoLens.RepeatedField Data.ProtoLens.Unpacked targets)
+              in
+              Data.ProtoLens.MessageDescriptor
+                (Data.Map.fromList
+                   [(Data.ProtoLens.Tag 1, badgeType__field_descriptor),
+                    (Data.ProtoLens.Tag 2, badgeRank__field_descriptor),
+                    (Data.ProtoLens.Tag 3, targets__field_descriptor)])
+                (Data.Map.fromList
+                   [("badge_type", badgeType__field_descriptor),
+                    ("badge_rank", badgeRank__field_descriptor),
+                    ("targets", targets__field_descriptor)])
+
+badgeRank ::
+          forall msg msg' . Data.ProtoLens.HasField "badgeRank" msg msg' =>
+            Lens.Family2.Lens msg msg' (Data.ProtoLens.Field "badgeRank" msg)
+              (Data.ProtoLens.Field "badgeRank" msg')
+badgeRank
+  = Data.ProtoLens.field
+      (Data.ProtoLens.ProxySym :: Data.ProtoLens.ProxySym "badgeRank")
+
+badgeType ::
+          forall msg msg' . Data.ProtoLens.HasField "badgeType" msg msg' =>
+            Lens.Family2.Lens msg msg' (Data.ProtoLens.Field "badgeType" msg)
+              (Data.ProtoLens.Field "badgeType" msg')
+badgeType
+  = Data.ProtoLens.field
+      (Data.ProtoLens.ProxySym :: Data.ProtoLens.ProxySym "badgeType")
+
+targets ::
+        forall msg msg' . Data.ProtoLens.HasField "targets" msg msg' =>
+          Lens.Family2.Lens msg msg' (Data.ProtoLens.Field "targets" msg)
+            (Data.ProtoLens.Field "targets" msg')
+targets
+  = Data.ProtoLens.field
+      (Data.ProtoLens.ProxySym :: Data.ProtoLens.ProxySym "targets")
diff --git a/src/Proto/POGOProtos/Settings/Master/CameraSettings.hs b/src/Proto/POGOProtos/Settings/Master/CameraSettings.hs
new file mode 100644
--- /dev/null
+++ b/src/Proto/POGOProtos/Settings/Master/CameraSettings.hs
@@ -0,0 +1,486 @@
+{- This file was auto-generated from POGOProtos/Settings/Master/CameraSettings.proto by the proto-lens-protoc program. -}
+{-# LANGUAGE ScopedTypeVariables, DataKinds, TypeFamilies,
+  MultiParamTypeClasses, FlexibleContexts, FlexibleInstances #-}
+{-# OPTIONS_GHC -fno-warn-unused-imports#-}
+module Proto.POGOProtos.Settings.Master.CameraSettings where
+import qualified Prelude
+import qualified Data.ProtoLens
+import qualified Data.ProtoLens.Message.Enum
+import qualified Lens.Family2
+import qualified Lens.Family2.Unchecked
+import qualified Data.Default.Class
+import qualified Data.Text
+import qualified Data.Int
+import qualified Data.Word
+import qualified Data.Map
+import qualified Data.ByteString
+import qualified Proto.POGOProtos.Enums.CameraInterpolation
+import qualified Proto.POGOProtos.Enums.CameraTarget
+
+data CameraSettings = CameraSettings{_CameraSettings'nextCamera ::
+                                     Data.Text.Text,
+                                     _CameraSettings'interpolation ::
+                                     [Proto.POGOProtos.Enums.CameraInterpolation.CameraInterpolation],
+                                     _CameraSettings'targetType ::
+                                     [Proto.POGOProtos.Enums.CameraTarget.CameraTarget],
+                                     _CameraSettings'easeInSpeed :: [Prelude.Float],
+                                     _CameraSettings'eastOutSpeed :: [Prelude.Float],
+                                     _CameraSettings'durationSeconds :: [Prelude.Float],
+                                     _CameraSettings'waitSeconds :: [Prelude.Float],
+                                     _CameraSettings'transitionSeconds :: [Prelude.Float],
+                                     _CameraSettings'angleDegree :: [Prelude.Float],
+                                     _CameraSettings'angleOffsetDegree :: [Prelude.Float],
+                                     _CameraSettings'pitchDegree :: [Prelude.Float],
+                                     _CameraSettings'pitchOffsetDegree :: [Prelude.Float],
+                                     _CameraSettings'rollDegree :: [Prelude.Float],
+                                     _CameraSettings'distanceMeters :: [Prelude.Float],
+                                     _CameraSettings'heightPercent :: [Prelude.Float],
+                                     _CameraSettings'vertCtrRatio :: [Prelude.Float]}
+                    deriving (Prelude.Show, Prelude.Eq)
+
+type instance Data.ProtoLens.Field "nextCamera" CameraSettings =
+     Data.Text.Text
+
+instance Data.ProtoLens.HasField "nextCamera" CameraSettings
+         CameraSettings where
+        field _
+          = Lens.Family2.Unchecked.lens _CameraSettings'nextCamera
+              (\ x__ y__ -> x__{_CameraSettings'nextCamera = y__})
+
+type instance Data.ProtoLens.Field "interpolation" CameraSettings =
+     [Proto.POGOProtos.Enums.CameraInterpolation.CameraInterpolation]
+
+instance Data.ProtoLens.HasField "interpolation" CameraSettings
+         CameraSettings where
+        field _
+          = Lens.Family2.Unchecked.lens _CameraSettings'interpolation
+              (\ x__ y__ -> x__{_CameraSettings'interpolation = y__})
+
+type instance Data.ProtoLens.Field "targetType" CameraSettings =
+     [Proto.POGOProtos.Enums.CameraTarget.CameraTarget]
+
+instance Data.ProtoLens.HasField "targetType" CameraSettings
+         CameraSettings where
+        field _
+          = Lens.Family2.Unchecked.lens _CameraSettings'targetType
+              (\ x__ y__ -> x__{_CameraSettings'targetType = y__})
+
+type instance Data.ProtoLens.Field "easeInSpeed" CameraSettings =
+     [Prelude.Float]
+
+instance Data.ProtoLens.HasField "easeInSpeed" CameraSettings
+         CameraSettings where
+        field _
+          = Lens.Family2.Unchecked.lens _CameraSettings'easeInSpeed
+              (\ x__ y__ -> x__{_CameraSettings'easeInSpeed = y__})
+
+type instance Data.ProtoLens.Field "eastOutSpeed" CameraSettings =
+     [Prelude.Float]
+
+instance Data.ProtoLens.HasField "eastOutSpeed" CameraSettings
+         CameraSettings where
+        field _
+          = Lens.Family2.Unchecked.lens _CameraSettings'eastOutSpeed
+              (\ x__ y__ -> x__{_CameraSettings'eastOutSpeed = y__})
+
+type instance Data.ProtoLens.Field "durationSeconds" CameraSettings
+     = [Prelude.Float]
+
+instance Data.ProtoLens.HasField "durationSeconds" CameraSettings
+         CameraSettings where
+        field _
+          = Lens.Family2.Unchecked.lens _CameraSettings'durationSeconds
+              (\ x__ y__ -> x__{_CameraSettings'durationSeconds = y__})
+
+type instance Data.ProtoLens.Field "waitSeconds" CameraSettings =
+     [Prelude.Float]
+
+instance Data.ProtoLens.HasField "waitSeconds" CameraSettings
+         CameraSettings where
+        field _
+          = Lens.Family2.Unchecked.lens _CameraSettings'waitSeconds
+              (\ x__ y__ -> x__{_CameraSettings'waitSeconds = y__})
+
+type instance
+     Data.ProtoLens.Field "transitionSeconds" CameraSettings =
+     [Prelude.Float]
+
+instance Data.ProtoLens.HasField "transitionSeconds" CameraSettings
+         CameraSettings where
+        field _
+          = Lens.Family2.Unchecked.lens _CameraSettings'transitionSeconds
+              (\ x__ y__ -> x__{_CameraSettings'transitionSeconds = y__})
+
+type instance Data.ProtoLens.Field "angleDegree" CameraSettings =
+     [Prelude.Float]
+
+instance Data.ProtoLens.HasField "angleDegree" CameraSettings
+         CameraSettings where
+        field _
+          = Lens.Family2.Unchecked.lens _CameraSettings'angleDegree
+              (\ x__ y__ -> x__{_CameraSettings'angleDegree = y__})
+
+type instance
+     Data.ProtoLens.Field "angleOffsetDegree" CameraSettings =
+     [Prelude.Float]
+
+instance Data.ProtoLens.HasField "angleOffsetDegree" CameraSettings
+         CameraSettings where
+        field _
+          = Lens.Family2.Unchecked.lens _CameraSettings'angleOffsetDegree
+              (\ x__ y__ -> x__{_CameraSettings'angleOffsetDegree = y__})
+
+type instance Data.ProtoLens.Field "pitchDegree" CameraSettings =
+     [Prelude.Float]
+
+instance Data.ProtoLens.HasField "pitchDegree" CameraSettings
+         CameraSettings where
+        field _
+          = Lens.Family2.Unchecked.lens _CameraSettings'pitchDegree
+              (\ x__ y__ -> x__{_CameraSettings'pitchDegree = y__})
+
+type instance
+     Data.ProtoLens.Field "pitchOffsetDegree" CameraSettings =
+     [Prelude.Float]
+
+instance Data.ProtoLens.HasField "pitchOffsetDegree" CameraSettings
+         CameraSettings where
+        field _
+          = Lens.Family2.Unchecked.lens _CameraSettings'pitchOffsetDegree
+              (\ x__ y__ -> x__{_CameraSettings'pitchOffsetDegree = y__})
+
+type instance Data.ProtoLens.Field "rollDegree" CameraSettings =
+     [Prelude.Float]
+
+instance Data.ProtoLens.HasField "rollDegree" CameraSettings
+         CameraSettings where
+        field _
+          = Lens.Family2.Unchecked.lens _CameraSettings'rollDegree
+              (\ x__ y__ -> x__{_CameraSettings'rollDegree = y__})
+
+type instance Data.ProtoLens.Field "distanceMeters" CameraSettings
+     = [Prelude.Float]
+
+instance Data.ProtoLens.HasField "distanceMeters" CameraSettings
+         CameraSettings where
+        field _
+          = Lens.Family2.Unchecked.lens _CameraSettings'distanceMeters
+              (\ x__ y__ -> x__{_CameraSettings'distanceMeters = y__})
+
+type instance Data.ProtoLens.Field "heightPercent" CameraSettings =
+     [Prelude.Float]
+
+instance Data.ProtoLens.HasField "heightPercent" CameraSettings
+         CameraSettings where
+        field _
+          = Lens.Family2.Unchecked.lens _CameraSettings'heightPercent
+              (\ x__ y__ -> x__{_CameraSettings'heightPercent = y__})
+
+type instance Data.ProtoLens.Field "vertCtrRatio" CameraSettings =
+     [Prelude.Float]
+
+instance Data.ProtoLens.HasField "vertCtrRatio" CameraSettings
+         CameraSettings where
+        field _
+          = Lens.Family2.Unchecked.lens _CameraSettings'vertCtrRatio
+              (\ x__ y__ -> x__{_CameraSettings'vertCtrRatio = y__})
+
+instance Data.Default.Class.Default CameraSettings where
+        def
+          = CameraSettings{_CameraSettings'nextCamera =
+                             Data.ProtoLens.fieldDefault,
+                           _CameraSettings'interpolation = [],
+                           _CameraSettings'targetType = [], _CameraSettings'easeInSpeed = [],
+                           _CameraSettings'eastOutSpeed = [],
+                           _CameraSettings'durationSeconds = [],
+                           _CameraSettings'waitSeconds = [],
+                           _CameraSettings'transitionSeconds = [],
+                           _CameraSettings'angleDegree = [],
+                           _CameraSettings'angleOffsetDegree = [],
+                           _CameraSettings'pitchDegree = [],
+                           _CameraSettings'pitchOffsetDegree = [],
+                           _CameraSettings'rollDegree = [],
+                           _CameraSettings'distanceMeters = [],
+                           _CameraSettings'heightPercent = [],
+                           _CameraSettings'vertCtrRatio = []}
+
+instance Data.ProtoLens.Message CameraSettings where
+        descriptor
+          = let nextCamera__field_descriptor
+                  = Data.ProtoLens.FieldDescriptor "next_camera"
+                      (Data.ProtoLens.StringField ::
+                         Data.ProtoLens.FieldTypeDescriptor Data.Text.Text)
+                      (Data.ProtoLens.PlainField Data.ProtoLens.Optional nextCamera)
+                interpolation__field_descriptor
+                  = Data.ProtoLens.FieldDescriptor "interpolation"
+                      (Data.ProtoLens.EnumField ::
+                         Data.ProtoLens.FieldTypeDescriptor
+                           Proto.POGOProtos.Enums.CameraInterpolation.CameraInterpolation)
+                      (Data.ProtoLens.RepeatedField Data.ProtoLens.Unpacked
+                         interpolation)
+                targetType__field_descriptor
+                  = Data.ProtoLens.FieldDescriptor "target_type"
+                      (Data.ProtoLens.EnumField ::
+                         Data.ProtoLens.FieldTypeDescriptor
+                           Proto.POGOProtos.Enums.CameraTarget.CameraTarget)
+                      (Data.ProtoLens.RepeatedField Data.ProtoLens.Unpacked targetType)
+                easeInSpeed__field_descriptor
+                  = Data.ProtoLens.FieldDescriptor "ease_in_speed"
+                      (Data.ProtoLens.FloatField ::
+                         Data.ProtoLens.FieldTypeDescriptor Prelude.Float)
+                      (Data.ProtoLens.RepeatedField Data.ProtoLens.Unpacked easeInSpeed)
+                eastOutSpeed__field_descriptor
+                  = Data.ProtoLens.FieldDescriptor "east_out_speed"
+                      (Data.ProtoLens.FloatField ::
+                         Data.ProtoLens.FieldTypeDescriptor Prelude.Float)
+                      (Data.ProtoLens.RepeatedField Data.ProtoLens.Unpacked eastOutSpeed)
+                durationSeconds__field_descriptor
+                  = Data.ProtoLens.FieldDescriptor "duration_seconds"
+                      (Data.ProtoLens.FloatField ::
+                         Data.ProtoLens.FieldTypeDescriptor Prelude.Float)
+                      (Data.ProtoLens.RepeatedField Data.ProtoLens.Unpacked
+                         durationSeconds)
+                waitSeconds__field_descriptor
+                  = Data.ProtoLens.FieldDescriptor "wait_seconds"
+                      (Data.ProtoLens.FloatField ::
+                         Data.ProtoLens.FieldTypeDescriptor Prelude.Float)
+                      (Data.ProtoLens.RepeatedField Data.ProtoLens.Unpacked waitSeconds)
+                transitionSeconds__field_descriptor
+                  = Data.ProtoLens.FieldDescriptor "transition_seconds"
+                      (Data.ProtoLens.FloatField ::
+                         Data.ProtoLens.FieldTypeDescriptor Prelude.Float)
+                      (Data.ProtoLens.RepeatedField Data.ProtoLens.Unpacked
+                         transitionSeconds)
+                angleDegree__field_descriptor
+                  = Data.ProtoLens.FieldDescriptor "angle_degree"
+                      (Data.ProtoLens.FloatField ::
+                         Data.ProtoLens.FieldTypeDescriptor Prelude.Float)
+                      (Data.ProtoLens.RepeatedField Data.ProtoLens.Unpacked angleDegree)
+                angleOffsetDegree__field_descriptor
+                  = Data.ProtoLens.FieldDescriptor "angle_offset_degree"
+                      (Data.ProtoLens.FloatField ::
+                         Data.ProtoLens.FieldTypeDescriptor Prelude.Float)
+                      (Data.ProtoLens.RepeatedField Data.ProtoLens.Unpacked
+                         angleOffsetDegree)
+                pitchDegree__field_descriptor
+                  = Data.ProtoLens.FieldDescriptor "pitch_degree"
+                      (Data.ProtoLens.FloatField ::
+                         Data.ProtoLens.FieldTypeDescriptor Prelude.Float)
+                      (Data.ProtoLens.RepeatedField Data.ProtoLens.Unpacked pitchDegree)
+                pitchOffsetDegree__field_descriptor
+                  = Data.ProtoLens.FieldDescriptor "pitch_offset_degree"
+                      (Data.ProtoLens.FloatField ::
+                         Data.ProtoLens.FieldTypeDescriptor Prelude.Float)
+                      (Data.ProtoLens.RepeatedField Data.ProtoLens.Unpacked
+                         pitchOffsetDegree)
+                rollDegree__field_descriptor
+                  = Data.ProtoLens.FieldDescriptor "roll_degree"
+                      (Data.ProtoLens.FloatField ::
+                         Data.ProtoLens.FieldTypeDescriptor Prelude.Float)
+                      (Data.ProtoLens.RepeatedField Data.ProtoLens.Unpacked rollDegree)
+                distanceMeters__field_descriptor
+                  = Data.ProtoLens.FieldDescriptor "distance_meters"
+                      (Data.ProtoLens.FloatField ::
+                         Data.ProtoLens.FieldTypeDescriptor Prelude.Float)
+                      (Data.ProtoLens.RepeatedField Data.ProtoLens.Unpacked
+                         distanceMeters)
+                heightPercent__field_descriptor
+                  = Data.ProtoLens.FieldDescriptor "height_percent"
+                      (Data.ProtoLens.FloatField ::
+                         Data.ProtoLens.FieldTypeDescriptor Prelude.Float)
+                      (Data.ProtoLens.RepeatedField Data.ProtoLens.Unpacked
+                         heightPercent)
+                vertCtrRatio__field_descriptor
+                  = Data.ProtoLens.FieldDescriptor "vert_ctr_ratio"
+                      (Data.ProtoLens.FloatField ::
+                         Data.ProtoLens.FieldTypeDescriptor Prelude.Float)
+                      (Data.ProtoLens.RepeatedField Data.ProtoLens.Unpacked vertCtrRatio)
+              in
+              Data.ProtoLens.MessageDescriptor
+                (Data.Map.fromList
+                   [(Data.ProtoLens.Tag 1, nextCamera__field_descriptor),
+                    (Data.ProtoLens.Tag 2, interpolation__field_descriptor),
+                    (Data.ProtoLens.Tag 3, targetType__field_descriptor),
+                    (Data.ProtoLens.Tag 4, easeInSpeed__field_descriptor),
+                    (Data.ProtoLens.Tag 5, eastOutSpeed__field_descriptor),
+                    (Data.ProtoLens.Tag 6, durationSeconds__field_descriptor),
+                    (Data.ProtoLens.Tag 7, waitSeconds__field_descriptor),
+                    (Data.ProtoLens.Tag 8, transitionSeconds__field_descriptor),
+                    (Data.ProtoLens.Tag 9, angleDegree__field_descriptor),
+                    (Data.ProtoLens.Tag 10, angleOffsetDegree__field_descriptor),
+                    (Data.ProtoLens.Tag 11, pitchDegree__field_descriptor),
+                    (Data.ProtoLens.Tag 12, pitchOffsetDegree__field_descriptor),
+                    (Data.ProtoLens.Tag 13, rollDegree__field_descriptor),
+                    (Data.ProtoLens.Tag 14, distanceMeters__field_descriptor),
+                    (Data.ProtoLens.Tag 15, heightPercent__field_descriptor),
+                    (Data.ProtoLens.Tag 16, vertCtrRatio__field_descriptor)])
+                (Data.Map.fromList
+                   [("next_camera", nextCamera__field_descriptor),
+                    ("interpolation", interpolation__field_descriptor),
+                    ("target_type", targetType__field_descriptor),
+                    ("ease_in_speed", easeInSpeed__field_descriptor),
+                    ("east_out_speed", eastOutSpeed__field_descriptor),
+                    ("duration_seconds", durationSeconds__field_descriptor),
+                    ("wait_seconds", waitSeconds__field_descriptor),
+                    ("transition_seconds", transitionSeconds__field_descriptor),
+                    ("angle_degree", angleDegree__field_descriptor),
+                    ("angle_offset_degree", angleOffsetDegree__field_descriptor),
+                    ("pitch_degree", pitchDegree__field_descriptor),
+                    ("pitch_offset_degree", pitchOffsetDegree__field_descriptor),
+                    ("roll_degree", rollDegree__field_descriptor),
+                    ("distance_meters", distanceMeters__field_descriptor),
+                    ("height_percent", heightPercent__field_descriptor),
+                    ("vert_ctr_ratio", vertCtrRatio__field_descriptor)])
+
+angleDegree ::
+            forall msg msg' . Data.ProtoLens.HasField "angleDegree" msg msg' =>
+              Lens.Family2.Lens msg msg' (Data.ProtoLens.Field "angleDegree" msg)
+                (Data.ProtoLens.Field "angleDegree" msg')
+angleDegree
+  = Data.ProtoLens.field
+      (Data.ProtoLens.ProxySym :: Data.ProtoLens.ProxySym "angleDegree")
+
+angleOffsetDegree ::
+                  forall msg msg' .
+                    Data.ProtoLens.HasField "angleOffsetDegree" msg msg' =>
+                    Lens.Family2.Lens msg msg'
+                      (Data.ProtoLens.Field "angleOffsetDegree" msg)
+                      (Data.ProtoLens.Field "angleOffsetDegree" msg')
+angleOffsetDegree
+  = Data.ProtoLens.field
+      (Data.ProtoLens.ProxySym ::
+         Data.ProtoLens.ProxySym "angleOffsetDegree")
+
+distanceMeters ::
+               forall msg msg' .
+                 Data.ProtoLens.HasField "distanceMeters" msg msg' =>
+                 Lens.Family2.Lens msg msg'
+                   (Data.ProtoLens.Field "distanceMeters" msg)
+                   (Data.ProtoLens.Field "distanceMeters" msg')
+distanceMeters
+  = Data.ProtoLens.field
+      (Data.ProtoLens.ProxySym ::
+         Data.ProtoLens.ProxySym "distanceMeters")
+
+durationSeconds ::
+                forall msg msg' .
+                  Data.ProtoLens.HasField "durationSeconds" msg msg' =>
+                  Lens.Family2.Lens msg msg'
+                    (Data.ProtoLens.Field "durationSeconds" msg)
+                    (Data.ProtoLens.Field "durationSeconds" msg')
+durationSeconds
+  = Data.ProtoLens.field
+      (Data.ProtoLens.ProxySym ::
+         Data.ProtoLens.ProxySym "durationSeconds")
+
+easeInSpeed ::
+            forall msg msg' . Data.ProtoLens.HasField "easeInSpeed" msg msg' =>
+              Lens.Family2.Lens msg msg' (Data.ProtoLens.Field "easeInSpeed" msg)
+                (Data.ProtoLens.Field "easeInSpeed" msg')
+easeInSpeed
+  = Data.ProtoLens.field
+      (Data.ProtoLens.ProxySym :: Data.ProtoLens.ProxySym "easeInSpeed")
+
+eastOutSpeed ::
+             forall msg msg' .
+               Data.ProtoLens.HasField "eastOutSpeed" msg msg' =>
+               Lens.Family2.Lens msg msg'
+                 (Data.ProtoLens.Field "eastOutSpeed" msg)
+                 (Data.ProtoLens.Field "eastOutSpeed" msg')
+eastOutSpeed
+  = Data.ProtoLens.field
+      (Data.ProtoLens.ProxySym :: Data.ProtoLens.ProxySym "eastOutSpeed")
+
+heightPercent ::
+              forall msg msg' .
+                Data.ProtoLens.HasField "heightPercent" msg msg' =>
+                Lens.Family2.Lens msg msg'
+                  (Data.ProtoLens.Field "heightPercent" msg)
+                  (Data.ProtoLens.Field "heightPercent" msg')
+heightPercent
+  = Data.ProtoLens.field
+      (Data.ProtoLens.ProxySym ::
+         Data.ProtoLens.ProxySym "heightPercent")
+
+interpolation ::
+              forall msg msg' .
+                Data.ProtoLens.HasField "interpolation" msg msg' =>
+                Lens.Family2.Lens msg msg'
+                  (Data.ProtoLens.Field "interpolation" msg)
+                  (Data.ProtoLens.Field "interpolation" msg')
+interpolation
+  = Data.ProtoLens.field
+      (Data.ProtoLens.ProxySym ::
+         Data.ProtoLens.ProxySym "interpolation")
+
+nextCamera ::
+           forall msg msg' . Data.ProtoLens.HasField "nextCamera" msg msg' =>
+             Lens.Family2.Lens msg msg' (Data.ProtoLens.Field "nextCamera" msg)
+               (Data.ProtoLens.Field "nextCamera" msg')
+nextCamera
+  = Data.ProtoLens.field
+      (Data.ProtoLens.ProxySym :: Data.ProtoLens.ProxySym "nextCamera")
+
+pitchDegree ::
+            forall msg msg' . Data.ProtoLens.HasField "pitchDegree" msg msg' =>
+              Lens.Family2.Lens msg msg' (Data.ProtoLens.Field "pitchDegree" msg)
+                (Data.ProtoLens.Field "pitchDegree" msg')
+pitchDegree
+  = Data.ProtoLens.field
+      (Data.ProtoLens.ProxySym :: Data.ProtoLens.ProxySym "pitchDegree")
+
+pitchOffsetDegree ::
+                  forall msg msg' .
+                    Data.ProtoLens.HasField "pitchOffsetDegree" msg msg' =>
+                    Lens.Family2.Lens msg msg'
+                      (Data.ProtoLens.Field "pitchOffsetDegree" msg)
+                      (Data.ProtoLens.Field "pitchOffsetDegree" msg')
+pitchOffsetDegree
+  = Data.ProtoLens.field
+      (Data.ProtoLens.ProxySym ::
+         Data.ProtoLens.ProxySym "pitchOffsetDegree")
+
+rollDegree ::
+           forall msg msg' . Data.ProtoLens.HasField "rollDegree" msg msg' =>
+             Lens.Family2.Lens msg msg' (Data.ProtoLens.Field "rollDegree" msg)
+               (Data.ProtoLens.Field "rollDegree" msg')
+rollDegree
+  = Data.ProtoLens.field
+      (Data.ProtoLens.ProxySym :: Data.ProtoLens.ProxySym "rollDegree")
+
+targetType ::
+           forall msg msg' . Data.ProtoLens.HasField "targetType" msg msg' =>
+             Lens.Family2.Lens msg msg' (Data.ProtoLens.Field "targetType" msg)
+               (Data.ProtoLens.Field "targetType" msg')
+targetType
+  = Data.ProtoLens.field
+      (Data.ProtoLens.ProxySym :: Data.ProtoLens.ProxySym "targetType")
+
+transitionSeconds ::
+                  forall msg msg' .
+                    Data.ProtoLens.HasField "transitionSeconds" msg msg' =>
+                    Lens.Family2.Lens msg msg'
+                      (Data.ProtoLens.Field "transitionSeconds" msg)
+                      (Data.ProtoLens.Field "transitionSeconds" msg')
+transitionSeconds
+  = Data.ProtoLens.field
+      (Data.ProtoLens.ProxySym ::
+         Data.ProtoLens.ProxySym "transitionSeconds")
+
+vertCtrRatio ::
+             forall msg msg' .
+               Data.ProtoLens.HasField "vertCtrRatio" msg msg' =>
+               Lens.Family2.Lens msg msg'
+                 (Data.ProtoLens.Field "vertCtrRatio" msg)
+                 (Data.ProtoLens.Field "vertCtrRatio" msg')
+vertCtrRatio
+  = Data.ProtoLens.field
+      (Data.ProtoLens.ProxySym :: Data.ProtoLens.ProxySym "vertCtrRatio")
+
+waitSeconds ::
+            forall msg msg' . Data.ProtoLens.HasField "waitSeconds" msg msg' =>
+              Lens.Family2.Lens msg msg' (Data.ProtoLens.Field "waitSeconds" msg)
+                (Data.ProtoLens.Field "waitSeconds" msg')
+waitSeconds
+  = Data.ProtoLens.field
+      (Data.ProtoLens.ProxySym :: Data.ProtoLens.ProxySym "waitSeconds")
diff --git a/src/Proto/POGOProtos/Settings/Master/EncounterSettings.hs b/src/Proto/POGOProtos/Settings/Master/EncounterSettings.hs
new file mode 100644
--- /dev/null
+++ b/src/Proto/POGOProtos/Settings/Master/EncounterSettings.hs
@@ -0,0 +1,194 @@
+{- This file was auto-generated from POGOProtos/Settings/Master/EncounterSettings.proto by the proto-lens-protoc program. -}
+{-# LANGUAGE ScopedTypeVariables, DataKinds, TypeFamilies,
+  MultiParamTypeClasses, FlexibleContexts, FlexibleInstances #-}
+{-# OPTIONS_GHC -fno-warn-unused-imports#-}
+module Proto.POGOProtos.Settings.Master.EncounterSettings where
+import qualified Prelude
+import qualified Data.ProtoLens
+import qualified Data.ProtoLens.Message.Enum
+import qualified Lens.Family2
+import qualified Lens.Family2.Unchecked
+import qualified Data.Default.Class
+import qualified Data.Text
+import qualified Data.Int
+import qualified Data.Word
+import qualified Data.Map
+import qualified Data.ByteString
+
+data EncounterSettings = EncounterSettings{_EncounterSettings'spinBonusThreshold
+                                           :: Prelude.Float,
+                                           _EncounterSettings'excellentThrowThreshold ::
+                                           Prelude.Float,
+                                           _EncounterSettings'greatThrowThreshold :: Prelude.Float,
+                                           _EncounterSettings'niceThrowThreshold :: Prelude.Float,
+                                           _EncounterSettings'milestoneThreshold :: Data.Int.Int32}
+                       deriving (Prelude.Show, Prelude.Eq)
+
+type instance
+     Data.ProtoLens.Field "spinBonusThreshold" EncounterSettings =
+     Prelude.Float
+
+instance Data.ProtoLens.HasField "spinBonusThreshold"
+         EncounterSettings EncounterSettings where
+        field _
+          = Lens.Family2.Unchecked.lens _EncounterSettings'spinBonusThreshold
+              (\ x__ y__ -> x__{_EncounterSettings'spinBonusThreshold = y__})
+
+type instance
+     Data.ProtoLens.Field "excellentThrowThreshold" EncounterSettings =
+     Prelude.Float
+
+instance Data.ProtoLens.HasField "excellentThrowThreshold"
+         EncounterSettings EncounterSettings where
+        field _
+          = Lens.Family2.Unchecked.lens
+              _EncounterSettings'excellentThrowThreshold
+              (\ x__ y__ ->
+                 x__{_EncounterSettings'excellentThrowThreshold = y__})
+
+type instance
+     Data.ProtoLens.Field "greatThrowThreshold" EncounterSettings =
+     Prelude.Float
+
+instance Data.ProtoLens.HasField "greatThrowThreshold"
+         EncounterSettings EncounterSettings where
+        field _
+          = Lens.Family2.Unchecked.lens
+              _EncounterSettings'greatThrowThreshold
+              (\ x__ y__ -> x__{_EncounterSettings'greatThrowThreshold = y__})
+
+type instance
+     Data.ProtoLens.Field "niceThrowThreshold" EncounterSettings =
+     Prelude.Float
+
+instance Data.ProtoLens.HasField "niceThrowThreshold"
+         EncounterSettings EncounterSettings where
+        field _
+          = Lens.Family2.Unchecked.lens _EncounterSettings'niceThrowThreshold
+              (\ x__ y__ -> x__{_EncounterSettings'niceThrowThreshold = y__})
+
+type instance
+     Data.ProtoLens.Field "milestoneThreshold" EncounterSettings =
+     Data.Int.Int32
+
+instance Data.ProtoLens.HasField "milestoneThreshold"
+         EncounterSettings EncounterSettings where
+        field _
+          = Lens.Family2.Unchecked.lens _EncounterSettings'milestoneThreshold
+              (\ x__ y__ -> x__{_EncounterSettings'milestoneThreshold = y__})
+
+instance Data.Default.Class.Default EncounterSettings where
+        def
+          = EncounterSettings{_EncounterSettings'spinBonusThreshold =
+                                Data.ProtoLens.fieldDefault,
+                              _EncounterSettings'excellentThrowThreshold =
+                                Data.ProtoLens.fieldDefault,
+                              _EncounterSettings'greatThrowThreshold =
+                                Data.ProtoLens.fieldDefault,
+                              _EncounterSettings'niceThrowThreshold =
+                                Data.ProtoLens.fieldDefault,
+                              _EncounterSettings'milestoneThreshold =
+                                Data.ProtoLens.fieldDefault}
+
+instance Data.ProtoLens.Message EncounterSettings where
+        descriptor
+          = let spinBonusThreshold__field_descriptor
+                  = Data.ProtoLens.FieldDescriptor "spin_bonus_threshold"
+                      (Data.ProtoLens.FloatField ::
+                         Data.ProtoLens.FieldTypeDescriptor Prelude.Float)
+                      (Data.ProtoLens.PlainField Data.ProtoLens.Optional
+                         spinBonusThreshold)
+                excellentThrowThreshold__field_descriptor
+                  = Data.ProtoLens.FieldDescriptor "excellent_throw_threshold"
+                      (Data.ProtoLens.FloatField ::
+                         Data.ProtoLens.FieldTypeDescriptor Prelude.Float)
+                      (Data.ProtoLens.PlainField Data.ProtoLens.Optional
+                         excellentThrowThreshold)
+                greatThrowThreshold__field_descriptor
+                  = Data.ProtoLens.FieldDescriptor "great_throw_threshold"
+                      (Data.ProtoLens.FloatField ::
+                         Data.ProtoLens.FieldTypeDescriptor Prelude.Float)
+                      (Data.ProtoLens.PlainField Data.ProtoLens.Optional
+                         greatThrowThreshold)
+                niceThrowThreshold__field_descriptor
+                  = Data.ProtoLens.FieldDescriptor "nice_throw_threshold"
+                      (Data.ProtoLens.FloatField ::
+                         Data.ProtoLens.FieldTypeDescriptor Prelude.Float)
+                      (Data.ProtoLens.PlainField Data.ProtoLens.Optional
+                         niceThrowThreshold)
+                milestoneThreshold__field_descriptor
+                  = Data.ProtoLens.FieldDescriptor "milestone_threshold"
+                      (Data.ProtoLens.Int32Field ::
+                         Data.ProtoLens.FieldTypeDescriptor Data.Int.Int32)
+                      (Data.ProtoLens.PlainField Data.ProtoLens.Optional
+                         milestoneThreshold)
+              in
+              Data.ProtoLens.MessageDescriptor
+                (Data.Map.fromList
+                   [(Data.ProtoLens.Tag 1, spinBonusThreshold__field_descriptor),
+                    (Data.ProtoLens.Tag 2, excellentThrowThreshold__field_descriptor),
+                    (Data.ProtoLens.Tag 3, greatThrowThreshold__field_descriptor),
+                    (Data.ProtoLens.Tag 4, niceThrowThreshold__field_descriptor),
+                    (Data.ProtoLens.Tag 5, milestoneThreshold__field_descriptor)])
+                (Data.Map.fromList
+                   [("spin_bonus_threshold", spinBonusThreshold__field_descriptor),
+                    ("excellent_throw_threshold",
+                     excellentThrowThreshold__field_descriptor),
+                    ("great_throw_threshold", greatThrowThreshold__field_descriptor),
+                    ("nice_throw_threshold", niceThrowThreshold__field_descriptor),
+                    ("milestone_threshold", milestoneThreshold__field_descriptor)])
+
+excellentThrowThreshold ::
+                        forall msg msg' .
+                          Data.ProtoLens.HasField "excellentThrowThreshold" msg msg' =>
+                          Lens.Family2.Lens msg msg'
+                            (Data.ProtoLens.Field "excellentThrowThreshold" msg)
+                            (Data.ProtoLens.Field "excellentThrowThreshold" msg')
+excellentThrowThreshold
+  = Data.ProtoLens.field
+      (Data.ProtoLens.ProxySym ::
+         Data.ProtoLens.ProxySym "excellentThrowThreshold")
+
+greatThrowThreshold ::
+                    forall msg msg' .
+                      Data.ProtoLens.HasField "greatThrowThreshold" msg msg' =>
+                      Lens.Family2.Lens msg msg'
+                        (Data.ProtoLens.Field "greatThrowThreshold" msg)
+                        (Data.ProtoLens.Field "greatThrowThreshold" msg')
+greatThrowThreshold
+  = Data.ProtoLens.field
+      (Data.ProtoLens.ProxySym ::
+         Data.ProtoLens.ProxySym "greatThrowThreshold")
+
+milestoneThreshold ::
+                   forall msg msg' .
+                     Data.ProtoLens.HasField "milestoneThreshold" msg msg' =>
+                     Lens.Family2.Lens msg msg'
+                       (Data.ProtoLens.Field "milestoneThreshold" msg)
+                       (Data.ProtoLens.Field "milestoneThreshold" msg')
+milestoneThreshold
+  = Data.ProtoLens.field
+      (Data.ProtoLens.ProxySym ::
+         Data.ProtoLens.ProxySym "milestoneThreshold")
+
+niceThrowThreshold ::
+                   forall msg msg' .
+                     Data.ProtoLens.HasField "niceThrowThreshold" msg msg' =>
+                     Lens.Family2.Lens msg msg'
+                       (Data.ProtoLens.Field "niceThrowThreshold" msg)
+                       (Data.ProtoLens.Field "niceThrowThreshold" msg')
+niceThrowThreshold
+  = Data.ProtoLens.field
+      (Data.ProtoLens.ProxySym ::
+         Data.ProtoLens.ProxySym "niceThrowThreshold")
+
+spinBonusThreshold ::
+                   forall msg msg' .
+                     Data.ProtoLens.HasField "spinBonusThreshold" msg msg' =>
+                     Lens.Family2.Lens msg msg'
+                       (Data.ProtoLens.Field "spinBonusThreshold" msg)
+                       (Data.ProtoLens.Field "spinBonusThreshold" msg')
+spinBonusThreshold
+  = Data.ProtoLens.field
+      (Data.ProtoLens.ProxySym ::
+         Data.ProtoLens.ProxySym "spinBonusThreshold")
diff --git a/src/Proto/POGOProtos/Settings/Master/EquippedBadgeSettings.hs b/src/Proto/POGOProtos/Settings/Master/EquippedBadgeSettings.hs
new file mode 100644
--- /dev/null
+++ b/src/Proto/POGOProtos/Settings/Master/EquippedBadgeSettings.hs
@@ -0,0 +1,134 @@
+{- This file was auto-generated from POGOProtos/Settings/Master/EquippedBadgeSettings.proto by the proto-lens-protoc program. -}
+{-# LANGUAGE ScopedTypeVariables, DataKinds, TypeFamilies,
+  MultiParamTypeClasses, FlexibleContexts, FlexibleInstances #-}
+{-# OPTIONS_GHC -fno-warn-unused-imports#-}
+module Proto.POGOProtos.Settings.Master.EquippedBadgeSettings where
+import qualified Prelude
+import qualified Data.ProtoLens
+import qualified Data.ProtoLens.Message.Enum
+import qualified Lens.Family2
+import qualified Lens.Family2.Unchecked
+import qualified Data.Default.Class
+import qualified Data.Text
+import qualified Data.Int
+import qualified Data.Word
+import qualified Data.Map
+import qualified Data.ByteString
+
+data EquippedBadgeSettings = EquippedBadgeSettings{_EquippedBadgeSettings'equipBadgeCooldownMs
+                                                   :: Data.Int.Int64,
+                                                   _EquippedBadgeSettings'catchProbabilityBonus ::
+                                                   [Prelude.Float],
+                                                   _EquippedBadgeSettings'fleeProbabilityBonus ::
+                                                   [Prelude.Float]}
+                           deriving (Prelude.Show, Prelude.Eq)
+
+type instance
+     Data.ProtoLens.Field "equipBadgeCooldownMs" EquippedBadgeSettings =
+     Data.Int.Int64
+
+instance Data.ProtoLens.HasField "equipBadgeCooldownMs"
+         EquippedBadgeSettings EquippedBadgeSettings where
+        field _
+          = Lens.Family2.Unchecked.lens
+              _EquippedBadgeSettings'equipBadgeCooldownMs
+              (\ x__ y__ ->
+                 x__{_EquippedBadgeSettings'equipBadgeCooldownMs = y__})
+
+type instance
+     Data.ProtoLens.Field "catchProbabilityBonus" EquippedBadgeSettings
+     = [Prelude.Float]
+
+instance Data.ProtoLens.HasField "catchProbabilityBonus"
+         EquippedBadgeSettings EquippedBadgeSettings where
+        field _
+          = Lens.Family2.Unchecked.lens
+              _EquippedBadgeSettings'catchProbabilityBonus
+              (\ x__ y__ ->
+                 x__{_EquippedBadgeSettings'catchProbabilityBonus = y__})
+
+type instance
+     Data.ProtoLens.Field "fleeProbabilityBonus" EquippedBadgeSettings =
+     [Prelude.Float]
+
+instance Data.ProtoLens.HasField "fleeProbabilityBonus"
+         EquippedBadgeSettings EquippedBadgeSettings where
+        field _
+          = Lens.Family2.Unchecked.lens
+              _EquippedBadgeSettings'fleeProbabilityBonus
+              (\ x__ y__ ->
+                 x__{_EquippedBadgeSettings'fleeProbabilityBonus = y__})
+
+instance Data.Default.Class.Default EquippedBadgeSettings where
+        def
+          = EquippedBadgeSettings{_EquippedBadgeSettings'equipBadgeCooldownMs
+                                    = Data.ProtoLens.fieldDefault,
+                                  _EquippedBadgeSettings'catchProbabilityBonus = [],
+                                  _EquippedBadgeSettings'fleeProbabilityBonus = []}
+
+instance Data.ProtoLens.Message EquippedBadgeSettings where
+        descriptor
+          = let equipBadgeCooldownMs__field_descriptor
+                  = Data.ProtoLens.FieldDescriptor "equip_badge_cooldown_ms"
+                      (Data.ProtoLens.Int64Field ::
+                         Data.ProtoLens.FieldTypeDescriptor Data.Int.Int64)
+                      (Data.ProtoLens.PlainField Data.ProtoLens.Optional
+                         equipBadgeCooldownMs)
+                catchProbabilityBonus__field_descriptor
+                  = Data.ProtoLens.FieldDescriptor "catch_probability_bonus"
+                      (Data.ProtoLens.FloatField ::
+                         Data.ProtoLens.FieldTypeDescriptor Prelude.Float)
+                      (Data.ProtoLens.RepeatedField Data.ProtoLens.Unpacked
+                         catchProbabilityBonus)
+                fleeProbabilityBonus__field_descriptor
+                  = Data.ProtoLens.FieldDescriptor "flee_probability_bonus"
+                      (Data.ProtoLens.FloatField ::
+                         Data.ProtoLens.FieldTypeDescriptor Prelude.Float)
+                      (Data.ProtoLens.RepeatedField Data.ProtoLens.Unpacked
+                         fleeProbabilityBonus)
+              in
+              Data.ProtoLens.MessageDescriptor
+                (Data.Map.fromList
+                   [(Data.ProtoLens.Tag 1, equipBadgeCooldownMs__field_descriptor),
+                    (Data.ProtoLens.Tag 2, catchProbabilityBonus__field_descriptor),
+                    (Data.ProtoLens.Tag 3, fleeProbabilityBonus__field_descriptor)])
+                (Data.Map.fromList
+                   [("equip_badge_cooldown_ms",
+                     equipBadgeCooldownMs__field_descriptor),
+                    ("catch_probability_bonus",
+                     catchProbabilityBonus__field_descriptor),
+                    ("flee_probability_bonus",
+                     fleeProbabilityBonus__field_descriptor)])
+
+catchProbabilityBonus ::
+                      forall msg msg' .
+                        Data.ProtoLens.HasField "catchProbabilityBonus" msg msg' =>
+                        Lens.Family2.Lens msg msg'
+                          (Data.ProtoLens.Field "catchProbabilityBonus" msg)
+                          (Data.ProtoLens.Field "catchProbabilityBonus" msg')
+catchProbabilityBonus
+  = Data.ProtoLens.field
+      (Data.ProtoLens.ProxySym ::
+         Data.ProtoLens.ProxySym "catchProbabilityBonus")
+
+equipBadgeCooldownMs ::
+                     forall msg msg' .
+                       Data.ProtoLens.HasField "equipBadgeCooldownMs" msg msg' =>
+                       Lens.Family2.Lens msg msg'
+                         (Data.ProtoLens.Field "equipBadgeCooldownMs" msg)
+                         (Data.ProtoLens.Field "equipBadgeCooldownMs" msg')
+equipBadgeCooldownMs
+  = Data.ProtoLens.field
+      (Data.ProtoLens.ProxySym ::
+         Data.ProtoLens.ProxySym "equipBadgeCooldownMs")
+
+fleeProbabilityBonus ::
+                     forall msg msg' .
+                       Data.ProtoLens.HasField "fleeProbabilityBonus" msg msg' =>
+                       Lens.Family2.Lens msg msg'
+                         (Data.ProtoLens.Field "fleeProbabilityBonus" msg)
+                         (Data.ProtoLens.Field "fleeProbabilityBonus" msg')
+fleeProbabilityBonus
+  = Data.ProtoLens.field
+      (Data.ProtoLens.ProxySym ::
+         Data.ProtoLens.ProxySym "fleeProbabilityBonus")
diff --git a/src/Proto/POGOProtos/Settings/Master/GymBattleSettings.hs b/src/Proto/POGOProtos/Settings/Master/GymBattleSettings.hs
new file mode 100644
--- /dev/null
+++ b/src/Proto/POGOProtos/Settings/Master/GymBattleSettings.hs
@@ -0,0 +1,488 @@
+{- This file was auto-generated from POGOProtos/Settings/Master/GymBattleSettings.proto by the proto-lens-protoc program. -}
+{-# LANGUAGE ScopedTypeVariables, DataKinds, TypeFamilies,
+  MultiParamTypeClasses, FlexibleContexts, FlexibleInstances #-}
+{-# OPTIONS_GHC -fno-warn-unused-imports#-}
+module Proto.POGOProtos.Settings.Master.GymBattleSettings where
+import qualified Prelude
+import qualified Data.ProtoLens
+import qualified Data.ProtoLens.Message.Enum
+import qualified Lens.Family2
+import qualified Lens.Family2.Unchecked
+import qualified Data.Default.Class
+import qualified Data.Text
+import qualified Data.Int
+import qualified Data.Word
+import qualified Data.Map
+import qualified Data.ByteString
+
+data GymBattleSettings = GymBattleSettings{_GymBattleSettings'energyPerSec
+                                           :: Prelude.Float,
+                                           _GymBattleSettings'dodgeEnergyCost :: Prelude.Float,
+                                           _GymBattleSettings'retargetSeconds :: Prelude.Float,
+                                           _GymBattleSettings'enemyAttackInterval :: Prelude.Float,
+                                           _GymBattleSettings'attackServerInterval :: Prelude.Float,
+                                           _GymBattleSettings'roundDurationSeconds :: Prelude.Float,
+                                           _GymBattleSettings'bonusTimePerAllySeconds ::
+                                           Prelude.Float,
+                                           _GymBattleSettings'maximumAttackersPerBattle ::
+                                           Data.Int.Int32,
+                                           _GymBattleSettings'sameTypeAttackBonusMultiplier ::
+                                           Prelude.Float,
+                                           _GymBattleSettings'maximumEnergy :: Data.Int.Int32,
+                                           _GymBattleSettings'energyDeltaPerHealthLost ::
+                                           Prelude.Float,
+                                           _GymBattleSettings'dodgeDurationMs :: Data.Int.Int32,
+                                           _GymBattleSettings'minimumPlayerLevel :: Data.Int.Int32,
+                                           _GymBattleSettings'swapDurationMs :: Data.Int.Int32}
+                       deriving (Prelude.Show, Prelude.Eq)
+
+type instance Data.ProtoLens.Field "energyPerSec" GymBattleSettings
+     = Prelude.Float
+
+instance Data.ProtoLens.HasField "energyPerSec" GymBattleSettings
+         GymBattleSettings where
+        field _
+          = Lens.Family2.Unchecked.lens _GymBattleSettings'energyPerSec
+              (\ x__ y__ -> x__{_GymBattleSettings'energyPerSec = y__})
+
+type instance
+     Data.ProtoLens.Field "dodgeEnergyCost" GymBattleSettings =
+     Prelude.Float
+
+instance Data.ProtoLens.HasField "dodgeEnergyCost"
+         GymBattleSettings GymBattleSettings where
+        field _
+          = Lens.Family2.Unchecked.lens _GymBattleSettings'dodgeEnergyCost
+              (\ x__ y__ -> x__{_GymBattleSettings'dodgeEnergyCost = y__})
+
+type instance
+     Data.ProtoLens.Field "retargetSeconds" GymBattleSettings =
+     Prelude.Float
+
+instance Data.ProtoLens.HasField "retargetSeconds"
+         GymBattleSettings GymBattleSettings where
+        field _
+          = Lens.Family2.Unchecked.lens _GymBattleSettings'retargetSeconds
+              (\ x__ y__ -> x__{_GymBattleSettings'retargetSeconds = y__})
+
+type instance
+     Data.ProtoLens.Field "enemyAttackInterval" GymBattleSettings =
+     Prelude.Float
+
+instance Data.ProtoLens.HasField "enemyAttackInterval"
+         GymBattleSettings GymBattleSettings where
+        field _
+          = Lens.Family2.Unchecked.lens
+              _GymBattleSettings'enemyAttackInterval
+              (\ x__ y__ -> x__{_GymBattleSettings'enemyAttackInterval = y__})
+
+type instance
+     Data.ProtoLens.Field "attackServerInterval" GymBattleSettings =
+     Prelude.Float
+
+instance Data.ProtoLens.HasField "attackServerInterval"
+         GymBattleSettings GymBattleSettings where
+        field _
+          = Lens.Family2.Unchecked.lens
+              _GymBattleSettings'attackServerInterval
+              (\ x__ y__ -> x__{_GymBattleSettings'attackServerInterval = y__})
+
+type instance
+     Data.ProtoLens.Field "roundDurationSeconds" GymBattleSettings =
+     Prelude.Float
+
+instance Data.ProtoLens.HasField "roundDurationSeconds"
+         GymBattleSettings GymBattleSettings where
+        field _
+          = Lens.Family2.Unchecked.lens
+              _GymBattleSettings'roundDurationSeconds
+              (\ x__ y__ -> x__{_GymBattleSettings'roundDurationSeconds = y__})
+
+type instance
+     Data.ProtoLens.Field "bonusTimePerAllySeconds" GymBattleSettings =
+     Prelude.Float
+
+instance Data.ProtoLens.HasField "bonusTimePerAllySeconds"
+         GymBattleSettings GymBattleSettings where
+        field _
+          = Lens.Family2.Unchecked.lens
+              _GymBattleSettings'bonusTimePerAllySeconds
+              (\ x__ y__ ->
+                 x__{_GymBattleSettings'bonusTimePerAllySeconds = y__})
+
+type instance
+     Data.ProtoLens.Field "maximumAttackersPerBattle" GymBattleSettings
+     = Data.Int.Int32
+
+instance Data.ProtoLens.HasField "maximumAttackersPerBattle"
+         GymBattleSettings GymBattleSettings where
+        field _
+          = Lens.Family2.Unchecked.lens
+              _GymBattleSettings'maximumAttackersPerBattle
+              (\ x__ y__ ->
+                 x__{_GymBattleSettings'maximumAttackersPerBattle = y__})
+
+type instance
+     Data.ProtoLens.Field "sameTypeAttackBonusMultiplier"
+       GymBattleSettings
+     = Prelude.Float
+
+instance Data.ProtoLens.HasField "sameTypeAttackBonusMultiplier"
+         GymBattleSettings GymBattleSettings where
+        field _
+          = Lens.Family2.Unchecked.lens
+              _GymBattleSettings'sameTypeAttackBonusMultiplier
+              (\ x__ y__ ->
+                 x__{_GymBattleSettings'sameTypeAttackBonusMultiplier = y__})
+
+type instance
+     Data.ProtoLens.Field "maximumEnergy" GymBattleSettings =
+     Data.Int.Int32
+
+instance Data.ProtoLens.HasField "maximumEnergy" GymBattleSettings
+         GymBattleSettings where
+        field _
+          = Lens.Family2.Unchecked.lens _GymBattleSettings'maximumEnergy
+              (\ x__ y__ -> x__{_GymBattleSettings'maximumEnergy = y__})
+
+type instance
+     Data.ProtoLens.Field "energyDeltaPerHealthLost" GymBattleSettings =
+     Prelude.Float
+
+instance Data.ProtoLens.HasField "energyDeltaPerHealthLost"
+         GymBattleSettings GymBattleSettings where
+        field _
+          = Lens.Family2.Unchecked.lens
+              _GymBattleSettings'energyDeltaPerHealthLost
+              (\ x__ y__ ->
+                 x__{_GymBattleSettings'energyDeltaPerHealthLost = y__})
+
+type instance
+     Data.ProtoLens.Field "dodgeDurationMs" GymBattleSettings =
+     Data.Int.Int32
+
+instance Data.ProtoLens.HasField "dodgeDurationMs"
+         GymBattleSettings GymBattleSettings where
+        field _
+          = Lens.Family2.Unchecked.lens _GymBattleSettings'dodgeDurationMs
+              (\ x__ y__ -> x__{_GymBattleSettings'dodgeDurationMs = y__})
+
+type instance
+     Data.ProtoLens.Field "minimumPlayerLevel" GymBattleSettings =
+     Data.Int.Int32
+
+instance Data.ProtoLens.HasField "minimumPlayerLevel"
+         GymBattleSettings GymBattleSettings where
+        field _
+          = Lens.Family2.Unchecked.lens _GymBattleSettings'minimumPlayerLevel
+              (\ x__ y__ -> x__{_GymBattleSettings'minimumPlayerLevel = y__})
+
+type instance
+     Data.ProtoLens.Field "swapDurationMs" GymBattleSettings =
+     Data.Int.Int32
+
+instance Data.ProtoLens.HasField "swapDurationMs" GymBattleSettings
+         GymBattleSettings where
+        field _
+          = Lens.Family2.Unchecked.lens _GymBattleSettings'swapDurationMs
+              (\ x__ y__ -> x__{_GymBattleSettings'swapDurationMs = y__})
+
+instance Data.Default.Class.Default GymBattleSettings where
+        def
+          = GymBattleSettings{_GymBattleSettings'energyPerSec =
+                                Data.ProtoLens.fieldDefault,
+                              _GymBattleSettings'dodgeEnergyCost = Data.ProtoLens.fieldDefault,
+                              _GymBattleSettings'retargetSeconds = Data.ProtoLens.fieldDefault,
+                              _GymBattleSettings'enemyAttackInterval =
+                                Data.ProtoLens.fieldDefault,
+                              _GymBattleSettings'attackServerInterval =
+                                Data.ProtoLens.fieldDefault,
+                              _GymBattleSettings'roundDurationSeconds =
+                                Data.ProtoLens.fieldDefault,
+                              _GymBattleSettings'bonusTimePerAllySeconds =
+                                Data.ProtoLens.fieldDefault,
+                              _GymBattleSettings'maximumAttackersPerBattle =
+                                Data.ProtoLens.fieldDefault,
+                              _GymBattleSettings'sameTypeAttackBonusMultiplier =
+                                Data.ProtoLens.fieldDefault,
+                              _GymBattleSettings'maximumEnergy = Data.ProtoLens.fieldDefault,
+                              _GymBattleSettings'energyDeltaPerHealthLost =
+                                Data.ProtoLens.fieldDefault,
+                              _GymBattleSettings'dodgeDurationMs = Data.ProtoLens.fieldDefault,
+                              _GymBattleSettings'minimumPlayerLevel =
+                                Data.ProtoLens.fieldDefault,
+                              _GymBattleSettings'swapDurationMs = Data.ProtoLens.fieldDefault}
+
+instance Data.ProtoLens.Message GymBattleSettings where
+        descriptor
+          = let energyPerSec__field_descriptor
+                  = Data.ProtoLens.FieldDescriptor "energy_per_sec"
+                      (Data.ProtoLens.FloatField ::
+                         Data.ProtoLens.FieldTypeDescriptor Prelude.Float)
+                      (Data.ProtoLens.PlainField Data.ProtoLens.Optional energyPerSec)
+                dodgeEnergyCost__field_descriptor
+                  = Data.ProtoLens.FieldDescriptor "dodge_energy_cost"
+                      (Data.ProtoLens.FloatField ::
+                         Data.ProtoLens.FieldTypeDescriptor Prelude.Float)
+                      (Data.ProtoLens.PlainField Data.ProtoLens.Optional dodgeEnergyCost)
+                retargetSeconds__field_descriptor
+                  = Data.ProtoLens.FieldDescriptor "retarget_seconds"
+                      (Data.ProtoLens.FloatField ::
+                         Data.ProtoLens.FieldTypeDescriptor Prelude.Float)
+                      (Data.ProtoLens.PlainField Data.ProtoLens.Optional retargetSeconds)
+                enemyAttackInterval__field_descriptor
+                  = Data.ProtoLens.FieldDescriptor "enemy_attack_interval"
+                      (Data.ProtoLens.FloatField ::
+                         Data.ProtoLens.FieldTypeDescriptor Prelude.Float)
+                      (Data.ProtoLens.PlainField Data.ProtoLens.Optional
+                         enemyAttackInterval)
+                attackServerInterval__field_descriptor
+                  = Data.ProtoLens.FieldDescriptor "attack_server_interval"
+                      (Data.ProtoLens.FloatField ::
+                         Data.ProtoLens.FieldTypeDescriptor Prelude.Float)
+                      (Data.ProtoLens.PlainField Data.ProtoLens.Optional
+                         attackServerInterval)
+                roundDurationSeconds__field_descriptor
+                  = Data.ProtoLens.FieldDescriptor "round_duration_seconds"
+                      (Data.ProtoLens.FloatField ::
+                         Data.ProtoLens.FieldTypeDescriptor Prelude.Float)
+                      (Data.ProtoLens.PlainField Data.ProtoLens.Optional
+                         roundDurationSeconds)
+                bonusTimePerAllySeconds__field_descriptor
+                  = Data.ProtoLens.FieldDescriptor "bonus_time_per_ally_seconds"
+                      (Data.ProtoLens.FloatField ::
+                         Data.ProtoLens.FieldTypeDescriptor Prelude.Float)
+                      (Data.ProtoLens.PlainField Data.ProtoLens.Optional
+                         bonusTimePerAllySeconds)
+                maximumAttackersPerBattle__field_descriptor
+                  = Data.ProtoLens.FieldDescriptor "maximum_attackers_per_battle"
+                      (Data.ProtoLens.Int32Field ::
+                         Data.ProtoLens.FieldTypeDescriptor Data.Int.Int32)
+                      (Data.ProtoLens.PlainField Data.ProtoLens.Optional
+                         maximumAttackersPerBattle)
+                sameTypeAttackBonusMultiplier__field_descriptor
+                  = Data.ProtoLens.FieldDescriptor
+                      "same_type_attack_bonus_multiplier"
+                      (Data.ProtoLens.FloatField ::
+                         Data.ProtoLens.FieldTypeDescriptor Prelude.Float)
+                      (Data.ProtoLens.PlainField Data.ProtoLens.Optional
+                         sameTypeAttackBonusMultiplier)
+                maximumEnergy__field_descriptor
+                  = Data.ProtoLens.FieldDescriptor "maximum_energy"
+                      (Data.ProtoLens.Int32Field ::
+                         Data.ProtoLens.FieldTypeDescriptor Data.Int.Int32)
+                      (Data.ProtoLens.PlainField Data.ProtoLens.Optional maximumEnergy)
+                energyDeltaPerHealthLost__field_descriptor
+                  = Data.ProtoLens.FieldDescriptor "energy_delta_per_health_lost"
+                      (Data.ProtoLens.FloatField ::
+                         Data.ProtoLens.FieldTypeDescriptor Prelude.Float)
+                      (Data.ProtoLens.PlainField Data.ProtoLens.Optional
+                         energyDeltaPerHealthLost)
+                dodgeDurationMs__field_descriptor
+                  = Data.ProtoLens.FieldDescriptor "dodge_duration_ms"
+                      (Data.ProtoLens.Int32Field ::
+                         Data.ProtoLens.FieldTypeDescriptor Data.Int.Int32)
+                      (Data.ProtoLens.PlainField Data.ProtoLens.Optional dodgeDurationMs)
+                minimumPlayerLevel__field_descriptor
+                  = Data.ProtoLens.FieldDescriptor "minimum_player_level"
+                      (Data.ProtoLens.Int32Field ::
+                         Data.ProtoLens.FieldTypeDescriptor Data.Int.Int32)
+                      (Data.ProtoLens.PlainField Data.ProtoLens.Optional
+                         minimumPlayerLevel)
+                swapDurationMs__field_descriptor
+                  = Data.ProtoLens.FieldDescriptor "swap_duration_ms"
+                      (Data.ProtoLens.Int32Field ::
+                         Data.ProtoLens.FieldTypeDescriptor Data.Int.Int32)
+                      (Data.ProtoLens.PlainField Data.ProtoLens.Optional swapDurationMs)
+              in
+              Data.ProtoLens.MessageDescriptor
+                (Data.Map.fromList
+                   [(Data.ProtoLens.Tag 1, energyPerSec__field_descriptor),
+                    (Data.ProtoLens.Tag 2, dodgeEnergyCost__field_descriptor),
+                    (Data.ProtoLens.Tag 3, retargetSeconds__field_descriptor),
+                    (Data.ProtoLens.Tag 4, enemyAttackInterval__field_descriptor),
+                    (Data.ProtoLens.Tag 5, attackServerInterval__field_descriptor),
+                    (Data.ProtoLens.Tag 6, roundDurationSeconds__field_descriptor),
+                    (Data.ProtoLens.Tag 7, bonusTimePerAllySeconds__field_descriptor),
+                    (Data.ProtoLens.Tag 8,
+                     maximumAttackersPerBattle__field_descriptor),
+                    (Data.ProtoLens.Tag 9,
+                     sameTypeAttackBonusMultiplier__field_descriptor),
+                    (Data.ProtoLens.Tag 10, maximumEnergy__field_descriptor),
+                    (Data.ProtoLens.Tag 11,
+                     energyDeltaPerHealthLost__field_descriptor),
+                    (Data.ProtoLens.Tag 12, dodgeDurationMs__field_descriptor),
+                    (Data.ProtoLens.Tag 13, minimumPlayerLevel__field_descriptor),
+                    (Data.ProtoLens.Tag 14, swapDurationMs__field_descriptor)])
+                (Data.Map.fromList
+                   [("energy_per_sec", energyPerSec__field_descriptor),
+                    ("dodge_energy_cost", dodgeEnergyCost__field_descriptor),
+                    ("retarget_seconds", retargetSeconds__field_descriptor),
+                    ("enemy_attack_interval", enemyAttackInterval__field_descriptor),
+                    ("attack_server_interval", attackServerInterval__field_descriptor),
+                    ("round_duration_seconds", roundDurationSeconds__field_descriptor),
+                    ("bonus_time_per_ally_seconds",
+                     bonusTimePerAllySeconds__field_descriptor),
+                    ("maximum_attackers_per_battle",
+                     maximumAttackersPerBattle__field_descriptor),
+                    ("same_type_attack_bonus_multiplier",
+                     sameTypeAttackBonusMultiplier__field_descriptor),
+                    ("maximum_energy", maximumEnergy__field_descriptor),
+                    ("energy_delta_per_health_lost",
+                     energyDeltaPerHealthLost__field_descriptor),
+                    ("dodge_duration_ms", dodgeDurationMs__field_descriptor),
+                    ("minimum_player_level", minimumPlayerLevel__field_descriptor),
+                    ("swap_duration_ms", swapDurationMs__field_descriptor)])
+
+attackServerInterval ::
+                     forall msg msg' .
+                       Data.ProtoLens.HasField "attackServerInterval" msg msg' =>
+                       Lens.Family2.Lens msg msg'
+                         (Data.ProtoLens.Field "attackServerInterval" msg)
+                         (Data.ProtoLens.Field "attackServerInterval" msg')
+attackServerInterval
+  = Data.ProtoLens.field
+      (Data.ProtoLens.ProxySym ::
+         Data.ProtoLens.ProxySym "attackServerInterval")
+
+bonusTimePerAllySeconds ::
+                        forall msg msg' .
+                          Data.ProtoLens.HasField "bonusTimePerAllySeconds" msg msg' =>
+                          Lens.Family2.Lens msg msg'
+                            (Data.ProtoLens.Field "bonusTimePerAllySeconds" msg)
+                            (Data.ProtoLens.Field "bonusTimePerAllySeconds" msg')
+bonusTimePerAllySeconds
+  = Data.ProtoLens.field
+      (Data.ProtoLens.ProxySym ::
+         Data.ProtoLens.ProxySym "bonusTimePerAllySeconds")
+
+dodgeDurationMs ::
+                forall msg msg' .
+                  Data.ProtoLens.HasField "dodgeDurationMs" msg msg' =>
+                  Lens.Family2.Lens msg msg'
+                    (Data.ProtoLens.Field "dodgeDurationMs" msg)
+                    (Data.ProtoLens.Field "dodgeDurationMs" msg')
+dodgeDurationMs
+  = Data.ProtoLens.field
+      (Data.ProtoLens.ProxySym ::
+         Data.ProtoLens.ProxySym "dodgeDurationMs")
+
+dodgeEnergyCost ::
+                forall msg msg' .
+                  Data.ProtoLens.HasField "dodgeEnergyCost" msg msg' =>
+                  Lens.Family2.Lens msg msg'
+                    (Data.ProtoLens.Field "dodgeEnergyCost" msg)
+                    (Data.ProtoLens.Field "dodgeEnergyCost" msg')
+dodgeEnergyCost
+  = Data.ProtoLens.field
+      (Data.ProtoLens.ProxySym ::
+         Data.ProtoLens.ProxySym "dodgeEnergyCost")
+
+enemyAttackInterval ::
+                    forall msg msg' .
+                      Data.ProtoLens.HasField "enemyAttackInterval" msg msg' =>
+                      Lens.Family2.Lens msg msg'
+                        (Data.ProtoLens.Field "enemyAttackInterval" msg)
+                        (Data.ProtoLens.Field "enemyAttackInterval" msg')
+enemyAttackInterval
+  = Data.ProtoLens.field
+      (Data.ProtoLens.ProxySym ::
+         Data.ProtoLens.ProxySym "enemyAttackInterval")
+
+energyDeltaPerHealthLost ::
+                         forall msg msg' .
+                           Data.ProtoLens.HasField "energyDeltaPerHealthLost" msg msg' =>
+                           Lens.Family2.Lens msg msg'
+                             (Data.ProtoLens.Field "energyDeltaPerHealthLost" msg)
+                             (Data.ProtoLens.Field "energyDeltaPerHealthLost" msg')
+energyDeltaPerHealthLost
+  = Data.ProtoLens.field
+      (Data.ProtoLens.ProxySym ::
+         Data.ProtoLens.ProxySym "energyDeltaPerHealthLost")
+
+energyPerSec ::
+             forall msg msg' .
+               Data.ProtoLens.HasField "energyPerSec" msg msg' =>
+               Lens.Family2.Lens msg msg'
+                 (Data.ProtoLens.Field "energyPerSec" msg)
+                 (Data.ProtoLens.Field "energyPerSec" msg')
+energyPerSec
+  = Data.ProtoLens.field
+      (Data.ProtoLens.ProxySym :: Data.ProtoLens.ProxySym "energyPerSec")
+
+maximumAttackersPerBattle ::
+                          forall msg msg' .
+                            Data.ProtoLens.HasField "maximumAttackersPerBattle" msg msg' =>
+                            Lens.Family2.Lens msg msg'
+                              (Data.ProtoLens.Field "maximumAttackersPerBattle" msg)
+                              (Data.ProtoLens.Field "maximumAttackersPerBattle" msg')
+maximumAttackersPerBattle
+  = Data.ProtoLens.field
+      (Data.ProtoLens.ProxySym ::
+         Data.ProtoLens.ProxySym "maximumAttackersPerBattle")
+
+maximumEnergy ::
+              forall msg msg' .
+                Data.ProtoLens.HasField "maximumEnergy" msg msg' =>
+                Lens.Family2.Lens msg msg'
+                  (Data.ProtoLens.Field "maximumEnergy" msg)
+                  (Data.ProtoLens.Field "maximumEnergy" msg')
+maximumEnergy
+  = Data.ProtoLens.field
+      (Data.ProtoLens.ProxySym ::
+         Data.ProtoLens.ProxySym "maximumEnergy")
+
+minimumPlayerLevel ::
+                   forall msg msg' .
+                     Data.ProtoLens.HasField "minimumPlayerLevel" msg msg' =>
+                     Lens.Family2.Lens msg msg'
+                       (Data.ProtoLens.Field "minimumPlayerLevel" msg)
+                       (Data.ProtoLens.Field "minimumPlayerLevel" msg')
+minimumPlayerLevel
+  = Data.ProtoLens.field
+      (Data.ProtoLens.ProxySym ::
+         Data.ProtoLens.ProxySym "minimumPlayerLevel")
+
+retargetSeconds ::
+                forall msg msg' .
+                  Data.ProtoLens.HasField "retargetSeconds" msg msg' =>
+                  Lens.Family2.Lens msg msg'
+                    (Data.ProtoLens.Field "retargetSeconds" msg)
+                    (Data.ProtoLens.Field "retargetSeconds" msg')
+retargetSeconds
+  = Data.ProtoLens.field
+      (Data.ProtoLens.ProxySym ::
+         Data.ProtoLens.ProxySym "retargetSeconds")
+
+roundDurationSeconds ::
+                     forall msg msg' .
+                       Data.ProtoLens.HasField "roundDurationSeconds" msg msg' =>
+                       Lens.Family2.Lens msg msg'
+                         (Data.ProtoLens.Field "roundDurationSeconds" msg)
+                         (Data.ProtoLens.Field "roundDurationSeconds" msg')
+roundDurationSeconds
+  = Data.ProtoLens.field
+      (Data.ProtoLens.ProxySym ::
+         Data.ProtoLens.ProxySym "roundDurationSeconds")
+
+sameTypeAttackBonusMultiplier ::
+                              forall msg msg' .
+                                Data.ProtoLens.HasField "sameTypeAttackBonusMultiplier" msg msg' =>
+                                Lens.Family2.Lens msg msg'
+                                  (Data.ProtoLens.Field "sameTypeAttackBonusMultiplier" msg)
+                                  (Data.ProtoLens.Field "sameTypeAttackBonusMultiplier" msg')
+sameTypeAttackBonusMultiplier
+  = Data.ProtoLens.field
+      (Data.ProtoLens.ProxySym ::
+         Data.ProtoLens.ProxySym "sameTypeAttackBonusMultiplier")
+
+swapDurationMs ::
+               forall msg msg' .
+                 Data.ProtoLens.HasField "swapDurationMs" msg msg' =>
+                 Lens.Family2.Lens msg msg'
+                   (Data.ProtoLens.Field "swapDurationMs" msg)
+                   (Data.ProtoLens.Field "swapDurationMs" msg')
+swapDurationMs
+  = Data.ProtoLens.field
+      (Data.ProtoLens.ProxySym ::
+         Data.ProtoLens.ProxySym "swapDurationMs")
diff --git a/src/Proto/POGOProtos/Settings/Master/GymLevelSettings.hs b/src/Proto/POGOProtos/Settings/Master/GymLevelSettings.hs
new file mode 100644
--- /dev/null
+++ b/src/Proto/POGOProtos/Settings/Master/GymLevelSettings.hs
@@ -0,0 +1,145 @@
+{- This file was auto-generated from POGOProtos/Settings/Master/GymLevelSettings.proto by the proto-lens-protoc program. -}
+{-# LANGUAGE ScopedTypeVariables, DataKinds, TypeFamilies,
+  MultiParamTypeClasses, FlexibleContexts, FlexibleInstances #-}
+{-# OPTIONS_GHC -fno-warn-unused-imports#-}
+module Proto.POGOProtos.Settings.Master.GymLevelSettings where
+import qualified Prelude
+import qualified Data.ProtoLens
+import qualified Data.ProtoLens.Message.Enum
+import qualified Lens.Family2
+import qualified Lens.Family2.Unchecked
+import qualified Data.Default.Class
+import qualified Data.Text
+import qualified Data.Int
+import qualified Data.Word
+import qualified Data.Map
+import qualified Data.ByteString
+
+data GymLevelSettings = GymLevelSettings{_GymLevelSettings'requiredExperience
+                                         :: [Data.Int.Int32],
+                                         _GymLevelSettings'leaderSlots :: [Data.Int.Int32],
+                                         _GymLevelSettings'trainerSlots :: [Data.Int.Int32],
+                                         _GymLevelSettings'searchRollBonus :: [Data.Int.Int32]}
+                      deriving (Prelude.Show, Prelude.Eq)
+
+type instance
+     Data.ProtoLens.Field "requiredExperience" GymLevelSettings =
+     [Data.Int.Int32]
+
+instance Data.ProtoLens.HasField "requiredExperience"
+         GymLevelSettings GymLevelSettings where
+        field _
+          = Lens.Family2.Unchecked.lens _GymLevelSettings'requiredExperience
+              (\ x__ y__ -> x__{_GymLevelSettings'requiredExperience = y__})
+
+type instance Data.ProtoLens.Field "leaderSlots" GymLevelSettings =
+     [Data.Int.Int32]
+
+instance Data.ProtoLens.HasField "leaderSlots" GymLevelSettings
+         GymLevelSettings where
+        field _
+          = Lens.Family2.Unchecked.lens _GymLevelSettings'leaderSlots
+              (\ x__ y__ -> x__{_GymLevelSettings'leaderSlots = y__})
+
+type instance Data.ProtoLens.Field "trainerSlots" GymLevelSettings
+     = [Data.Int.Int32]
+
+instance Data.ProtoLens.HasField "trainerSlots" GymLevelSettings
+         GymLevelSettings where
+        field _
+          = Lens.Family2.Unchecked.lens _GymLevelSettings'trainerSlots
+              (\ x__ y__ -> x__{_GymLevelSettings'trainerSlots = y__})
+
+type instance
+     Data.ProtoLens.Field "searchRollBonus" GymLevelSettings =
+     [Data.Int.Int32]
+
+instance Data.ProtoLens.HasField "searchRollBonus" GymLevelSettings
+         GymLevelSettings where
+        field _
+          = Lens.Family2.Unchecked.lens _GymLevelSettings'searchRollBonus
+              (\ x__ y__ -> x__{_GymLevelSettings'searchRollBonus = y__})
+
+instance Data.Default.Class.Default GymLevelSettings where
+        def
+          = GymLevelSettings{_GymLevelSettings'requiredExperience = [],
+                             _GymLevelSettings'leaderSlots = [],
+                             _GymLevelSettings'trainerSlots = [],
+                             _GymLevelSettings'searchRollBonus = []}
+
+instance Data.ProtoLens.Message GymLevelSettings where
+        descriptor
+          = let requiredExperience__field_descriptor
+                  = Data.ProtoLens.FieldDescriptor "required_experience"
+                      (Data.ProtoLens.Int32Field ::
+                         Data.ProtoLens.FieldTypeDescriptor Data.Int.Int32)
+                      (Data.ProtoLens.RepeatedField Data.ProtoLens.Unpacked
+                         requiredExperience)
+                leaderSlots__field_descriptor
+                  = Data.ProtoLens.FieldDescriptor "leader_slots"
+                      (Data.ProtoLens.Int32Field ::
+                         Data.ProtoLens.FieldTypeDescriptor Data.Int.Int32)
+                      (Data.ProtoLens.RepeatedField Data.ProtoLens.Unpacked leaderSlots)
+                trainerSlots__field_descriptor
+                  = Data.ProtoLens.FieldDescriptor "trainer_slots"
+                      (Data.ProtoLens.Int32Field ::
+                         Data.ProtoLens.FieldTypeDescriptor Data.Int.Int32)
+                      (Data.ProtoLens.RepeatedField Data.ProtoLens.Unpacked trainerSlots)
+                searchRollBonus__field_descriptor
+                  = Data.ProtoLens.FieldDescriptor "search_roll_bonus"
+                      (Data.ProtoLens.Int32Field ::
+                         Data.ProtoLens.FieldTypeDescriptor Data.Int.Int32)
+                      (Data.ProtoLens.RepeatedField Data.ProtoLens.Unpacked
+                         searchRollBonus)
+              in
+              Data.ProtoLens.MessageDescriptor
+                (Data.Map.fromList
+                   [(Data.ProtoLens.Tag 1, requiredExperience__field_descriptor),
+                    (Data.ProtoLens.Tag 2, leaderSlots__field_descriptor),
+                    (Data.ProtoLens.Tag 3, trainerSlots__field_descriptor),
+                    (Data.ProtoLens.Tag 4, searchRollBonus__field_descriptor)])
+                (Data.Map.fromList
+                   [("required_experience", requiredExperience__field_descriptor),
+                    ("leader_slots", leaderSlots__field_descriptor),
+                    ("trainer_slots", trainerSlots__field_descriptor),
+                    ("search_roll_bonus", searchRollBonus__field_descriptor)])
+
+leaderSlots ::
+            forall msg msg' . Data.ProtoLens.HasField "leaderSlots" msg msg' =>
+              Lens.Family2.Lens msg msg' (Data.ProtoLens.Field "leaderSlots" msg)
+                (Data.ProtoLens.Field "leaderSlots" msg')
+leaderSlots
+  = Data.ProtoLens.field
+      (Data.ProtoLens.ProxySym :: Data.ProtoLens.ProxySym "leaderSlots")
+
+requiredExperience ::
+                   forall msg msg' .
+                     Data.ProtoLens.HasField "requiredExperience" msg msg' =>
+                     Lens.Family2.Lens msg msg'
+                       (Data.ProtoLens.Field "requiredExperience" msg)
+                       (Data.ProtoLens.Field "requiredExperience" msg')
+requiredExperience
+  = Data.ProtoLens.field
+      (Data.ProtoLens.ProxySym ::
+         Data.ProtoLens.ProxySym "requiredExperience")
+
+searchRollBonus ::
+                forall msg msg' .
+                  Data.ProtoLens.HasField "searchRollBonus" msg msg' =>
+                  Lens.Family2.Lens msg msg'
+                    (Data.ProtoLens.Field "searchRollBonus" msg)
+                    (Data.ProtoLens.Field "searchRollBonus" msg')
+searchRollBonus
+  = Data.ProtoLens.field
+      (Data.ProtoLens.ProxySym ::
+         Data.ProtoLens.ProxySym "searchRollBonus")
+
+trainerSlots ::
+             forall msg msg' .
+               Data.ProtoLens.HasField "trainerSlots" msg msg' =>
+               Lens.Family2.Lens msg msg'
+                 (Data.ProtoLens.Field "trainerSlots" msg)
+                 (Data.ProtoLens.Field "trainerSlots" msg')
+trainerSlots
+  = Data.ProtoLens.field
+      (Data.ProtoLens.ProxySym :: Data.ProtoLens.ProxySym "trainerSlots")
diff --git a/src/Proto/POGOProtos/Settings/Master/IapItemDisplay.hs b/src/Proto/POGOProtos/Settings/Master/IapItemDisplay.hs
new file mode 100644
--- /dev/null
+++ b/src/Proto/POGOProtos/Settings/Master/IapItemDisplay.hs
@@ -0,0 +1,164 @@
+{- This file was auto-generated from POGOProtos/Settings/Master/IapItemDisplay.proto by the proto-lens-protoc program. -}
+{-# LANGUAGE ScopedTypeVariables, DataKinds, TypeFamilies,
+  MultiParamTypeClasses, FlexibleContexts, FlexibleInstances #-}
+{-# OPTIONS_GHC -fno-warn-unused-imports#-}
+module Proto.POGOProtos.Settings.Master.IapItemDisplay where
+import qualified Prelude
+import qualified Data.ProtoLens
+import qualified Data.ProtoLens.Message.Enum
+import qualified Lens.Family2
+import qualified Lens.Family2.Unchecked
+import qualified Data.Default.Class
+import qualified Data.Text
+import qualified Data.Int
+import qualified Data.Word
+import qualified Data.Map
+import qualified Data.ByteString
+import qualified Proto.POGOProtos.Enums.IapItemCategory
+import qualified Proto.POGOProtos.Inventory.Item.ItemId
+
+data IapItemDisplay = IapItemDisplay{_IapItemDisplay'sku ::
+                                     Data.Text.Text,
+                                     _IapItemDisplay'category ::
+                                     Proto.POGOProtos.Enums.IapItemCategory.HoloIapItemCategory,
+                                     _IapItemDisplay'sortOrder :: Data.Int.Int32,
+                                     _IapItemDisplay'itemIds ::
+                                     [Proto.POGOProtos.Inventory.Item.ItemId.ItemId],
+                                     _IapItemDisplay'counts :: [Data.Int.Int32]}
+                    deriving (Prelude.Show, Prelude.Eq)
+
+type instance Data.ProtoLens.Field "sku" IapItemDisplay =
+     Data.Text.Text
+
+instance Data.ProtoLens.HasField "sku" IapItemDisplay
+         IapItemDisplay where
+        field _
+          = Lens.Family2.Unchecked.lens _IapItemDisplay'sku
+              (\ x__ y__ -> x__{_IapItemDisplay'sku = y__})
+
+type instance Data.ProtoLens.Field "category" IapItemDisplay =
+     Proto.POGOProtos.Enums.IapItemCategory.HoloIapItemCategory
+
+instance Data.ProtoLens.HasField "category" IapItemDisplay
+         IapItemDisplay where
+        field _
+          = Lens.Family2.Unchecked.lens _IapItemDisplay'category
+              (\ x__ y__ -> x__{_IapItemDisplay'category = y__})
+
+type instance Data.ProtoLens.Field "sortOrder" IapItemDisplay =
+     Data.Int.Int32
+
+instance Data.ProtoLens.HasField "sortOrder" IapItemDisplay
+         IapItemDisplay where
+        field _
+          = Lens.Family2.Unchecked.lens _IapItemDisplay'sortOrder
+              (\ x__ y__ -> x__{_IapItemDisplay'sortOrder = y__})
+
+type instance Data.ProtoLens.Field "itemIds" IapItemDisplay =
+     [Proto.POGOProtos.Inventory.Item.ItemId.ItemId]
+
+instance Data.ProtoLens.HasField "itemIds" IapItemDisplay
+         IapItemDisplay where
+        field _
+          = Lens.Family2.Unchecked.lens _IapItemDisplay'itemIds
+              (\ x__ y__ -> x__{_IapItemDisplay'itemIds = y__})
+
+type instance Data.ProtoLens.Field "counts" IapItemDisplay =
+     [Data.Int.Int32]
+
+instance Data.ProtoLens.HasField "counts" IapItemDisplay
+         IapItemDisplay where
+        field _
+          = Lens.Family2.Unchecked.lens _IapItemDisplay'counts
+              (\ x__ y__ -> x__{_IapItemDisplay'counts = y__})
+
+instance Data.Default.Class.Default IapItemDisplay where
+        def
+          = IapItemDisplay{_IapItemDisplay'sku = Data.ProtoLens.fieldDefault,
+                           _IapItemDisplay'category = Data.Default.Class.def,
+                           _IapItemDisplay'sortOrder = Data.ProtoLens.fieldDefault,
+                           _IapItemDisplay'itemIds = [], _IapItemDisplay'counts = []}
+
+instance Data.ProtoLens.Message IapItemDisplay where
+        descriptor
+          = let sku__field_descriptor
+                  = Data.ProtoLens.FieldDescriptor "sku"
+                      (Data.ProtoLens.StringField ::
+                         Data.ProtoLens.FieldTypeDescriptor Data.Text.Text)
+                      (Data.ProtoLens.PlainField Data.ProtoLens.Optional sku)
+                category__field_descriptor
+                  = Data.ProtoLens.FieldDescriptor "category"
+                      (Data.ProtoLens.EnumField ::
+                         Data.ProtoLens.FieldTypeDescriptor
+                           Proto.POGOProtos.Enums.IapItemCategory.HoloIapItemCategory)
+                      (Data.ProtoLens.PlainField Data.ProtoLens.Optional category)
+                sortOrder__field_descriptor
+                  = Data.ProtoLens.FieldDescriptor "sort_order"
+                      (Data.ProtoLens.Int32Field ::
+                         Data.ProtoLens.FieldTypeDescriptor Data.Int.Int32)
+                      (Data.ProtoLens.PlainField Data.ProtoLens.Optional sortOrder)
+                itemIds__field_descriptor
+                  = Data.ProtoLens.FieldDescriptor "item_ids"
+                      (Data.ProtoLens.EnumField ::
+                         Data.ProtoLens.FieldTypeDescriptor
+                           Proto.POGOProtos.Inventory.Item.ItemId.ItemId)
+                      (Data.ProtoLens.RepeatedField Data.ProtoLens.Unpacked itemIds)
+                counts__field_descriptor
+                  = Data.ProtoLens.FieldDescriptor "counts"
+                      (Data.ProtoLens.Int32Field ::
+                         Data.ProtoLens.FieldTypeDescriptor Data.Int.Int32)
+                      (Data.ProtoLens.RepeatedField Data.ProtoLens.Unpacked counts)
+              in
+              Data.ProtoLens.MessageDescriptor
+                (Data.Map.fromList
+                   [(Data.ProtoLens.Tag 1, sku__field_descriptor),
+                    (Data.ProtoLens.Tag 2, category__field_descriptor),
+                    (Data.ProtoLens.Tag 3, sortOrder__field_descriptor),
+                    (Data.ProtoLens.Tag 4, itemIds__field_descriptor),
+                    (Data.ProtoLens.Tag 5, counts__field_descriptor)])
+                (Data.Map.fromList
+                   [("sku", sku__field_descriptor),
+                    ("category", category__field_descriptor),
+                    ("sort_order", sortOrder__field_descriptor),
+                    ("item_ids", itemIds__field_descriptor),
+                    ("counts", counts__field_descriptor)])
+
+category ::
+         forall msg msg' . Data.ProtoLens.HasField "category" msg msg' =>
+           Lens.Family2.Lens msg msg' (Data.ProtoLens.Field "category" msg)
+             (Data.ProtoLens.Field "category" msg')
+category
+  = Data.ProtoLens.field
+      (Data.ProtoLens.ProxySym :: Data.ProtoLens.ProxySym "category")
+
+counts ::
+       forall msg msg' . Data.ProtoLens.HasField "counts" msg msg' =>
+         Lens.Family2.Lens msg msg' (Data.ProtoLens.Field "counts" msg)
+           (Data.ProtoLens.Field "counts" msg')
+counts
+  = Data.ProtoLens.field
+      (Data.ProtoLens.ProxySym :: Data.ProtoLens.ProxySym "counts")
+
+itemIds ::
+        forall msg msg' . Data.ProtoLens.HasField "itemIds" msg msg' =>
+          Lens.Family2.Lens msg msg' (Data.ProtoLens.Field "itemIds" msg)
+            (Data.ProtoLens.Field "itemIds" msg')
+itemIds
+  = Data.ProtoLens.field
+      (Data.ProtoLens.ProxySym :: Data.ProtoLens.ProxySym "itemIds")
+
+sku ::
+    forall msg msg' . Data.ProtoLens.HasField "sku" msg msg' =>
+      Lens.Family2.Lens msg msg' (Data.ProtoLens.Field "sku" msg)
+        (Data.ProtoLens.Field "sku" msg')
+sku
+  = Data.ProtoLens.field
+      (Data.ProtoLens.ProxySym :: Data.ProtoLens.ProxySym "sku")
+
+sortOrder ::
+          forall msg msg' . Data.ProtoLens.HasField "sortOrder" msg msg' =>
+            Lens.Family2.Lens msg msg' (Data.ProtoLens.Field "sortOrder" msg)
+              (Data.ProtoLens.Field "sortOrder" msg')
+sortOrder
+  = Data.ProtoLens.field
+      (Data.ProtoLens.ProxySym :: Data.ProtoLens.ProxySym "sortOrder")
diff --git a/src/Proto/POGOProtos/Settings/Master/IapSettings.hs b/src/Proto/POGOProtos/Settings/Master/IapSettings.hs
new file mode 100644
--- /dev/null
+++ b/src/Proto/POGOProtos/Settings/Master/IapSettings.hs
@@ -0,0 +1,262 @@
+{- This file was auto-generated from POGOProtos/Settings/Master/IapSettings.proto by the proto-lens-protoc program. -}
+{-# LANGUAGE ScopedTypeVariables, DataKinds, TypeFamilies,
+  MultiParamTypeClasses, FlexibleContexts, FlexibleInstances #-}
+{-# OPTIONS_GHC -fno-warn-unused-imports#-}
+module Proto.POGOProtos.Settings.Master.IapSettings where
+import qualified Prelude
+import qualified Data.ProtoLens
+import qualified Data.ProtoLens.Message.Enum
+import qualified Lens.Family2
+import qualified Lens.Family2.Unchecked
+import qualified Data.Default.Class
+import qualified Data.Text
+import qualified Data.Int
+import qualified Data.Word
+import qualified Data.Map
+import qualified Data.ByteString
+
+data IapSettings = IapSettings{_IapSettings'dailyBonusCoins ::
+                               Data.Int.Int32,
+                               _IapSettings'dailyDefenderBonusPerPokemon :: [Data.Int.Int32],
+                               _IapSettings'dailyDefenderBonusMaxDefenders :: Data.Int.Int32,
+                               _IapSettings'dailyDefenderBonusCurrency :: [Data.Text.Text],
+                               _IapSettings'minTimeBetweenClaimsMs :: Data.Int.Int64,
+                               _IapSettings'dailyBonusEnabled :: Prelude.Bool,
+                               _IapSettings'dailyDefenderBonusEnabled :: Prelude.Bool}
+                 deriving (Prelude.Show, Prelude.Eq)
+
+type instance Data.ProtoLens.Field "dailyBonusCoins" IapSettings =
+     Data.Int.Int32
+
+instance Data.ProtoLens.HasField "dailyBonusCoins" IapSettings
+         IapSettings where
+        field _
+          = Lens.Family2.Unchecked.lens _IapSettings'dailyBonusCoins
+              (\ x__ y__ -> x__{_IapSettings'dailyBonusCoins = y__})
+
+type instance
+     Data.ProtoLens.Field "dailyDefenderBonusPerPokemon" IapSettings =
+     [Data.Int.Int32]
+
+instance Data.ProtoLens.HasField "dailyDefenderBonusPerPokemon"
+         IapSettings IapSettings where
+        field _
+          = Lens.Family2.Unchecked.lens
+              _IapSettings'dailyDefenderBonusPerPokemon
+              (\ x__ y__ -> x__{_IapSettings'dailyDefenderBonusPerPokemon = y__})
+
+type instance
+     Data.ProtoLens.Field "dailyDefenderBonusMaxDefenders" IapSettings =
+     Data.Int.Int32
+
+instance Data.ProtoLens.HasField "dailyDefenderBonusMaxDefenders"
+         IapSettings IapSettings where
+        field _
+          = Lens.Family2.Unchecked.lens
+              _IapSettings'dailyDefenderBonusMaxDefenders
+              (\ x__ y__ ->
+                 x__{_IapSettings'dailyDefenderBonusMaxDefenders = y__})
+
+type instance
+     Data.ProtoLens.Field "dailyDefenderBonusCurrency" IapSettings =
+     [Data.Text.Text]
+
+instance Data.ProtoLens.HasField "dailyDefenderBonusCurrency"
+         IapSettings IapSettings where
+        field _
+          = Lens.Family2.Unchecked.lens
+              _IapSettings'dailyDefenderBonusCurrency
+              (\ x__ y__ -> x__{_IapSettings'dailyDefenderBonusCurrency = y__})
+
+type instance
+     Data.ProtoLens.Field "minTimeBetweenClaimsMs" IapSettings =
+     Data.Int.Int64
+
+instance Data.ProtoLens.HasField "minTimeBetweenClaimsMs"
+         IapSettings IapSettings where
+        field _
+          = Lens.Family2.Unchecked.lens _IapSettings'minTimeBetweenClaimsMs
+              (\ x__ y__ -> x__{_IapSettings'minTimeBetweenClaimsMs = y__})
+
+type instance Data.ProtoLens.Field "dailyBonusEnabled" IapSettings
+     = Prelude.Bool
+
+instance Data.ProtoLens.HasField "dailyBonusEnabled" IapSettings
+         IapSettings where
+        field _
+          = Lens.Family2.Unchecked.lens _IapSettings'dailyBonusEnabled
+              (\ x__ y__ -> x__{_IapSettings'dailyBonusEnabled = y__})
+
+type instance
+     Data.ProtoLens.Field "dailyDefenderBonusEnabled" IapSettings =
+     Prelude.Bool
+
+instance Data.ProtoLens.HasField "dailyDefenderBonusEnabled"
+         IapSettings IapSettings where
+        field _
+          = Lens.Family2.Unchecked.lens
+              _IapSettings'dailyDefenderBonusEnabled
+              (\ x__ y__ -> x__{_IapSettings'dailyDefenderBonusEnabled = y__})
+
+instance Data.Default.Class.Default IapSettings where
+        def
+          = IapSettings{_IapSettings'dailyBonusCoins =
+                          Data.ProtoLens.fieldDefault,
+                        _IapSettings'dailyDefenderBonusPerPokemon = [],
+                        _IapSettings'dailyDefenderBonusMaxDefenders =
+                          Data.ProtoLens.fieldDefault,
+                        _IapSettings'dailyDefenderBonusCurrency = [],
+                        _IapSettings'minTimeBetweenClaimsMs = Data.ProtoLens.fieldDefault,
+                        _IapSettings'dailyBonusEnabled = Data.ProtoLens.fieldDefault,
+                        _IapSettings'dailyDefenderBonusEnabled =
+                          Data.ProtoLens.fieldDefault}
+
+instance Data.ProtoLens.Message IapSettings where
+        descriptor
+          = let dailyBonusCoins__field_descriptor
+                  = Data.ProtoLens.FieldDescriptor "daily_bonus_coins"
+                      (Data.ProtoLens.Int32Field ::
+                         Data.ProtoLens.FieldTypeDescriptor Data.Int.Int32)
+                      (Data.ProtoLens.PlainField Data.ProtoLens.Optional dailyBonusCoins)
+                dailyDefenderBonusPerPokemon__field_descriptor
+                  = Data.ProtoLens.FieldDescriptor "daily_defender_bonus_per_pokemon"
+                      (Data.ProtoLens.Int32Field ::
+                         Data.ProtoLens.FieldTypeDescriptor Data.Int.Int32)
+                      (Data.ProtoLens.RepeatedField Data.ProtoLens.Unpacked
+                         dailyDefenderBonusPerPokemon)
+                dailyDefenderBonusMaxDefenders__field_descriptor
+                  = Data.ProtoLens.FieldDescriptor
+                      "daily_defender_bonus_max_defenders"
+                      (Data.ProtoLens.Int32Field ::
+                         Data.ProtoLens.FieldTypeDescriptor Data.Int.Int32)
+                      (Data.ProtoLens.PlainField Data.ProtoLens.Optional
+                         dailyDefenderBonusMaxDefenders)
+                dailyDefenderBonusCurrency__field_descriptor
+                  = Data.ProtoLens.FieldDescriptor "daily_defender_bonus_currency"
+                      (Data.ProtoLens.StringField ::
+                         Data.ProtoLens.FieldTypeDescriptor Data.Text.Text)
+                      (Data.ProtoLens.RepeatedField Data.ProtoLens.Unpacked
+                         dailyDefenderBonusCurrency)
+                minTimeBetweenClaimsMs__field_descriptor
+                  = Data.ProtoLens.FieldDescriptor "min_time_between_claims_ms"
+                      (Data.ProtoLens.Int64Field ::
+                         Data.ProtoLens.FieldTypeDescriptor Data.Int.Int64)
+                      (Data.ProtoLens.PlainField Data.ProtoLens.Optional
+                         minTimeBetweenClaimsMs)
+                dailyBonusEnabled__field_descriptor
+                  = Data.ProtoLens.FieldDescriptor "daily_bonus_enabled"
+                      (Data.ProtoLens.BoolField ::
+                         Data.ProtoLens.FieldTypeDescriptor Prelude.Bool)
+                      (Data.ProtoLens.PlainField Data.ProtoLens.Optional
+                         dailyBonusEnabled)
+                dailyDefenderBonusEnabled__field_descriptor
+                  = Data.ProtoLens.FieldDescriptor "daily_defender_bonus_enabled"
+                      (Data.ProtoLens.BoolField ::
+                         Data.ProtoLens.FieldTypeDescriptor Prelude.Bool)
+                      (Data.ProtoLens.PlainField Data.ProtoLens.Optional
+                         dailyDefenderBonusEnabled)
+              in
+              Data.ProtoLens.MessageDescriptor
+                (Data.Map.fromList
+                   [(Data.ProtoLens.Tag 1, dailyBonusCoins__field_descriptor),
+                    (Data.ProtoLens.Tag 2,
+                     dailyDefenderBonusPerPokemon__field_descriptor),
+                    (Data.ProtoLens.Tag 3,
+                     dailyDefenderBonusMaxDefenders__field_descriptor),
+                    (Data.ProtoLens.Tag 4,
+                     dailyDefenderBonusCurrency__field_descriptor),
+                    (Data.ProtoLens.Tag 5, minTimeBetweenClaimsMs__field_descriptor),
+                    (Data.ProtoLens.Tag 6, dailyBonusEnabled__field_descriptor),
+                    (Data.ProtoLens.Tag 7,
+                     dailyDefenderBonusEnabled__field_descriptor)])
+                (Data.Map.fromList
+                   [("daily_bonus_coins", dailyBonusCoins__field_descriptor),
+                    ("daily_defender_bonus_per_pokemon",
+                     dailyDefenderBonusPerPokemon__field_descriptor),
+                    ("daily_defender_bonus_max_defenders",
+                     dailyDefenderBonusMaxDefenders__field_descriptor),
+                    ("daily_defender_bonus_currency",
+                     dailyDefenderBonusCurrency__field_descriptor),
+                    ("min_time_between_claims_ms",
+                     minTimeBetweenClaimsMs__field_descriptor),
+                    ("daily_bonus_enabled", dailyBonusEnabled__field_descriptor),
+                    ("daily_defender_bonus_enabled",
+                     dailyDefenderBonusEnabled__field_descriptor)])
+
+dailyBonusCoins ::
+                forall msg msg' .
+                  Data.ProtoLens.HasField "dailyBonusCoins" msg msg' =>
+                  Lens.Family2.Lens msg msg'
+                    (Data.ProtoLens.Field "dailyBonusCoins" msg)
+                    (Data.ProtoLens.Field "dailyBonusCoins" msg')
+dailyBonusCoins
+  = Data.ProtoLens.field
+      (Data.ProtoLens.ProxySym ::
+         Data.ProtoLens.ProxySym "dailyBonusCoins")
+
+dailyBonusEnabled ::
+                  forall msg msg' .
+                    Data.ProtoLens.HasField "dailyBonusEnabled" msg msg' =>
+                    Lens.Family2.Lens msg msg'
+                      (Data.ProtoLens.Field "dailyBonusEnabled" msg)
+                      (Data.ProtoLens.Field "dailyBonusEnabled" msg')
+dailyBonusEnabled
+  = Data.ProtoLens.field
+      (Data.ProtoLens.ProxySym ::
+         Data.ProtoLens.ProxySym "dailyBonusEnabled")
+
+dailyDefenderBonusCurrency ::
+                           forall msg msg' .
+                             Data.ProtoLens.HasField "dailyDefenderBonusCurrency" msg msg' =>
+                             Lens.Family2.Lens msg msg'
+                               (Data.ProtoLens.Field "dailyDefenderBonusCurrency" msg)
+                               (Data.ProtoLens.Field "dailyDefenderBonusCurrency" msg')
+dailyDefenderBonusCurrency
+  = Data.ProtoLens.field
+      (Data.ProtoLens.ProxySym ::
+         Data.ProtoLens.ProxySym "dailyDefenderBonusCurrency")
+
+dailyDefenderBonusEnabled ::
+                          forall msg msg' .
+                            Data.ProtoLens.HasField "dailyDefenderBonusEnabled" msg msg' =>
+                            Lens.Family2.Lens msg msg'
+                              (Data.ProtoLens.Field "dailyDefenderBonusEnabled" msg)
+                              (Data.ProtoLens.Field "dailyDefenderBonusEnabled" msg')
+dailyDefenderBonusEnabled
+  = Data.ProtoLens.field
+      (Data.ProtoLens.ProxySym ::
+         Data.ProtoLens.ProxySym "dailyDefenderBonusEnabled")
+
+dailyDefenderBonusMaxDefenders ::
+                               forall msg msg' .
+                                 Data.ProtoLens.HasField "dailyDefenderBonusMaxDefenders" msg
+                                   msg' =>
+                                 Lens.Family2.Lens msg msg'
+                                   (Data.ProtoLens.Field "dailyDefenderBonusMaxDefenders" msg)
+                                   (Data.ProtoLens.Field "dailyDefenderBonusMaxDefenders" msg')
+dailyDefenderBonusMaxDefenders
+  = Data.ProtoLens.field
+      (Data.ProtoLens.ProxySym ::
+         Data.ProtoLens.ProxySym "dailyDefenderBonusMaxDefenders")
+
+dailyDefenderBonusPerPokemon ::
+                             forall msg msg' .
+                               Data.ProtoLens.HasField "dailyDefenderBonusPerPokemon" msg msg' =>
+                               Lens.Family2.Lens msg msg'
+                                 (Data.ProtoLens.Field "dailyDefenderBonusPerPokemon" msg)
+                                 (Data.ProtoLens.Field "dailyDefenderBonusPerPokemon" msg')
+dailyDefenderBonusPerPokemon
+  = Data.ProtoLens.field
+      (Data.ProtoLens.ProxySym ::
+         Data.ProtoLens.ProxySym "dailyDefenderBonusPerPokemon")
+
+minTimeBetweenClaimsMs ::
+                       forall msg msg' .
+                         Data.ProtoLens.HasField "minTimeBetweenClaimsMs" msg msg' =>
+                         Lens.Family2.Lens msg msg'
+                           (Data.ProtoLens.Field "minTimeBetweenClaimsMs" msg)
+                           (Data.ProtoLens.Field "minTimeBetweenClaimsMs" msg')
+minTimeBetweenClaimsMs
+  = Data.ProtoLens.field
+      (Data.ProtoLens.ProxySym ::
+         Data.ProtoLens.ProxySym "minTimeBetweenClaimsMs")
diff --git a/src/Proto/POGOProtos/Settings/Master/Item/BattleAttributes.hs b/src/Proto/POGOProtos/Settings/Master/Item/BattleAttributes.hs
new file mode 100644
--- /dev/null
+++ b/src/Proto/POGOProtos/Settings/Master/Item/BattleAttributes.hs
@@ -0,0 +1,55 @@
+{- This file was auto-generated from POGOProtos/Settings/Master/Item/BattleAttributes.proto by the proto-lens-protoc program. -}
+{-# LANGUAGE ScopedTypeVariables, DataKinds, TypeFamilies,
+  MultiParamTypeClasses, FlexibleContexts, FlexibleInstances #-}
+{-# OPTIONS_GHC -fno-warn-unused-imports#-}
+module Proto.POGOProtos.Settings.Master.Item.BattleAttributes where
+import qualified Prelude
+import qualified Data.ProtoLens
+import qualified Data.ProtoLens.Message.Enum
+import qualified Lens.Family2
+import qualified Lens.Family2.Unchecked
+import qualified Data.Default.Class
+import qualified Data.Text
+import qualified Data.Int
+import qualified Data.Word
+import qualified Data.Map
+import qualified Data.ByteString
+
+data BattleAttributes = BattleAttributes{_BattleAttributes'staPercent
+                                         :: Prelude.Float}
+                      deriving (Prelude.Show, Prelude.Eq)
+
+type instance Data.ProtoLens.Field "staPercent" BattleAttributes =
+     Prelude.Float
+
+instance Data.ProtoLens.HasField "staPercent" BattleAttributes
+         BattleAttributes where
+        field _
+          = Lens.Family2.Unchecked.lens _BattleAttributes'staPercent
+              (\ x__ y__ -> x__{_BattleAttributes'staPercent = y__})
+
+instance Data.Default.Class.Default BattleAttributes where
+        def
+          = BattleAttributes{_BattleAttributes'staPercent =
+                               Data.ProtoLens.fieldDefault}
+
+instance Data.ProtoLens.Message BattleAttributes where
+        descriptor
+          = let staPercent__field_descriptor
+                  = Data.ProtoLens.FieldDescriptor "sta_percent"
+                      (Data.ProtoLens.FloatField ::
+                         Data.ProtoLens.FieldTypeDescriptor Prelude.Float)
+                      (Data.ProtoLens.PlainField Data.ProtoLens.Optional staPercent)
+              in
+              Data.ProtoLens.MessageDescriptor
+                (Data.Map.fromList
+                   [(Data.ProtoLens.Tag 1, staPercent__field_descriptor)])
+                (Data.Map.fromList [("sta_percent", staPercent__field_descriptor)])
+
+staPercent ::
+           forall msg msg' . Data.ProtoLens.HasField "staPercent" msg msg' =>
+             Lens.Family2.Lens msg msg' (Data.ProtoLens.Field "staPercent" msg)
+               (Data.ProtoLens.Field "staPercent" msg')
+staPercent
+  = Data.ProtoLens.field
+      (Data.ProtoLens.ProxySym :: Data.ProtoLens.ProxySym "staPercent")
diff --git a/src/Proto/POGOProtos/Settings/Master/Item/EggIncubatorAttributes.hs b/src/Proto/POGOProtos/Settings/Master/Item/EggIncubatorAttributes.hs
new file mode 100644
--- /dev/null
+++ b/src/Proto/POGOProtos/Settings/Master/Item/EggIncubatorAttributes.hs
@@ -0,0 +1,125 @@
+{- This file was auto-generated from POGOProtos/Settings/Master/Item/EggIncubatorAttributes.proto by the proto-lens-protoc program. -}
+{-# LANGUAGE ScopedTypeVariables, DataKinds, TypeFamilies,
+  MultiParamTypeClasses, FlexibleContexts, FlexibleInstances #-}
+{-# OPTIONS_GHC -fno-warn-unused-imports#-}
+module Proto.POGOProtos.Settings.Master.Item.EggIncubatorAttributes
+       where
+import qualified Prelude
+import qualified Data.ProtoLens
+import qualified Data.ProtoLens.Message.Enum
+import qualified Lens.Family2
+import qualified Lens.Family2.Unchecked
+import qualified Data.Default.Class
+import qualified Data.Text
+import qualified Data.Int
+import qualified Data.Word
+import qualified Data.Map
+import qualified Data.ByteString
+import qualified Proto.POGOProtos.Inventory.EggIncubatorType
+
+data EggIncubatorAttributes = EggIncubatorAttributes{_EggIncubatorAttributes'incubatorType
+                                                     ::
+                                                     Proto.POGOProtos.Inventory.EggIncubatorType.EggIncubatorType,
+                                                     _EggIncubatorAttributes'uses :: Data.Int.Int32,
+                                                     _EggIncubatorAttributes'distanceMultiplier ::
+                                                     Prelude.Float}
+                            deriving (Prelude.Show, Prelude.Eq)
+
+type instance
+     Data.ProtoLens.Field "incubatorType" EggIncubatorAttributes =
+     Proto.POGOProtos.Inventory.EggIncubatorType.EggIncubatorType
+
+instance Data.ProtoLens.HasField "incubatorType"
+         EggIncubatorAttributes EggIncubatorAttributes where
+        field _
+          = Lens.Family2.Unchecked.lens _EggIncubatorAttributes'incubatorType
+              (\ x__ y__ -> x__{_EggIncubatorAttributes'incubatorType = y__})
+
+type instance Data.ProtoLens.Field "uses" EggIncubatorAttributes =
+     Data.Int.Int32
+
+instance Data.ProtoLens.HasField "uses" EggIncubatorAttributes
+         EggIncubatorAttributes where
+        field _
+          = Lens.Family2.Unchecked.lens _EggIncubatorAttributes'uses
+              (\ x__ y__ -> x__{_EggIncubatorAttributes'uses = y__})
+
+type instance
+     Data.ProtoLens.Field "distanceMultiplier" EggIncubatorAttributes =
+     Prelude.Float
+
+instance Data.ProtoLens.HasField "distanceMultiplier"
+         EggIncubatorAttributes EggIncubatorAttributes where
+        field _
+          = Lens.Family2.Unchecked.lens
+              _EggIncubatorAttributes'distanceMultiplier
+              (\ x__ y__ ->
+                 x__{_EggIncubatorAttributes'distanceMultiplier = y__})
+
+instance Data.Default.Class.Default EggIncubatorAttributes where
+        def
+          = EggIncubatorAttributes{_EggIncubatorAttributes'incubatorType =
+                                     Data.Default.Class.def,
+                                   _EggIncubatorAttributes'uses = Data.ProtoLens.fieldDefault,
+                                   _EggIncubatorAttributes'distanceMultiplier =
+                                     Data.ProtoLens.fieldDefault}
+
+instance Data.ProtoLens.Message EggIncubatorAttributes where
+        descriptor
+          = let incubatorType__field_descriptor
+                  = Data.ProtoLens.FieldDescriptor "incubator_type"
+                      (Data.ProtoLens.EnumField ::
+                         Data.ProtoLens.FieldTypeDescriptor
+                           Proto.POGOProtos.Inventory.EggIncubatorType.EggIncubatorType)
+                      (Data.ProtoLens.PlainField Data.ProtoLens.Optional incubatorType)
+                uses__field_descriptor
+                  = Data.ProtoLens.FieldDescriptor "uses"
+                      (Data.ProtoLens.Int32Field ::
+                         Data.ProtoLens.FieldTypeDescriptor Data.Int.Int32)
+                      (Data.ProtoLens.PlainField Data.ProtoLens.Optional uses)
+                distanceMultiplier__field_descriptor
+                  = Data.ProtoLens.FieldDescriptor "distance_multiplier"
+                      (Data.ProtoLens.FloatField ::
+                         Data.ProtoLens.FieldTypeDescriptor Prelude.Float)
+                      (Data.ProtoLens.PlainField Data.ProtoLens.Optional
+                         distanceMultiplier)
+              in
+              Data.ProtoLens.MessageDescriptor
+                (Data.Map.fromList
+                   [(Data.ProtoLens.Tag 1, incubatorType__field_descriptor),
+                    (Data.ProtoLens.Tag 2, uses__field_descriptor),
+                    (Data.ProtoLens.Tag 3, distanceMultiplier__field_descriptor)])
+                (Data.Map.fromList
+                   [("incubator_type", incubatorType__field_descriptor),
+                    ("uses", uses__field_descriptor),
+                    ("distance_multiplier", distanceMultiplier__field_descriptor)])
+
+distanceMultiplier ::
+                   forall msg msg' .
+                     Data.ProtoLens.HasField "distanceMultiplier" msg msg' =>
+                     Lens.Family2.Lens msg msg'
+                       (Data.ProtoLens.Field "distanceMultiplier" msg)
+                       (Data.ProtoLens.Field "distanceMultiplier" msg')
+distanceMultiplier
+  = Data.ProtoLens.field
+      (Data.ProtoLens.ProxySym ::
+         Data.ProtoLens.ProxySym "distanceMultiplier")
+
+incubatorType ::
+              forall msg msg' .
+                Data.ProtoLens.HasField "incubatorType" msg msg' =>
+                Lens.Family2.Lens msg msg'
+                  (Data.ProtoLens.Field "incubatorType" msg)
+                  (Data.ProtoLens.Field "incubatorType" msg')
+incubatorType
+  = Data.ProtoLens.field
+      (Data.ProtoLens.ProxySym ::
+         Data.ProtoLens.ProxySym "incubatorType")
+
+uses ::
+     forall msg msg' . Data.ProtoLens.HasField "uses" msg msg' =>
+       Lens.Family2.Lens msg msg' (Data.ProtoLens.Field "uses" msg)
+         (Data.ProtoLens.Field "uses" msg')
+uses
+  = Data.ProtoLens.field
+      (Data.ProtoLens.ProxySym :: Data.ProtoLens.ProxySym "uses")
diff --git a/src/Proto/POGOProtos/Settings/Master/Item/ExperienceBoostAttributes.hs b/src/Proto/POGOProtos/Settings/Master/Item/ExperienceBoostAttributes.hs
new file mode 100644
--- /dev/null
+++ b/src/Proto/POGOProtos/Settings/Master/Item/ExperienceBoostAttributes.hs
@@ -0,0 +1,95 @@
+{- This file was auto-generated from POGOProtos/Settings/Master/Item/ExperienceBoostAttributes.proto by the proto-lens-protoc program. -}
+{-# LANGUAGE ScopedTypeVariables, DataKinds, TypeFamilies,
+  MultiParamTypeClasses, FlexibleContexts, FlexibleInstances #-}
+{-# OPTIONS_GHC -fno-warn-unused-imports#-}
+module Proto.POGOProtos.Settings.Master.Item.ExperienceBoostAttributes
+       where
+import qualified Prelude
+import qualified Data.ProtoLens
+import qualified Data.ProtoLens.Message.Enum
+import qualified Lens.Family2
+import qualified Lens.Family2.Unchecked
+import qualified Data.Default.Class
+import qualified Data.Text
+import qualified Data.Int
+import qualified Data.Word
+import qualified Data.Map
+import qualified Data.ByteString
+
+data ExperienceBoostAttributes = ExperienceBoostAttributes{_ExperienceBoostAttributes'xpMultiplier
+                                                           :: Prelude.Float,
+                                                           _ExperienceBoostAttributes'boostDurationMs
+                                                           :: Data.Int.Int32}
+                               deriving (Prelude.Show, Prelude.Eq)
+
+type instance
+     Data.ProtoLens.Field "xpMultiplier" ExperienceBoostAttributes =
+     Prelude.Float
+
+instance Data.ProtoLens.HasField "xpMultiplier"
+         ExperienceBoostAttributes ExperienceBoostAttributes where
+        field _
+          = Lens.Family2.Unchecked.lens
+              _ExperienceBoostAttributes'xpMultiplier
+              (\ x__ y__ -> x__{_ExperienceBoostAttributes'xpMultiplier = y__})
+
+type instance
+     Data.ProtoLens.Field "boostDurationMs" ExperienceBoostAttributes =
+     Data.Int.Int32
+
+instance Data.ProtoLens.HasField "boostDurationMs"
+         ExperienceBoostAttributes ExperienceBoostAttributes where
+        field _
+          = Lens.Family2.Unchecked.lens
+              _ExperienceBoostAttributes'boostDurationMs
+              (\ x__ y__ ->
+                 x__{_ExperienceBoostAttributes'boostDurationMs = y__})
+
+instance Data.Default.Class.Default ExperienceBoostAttributes where
+        def
+          = ExperienceBoostAttributes{_ExperienceBoostAttributes'xpMultiplier
+                                        = Data.ProtoLens.fieldDefault,
+                                      _ExperienceBoostAttributes'boostDurationMs =
+                                        Data.ProtoLens.fieldDefault}
+
+instance Data.ProtoLens.Message ExperienceBoostAttributes where
+        descriptor
+          = let xpMultiplier__field_descriptor
+                  = Data.ProtoLens.FieldDescriptor "xp_multiplier"
+                      (Data.ProtoLens.FloatField ::
+                         Data.ProtoLens.FieldTypeDescriptor Prelude.Float)
+                      (Data.ProtoLens.PlainField Data.ProtoLens.Optional xpMultiplier)
+                boostDurationMs__field_descriptor
+                  = Data.ProtoLens.FieldDescriptor "boost_duration_ms"
+                      (Data.ProtoLens.Int32Field ::
+                         Data.ProtoLens.FieldTypeDescriptor Data.Int.Int32)
+                      (Data.ProtoLens.PlainField Data.ProtoLens.Optional boostDurationMs)
+              in
+              Data.ProtoLens.MessageDescriptor
+                (Data.Map.fromList
+                   [(Data.ProtoLens.Tag 1, xpMultiplier__field_descriptor),
+                    (Data.ProtoLens.Tag 2, boostDurationMs__field_descriptor)])
+                (Data.Map.fromList
+                   [("xp_multiplier", xpMultiplier__field_descriptor),
+                    ("boost_duration_ms", boostDurationMs__field_descriptor)])
+
+boostDurationMs ::
+                forall msg msg' .
+                  Data.ProtoLens.HasField "boostDurationMs" msg msg' =>
+                  Lens.Family2.Lens msg msg'
+                    (Data.ProtoLens.Field "boostDurationMs" msg)
+                    (Data.ProtoLens.Field "boostDurationMs" msg')
+boostDurationMs
+  = Data.ProtoLens.field
+      (Data.ProtoLens.ProxySym ::
+         Data.ProtoLens.ProxySym "boostDurationMs")
+
+xpMultiplier ::
+             forall msg msg' .
+               Data.ProtoLens.HasField "xpMultiplier" msg msg' =>
+               Lens.Family2.Lens msg msg'
+                 (Data.ProtoLens.Field "xpMultiplier" msg)
+                 (Data.ProtoLens.Field "xpMultiplier" msg')
+xpMultiplier
+  = Data.ProtoLens.field
+      (Data.ProtoLens.ProxySym :: Data.ProtoLens.ProxySym "xpMultiplier")
diff --git a/src/Proto/POGOProtos/Settings/Master/Item/FoodAttributes.hs b/src/Proto/POGOProtos/Settings/Master/Item/FoodAttributes.hs
new file mode 100644
--- /dev/null
+++ b/src/Proto/POGOProtos/Settings/Master/Item/FoodAttributes.hs
@@ -0,0 +1,117 @@
+{- This file was auto-generated from POGOProtos/Settings/Master/Item/FoodAttributes.proto by the proto-lens-protoc program. -}
+{-# LANGUAGE ScopedTypeVariables, DataKinds, TypeFamilies,
+  MultiParamTypeClasses, FlexibleContexts, FlexibleInstances #-}
+{-# OPTIONS_GHC -fno-warn-unused-imports#-}
+module Proto.POGOProtos.Settings.Master.Item.FoodAttributes where
+import qualified Prelude
+import qualified Data.ProtoLens
+import qualified Data.ProtoLens.Message.Enum
+import qualified Lens.Family2
+import qualified Lens.Family2.Unchecked
+import qualified Data.Default.Class
+import qualified Data.Text
+import qualified Data.Int
+import qualified Data.Word
+import qualified Data.Map
+import qualified Data.ByteString
+import qualified Proto.POGOProtos.Enums.ItemEffect
+
+data FoodAttributes = FoodAttributes{_FoodAttributes'itemEffect ::
+                                     [Proto.POGOProtos.Enums.ItemEffect.ItemEffect],
+                                     _FoodAttributes'itemEffectPercent :: [Prelude.Float],
+                                     _FoodAttributes'growthPercent :: Prelude.Float}
+                    deriving (Prelude.Show, Prelude.Eq)
+
+type instance Data.ProtoLens.Field "itemEffect" FoodAttributes =
+     [Proto.POGOProtos.Enums.ItemEffect.ItemEffect]
+
+instance Data.ProtoLens.HasField "itemEffect" FoodAttributes
+         FoodAttributes where
+        field _
+          = Lens.Family2.Unchecked.lens _FoodAttributes'itemEffect
+              (\ x__ y__ -> x__{_FoodAttributes'itemEffect = y__})
+
+type instance
+     Data.ProtoLens.Field "itemEffectPercent" FoodAttributes =
+     [Prelude.Float]
+
+instance Data.ProtoLens.HasField "itemEffectPercent" FoodAttributes
+         FoodAttributes where
+        field _
+          = Lens.Family2.Unchecked.lens _FoodAttributes'itemEffectPercent
+              (\ x__ y__ -> x__{_FoodAttributes'itemEffectPercent = y__})
+
+type instance Data.ProtoLens.Field "growthPercent" FoodAttributes =
+     Prelude.Float
+
+instance Data.ProtoLens.HasField "growthPercent" FoodAttributes
+         FoodAttributes where
+        field _
+          = Lens.Family2.Unchecked.lens _FoodAttributes'growthPercent
+              (\ x__ y__ -> x__{_FoodAttributes'growthPercent = y__})
+
+instance Data.Default.Class.Default FoodAttributes where
+        def
+          = FoodAttributes{_FoodAttributes'itemEffect = [],
+                           _FoodAttributes'itemEffectPercent = [],
+                           _FoodAttributes'growthPercent = Data.ProtoLens.fieldDefault}
+
+instance Data.ProtoLens.Message FoodAttributes where
+        descriptor
+          = let itemEffect__field_descriptor
+                  = Data.ProtoLens.FieldDescriptor "item_effect"
+                      (Data.ProtoLens.EnumField ::
+                         Data.ProtoLens.FieldTypeDescriptor
+                           Proto.POGOProtos.Enums.ItemEffect.ItemEffect)
+                      (Data.ProtoLens.RepeatedField Data.ProtoLens.Unpacked itemEffect)
+                itemEffectPercent__field_descriptor
+                  = Data.ProtoLens.FieldDescriptor "item_effect_percent"
+                      (Data.ProtoLens.FloatField ::
+                         Data.ProtoLens.FieldTypeDescriptor Prelude.Float)
+                      (Data.ProtoLens.RepeatedField Data.ProtoLens.Unpacked
+                         itemEffectPercent)
+                growthPercent__field_descriptor
+                  = Data.ProtoLens.FieldDescriptor "growth_percent"
+                      (Data.ProtoLens.FloatField ::
+                         Data.ProtoLens.FieldTypeDescriptor Prelude.Float)
+                      (Data.ProtoLens.PlainField Data.ProtoLens.Optional growthPercent)
+              in
+              Data.ProtoLens.MessageDescriptor
+                (Data.Map.fromList
+                   [(Data.ProtoLens.Tag 1, itemEffect__field_descriptor),
+                    (Data.ProtoLens.Tag 2, itemEffectPercent__field_descriptor),
+                    (Data.ProtoLens.Tag 3, growthPercent__field_descriptor)])
+                (Data.Map.fromList
+                   [("item_effect", itemEffect__field_descriptor),
+                    ("item_effect_percent", itemEffectPercent__field_descriptor),
+                    ("growth_percent", growthPercent__field_descriptor)])
+
+growthPercent ::
+              forall msg msg' .
+                Data.ProtoLens.HasField "growthPercent" msg msg' =>
+                Lens.Family2.Lens msg msg'
+                  (Data.ProtoLens.Field "growthPercent" msg)
+                  (Data.ProtoLens.Field "growthPercent" msg')
+growthPercent
+  = Data.ProtoLens.field
+      (Data.ProtoLens.ProxySym ::
+         Data.ProtoLens.ProxySym "growthPercent")
+
+itemEffect ::
+           forall msg msg' . Data.ProtoLens.HasField "itemEffect" msg msg' =>
+             Lens.Family2.Lens msg msg' (Data.ProtoLens.Field "itemEffect" msg)
+               (Data.ProtoLens.Field "itemEffect" msg')
+itemEffect
+  = Data.ProtoLens.field
+      (Data.ProtoLens.ProxySym :: Data.ProtoLens.ProxySym "itemEffect")
+
+itemEffectPercent ::
+                  forall msg msg' .
+                    Data.ProtoLens.HasField "itemEffectPercent" msg msg' =>
+                    Lens.Family2.Lens msg msg'
+                      (Data.ProtoLens.Field "itemEffectPercent" msg)
+                      (Data.ProtoLens.Field "itemEffectPercent" msg')
+itemEffectPercent
+  = Data.ProtoLens.field
+      (Data.ProtoLens.ProxySym ::
+         Data.ProtoLens.ProxySym "itemEffectPercent")
diff --git a/src/Proto/POGOProtos/Settings/Master/Item/FortModifierAttributes.hs b/src/Proto/POGOProtos/Settings/Master/Item/FortModifierAttributes.hs
new file mode 100644
--- /dev/null
+++ b/src/Proto/POGOProtos/Settings/Master/Item/FortModifierAttributes.hs
@@ -0,0 +1,104 @@
+{- This file was auto-generated from POGOProtos/Settings/Master/Item/FortModifierAttributes.proto by the proto-lens-protoc program. -}
+{-# LANGUAGE ScopedTypeVariables, DataKinds, TypeFamilies,
+  MultiParamTypeClasses, FlexibleContexts, FlexibleInstances #-}
+{-# OPTIONS_GHC -fno-warn-unused-imports#-}
+module Proto.POGOProtos.Settings.Master.Item.FortModifierAttributes
+       where
+import qualified Prelude
+import qualified Data.ProtoLens
+import qualified Data.ProtoLens.Message.Enum
+import qualified Lens.Family2
+import qualified Lens.Family2.Unchecked
+import qualified Data.Default.Class
+import qualified Data.Text
+import qualified Data.Int
+import qualified Data.Word
+import qualified Data.Map
+import qualified Data.ByteString
+
+data FortModifierAttributes = FortModifierAttributes{_FortModifierAttributes'modifierLifetimeSeconds
+                                                     :: Data.Int.Int32,
+                                                     _FortModifierAttributes'troyDiskNumPokemonSpawned
+                                                     :: Data.Int.Int32}
+                            deriving (Prelude.Show, Prelude.Eq)
+
+type instance
+     Data.ProtoLens.Field "modifierLifetimeSeconds"
+       FortModifierAttributes
+     = Data.Int.Int32
+
+instance Data.ProtoLens.HasField "modifierLifetimeSeconds"
+         FortModifierAttributes FortModifierAttributes where
+        field _
+          = Lens.Family2.Unchecked.lens
+              _FortModifierAttributes'modifierLifetimeSeconds
+              (\ x__ y__ ->
+                 x__{_FortModifierAttributes'modifierLifetimeSeconds = y__})
+
+type instance
+     Data.ProtoLens.Field "troyDiskNumPokemonSpawned"
+       FortModifierAttributes
+     = Data.Int.Int32
+
+instance Data.ProtoLens.HasField "troyDiskNumPokemonSpawned"
+         FortModifierAttributes FortModifierAttributes where
+        field _
+          = Lens.Family2.Unchecked.lens
+              _FortModifierAttributes'troyDiskNumPokemonSpawned
+              (\ x__ y__ ->
+                 x__{_FortModifierAttributes'troyDiskNumPokemonSpawned = y__})
+
+instance Data.Default.Class.Default FortModifierAttributes where
+        def
+          = FortModifierAttributes{_FortModifierAttributes'modifierLifetimeSeconds
+                                     = Data.ProtoLens.fieldDefault,
+                                   _FortModifierAttributes'troyDiskNumPokemonSpawned =
+                                     Data.ProtoLens.fieldDefault}
+
+instance Data.ProtoLens.Message FortModifierAttributes where
+        descriptor
+          = let modifierLifetimeSeconds__field_descriptor
+                  = Data.ProtoLens.FieldDescriptor "modifier_lifetime_seconds"
+                      (Data.ProtoLens.Int32Field ::
+                         Data.ProtoLens.FieldTypeDescriptor Data.Int.Int32)
+                      (Data.ProtoLens.PlainField Data.ProtoLens.Optional
+                         modifierLifetimeSeconds)
+                troyDiskNumPokemonSpawned__field_descriptor
+                  = Data.ProtoLens.FieldDescriptor "troy_disk_num_pokemon_spawned"
+                      (Data.ProtoLens.Int32Field ::
+                         Data.ProtoLens.FieldTypeDescriptor Data.Int.Int32)
+                      (Data.ProtoLens.PlainField Data.ProtoLens.Optional
+                         troyDiskNumPokemonSpawned)
+              in
+              Data.ProtoLens.MessageDescriptor
+                (Data.Map.fromList
+                   [(Data.ProtoLens.Tag 1, modifierLifetimeSeconds__field_descriptor),
+                    (Data.ProtoLens.Tag 2,
+                     troyDiskNumPokemonSpawned__field_descriptor)])
+                (Data.Map.fromList
+                   [("modifier_lifetime_seconds",
+                     modifierLifetimeSeconds__field_descriptor),
+                    ("troy_disk_num_pokemon_spawned",
+                     troyDiskNumPokemonSpawned__field_descriptor)])
+
+modifierLifetimeSeconds ::
+                        forall msg msg' .
+                          Data.ProtoLens.HasField "modifierLifetimeSeconds" msg msg' =>
+                          Lens.Family2.Lens msg msg'
+                            (Data.ProtoLens.Field "modifierLifetimeSeconds" msg)
+                            (Data.ProtoLens.Field "modifierLifetimeSeconds" msg')
+modifierLifetimeSeconds
+  = Data.ProtoLens.field
+      (Data.ProtoLens.ProxySym ::
+         Data.ProtoLens.ProxySym "modifierLifetimeSeconds")
+
+troyDiskNumPokemonSpawned ::
+                          forall msg msg' .
+                            Data.ProtoLens.HasField "troyDiskNumPokemonSpawned" msg msg' =>
+                            Lens.Family2.Lens msg msg'
+                              (Data.ProtoLens.Field "troyDiskNumPokemonSpawned" msg)
+                              (Data.ProtoLens.Field "troyDiskNumPokemonSpawned" msg')
+troyDiskNumPokemonSpawned
+  = Data.ProtoLens.field
+      (Data.ProtoLens.ProxySym ::
+         Data.ProtoLens.ProxySym "troyDiskNumPokemonSpawned")
diff --git a/src/Proto/POGOProtos/Settings/Master/Item/IncenseAttributes.hs b/src/Proto/POGOProtos/Settings/Master/Item/IncenseAttributes.hs
new file mode 100644
--- /dev/null
+++ b/src/Proto/POGOProtos/Settings/Master/Item/IncenseAttributes.hs
@@ -0,0 +1,301 @@
+{- This file was auto-generated from POGOProtos/Settings/Master/Item/IncenseAttributes.proto by the proto-lens-protoc program. -}
+{-# LANGUAGE ScopedTypeVariables, DataKinds, TypeFamilies,
+  MultiParamTypeClasses, FlexibleContexts, FlexibleInstances #-}
+{-# OPTIONS_GHC -fno-warn-unused-imports#-}
+module Proto.POGOProtos.Settings.Master.Item.IncenseAttributes
+       where
+import qualified Prelude
+import qualified Data.ProtoLens
+import qualified Data.ProtoLens.Message.Enum
+import qualified Lens.Family2
+import qualified Lens.Family2.Unchecked
+import qualified Data.Default.Class
+import qualified Data.Text
+import qualified Data.Int
+import qualified Data.Word
+import qualified Data.Map
+import qualified Data.ByteString
+import qualified Proto.POGOProtos.Enums.PokemonType
+
+data IncenseAttributes = IncenseAttributes{_IncenseAttributes'incenseLifetimeSeconds
+                                           :: Data.Int.Int32,
+                                           _IncenseAttributes'pokemonType ::
+                                           [Proto.POGOProtos.Enums.PokemonType.PokemonType],
+                                           _IncenseAttributes'pokemonIncenseTypeProbability ::
+                                           Prelude.Float,
+                                           _IncenseAttributes'standingTimeBetweenEncountersSeconds
+                                           :: Data.Int.Int32,
+                                           _IncenseAttributes'movingTimeBetweenEncounterSeconds ::
+                                           Data.Int.Int32,
+                                           _IncenseAttributes'distanceRequiredForShorterIntervalMeters
+                                           :: Data.Int.Int32,
+                                           _IncenseAttributes'pokemonAttractedLengthSec ::
+                                           Data.Int.Int32}
+                       deriving (Prelude.Show, Prelude.Eq)
+
+type instance
+     Data.ProtoLens.Field "incenseLifetimeSeconds" IncenseAttributes =
+     Data.Int.Int32
+
+instance Data.ProtoLens.HasField "incenseLifetimeSeconds"
+         IncenseAttributes IncenseAttributes where
+        field _
+          = Lens.Family2.Unchecked.lens
+              _IncenseAttributes'incenseLifetimeSeconds
+              (\ x__ y__ -> x__{_IncenseAttributes'incenseLifetimeSeconds = y__})
+
+type instance Data.ProtoLens.Field "pokemonType" IncenseAttributes
+     = [Proto.POGOProtos.Enums.PokemonType.PokemonType]
+
+instance Data.ProtoLens.HasField "pokemonType" IncenseAttributes
+         IncenseAttributes where
+        field _
+          = Lens.Family2.Unchecked.lens _IncenseAttributes'pokemonType
+              (\ x__ y__ -> x__{_IncenseAttributes'pokemonType = y__})
+
+type instance
+     Data.ProtoLens.Field "pokemonIncenseTypeProbability"
+       IncenseAttributes
+     = Prelude.Float
+
+instance Data.ProtoLens.HasField "pokemonIncenseTypeProbability"
+         IncenseAttributes IncenseAttributes where
+        field _
+          = Lens.Family2.Unchecked.lens
+              _IncenseAttributes'pokemonIncenseTypeProbability
+              (\ x__ y__ ->
+                 x__{_IncenseAttributes'pokemonIncenseTypeProbability = y__})
+
+type instance
+     Data.ProtoLens.Field "standingTimeBetweenEncountersSeconds"
+       IncenseAttributes
+     = Data.Int.Int32
+
+instance Data.ProtoLens.HasField
+         "standingTimeBetweenEncountersSeconds" IncenseAttributes
+         IncenseAttributes where
+        field _
+          = Lens.Family2.Unchecked.lens
+              _IncenseAttributes'standingTimeBetweenEncountersSeconds
+              (\ x__ y__ ->
+                 x__{_IncenseAttributes'standingTimeBetweenEncountersSeconds = y__})
+
+type instance
+     Data.ProtoLens.Field "movingTimeBetweenEncounterSeconds"
+       IncenseAttributes
+     = Data.Int.Int32
+
+instance Data.ProtoLens.HasField
+         "movingTimeBetweenEncounterSeconds" IncenseAttributes
+         IncenseAttributes where
+        field _
+          = Lens.Family2.Unchecked.lens
+              _IncenseAttributes'movingTimeBetweenEncounterSeconds
+              (\ x__ y__ ->
+                 x__{_IncenseAttributes'movingTimeBetweenEncounterSeconds = y__})
+
+type instance
+     Data.ProtoLens.Field "distanceRequiredForShorterIntervalMeters"
+       IncenseAttributes
+     = Data.Int.Int32
+
+instance Data.ProtoLens.HasField
+         "distanceRequiredForShorterIntervalMeters" IncenseAttributes
+         IncenseAttributes where
+        field _
+          = Lens.Family2.Unchecked.lens
+              _IncenseAttributes'distanceRequiredForShorterIntervalMeters
+              (\ x__ y__ ->
+                 x__{_IncenseAttributes'distanceRequiredForShorterIntervalMeters =
+                       y__})
+
+type instance
+     Data.ProtoLens.Field "pokemonAttractedLengthSec" IncenseAttributes
+     = Data.Int.Int32
+
+instance Data.ProtoLens.HasField "pokemonAttractedLengthSec"
+         IncenseAttributes IncenseAttributes where
+        field _
+          = Lens.Family2.Unchecked.lens
+              _IncenseAttributes'pokemonAttractedLengthSec
+              (\ x__ y__ ->
+                 x__{_IncenseAttributes'pokemonAttractedLengthSec = y__})
+
+instance Data.Default.Class.Default IncenseAttributes where
+        def
+          = IncenseAttributes{_IncenseAttributes'incenseLifetimeSeconds =
+                                Data.ProtoLens.fieldDefault,
+                              _IncenseAttributes'pokemonType = [],
+                              _IncenseAttributes'pokemonIncenseTypeProbability =
+                                Data.ProtoLens.fieldDefault,
+                              _IncenseAttributes'standingTimeBetweenEncountersSeconds =
+                                Data.ProtoLens.fieldDefault,
+                              _IncenseAttributes'movingTimeBetweenEncounterSeconds =
+                                Data.ProtoLens.fieldDefault,
+                              _IncenseAttributes'distanceRequiredForShorterIntervalMeters =
+                                Data.ProtoLens.fieldDefault,
+                              _IncenseAttributes'pokemonAttractedLengthSec =
+                                Data.ProtoLens.fieldDefault}
+
+instance Data.ProtoLens.Message IncenseAttributes where
+        descriptor
+          = let incenseLifetimeSeconds__field_descriptor
+                  = Data.ProtoLens.FieldDescriptor "incense_lifetime_seconds"
+                      (Data.ProtoLens.Int32Field ::
+                         Data.ProtoLens.FieldTypeDescriptor Data.Int.Int32)
+                      (Data.ProtoLens.PlainField Data.ProtoLens.Optional
+                         incenseLifetimeSeconds)
+                pokemonType__field_descriptor
+                  = Data.ProtoLens.FieldDescriptor "pokemon_type"
+                      (Data.ProtoLens.EnumField ::
+                         Data.ProtoLens.FieldTypeDescriptor
+                           Proto.POGOProtos.Enums.PokemonType.PokemonType)
+                      (Data.ProtoLens.RepeatedField Data.ProtoLens.Unpacked pokemonType)
+                pokemonIncenseTypeProbability__field_descriptor
+                  = Data.ProtoLens.FieldDescriptor "pokemon_incense_type_probability"
+                      (Data.ProtoLens.FloatField ::
+                         Data.ProtoLens.FieldTypeDescriptor Prelude.Float)
+                      (Data.ProtoLens.PlainField Data.ProtoLens.Optional
+                         pokemonIncenseTypeProbability)
+                standingTimeBetweenEncountersSeconds__field_descriptor
+                  = Data.ProtoLens.FieldDescriptor
+                      "standing_time_between_encounters_seconds"
+                      (Data.ProtoLens.Int32Field ::
+                         Data.ProtoLens.FieldTypeDescriptor Data.Int.Int32)
+                      (Data.ProtoLens.PlainField Data.ProtoLens.Optional
+                         standingTimeBetweenEncountersSeconds)
+                movingTimeBetweenEncounterSeconds__field_descriptor
+                  = Data.ProtoLens.FieldDescriptor
+                      "moving_time_between_encounter_seconds"
+                      (Data.ProtoLens.Int32Field ::
+                         Data.ProtoLens.FieldTypeDescriptor Data.Int.Int32)
+                      (Data.ProtoLens.PlainField Data.ProtoLens.Optional
+                         movingTimeBetweenEncounterSeconds)
+                distanceRequiredForShorterIntervalMeters__field_descriptor
+                  = Data.ProtoLens.FieldDescriptor
+                      "distance_required_for_shorter_interval_meters"
+                      (Data.ProtoLens.Int32Field ::
+                         Data.ProtoLens.FieldTypeDescriptor Data.Int.Int32)
+                      (Data.ProtoLens.PlainField Data.ProtoLens.Optional
+                         distanceRequiredForShorterIntervalMeters)
+                pokemonAttractedLengthSec__field_descriptor
+                  = Data.ProtoLens.FieldDescriptor "pokemon_attracted_length_sec"
+                      (Data.ProtoLens.Int32Field ::
+                         Data.ProtoLens.FieldTypeDescriptor Data.Int.Int32)
+                      (Data.ProtoLens.PlainField Data.ProtoLens.Optional
+                         pokemonAttractedLengthSec)
+              in
+              Data.ProtoLens.MessageDescriptor
+                (Data.Map.fromList
+                   [(Data.ProtoLens.Tag 1, incenseLifetimeSeconds__field_descriptor),
+                    (Data.ProtoLens.Tag 2, pokemonType__field_descriptor),
+                    (Data.ProtoLens.Tag 3,
+                     pokemonIncenseTypeProbability__field_descriptor),
+                    (Data.ProtoLens.Tag 4,
+                     standingTimeBetweenEncountersSeconds__field_descriptor),
+                    (Data.ProtoLens.Tag 5,
+                     movingTimeBetweenEncounterSeconds__field_descriptor),
+                    (Data.ProtoLens.Tag 6,
+                     distanceRequiredForShorterIntervalMeters__field_descriptor),
+                    (Data.ProtoLens.Tag 7,
+                     pokemonAttractedLengthSec__field_descriptor)])
+                (Data.Map.fromList
+                   [("incense_lifetime_seconds",
+                     incenseLifetimeSeconds__field_descriptor),
+                    ("pokemon_type", pokemonType__field_descriptor),
+                    ("pokemon_incense_type_probability",
+                     pokemonIncenseTypeProbability__field_descriptor),
+                    ("standing_time_between_encounters_seconds",
+                     standingTimeBetweenEncountersSeconds__field_descriptor),
+                    ("moving_time_between_encounter_seconds",
+                     movingTimeBetweenEncounterSeconds__field_descriptor),
+                    ("distance_required_for_shorter_interval_meters",
+                     distanceRequiredForShorterIntervalMeters__field_descriptor),
+                    ("pokemon_attracted_length_sec",
+                     pokemonAttractedLengthSec__field_descriptor)])
+
+distanceRequiredForShorterIntervalMeters ::
+                                         forall msg msg' .
+                                           Data.ProtoLens.HasField
+                                             "distanceRequiredForShorterIntervalMeters" msg msg' =>
+                                           Lens.Family2.Lens msg msg'
+                                             (Data.ProtoLens.Field
+                                                "distanceRequiredForShorterIntervalMeters"
+                                                msg)
+                                             (Data.ProtoLens.Field
+                                                "distanceRequiredForShorterIntervalMeters"
+                                                msg')
+distanceRequiredForShorterIntervalMeters
+  = Data.ProtoLens.field
+      (Data.ProtoLens.ProxySym ::
+         Data.ProtoLens.ProxySym "distanceRequiredForShorterIntervalMeters")
+
+incenseLifetimeSeconds ::
+                       forall msg msg' .
+                         Data.ProtoLens.HasField "incenseLifetimeSeconds" msg msg' =>
+                         Lens.Family2.Lens msg msg'
+                           (Data.ProtoLens.Field "incenseLifetimeSeconds" msg)
+                           (Data.ProtoLens.Field "incenseLifetimeSeconds" msg')
+incenseLifetimeSeconds
+  = Data.ProtoLens.field
+      (Data.ProtoLens.ProxySym ::
+         Data.ProtoLens.ProxySym "incenseLifetimeSeconds")
+
+movingTimeBetweenEncounterSeconds ::
+                                  forall msg msg' .
+                                    Data.ProtoLens.HasField "movingTimeBetweenEncounterSeconds" msg
+                                      msg' =>
+                                    Lens.Family2.Lens msg msg'
+                                      (Data.ProtoLens.Field "movingTimeBetweenEncounterSeconds" msg)
+                                      (Data.ProtoLens.Field "movingTimeBetweenEncounterSeconds"
+                                         msg')
+movingTimeBetweenEncounterSeconds
+  = Data.ProtoLens.field
+      (Data.ProtoLens.ProxySym ::
+         Data.ProtoLens.ProxySym "movingTimeBetweenEncounterSeconds")
+
+pokemonAttractedLengthSec ::
+                          forall msg msg' .
+                            Data.ProtoLens.HasField "pokemonAttractedLengthSec" msg msg' =>
+                            Lens.Family2.Lens msg msg'
+                              (Data.ProtoLens.Field "pokemonAttractedLengthSec" msg)
+                              (Data.ProtoLens.Field "pokemonAttractedLengthSec" msg')
+pokemonAttractedLengthSec
+  = Data.ProtoLens.field
+      (Data.ProtoLens.ProxySym ::
+         Data.ProtoLens.ProxySym "pokemonAttractedLengthSec")
+
+pokemonIncenseTypeProbability ::
+                              forall msg msg' .
+                                Data.ProtoLens.HasField "pokemonIncenseTypeProbability" msg msg' =>
+                                Lens.Family2.Lens msg msg'
+                                  (Data.ProtoLens.Field "pokemonIncenseTypeProbability" msg)
+                                  (Data.ProtoLens.Field "pokemonIncenseTypeProbability" msg')
+pokemonIncenseTypeProbability
+  = Data.ProtoLens.field
+      (Data.ProtoLens.ProxySym ::
+         Data.ProtoLens.ProxySym "pokemonIncenseTypeProbability")
+
+pokemonType ::
+            forall msg msg' . Data.ProtoLens.HasField "pokemonType" msg msg' =>
+              Lens.Family2.Lens msg msg' (Data.ProtoLens.Field "pokemonType" msg)
+                (Data.ProtoLens.Field "pokemonType" msg')
+pokemonType
+  = Data.ProtoLens.field
+      (Data.ProtoLens.ProxySym :: Data.ProtoLens.ProxySym "pokemonType")
+
+standingTimeBetweenEncountersSeconds ::
+                                     forall msg msg' .
+                                       Data.ProtoLens.HasField
+                                         "standingTimeBetweenEncountersSeconds" msg msg' =>
+                                       Lens.Family2.Lens msg msg'
+                                         (Data.ProtoLens.Field
+                                            "standingTimeBetweenEncountersSeconds"
+                                            msg)
+                                         (Data.ProtoLens.Field
+                                            "standingTimeBetweenEncountersSeconds"
+                                            msg')
+standingTimeBetweenEncountersSeconds
+  = Data.ProtoLens.field
+      (Data.ProtoLens.ProxySym ::
+         Data.ProtoLens.ProxySym "standingTimeBetweenEncountersSeconds")
diff --git a/src/Proto/POGOProtos/Settings/Master/Item/InventoryUpgradeAttributes.hs b/src/Proto/POGOProtos/Settings/Master/Item/InventoryUpgradeAttributes.hs
new file mode 100644
--- /dev/null
+++ b/src/Proto/POGOProtos/Settings/Master/Item/InventoryUpgradeAttributes.hs
@@ -0,0 +1,98 @@
+{- This file was auto-generated from POGOProtos/Settings/Master/Item/InventoryUpgradeAttributes.proto by the proto-lens-protoc program. -}
+{-# LANGUAGE ScopedTypeVariables, DataKinds, TypeFamilies,
+  MultiParamTypeClasses, FlexibleContexts, FlexibleInstances #-}
+{-# OPTIONS_GHC -fno-warn-unused-imports#-}
+module Proto.POGOProtos.Settings.Master.Item.InventoryUpgradeAttributes
+       where
+import qualified Prelude
+import qualified Data.ProtoLens
+import qualified Data.ProtoLens.Message.Enum
+import qualified Lens.Family2
+import qualified Lens.Family2.Unchecked
+import qualified Data.Default.Class
+import qualified Data.Text
+import qualified Data.Int
+import qualified Data.Word
+import qualified Data.Map
+import qualified Data.ByteString
+import qualified Proto.POGOProtos.Inventory.InventoryUpgradeType
+
+data InventoryUpgradeAttributes = InventoryUpgradeAttributes{_InventoryUpgradeAttributes'additionalStorage
+                                                             :: Data.Int.Int32,
+                                                             _InventoryUpgradeAttributes'upgradeType
+                                                             ::
+                                                             Proto.POGOProtos.Inventory.InventoryUpgradeType.InventoryUpgradeType}
+                                deriving (Prelude.Show, Prelude.Eq)
+
+type instance
+     Data.ProtoLens.Field "additionalStorage" InventoryUpgradeAttributes
+     = Data.Int.Int32
+
+instance Data.ProtoLens.HasField "additionalStorage"
+         InventoryUpgradeAttributes InventoryUpgradeAttributes where
+        field _
+          = Lens.Family2.Unchecked.lens
+              _InventoryUpgradeAttributes'additionalStorage
+              (\ x__ y__ ->
+                 x__{_InventoryUpgradeAttributes'additionalStorage = y__})
+
+type instance
+     Data.ProtoLens.Field "upgradeType" InventoryUpgradeAttributes =
+     Proto.POGOProtos.Inventory.InventoryUpgradeType.InventoryUpgradeType
+
+instance Data.ProtoLens.HasField "upgradeType"
+         InventoryUpgradeAttributes InventoryUpgradeAttributes where
+        field _
+          = Lens.Family2.Unchecked.lens
+              _InventoryUpgradeAttributes'upgradeType
+              (\ x__ y__ -> x__{_InventoryUpgradeAttributes'upgradeType = y__})
+
+instance Data.Default.Class.Default InventoryUpgradeAttributes
+         where
+        def
+          = InventoryUpgradeAttributes{_InventoryUpgradeAttributes'additionalStorage
+                                         = Data.ProtoLens.fieldDefault,
+                                       _InventoryUpgradeAttributes'upgradeType =
+                                         Data.Default.Class.def}
+
+instance Data.ProtoLens.Message InventoryUpgradeAttributes where
+        descriptor
+          = let additionalStorage__field_descriptor
+                  = Data.ProtoLens.FieldDescriptor "additional_storage"
+                      (Data.ProtoLens.Int32Field ::
+                         Data.ProtoLens.FieldTypeDescriptor Data.Int.Int32)
+                      (Data.ProtoLens.PlainField Data.ProtoLens.Optional
+                         additionalStorage)
+                upgradeType__field_descriptor
+                  = Data.ProtoLens.FieldDescriptor "upgrade_type"
+                      (Data.ProtoLens.EnumField ::
+                         Data.ProtoLens.FieldTypeDescriptor
+                           Proto.POGOProtos.Inventory.InventoryUpgradeType.InventoryUpgradeType)
+                      (Data.ProtoLens.PlainField Data.ProtoLens.Optional upgradeType)
+              in
+              Data.ProtoLens.MessageDescriptor
+                (Data.Map.fromList
+                   [(Data.ProtoLens.Tag 1, additionalStorage__field_descriptor),
+                    (Data.ProtoLens.Tag 2, upgradeType__field_descriptor)])
+                (Data.Map.fromList
+                   [("additional_storage", additionalStorage__field_descriptor),
+                    ("upgrade_type", upgradeType__field_descriptor)])
+
+additionalStorage ::
+                  forall msg msg' .
+                    Data.ProtoLens.HasField "additionalStorage" msg msg' =>
+                    Lens.Family2.Lens msg msg'
+                      (Data.ProtoLens.Field "additionalStorage" msg)
+                      (Data.ProtoLens.Field "additionalStorage" msg')
+additionalStorage
+  = Data.ProtoLens.field
+      (Data.ProtoLens.ProxySym ::
+         Data.ProtoLens.ProxySym "additionalStorage")
+
+upgradeType ::
+            forall msg msg' . Data.ProtoLens.HasField "upgradeType" msg msg' =>
+              Lens.Family2.Lens msg msg' (Data.ProtoLens.Field "upgradeType" msg)
+                (Data.ProtoLens.Field "upgradeType" msg')
+upgradeType
+  = Data.ProtoLens.field
+      (Data.ProtoLens.ProxySym :: Data.ProtoLens.ProxySym "upgradeType")
diff --git a/src/Proto/POGOProtos/Settings/Master/Item/PokeballAttributes.hs b/src/Proto/POGOProtos/Settings/Master/Item/PokeballAttributes.hs
new file mode 100644
--- /dev/null
+++ b/src/Proto/POGOProtos/Settings/Master/Item/PokeballAttributes.hs
@@ -0,0 +1,152 @@
+{- This file was auto-generated from POGOProtos/Settings/Master/Item/PokeballAttributes.proto by the proto-lens-protoc program. -}
+{-# LANGUAGE ScopedTypeVariables, DataKinds, TypeFamilies,
+  MultiParamTypeClasses, FlexibleContexts, FlexibleInstances #-}
+{-# OPTIONS_GHC -fno-warn-unused-imports#-}
+module Proto.POGOProtos.Settings.Master.Item.PokeballAttributes
+       where
+import qualified Prelude
+import qualified Data.ProtoLens
+import qualified Data.ProtoLens.Message.Enum
+import qualified Lens.Family2
+import qualified Lens.Family2.Unchecked
+import qualified Data.Default.Class
+import qualified Data.Text
+import qualified Data.Int
+import qualified Data.Word
+import qualified Data.Map
+import qualified Data.ByteString
+import qualified Proto.POGOProtos.Enums.ItemEffect
+
+data PokeballAttributes = PokeballAttributes{_PokeballAttributes'itemEffect
+                                             :: Proto.POGOProtos.Enums.ItemEffect.ItemEffect,
+                                             _PokeballAttributes'captureMulti :: Prelude.Float,
+                                             _PokeballAttributes'captureMultiEffect ::
+                                             Prelude.Float,
+                                             _PokeballAttributes'itemEffectMod :: Prelude.Float}
+                        deriving (Prelude.Show, Prelude.Eq)
+
+type instance Data.ProtoLens.Field "itemEffect" PokeballAttributes
+     = Proto.POGOProtos.Enums.ItemEffect.ItemEffect
+
+instance Data.ProtoLens.HasField "itemEffect" PokeballAttributes
+         PokeballAttributes where
+        field _
+          = Lens.Family2.Unchecked.lens _PokeballAttributes'itemEffect
+              (\ x__ y__ -> x__{_PokeballAttributes'itemEffect = y__})
+
+type instance
+     Data.ProtoLens.Field "captureMulti" PokeballAttributes =
+     Prelude.Float
+
+instance Data.ProtoLens.HasField "captureMulti" PokeballAttributes
+         PokeballAttributes where
+        field _
+          = Lens.Family2.Unchecked.lens _PokeballAttributes'captureMulti
+              (\ x__ y__ -> x__{_PokeballAttributes'captureMulti = y__})
+
+type instance
+     Data.ProtoLens.Field "captureMultiEffect" PokeballAttributes =
+     Prelude.Float
+
+instance Data.ProtoLens.HasField "captureMultiEffect"
+         PokeballAttributes PokeballAttributes where
+        field _
+          = Lens.Family2.Unchecked.lens
+              _PokeballAttributes'captureMultiEffect
+              (\ x__ y__ -> x__{_PokeballAttributes'captureMultiEffect = y__})
+
+type instance
+     Data.ProtoLens.Field "itemEffectMod" PokeballAttributes =
+     Prelude.Float
+
+instance Data.ProtoLens.HasField "itemEffectMod" PokeballAttributes
+         PokeballAttributes where
+        field _
+          = Lens.Family2.Unchecked.lens _PokeballAttributes'itemEffectMod
+              (\ x__ y__ -> x__{_PokeballAttributes'itemEffectMod = y__})
+
+instance Data.Default.Class.Default PokeballAttributes where
+        def
+          = PokeballAttributes{_PokeballAttributes'itemEffect =
+                                 Data.Default.Class.def,
+                               _PokeballAttributes'captureMulti = Data.ProtoLens.fieldDefault,
+                               _PokeballAttributes'captureMultiEffect =
+                                 Data.ProtoLens.fieldDefault,
+                               _PokeballAttributes'itemEffectMod = Data.ProtoLens.fieldDefault}
+
+instance Data.ProtoLens.Message PokeballAttributes where
+        descriptor
+          = let itemEffect__field_descriptor
+                  = Data.ProtoLens.FieldDescriptor "item_effect"
+                      (Data.ProtoLens.EnumField ::
+                         Data.ProtoLens.FieldTypeDescriptor
+                           Proto.POGOProtos.Enums.ItemEffect.ItemEffect)
+                      (Data.ProtoLens.PlainField Data.ProtoLens.Optional itemEffect)
+                captureMulti__field_descriptor
+                  = Data.ProtoLens.FieldDescriptor "capture_multi"
+                      (Data.ProtoLens.FloatField ::
+                         Data.ProtoLens.FieldTypeDescriptor Prelude.Float)
+                      (Data.ProtoLens.PlainField Data.ProtoLens.Optional captureMulti)
+                captureMultiEffect__field_descriptor
+                  = Data.ProtoLens.FieldDescriptor "capture_multi_effect"
+                      (Data.ProtoLens.FloatField ::
+                         Data.ProtoLens.FieldTypeDescriptor Prelude.Float)
+                      (Data.ProtoLens.PlainField Data.ProtoLens.Optional
+                         captureMultiEffect)
+                itemEffectMod__field_descriptor
+                  = Data.ProtoLens.FieldDescriptor "item_effect_mod"
+                      (Data.ProtoLens.FloatField ::
+                         Data.ProtoLens.FieldTypeDescriptor Prelude.Float)
+                      (Data.ProtoLens.PlainField Data.ProtoLens.Optional itemEffectMod)
+              in
+              Data.ProtoLens.MessageDescriptor
+                (Data.Map.fromList
+                   [(Data.ProtoLens.Tag 1, itemEffect__field_descriptor),
+                    (Data.ProtoLens.Tag 2, captureMulti__field_descriptor),
+                    (Data.ProtoLens.Tag 3, captureMultiEffect__field_descriptor),
+                    (Data.ProtoLens.Tag 4, itemEffectMod__field_descriptor)])
+                (Data.Map.fromList
+                   [("item_effect", itemEffect__field_descriptor),
+                    ("capture_multi", captureMulti__field_descriptor),
+                    ("capture_multi_effect", captureMultiEffect__field_descriptor),
+                    ("item_effect_mod", itemEffectMod__field_descriptor)])
+
+captureMulti ::
+             forall msg msg' .
+               Data.ProtoLens.HasField "captureMulti" msg msg' =>
+               Lens.Family2.Lens msg msg'
+                 (Data.ProtoLens.Field "captureMulti" msg)
+                 (Data.ProtoLens.Field "captureMulti" msg')
+captureMulti
+  = Data.ProtoLens.field
+      (Data.ProtoLens.ProxySym :: Data.ProtoLens.ProxySym "captureMulti")
+
+captureMultiEffect ::
+                   forall msg msg' .
+                     Data.ProtoLens.HasField "captureMultiEffect" msg msg' =>
+                     Lens.Family2.Lens msg msg'
+                       (Data.ProtoLens.Field "captureMultiEffect" msg)
+                       (Data.ProtoLens.Field "captureMultiEffect" msg')
+captureMultiEffect
+  = Data.ProtoLens.field
+      (Data.ProtoLens.ProxySym ::
+         Data.ProtoLens.ProxySym "captureMultiEffect")
+
+itemEffect ::
+           forall msg msg' . Data.ProtoLens.HasField "itemEffect" msg msg' =>
+             Lens.Family2.Lens msg msg' (Data.ProtoLens.Field "itemEffect" msg)
+               (Data.ProtoLens.Field "itemEffect" msg')
+itemEffect
+  = Data.ProtoLens.field
+      (Data.ProtoLens.ProxySym :: Data.ProtoLens.ProxySym "itemEffect")
+
+itemEffectMod ::
+              forall msg msg' .
+                Data.ProtoLens.HasField "itemEffectMod" msg msg' =>
+                Lens.Family2.Lens msg msg'
+                  (Data.ProtoLens.Field "itemEffectMod" msg)
+                  (Data.ProtoLens.Field "itemEffectMod" msg')
+itemEffectMod
+  = Data.ProtoLens.field
+      (Data.ProtoLens.ProxySym ::
+         Data.ProtoLens.ProxySym "itemEffectMod")
diff --git a/src/Proto/POGOProtos/Settings/Master/Item/PotionAttributes.hs b/src/Proto/POGOProtos/Settings/Master/Item/PotionAttributes.hs
new file mode 100644
--- /dev/null
+++ b/src/Proto/POGOProtos/Settings/Master/Item/PotionAttributes.hs
@@ -0,0 +1,82 @@
+{- This file was auto-generated from POGOProtos/Settings/Master/Item/PotionAttributes.proto by the proto-lens-protoc program. -}
+{-# LANGUAGE ScopedTypeVariables, DataKinds, TypeFamilies,
+  MultiParamTypeClasses, FlexibleContexts, FlexibleInstances #-}
+{-# OPTIONS_GHC -fno-warn-unused-imports#-}
+module Proto.POGOProtos.Settings.Master.Item.PotionAttributes where
+import qualified Prelude
+import qualified Data.ProtoLens
+import qualified Data.ProtoLens.Message.Enum
+import qualified Lens.Family2
+import qualified Lens.Family2.Unchecked
+import qualified Data.Default.Class
+import qualified Data.Text
+import qualified Data.Int
+import qualified Data.Word
+import qualified Data.Map
+import qualified Data.ByteString
+
+data PotionAttributes = PotionAttributes{_PotionAttributes'staPercent
+                                         :: Prelude.Float,
+                                         _PotionAttributes'staAmount :: Data.Int.Int32}
+                      deriving (Prelude.Show, Prelude.Eq)
+
+type instance Data.ProtoLens.Field "staPercent" PotionAttributes =
+     Prelude.Float
+
+instance Data.ProtoLens.HasField "staPercent" PotionAttributes
+         PotionAttributes where
+        field _
+          = Lens.Family2.Unchecked.lens _PotionAttributes'staPercent
+              (\ x__ y__ -> x__{_PotionAttributes'staPercent = y__})
+
+type instance Data.ProtoLens.Field "staAmount" PotionAttributes =
+     Data.Int.Int32
+
+instance Data.ProtoLens.HasField "staAmount" PotionAttributes
+         PotionAttributes where
+        field _
+          = Lens.Family2.Unchecked.lens _PotionAttributes'staAmount
+              (\ x__ y__ -> x__{_PotionAttributes'staAmount = y__})
+
+instance Data.Default.Class.Default PotionAttributes where
+        def
+          = PotionAttributes{_PotionAttributes'staPercent =
+                               Data.ProtoLens.fieldDefault,
+                             _PotionAttributes'staAmount = Data.ProtoLens.fieldDefault}
+
+instance Data.ProtoLens.Message PotionAttributes where
+        descriptor
+          = let staPercent__field_descriptor
+                  = Data.ProtoLens.FieldDescriptor "sta_percent"
+                      (Data.ProtoLens.FloatField ::
+                         Data.ProtoLens.FieldTypeDescriptor Prelude.Float)
+                      (Data.ProtoLens.PlainField Data.ProtoLens.Optional staPercent)
+                staAmount__field_descriptor
+                  = Data.ProtoLens.FieldDescriptor "sta_amount"
+                      (Data.ProtoLens.Int32Field ::
+                         Data.ProtoLens.FieldTypeDescriptor Data.Int.Int32)
+                      (Data.ProtoLens.PlainField Data.ProtoLens.Optional staAmount)
+              in
+              Data.ProtoLens.MessageDescriptor
+                (Data.Map.fromList
+                   [(Data.ProtoLens.Tag 1, staPercent__field_descriptor),
+                    (Data.ProtoLens.Tag 2, staAmount__field_descriptor)])
+                (Data.Map.fromList
+                   [("sta_percent", staPercent__field_descriptor),
+                    ("sta_amount", staAmount__field_descriptor)])
+
+staAmount ::
+          forall msg msg' . Data.ProtoLens.HasField "staAmount" msg msg' =>
+            Lens.Family2.Lens msg msg' (Data.ProtoLens.Field "staAmount" msg)
+              (Data.ProtoLens.Field "staAmount" msg')
+staAmount
+  = Data.ProtoLens.field
+      (Data.ProtoLens.ProxySym :: Data.ProtoLens.ProxySym "staAmount")
+
+staPercent ::
+           forall msg msg' . Data.ProtoLens.HasField "staPercent" msg msg' =>
+             Lens.Family2.Lens msg msg' (Data.ProtoLens.Field "staPercent" msg)
+               (Data.ProtoLens.Field "staPercent" msg')
+staPercent
+  = Data.ProtoLens.field
+      (Data.ProtoLens.ProxySym :: Data.ProtoLens.ProxySym "staPercent")
diff --git a/src/Proto/POGOProtos/Settings/Master/Item/ReviveAttributes.hs b/src/Proto/POGOProtos/Settings/Master/Item/ReviveAttributes.hs
new file mode 100644
--- /dev/null
+++ b/src/Proto/POGOProtos/Settings/Master/Item/ReviveAttributes.hs
@@ -0,0 +1,55 @@
+{- This file was auto-generated from POGOProtos/Settings/Master/Item/ReviveAttributes.proto by the proto-lens-protoc program. -}
+{-# LANGUAGE ScopedTypeVariables, DataKinds, TypeFamilies,
+  MultiParamTypeClasses, FlexibleContexts, FlexibleInstances #-}
+{-# OPTIONS_GHC -fno-warn-unused-imports#-}
+module Proto.POGOProtos.Settings.Master.Item.ReviveAttributes where
+import qualified Prelude
+import qualified Data.ProtoLens
+import qualified Data.ProtoLens.Message.Enum
+import qualified Lens.Family2
+import qualified Lens.Family2.Unchecked
+import qualified Data.Default.Class
+import qualified Data.Text
+import qualified Data.Int
+import qualified Data.Word
+import qualified Data.Map
+import qualified Data.ByteString
+
+data ReviveAttributes = ReviveAttributes{_ReviveAttributes'staPercent
+                                         :: Prelude.Float}
+                      deriving (Prelude.Show, Prelude.Eq)
+
+type instance Data.ProtoLens.Field "staPercent" ReviveAttributes =
+     Prelude.Float
+
+instance Data.ProtoLens.HasField "staPercent" ReviveAttributes
+         ReviveAttributes where
+        field _
+          = Lens.Family2.Unchecked.lens _ReviveAttributes'staPercent
+              (\ x__ y__ -> x__{_ReviveAttributes'staPercent = y__})
+
+instance Data.Default.Class.Default ReviveAttributes where
+        def
+          = ReviveAttributes{_ReviveAttributes'staPercent =
+                               Data.ProtoLens.fieldDefault}
+
+instance Data.ProtoLens.Message ReviveAttributes where
+        descriptor
+          = let staPercent__field_descriptor
+                  = Data.ProtoLens.FieldDescriptor "sta_percent"
+                      (Data.ProtoLens.FloatField ::
+                         Data.ProtoLens.FieldTypeDescriptor Prelude.Float)
+                      (Data.ProtoLens.PlainField Data.ProtoLens.Optional staPercent)
+              in
+              Data.ProtoLens.MessageDescriptor
+                (Data.Map.fromList
+                   [(Data.ProtoLens.Tag 1, staPercent__field_descriptor)])
+                (Data.Map.fromList [("sta_percent", staPercent__field_descriptor)])
+
+staPercent ::
+           forall msg msg' . Data.ProtoLens.HasField "staPercent" msg msg' =>
+             Lens.Family2.Lens msg msg' (Data.ProtoLens.Field "staPercent" msg)
+               (Data.ProtoLens.Field "staPercent" msg')
+staPercent
+  = Data.ProtoLens.field
+      (Data.ProtoLens.ProxySym :: Data.ProtoLens.ProxySym "staPercent")
diff --git a/src/Proto/POGOProtos/Settings/Master/ItemSettings.hs b/src/Proto/POGOProtos/Settings/Master/ItemSettings.hs
new file mode 100644
--- /dev/null
+++ b/src/Proto/POGOProtos/Settings/Master/ItemSettings.hs
@@ -0,0 +1,696 @@
+{- This file was auto-generated from POGOProtos/Settings/Master/ItemSettings.proto by the proto-lens-protoc program. -}
+{-# LANGUAGE ScopedTypeVariables, DataKinds, TypeFamilies,
+  MultiParamTypeClasses, FlexibleContexts, FlexibleInstances #-}
+{-# OPTIONS_GHC -fno-warn-unused-imports#-}
+module Proto.POGOProtos.Settings.Master.ItemSettings where
+import qualified Prelude
+import qualified Data.ProtoLens
+import qualified Data.ProtoLens.Message.Enum
+import qualified Lens.Family2
+import qualified Lens.Family2.Unchecked
+import qualified Data.Default.Class
+import qualified Data.Text
+import qualified Data.Int
+import qualified Data.Word
+import qualified Data.Map
+import qualified Data.ByteString
+import qualified Proto.POGOProtos.Enums.ItemCategory
+import qualified Proto.POGOProtos.Inventory.Item.ItemId
+import qualified Proto.POGOProtos.Inventory.Item.ItemType
+import qualified
+       Proto.POGOProtos.Settings.Master.Item.BattleAttributes
+import qualified
+       Proto.POGOProtos.Settings.Master.Item.EggIncubatorAttributes
+import qualified
+       Proto.POGOProtos.Settings.Master.Item.ExperienceBoostAttributes
+import qualified
+       Proto.POGOProtos.Settings.Master.Item.FoodAttributes
+import qualified
+       Proto.POGOProtos.Settings.Master.Item.FortModifierAttributes
+import qualified
+       Proto.POGOProtos.Settings.Master.Item.IncenseAttributes
+import qualified
+       Proto.POGOProtos.Settings.Master.Item.InventoryUpgradeAttributes
+import qualified
+       Proto.POGOProtos.Settings.Master.Item.PokeballAttributes
+import qualified
+       Proto.POGOProtos.Settings.Master.Item.PotionAttributes
+import qualified
+       Proto.POGOProtos.Settings.Master.Item.ReviveAttributes
+
+data ItemSettings = ItemSettings{_ItemSettings'itemId ::
+                                 Proto.POGOProtos.Inventory.Item.ItemId.ItemId,
+                                 _ItemSettings'itemType ::
+                                 Proto.POGOProtos.Inventory.Item.ItemType.ItemType,
+                                 _ItemSettings'category ::
+                                 Proto.POGOProtos.Enums.ItemCategory.ItemCategory,
+                                 _ItemSettings'dropFreq :: Prelude.Float,
+                                 _ItemSettings'dropTrainerLevel :: Data.Int.Int32,
+                                 _ItemSettings'pokeball ::
+                                 Prelude.Maybe
+                                   Proto.POGOProtos.Settings.Master.Item.PokeballAttributes.PokeballAttributes,
+                                 _ItemSettings'potion ::
+                                 Prelude.Maybe
+                                   Proto.POGOProtos.Settings.Master.Item.PotionAttributes.PotionAttributes,
+                                 _ItemSettings'revive ::
+                                 Prelude.Maybe
+                                   Proto.POGOProtos.Settings.Master.Item.ReviveAttributes.ReviveAttributes,
+                                 _ItemSettings'battle ::
+                                 Prelude.Maybe
+                                   Proto.POGOProtos.Settings.Master.Item.BattleAttributes.BattleAttributes,
+                                 _ItemSettings'food ::
+                                 Prelude.Maybe
+                                   Proto.POGOProtos.Settings.Master.Item.FoodAttributes.FoodAttributes,
+                                 _ItemSettings'inventoryUpgrade ::
+                                 Prelude.Maybe
+                                   Proto.POGOProtos.Settings.Master.Item.InventoryUpgradeAttributes.InventoryUpgradeAttributes,
+                                 _ItemSettings'xpBoost ::
+                                 Prelude.Maybe
+                                   Proto.POGOProtos.Settings.Master.Item.ExperienceBoostAttributes.ExperienceBoostAttributes,
+                                 _ItemSettings'incense ::
+                                 Prelude.Maybe
+                                   Proto.POGOProtos.Settings.Master.Item.IncenseAttributes.IncenseAttributes,
+                                 _ItemSettings'eggIncubator ::
+                                 Prelude.Maybe
+                                   Proto.POGOProtos.Settings.Master.Item.EggIncubatorAttributes.EggIncubatorAttributes,
+                                 _ItemSettings'fortModifier ::
+                                 Prelude.Maybe
+                                   Proto.POGOProtos.Settings.Master.Item.FortModifierAttributes.FortModifierAttributes}
+                  deriving (Prelude.Show, Prelude.Eq)
+
+type instance Data.ProtoLens.Field "itemId" ItemSettings =
+     Proto.POGOProtos.Inventory.Item.ItemId.ItemId
+
+instance Data.ProtoLens.HasField "itemId" ItemSettings ItemSettings
+         where
+        field _
+          = Lens.Family2.Unchecked.lens _ItemSettings'itemId
+              (\ x__ y__ -> x__{_ItemSettings'itemId = y__})
+
+type instance Data.ProtoLens.Field "itemType" ItemSettings =
+     Proto.POGOProtos.Inventory.Item.ItemType.ItemType
+
+instance Data.ProtoLens.HasField "itemType" ItemSettings
+         ItemSettings where
+        field _
+          = Lens.Family2.Unchecked.lens _ItemSettings'itemType
+              (\ x__ y__ -> x__{_ItemSettings'itemType = y__})
+
+type instance Data.ProtoLens.Field "category" ItemSettings =
+     Proto.POGOProtos.Enums.ItemCategory.ItemCategory
+
+instance Data.ProtoLens.HasField "category" ItemSettings
+         ItemSettings where
+        field _
+          = Lens.Family2.Unchecked.lens _ItemSettings'category
+              (\ x__ y__ -> x__{_ItemSettings'category = y__})
+
+type instance Data.ProtoLens.Field "dropFreq" ItemSettings =
+     Prelude.Float
+
+instance Data.ProtoLens.HasField "dropFreq" ItemSettings
+         ItemSettings where
+        field _
+          = Lens.Family2.Unchecked.lens _ItemSettings'dropFreq
+              (\ x__ y__ -> x__{_ItemSettings'dropFreq = y__})
+
+type instance Data.ProtoLens.Field "dropTrainerLevel" ItemSettings
+     = Data.Int.Int32
+
+instance Data.ProtoLens.HasField "dropTrainerLevel" ItemSettings
+         ItemSettings where
+        field _
+          = Lens.Family2.Unchecked.lens _ItemSettings'dropTrainerLevel
+              (\ x__ y__ -> x__{_ItemSettings'dropTrainerLevel = y__})
+
+type instance Data.ProtoLens.Field "pokeball" ItemSettings =
+     Proto.POGOProtos.Settings.Master.Item.PokeballAttributes.PokeballAttributes
+
+instance Data.ProtoLens.HasField "pokeball" ItemSettings
+         ItemSettings where
+        field _
+          = (Prelude..) maybe'pokeball
+              (Data.ProtoLens.maybeLens Data.Default.Class.def)
+
+type instance Data.ProtoLens.Field "maybe'pokeball" ItemSettings =
+     Prelude.Maybe
+       Proto.POGOProtos.Settings.Master.Item.PokeballAttributes.PokeballAttributes
+
+instance Data.ProtoLens.HasField "maybe'pokeball" ItemSettings
+         ItemSettings where
+        field _
+          = Lens.Family2.Unchecked.lens _ItemSettings'pokeball
+              (\ x__ y__ -> x__{_ItemSettings'pokeball = y__})
+
+type instance Data.ProtoLens.Field "potion" ItemSettings =
+     Proto.POGOProtos.Settings.Master.Item.PotionAttributes.PotionAttributes
+
+instance Data.ProtoLens.HasField "potion" ItemSettings ItemSettings
+         where
+        field _
+          = (Prelude..) maybe'potion
+              (Data.ProtoLens.maybeLens Data.Default.Class.def)
+
+type instance Data.ProtoLens.Field "maybe'potion" ItemSettings =
+     Prelude.Maybe
+       Proto.POGOProtos.Settings.Master.Item.PotionAttributes.PotionAttributes
+
+instance Data.ProtoLens.HasField "maybe'potion" ItemSettings
+         ItemSettings where
+        field _
+          = Lens.Family2.Unchecked.lens _ItemSettings'potion
+              (\ x__ y__ -> x__{_ItemSettings'potion = y__})
+
+type instance Data.ProtoLens.Field "revive" ItemSettings =
+     Proto.POGOProtos.Settings.Master.Item.ReviveAttributes.ReviveAttributes
+
+instance Data.ProtoLens.HasField "revive" ItemSettings ItemSettings
+         where
+        field _
+          = (Prelude..) maybe'revive
+              (Data.ProtoLens.maybeLens Data.Default.Class.def)
+
+type instance Data.ProtoLens.Field "maybe'revive" ItemSettings =
+     Prelude.Maybe
+       Proto.POGOProtos.Settings.Master.Item.ReviveAttributes.ReviveAttributes
+
+instance Data.ProtoLens.HasField "maybe'revive" ItemSettings
+         ItemSettings where
+        field _
+          = Lens.Family2.Unchecked.lens _ItemSettings'revive
+              (\ x__ y__ -> x__{_ItemSettings'revive = y__})
+
+type instance Data.ProtoLens.Field "battle" ItemSettings =
+     Proto.POGOProtos.Settings.Master.Item.BattleAttributes.BattleAttributes
+
+instance Data.ProtoLens.HasField "battle" ItemSettings ItemSettings
+         where
+        field _
+          = (Prelude..) maybe'battle
+              (Data.ProtoLens.maybeLens Data.Default.Class.def)
+
+type instance Data.ProtoLens.Field "maybe'battle" ItemSettings =
+     Prelude.Maybe
+       Proto.POGOProtos.Settings.Master.Item.BattleAttributes.BattleAttributes
+
+instance Data.ProtoLens.HasField "maybe'battle" ItemSettings
+         ItemSettings where
+        field _
+          = Lens.Family2.Unchecked.lens _ItemSettings'battle
+              (\ x__ y__ -> x__{_ItemSettings'battle = y__})
+
+type instance Data.ProtoLens.Field "food" ItemSettings =
+     Proto.POGOProtos.Settings.Master.Item.FoodAttributes.FoodAttributes
+
+instance Data.ProtoLens.HasField "food" ItemSettings ItemSettings
+         where
+        field _
+          = (Prelude..) maybe'food
+              (Data.ProtoLens.maybeLens Data.Default.Class.def)
+
+type instance Data.ProtoLens.Field "maybe'food" ItemSettings =
+     Prelude.Maybe
+       Proto.POGOProtos.Settings.Master.Item.FoodAttributes.FoodAttributes
+
+instance Data.ProtoLens.HasField "maybe'food" ItemSettings
+         ItemSettings where
+        field _
+          = Lens.Family2.Unchecked.lens _ItemSettings'food
+              (\ x__ y__ -> x__{_ItemSettings'food = y__})
+
+type instance Data.ProtoLens.Field "inventoryUpgrade" ItemSettings
+     =
+     Proto.POGOProtos.Settings.Master.Item.InventoryUpgradeAttributes.InventoryUpgradeAttributes
+
+instance Data.ProtoLens.HasField "inventoryUpgrade" ItemSettings
+         ItemSettings where
+        field _
+          = (Prelude..) maybe'inventoryUpgrade
+              (Data.ProtoLens.maybeLens Data.Default.Class.def)
+
+type instance
+     Data.ProtoLens.Field "maybe'inventoryUpgrade" ItemSettings =
+     Prelude.Maybe
+       Proto.POGOProtos.Settings.Master.Item.InventoryUpgradeAttributes.InventoryUpgradeAttributes
+
+instance Data.ProtoLens.HasField "maybe'inventoryUpgrade"
+         ItemSettings ItemSettings where
+        field _
+          = Lens.Family2.Unchecked.lens _ItemSettings'inventoryUpgrade
+              (\ x__ y__ -> x__{_ItemSettings'inventoryUpgrade = y__})
+
+type instance Data.ProtoLens.Field "xpBoost" ItemSettings =
+     Proto.POGOProtos.Settings.Master.Item.ExperienceBoostAttributes.ExperienceBoostAttributes
+
+instance Data.ProtoLens.HasField "xpBoost" ItemSettings
+         ItemSettings where
+        field _
+          = (Prelude..) maybe'xpBoost
+              (Data.ProtoLens.maybeLens Data.Default.Class.def)
+
+type instance Data.ProtoLens.Field "maybe'xpBoost" ItemSettings =
+     Prelude.Maybe
+       Proto.POGOProtos.Settings.Master.Item.ExperienceBoostAttributes.ExperienceBoostAttributes
+
+instance Data.ProtoLens.HasField "maybe'xpBoost" ItemSettings
+         ItemSettings where
+        field _
+          = Lens.Family2.Unchecked.lens _ItemSettings'xpBoost
+              (\ x__ y__ -> x__{_ItemSettings'xpBoost = y__})
+
+type instance Data.ProtoLens.Field "incense" ItemSettings =
+     Proto.POGOProtos.Settings.Master.Item.IncenseAttributes.IncenseAttributes
+
+instance Data.ProtoLens.HasField "incense" ItemSettings
+         ItemSettings where
+        field _
+          = (Prelude..) maybe'incense
+              (Data.ProtoLens.maybeLens Data.Default.Class.def)
+
+type instance Data.ProtoLens.Field "maybe'incense" ItemSettings =
+     Prelude.Maybe
+       Proto.POGOProtos.Settings.Master.Item.IncenseAttributes.IncenseAttributes
+
+instance Data.ProtoLens.HasField "maybe'incense" ItemSettings
+         ItemSettings where
+        field _
+          = Lens.Family2.Unchecked.lens _ItemSettings'incense
+              (\ x__ y__ -> x__{_ItemSettings'incense = y__})
+
+type instance Data.ProtoLens.Field "eggIncubator" ItemSettings =
+     Proto.POGOProtos.Settings.Master.Item.EggIncubatorAttributes.EggIncubatorAttributes
+
+instance Data.ProtoLens.HasField "eggIncubator" ItemSettings
+         ItemSettings where
+        field _
+          = (Prelude..) maybe'eggIncubator
+              (Data.ProtoLens.maybeLens Data.Default.Class.def)
+
+type instance
+     Data.ProtoLens.Field "maybe'eggIncubator" ItemSettings =
+     Prelude.Maybe
+       Proto.POGOProtos.Settings.Master.Item.EggIncubatorAttributes.EggIncubatorAttributes
+
+instance Data.ProtoLens.HasField "maybe'eggIncubator" ItemSettings
+         ItemSettings where
+        field _
+          = Lens.Family2.Unchecked.lens _ItemSettings'eggIncubator
+              (\ x__ y__ -> x__{_ItemSettings'eggIncubator = y__})
+
+type instance Data.ProtoLens.Field "fortModifier" ItemSettings =
+     Proto.POGOProtos.Settings.Master.Item.FortModifierAttributes.FortModifierAttributes
+
+instance Data.ProtoLens.HasField "fortModifier" ItemSettings
+         ItemSettings where
+        field _
+          = (Prelude..) maybe'fortModifier
+              (Data.ProtoLens.maybeLens Data.Default.Class.def)
+
+type instance
+     Data.ProtoLens.Field "maybe'fortModifier" ItemSettings =
+     Prelude.Maybe
+       Proto.POGOProtos.Settings.Master.Item.FortModifierAttributes.FortModifierAttributes
+
+instance Data.ProtoLens.HasField "maybe'fortModifier" ItemSettings
+         ItemSettings where
+        field _
+          = Lens.Family2.Unchecked.lens _ItemSettings'fortModifier
+              (\ x__ y__ -> x__{_ItemSettings'fortModifier = y__})
+
+instance Data.Default.Class.Default ItemSettings where
+        def
+          = ItemSettings{_ItemSettings'itemId = Data.Default.Class.def,
+                         _ItemSettings'itemType = Data.Default.Class.def,
+                         _ItemSettings'category = Data.Default.Class.def,
+                         _ItemSettings'dropFreq = Data.ProtoLens.fieldDefault,
+                         _ItemSettings'dropTrainerLevel = Data.ProtoLens.fieldDefault,
+                         _ItemSettings'pokeball = Prelude.Nothing,
+                         _ItemSettings'potion = Prelude.Nothing,
+                         _ItemSettings'revive = Prelude.Nothing,
+                         _ItemSettings'battle = Prelude.Nothing,
+                         _ItemSettings'food = Prelude.Nothing,
+                         _ItemSettings'inventoryUpgrade = Prelude.Nothing,
+                         _ItemSettings'xpBoost = Prelude.Nothing,
+                         _ItemSettings'incense = Prelude.Nothing,
+                         _ItemSettings'eggIncubator = Prelude.Nothing,
+                         _ItemSettings'fortModifier = Prelude.Nothing}
+
+instance Data.ProtoLens.Message ItemSettings where
+        descriptor
+          = let itemId__field_descriptor
+                  = Data.ProtoLens.FieldDescriptor "item_id"
+                      (Data.ProtoLens.EnumField ::
+                         Data.ProtoLens.FieldTypeDescriptor
+                           Proto.POGOProtos.Inventory.Item.ItemId.ItemId)
+                      (Data.ProtoLens.PlainField Data.ProtoLens.Optional itemId)
+                itemType__field_descriptor
+                  = Data.ProtoLens.FieldDescriptor "item_type"
+                      (Data.ProtoLens.EnumField ::
+                         Data.ProtoLens.FieldTypeDescriptor
+                           Proto.POGOProtos.Inventory.Item.ItemType.ItemType)
+                      (Data.ProtoLens.PlainField Data.ProtoLens.Optional itemType)
+                category__field_descriptor
+                  = Data.ProtoLens.FieldDescriptor "category"
+                      (Data.ProtoLens.EnumField ::
+                         Data.ProtoLens.FieldTypeDescriptor
+                           Proto.POGOProtos.Enums.ItemCategory.ItemCategory)
+                      (Data.ProtoLens.PlainField Data.ProtoLens.Optional category)
+                dropFreq__field_descriptor
+                  = Data.ProtoLens.FieldDescriptor "drop_freq"
+                      (Data.ProtoLens.FloatField ::
+                         Data.ProtoLens.FieldTypeDescriptor Prelude.Float)
+                      (Data.ProtoLens.PlainField Data.ProtoLens.Optional dropFreq)
+                dropTrainerLevel__field_descriptor
+                  = Data.ProtoLens.FieldDescriptor "drop_trainer_level"
+                      (Data.ProtoLens.Int32Field ::
+                         Data.ProtoLens.FieldTypeDescriptor Data.Int.Int32)
+                      (Data.ProtoLens.PlainField Data.ProtoLens.Optional
+                         dropTrainerLevel)
+                pokeball__field_descriptor
+                  = Data.ProtoLens.FieldDescriptor "pokeball"
+                      (Data.ProtoLens.MessageField ::
+                         Data.ProtoLens.FieldTypeDescriptor
+                           Proto.POGOProtos.Settings.Master.Item.PokeballAttributes.PokeballAttributes)
+                      (Data.ProtoLens.OptionalField maybe'pokeball)
+                potion__field_descriptor
+                  = Data.ProtoLens.FieldDescriptor "potion"
+                      (Data.ProtoLens.MessageField ::
+                         Data.ProtoLens.FieldTypeDescriptor
+                           Proto.POGOProtos.Settings.Master.Item.PotionAttributes.PotionAttributes)
+                      (Data.ProtoLens.OptionalField maybe'potion)
+                revive__field_descriptor
+                  = Data.ProtoLens.FieldDescriptor "revive"
+                      (Data.ProtoLens.MessageField ::
+                         Data.ProtoLens.FieldTypeDescriptor
+                           Proto.POGOProtos.Settings.Master.Item.ReviveAttributes.ReviveAttributes)
+                      (Data.ProtoLens.OptionalField maybe'revive)
+                battle__field_descriptor
+                  = Data.ProtoLens.FieldDescriptor "battle"
+                      (Data.ProtoLens.MessageField ::
+                         Data.ProtoLens.FieldTypeDescriptor
+                           Proto.POGOProtos.Settings.Master.Item.BattleAttributes.BattleAttributes)
+                      (Data.ProtoLens.OptionalField maybe'battle)
+                food__field_descriptor
+                  = Data.ProtoLens.FieldDescriptor "food"
+                      (Data.ProtoLens.MessageField ::
+                         Data.ProtoLens.FieldTypeDescriptor
+                           Proto.POGOProtos.Settings.Master.Item.FoodAttributes.FoodAttributes)
+                      (Data.ProtoLens.OptionalField maybe'food)
+                inventoryUpgrade__field_descriptor
+                  = Data.ProtoLens.FieldDescriptor "inventory_upgrade"
+                      (Data.ProtoLens.MessageField ::
+                         Data.ProtoLens.FieldTypeDescriptor
+                           Proto.POGOProtos.Settings.Master.Item.InventoryUpgradeAttributes.InventoryUpgradeAttributes)
+                      (Data.ProtoLens.OptionalField maybe'inventoryUpgrade)
+                xpBoost__field_descriptor
+                  = Data.ProtoLens.FieldDescriptor "xp_boost"
+                      (Data.ProtoLens.MessageField ::
+                         Data.ProtoLens.FieldTypeDescriptor
+                           Proto.POGOProtos.Settings.Master.Item.ExperienceBoostAttributes.ExperienceBoostAttributes)
+                      (Data.ProtoLens.OptionalField maybe'xpBoost)
+                incense__field_descriptor
+                  = Data.ProtoLens.FieldDescriptor "incense"
+                      (Data.ProtoLens.MessageField ::
+                         Data.ProtoLens.FieldTypeDescriptor
+                           Proto.POGOProtos.Settings.Master.Item.IncenseAttributes.IncenseAttributes)
+                      (Data.ProtoLens.OptionalField maybe'incense)
+                eggIncubator__field_descriptor
+                  = Data.ProtoLens.FieldDescriptor "egg_incubator"
+                      (Data.ProtoLens.MessageField ::
+                         Data.ProtoLens.FieldTypeDescriptor
+                           Proto.POGOProtos.Settings.Master.Item.EggIncubatorAttributes.EggIncubatorAttributes)
+                      (Data.ProtoLens.OptionalField maybe'eggIncubator)
+                fortModifier__field_descriptor
+                  = Data.ProtoLens.FieldDescriptor "fort_modifier"
+                      (Data.ProtoLens.MessageField ::
+                         Data.ProtoLens.FieldTypeDescriptor
+                           Proto.POGOProtos.Settings.Master.Item.FortModifierAttributes.FortModifierAttributes)
+                      (Data.ProtoLens.OptionalField maybe'fortModifier)
+              in
+              Data.ProtoLens.MessageDescriptor
+                (Data.Map.fromList
+                   [(Data.ProtoLens.Tag 1, itemId__field_descriptor),
+                    (Data.ProtoLens.Tag 2, itemType__field_descriptor),
+                    (Data.ProtoLens.Tag 3, category__field_descriptor),
+                    (Data.ProtoLens.Tag 4, dropFreq__field_descriptor),
+                    (Data.ProtoLens.Tag 5, dropTrainerLevel__field_descriptor),
+                    (Data.ProtoLens.Tag 6, pokeball__field_descriptor),
+                    (Data.ProtoLens.Tag 7, potion__field_descriptor),
+                    (Data.ProtoLens.Tag 8, revive__field_descriptor),
+                    (Data.ProtoLens.Tag 9, battle__field_descriptor),
+                    (Data.ProtoLens.Tag 10, food__field_descriptor),
+                    (Data.ProtoLens.Tag 11, inventoryUpgrade__field_descriptor),
+                    (Data.ProtoLens.Tag 12, xpBoost__field_descriptor),
+                    (Data.ProtoLens.Tag 13, incense__field_descriptor),
+                    (Data.ProtoLens.Tag 14, eggIncubator__field_descriptor),
+                    (Data.ProtoLens.Tag 15, fortModifier__field_descriptor)])
+                (Data.Map.fromList
+                   [("item_id", itemId__field_descriptor),
+                    ("item_type", itemType__field_descriptor),
+                    ("category", category__field_descriptor),
+                    ("drop_freq", dropFreq__field_descriptor),
+                    ("drop_trainer_level", dropTrainerLevel__field_descriptor),
+                    ("pokeball", pokeball__field_descriptor),
+                    ("potion", potion__field_descriptor),
+                    ("revive", revive__field_descriptor),
+                    ("battle", battle__field_descriptor),
+                    ("food", food__field_descriptor),
+                    ("inventory_upgrade", inventoryUpgrade__field_descriptor),
+                    ("xp_boost", xpBoost__field_descriptor),
+                    ("incense", incense__field_descriptor),
+                    ("egg_incubator", eggIncubator__field_descriptor),
+                    ("fort_modifier", fortModifier__field_descriptor)])
+
+battle ::
+       forall msg msg' . Data.ProtoLens.HasField "battle" msg msg' =>
+         Lens.Family2.Lens msg msg' (Data.ProtoLens.Field "battle" msg)
+           (Data.ProtoLens.Field "battle" msg')
+battle
+  = Data.ProtoLens.field
+      (Data.ProtoLens.ProxySym :: Data.ProtoLens.ProxySym "battle")
+
+category ::
+         forall msg msg' . Data.ProtoLens.HasField "category" msg msg' =>
+           Lens.Family2.Lens msg msg' (Data.ProtoLens.Field "category" msg)
+             (Data.ProtoLens.Field "category" msg')
+category
+  = Data.ProtoLens.field
+      (Data.ProtoLens.ProxySym :: Data.ProtoLens.ProxySym "category")
+
+dropFreq ::
+         forall msg msg' . Data.ProtoLens.HasField "dropFreq" msg msg' =>
+           Lens.Family2.Lens msg msg' (Data.ProtoLens.Field "dropFreq" msg)
+             (Data.ProtoLens.Field "dropFreq" msg')
+dropFreq
+  = Data.ProtoLens.field
+      (Data.ProtoLens.ProxySym :: Data.ProtoLens.ProxySym "dropFreq")
+
+dropTrainerLevel ::
+                 forall msg msg' .
+                   Data.ProtoLens.HasField "dropTrainerLevel" msg msg' =>
+                   Lens.Family2.Lens msg msg'
+                     (Data.ProtoLens.Field "dropTrainerLevel" msg)
+                     (Data.ProtoLens.Field "dropTrainerLevel" msg')
+dropTrainerLevel
+  = Data.ProtoLens.field
+      (Data.ProtoLens.ProxySym ::
+         Data.ProtoLens.ProxySym "dropTrainerLevel")
+
+eggIncubator ::
+             forall msg msg' .
+               Data.ProtoLens.HasField "eggIncubator" msg msg' =>
+               Lens.Family2.Lens msg msg'
+                 (Data.ProtoLens.Field "eggIncubator" msg)
+                 (Data.ProtoLens.Field "eggIncubator" msg')
+eggIncubator
+  = Data.ProtoLens.field
+      (Data.ProtoLens.ProxySym :: Data.ProtoLens.ProxySym "eggIncubator")
+
+food ::
+     forall msg msg' . Data.ProtoLens.HasField "food" msg msg' =>
+       Lens.Family2.Lens msg msg' (Data.ProtoLens.Field "food" msg)
+         (Data.ProtoLens.Field "food" msg')
+food
+  = Data.ProtoLens.field
+      (Data.ProtoLens.ProxySym :: Data.ProtoLens.ProxySym "food")
+
+fortModifier ::
+             forall msg msg' .
+               Data.ProtoLens.HasField "fortModifier" msg msg' =>
+               Lens.Family2.Lens msg msg'
+                 (Data.ProtoLens.Field "fortModifier" msg)
+                 (Data.ProtoLens.Field "fortModifier" msg')
+fortModifier
+  = Data.ProtoLens.field
+      (Data.ProtoLens.ProxySym :: Data.ProtoLens.ProxySym "fortModifier")
+
+incense ::
+        forall msg msg' . Data.ProtoLens.HasField "incense" msg msg' =>
+          Lens.Family2.Lens msg msg' (Data.ProtoLens.Field "incense" msg)
+            (Data.ProtoLens.Field "incense" msg')
+incense
+  = Data.ProtoLens.field
+      (Data.ProtoLens.ProxySym :: Data.ProtoLens.ProxySym "incense")
+
+inventoryUpgrade ::
+                 forall msg msg' .
+                   Data.ProtoLens.HasField "inventoryUpgrade" msg msg' =>
+                   Lens.Family2.Lens msg msg'
+                     (Data.ProtoLens.Field "inventoryUpgrade" msg)
+                     (Data.ProtoLens.Field "inventoryUpgrade" msg')
+inventoryUpgrade
+  = Data.ProtoLens.field
+      (Data.ProtoLens.ProxySym ::
+         Data.ProtoLens.ProxySym "inventoryUpgrade")
+
+itemId ::
+       forall msg msg' . Data.ProtoLens.HasField "itemId" msg msg' =>
+         Lens.Family2.Lens msg msg' (Data.ProtoLens.Field "itemId" msg)
+           (Data.ProtoLens.Field "itemId" msg')
+itemId
+  = Data.ProtoLens.field
+      (Data.ProtoLens.ProxySym :: Data.ProtoLens.ProxySym "itemId")
+
+itemType ::
+         forall msg msg' . Data.ProtoLens.HasField "itemType" msg msg' =>
+           Lens.Family2.Lens msg msg' (Data.ProtoLens.Field "itemType" msg)
+             (Data.ProtoLens.Field "itemType" msg')
+itemType
+  = Data.ProtoLens.field
+      (Data.ProtoLens.ProxySym :: Data.ProtoLens.ProxySym "itemType")
+
+maybe'battle ::
+             forall msg msg' .
+               Data.ProtoLens.HasField "maybe'battle" msg msg' =>
+               Lens.Family2.Lens msg msg'
+                 (Data.ProtoLens.Field "maybe'battle" msg)
+                 (Data.ProtoLens.Field "maybe'battle" msg')
+maybe'battle
+  = Data.ProtoLens.field
+      (Data.ProtoLens.ProxySym :: Data.ProtoLens.ProxySym "maybe'battle")
+
+maybe'eggIncubator ::
+                   forall msg msg' .
+                     Data.ProtoLens.HasField "maybe'eggIncubator" msg msg' =>
+                     Lens.Family2.Lens msg msg'
+                       (Data.ProtoLens.Field "maybe'eggIncubator" msg)
+                       (Data.ProtoLens.Field "maybe'eggIncubator" msg')
+maybe'eggIncubator
+  = Data.ProtoLens.field
+      (Data.ProtoLens.ProxySym ::
+         Data.ProtoLens.ProxySym "maybe'eggIncubator")
+
+maybe'food ::
+           forall msg msg' . Data.ProtoLens.HasField "maybe'food" msg msg' =>
+             Lens.Family2.Lens msg msg' (Data.ProtoLens.Field "maybe'food" msg)
+               (Data.ProtoLens.Field "maybe'food" msg')
+maybe'food
+  = Data.ProtoLens.field
+      (Data.ProtoLens.ProxySym :: Data.ProtoLens.ProxySym "maybe'food")
+
+maybe'fortModifier ::
+                   forall msg msg' .
+                     Data.ProtoLens.HasField "maybe'fortModifier" msg msg' =>
+                     Lens.Family2.Lens msg msg'
+                       (Data.ProtoLens.Field "maybe'fortModifier" msg)
+                       (Data.ProtoLens.Field "maybe'fortModifier" msg')
+maybe'fortModifier
+  = Data.ProtoLens.field
+      (Data.ProtoLens.ProxySym ::
+         Data.ProtoLens.ProxySym "maybe'fortModifier")
+
+maybe'incense ::
+              forall msg msg' .
+                Data.ProtoLens.HasField "maybe'incense" msg msg' =>
+                Lens.Family2.Lens msg msg'
+                  (Data.ProtoLens.Field "maybe'incense" msg)
+                  (Data.ProtoLens.Field "maybe'incense" msg')
+maybe'incense
+  = Data.ProtoLens.field
+      (Data.ProtoLens.ProxySym ::
+         Data.ProtoLens.ProxySym "maybe'incense")
+
+maybe'inventoryUpgrade ::
+                       forall msg msg' .
+                         Data.ProtoLens.HasField "maybe'inventoryUpgrade" msg msg' =>
+                         Lens.Family2.Lens msg msg'
+                           (Data.ProtoLens.Field "maybe'inventoryUpgrade" msg)
+                           (Data.ProtoLens.Field "maybe'inventoryUpgrade" msg')
+maybe'inventoryUpgrade
+  = Data.ProtoLens.field
+      (Data.ProtoLens.ProxySym ::
+         Data.ProtoLens.ProxySym "maybe'inventoryUpgrade")
+
+maybe'pokeball ::
+               forall msg msg' .
+                 Data.ProtoLens.HasField "maybe'pokeball" msg msg' =>
+                 Lens.Family2.Lens msg msg'
+                   (Data.ProtoLens.Field "maybe'pokeball" msg)
+                   (Data.ProtoLens.Field "maybe'pokeball" msg')
+maybe'pokeball
+  = Data.ProtoLens.field
+      (Data.ProtoLens.ProxySym ::
+         Data.ProtoLens.ProxySym "maybe'pokeball")
+
+maybe'potion ::
+             forall msg msg' .
+               Data.ProtoLens.HasField "maybe'potion" msg msg' =>
+               Lens.Family2.Lens msg msg'
+                 (Data.ProtoLens.Field "maybe'potion" msg)
+                 (Data.ProtoLens.Field "maybe'potion" msg')
+maybe'potion
+  = Data.ProtoLens.field
+      (Data.ProtoLens.ProxySym :: Data.ProtoLens.ProxySym "maybe'potion")
+
+maybe'revive ::
+             forall msg msg' .
+               Data.ProtoLens.HasField "maybe'revive" msg msg' =>
+               Lens.Family2.Lens msg msg'
+                 (Data.ProtoLens.Field "maybe'revive" msg)
+                 (Data.ProtoLens.Field "maybe'revive" msg')
+maybe'revive
+  = Data.ProtoLens.field
+      (Data.ProtoLens.ProxySym :: Data.ProtoLens.ProxySym "maybe'revive")
+
+maybe'xpBoost ::
+              forall msg msg' .
+                Data.ProtoLens.HasField "maybe'xpBoost" msg msg' =>
+                Lens.Family2.Lens msg msg'
+                  (Data.ProtoLens.Field "maybe'xpBoost" msg)
+                  (Data.ProtoLens.Field "maybe'xpBoost" msg')
+maybe'xpBoost
+  = Data.ProtoLens.field
+      (Data.ProtoLens.ProxySym ::
+         Data.ProtoLens.ProxySym "maybe'xpBoost")
+
+pokeball ::
+         forall msg msg' . Data.ProtoLens.HasField "pokeball" msg msg' =>
+           Lens.Family2.Lens msg msg' (Data.ProtoLens.Field "pokeball" msg)
+             (Data.ProtoLens.Field "pokeball" msg')
+pokeball
+  = Data.ProtoLens.field
+      (Data.ProtoLens.ProxySym :: Data.ProtoLens.ProxySym "pokeball")
+
+potion ::
+       forall msg msg' . Data.ProtoLens.HasField "potion" msg msg' =>
+         Lens.Family2.Lens msg msg' (Data.ProtoLens.Field "potion" msg)
+           (Data.ProtoLens.Field "potion" msg')
+potion
+  = Data.ProtoLens.field
+      (Data.ProtoLens.ProxySym :: Data.ProtoLens.ProxySym "potion")
+
+revive ::
+       forall msg msg' . Data.ProtoLens.HasField "revive" msg msg' =>
+         Lens.Family2.Lens msg msg' (Data.ProtoLens.Field "revive" msg)
+           (Data.ProtoLens.Field "revive" msg')
+revive
+  = Data.ProtoLens.field
+      (Data.ProtoLens.ProxySym :: Data.ProtoLens.ProxySym "revive")
+
+xpBoost ::
+        forall msg msg' . Data.ProtoLens.HasField "xpBoost" msg msg' =>
+          Lens.Family2.Lens msg msg' (Data.ProtoLens.Field "xpBoost" msg)
+            (Data.ProtoLens.Field "xpBoost" msg')
+xpBoost
+  = Data.ProtoLens.field
+      (Data.ProtoLens.ProxySym :: Data.ProtoLens.ProxySym "xpBoost")
diff --git a/src/Proto/POGOProtos/Settings/Master/MoveSequenceSettings.hs b/src/Proto/POGOProtos/Settings/Master/MoveSequenceSettings.hs
new file mode 100644
--- /dev/null
+++ b/src/Proto/POGOProtos/Settings/Master/MoveSequenceSettings.hs
@@ -0,0 +1,53 @@
+{- This file was auto-generated from POGOProtos/Settings/Master/MoveSequenceSettings.proto by the proto-lens-protoc program. -}
+{-# LANGUAGE ScopedTypeVariables, DataKinds, TypeFamilies,
+  MultiParamTypeClasses, FlexibleContexts, FlexibleInstances #-}
+{-# OPTIONS_GHC -fno-warn-unused-imports#-}
+module Proto.POGOProtos.Settings.Master.MoveSequenceSettings where
+import qualified Prelude
+import qualified Data.ProtoLens
+import qualified Data.ProtoLens.Message.Enum
+import qualified Lens.Family2
+import qualified Lens.Family2.Unchecked
+import qualified Data.Default.Class
+import qualified Data.Text
+import qualified Data.Int
+import qualified Data.Word
+import qualified Data.Map
+import qualified Data.ByteString
+
+data MoveSequenceSettings = MoveSequenceSettings{_MoveSequenceSettings'sequence
+                                                 :: [Data.Text.Text]}
+                          deriving (Prelude.Show, Prelude.Eq)
+
+type instance Data.ProtoLens.Field "sequence" MoveSequenceSettings
+     = [Data.Text.Text]
+
+instance Data.ProtoLens.HasField "sequence" MoveSequenceSettings
+         MoveSequenceSettings where
+        field _
+          = Lens.Family2.Unchecked.lens _MoveSequenceSettings'sequence
+              (\ x__ y__ -> x__{_MoveSequenceSettings'sequence = y__})
+
+instance Data.Default.Class.Default MoveSequenceSettings where
+        def = MoveSequenceSettings{_MoveSequenceSettings'sequence = []}
+
+instance Data.ProtoLens.Message MoveSequenceSettings where
+        descriptor
+          = let sequence__field_descriptor
+                  = Data.ProtoLens.FieldDescriptor "sequence"
+                      (Data.ProtoLens.StringField ::
+                         Data.ProtoLens.FieldTypeDescriptor Data.Text.Text)
+                      (Data.ProtoLens.RepeatedField Data.ProtoLens.Unpacked sequence)
+              in
+              Data.ProtoLens.MessageDescriptor
+                (Data.Map.fromList
+                   [(Data.ProtoLens.Tag 1, sequence__field_descriptor)])
+                (Data.Map.fromList [("sequence", sequence__field_descriptor)])
+
+sequence ::
+         forall msg msg' . Data.ProtoLens.HasField "sequence" msg msg' =>
+           Lens.Family2.Lens msg msg' (Data.ProtoLens.Field "sequence" msg)
+             (Data.ProtoLens.Field "sequence" msg')
+sequence
+  = Data.ProtoLens.field
+      (Data.ProtoLens.ProxySym :: Data.ProtoLens.ProxySym "sequence")
diff --git a/src/Proto/POGOProtos/Settings/Master/MoveSettings.hs b/src/Proto/POGOProtos/Settings/Master/MoveSettings.hs
new file mode 100644
--- /dev/null
+++ b/src/Proto/POGOProtos/Settings/Master/MoveSettings.hs
@@ -0,0 +1,449 @@
+{- This file was auto-generated from POGOProtos/Settings/Master/MoveSettings.proto by the proto-lens-protoc program. -}
+{-# LANGUAGE ScopedTypeVariables, DataKinds, TypeFamilies,
+  MultiParamTypeClasses, FlexibleContexts, FlexibleInstances #-}
+{-# OPTIONS_GHC -fno-warn-unused-imports#-}
+module Proto.POGOProtos.Settings.Master.MoveSettings where
+import qualified Prelude
+import qualified Data.ProtoLens
+import qualified Data.ProtoLens.Message.Enum
+import qualified Lens.Family2
+import qualified Lens.Family2.Unchecked
+import qualified Data.Default.Class
+import qualified Data.Text
+import qualified Data.Int
+import qualified Data.Word
+import qualified Data.Map
+import qualified Data.ByteString
+import qualified Proto.POGOProtos.Enums.PokemonMovementType
+import qualified Proto.POGOProtos.Enums.PokemonType
+
+data MoveSettings = MoveSettings{_MoveSettings'movementId ::
+                                 Proto.POGOProtos.Enums.PokemonMovementType.PokemonMovementType,
+                                 _MoveSettings'animationId :: Data.Int.Int32,
+                                 _MoveSettings'pokemonType ::
+                                 Proto.POGOProtos.Enums.PokemonType.PokemonType,
+                                 _MoveSettings'power :: Prelude.Float,
+                                 _MoveSettings'accuracyChance :: Prelude.Float,
+                                 _MoveSettings'criticalChance :: Prelude.Float,
+                                 _MoveSettings'healScalar :: Prelude.Float,
+                                 _MoveSettings'staminaLossScalar :: Prelude.Float,
+                                 _MoveSettings'trainerLevelMin :: Data.Int.Int32,
+                                 _MoveSettings'trainerLevelMax :: Data.Int.Int32,
+                                 _MoveSettings'vfxName :: Data.Text.Text,
+                                 _MoveSettings'durationMs :: Data.Int.Int32,
+                                 _MoveSettings'damageWindowStartMs :: Data.Int.Int32,
+                                 _MoveSettings'damageWindowEndMs :: Data.Int.Int32,
+                                 _MoveSettings'energyDelta :: Data.Int.Int32}
+                  deriving (Prelude.Show, Prelude.Eq)
+
+type instance Data.ProtoLens.Field "movementId" MoveSettings =
+     Proto.POGOProtos.Enums.PokemonMovementType.PokemonMovementType
+
+instance Data.ProtoLens.HasField "movementId" MoveSettings
+         MoveSettings where
+        field _
+          = Lens.Family2.Unchecked.lens _MoveSettings'movementId
+              (\ x__ y__ -> x__{_MoveSettings'movementId = y__})
+
+type instance Data.ProtoLens.Field "animationId" MoveSettings =
+     Data.Int.Int32
+
+instance Data.ProtoLens.HasField "animationId" MoveSettings
+         MoveSettings where
+        field _
+          = Lens.Family2.Unchecked.lens _MoveSettings'animationId
+              (\ x__ y__ -> x__{_MoveSettings'animationId = y__})
+
+type instance Data.ProtoLens.Field "pokemonType" MoveSettings =
+     Proto.POGOProtos.Enums.PokemonType.PokemonType
+
+instance Data.ProtoLens.HasField "pokemonType" MoveSettings
+         MoveSettings where
+        field _
+          = Lens.Family2.Unchecked.lens _MoveSettings'pokemonType
+              (\ x__ y__ -> x__{_MoveSettings'pokemonType = y__})
+
+type instance Data.ProtoLens.Field "power" MoveSettings =
+     Prelude.Float
+
+instance Data.ProtoLens.HasField "power" MoveSettings MoveSettings
+         where
+        field _
+          = Lens.Family2.Unchecked.lens _MoveSettings'power
+              (\ x__ y__ -> x__{_MoveSettings'power = y__})
+
+type instance Data.ProtoLens.Field "accuracyChance" MoveSettings =
+     Prelude.Float
+
+instance Data.ProtoLens.HasField "accuracyChance" MoveSettings
+         MoveSettings where
+        field _
+          = Lens.Family2.Unchecked.lens _MoveSettings'accuracyChance
+              (\ x__ y__ -> x__{_MoveSettings'accuracyChance = y__})
+
+type instance Data.ProtoLens.Field "criticalChance" MoveSettings =
+     Prelude.Float
+
+instance Data.ProtoLens.HasField "criticalChance" MoveSettings
+         MoveSettings where
+        field _
+          = Lens.Family2.Unchecked.lens _MoveSettings'criticalChance
+              (\ x__ y__ -> x__{_MoveSettings'criticalChance = y__})
+
+type instance Data.ProtoLens.Field "healScalar" MoveSettings =
+     Prelude.Float
+
+instance Data.ProtoLens.HasField "healScalar" MoveSettings
+         MoveSettings where
+        field _
+          = Lens.Family2.Unchecked.lens _MoveSettings'healScalar
+              (\ x__ y__ -> x__{_MoveSettings'healScalar = y__})
+
+type instance Data.ProtoLens.Field "staminaLossScalar" MoveSettings
+     = Prelude.Float
+
+instance Data.ProtoLens.HasField "staminaLossScalar" MoveSettings
+         MoveSettings where
+        field _
+          = Lens.Family2.Unchecked.lens _MoveSettings'staminaLossScalar
+              (\ x__ y__ -> x__{_MoveSettings'staminaLossScalar = y__})
+
+type instance Data.ProtoLens.Field "trainerLevelMin" MoveSettings =
+     Data.Int.Int32
+
+instance Data.ProtoLens.HasField "trainerLevelMin" MoveSettings
+         MoveSettings where
+        field _
+          = Lens.Family2.Unchecked.lens _MoveSettings'trainerLevelMin
+              (\ x__ y__ -> x__{_MoveSettings'trainerLevelMin = y__})
+
+type instance Data.ProtoLens.Field "trainerLevelMax" MoveSettings =
+     Data.Int.Int32
+
+instance Data.ProtoLens.HasField "trainerLevelMax" MoveSettings
+         MoveSettings where
+        field _
+          = Lens.Family2.Unchecked.lens _MoveSettings'trainerLevelMax
+              (\ x__ y__ -> x__{_MoveSettings'trainerLevelMax = y__})
+
+type instance Data.ProtoLens.Field "vfxName" MoveSettings =
+     Data.Text.Text
+
+instance Data.ProtoLens.HasField "vfxName" MoveSettings
+         MoveSettings where
+        field _
+          = Lens.Family2.Unchecked.lens _MoveSettings'vfxName
+              (\ x__ y__ -> x__{_MoveSettings'vfxName = y__})
+
+type instance Data.ProtoLens.Field "durationMs" MoveSettings =
+     Data.Int.Int32
+
+instance Data.ProtoLens.HasField "durationMs" MoveSettings
+         MoveSettings where
+        field _
+          = Lens.Family2.Unchecked.lens _MoveSettings'durationMs
+              (\ x__ y__ -> x__{_MoveSettings'durationMs = y__})
+
+type instance
+     Data.ProtoLens.Field "damageWindowStartMs" MoveSettings =
+     Data.Int.Int32
+
+instance Data.ProtoLens.HasField "damageWindowStartMs" MoveSettings
+         MoveSettings where
+        field _
+          = Lens.Family2.Unchecked.lens _MoveSettings'damageWindowStartMs
+              (\ x__ y__ -> x__{_MoveSettings'damageWindowStartMs = y__})
+
+type instance Data.ProtoLens.Field "damageWindowEndMs" MoveSettings
+     = Data.Int.Int32
+
+instance Data.ProtoLens.HasField "damageWindowEndMs" MoveSettings
+         MoveSettings where
+        field _
+          = Lens.Family2.Unchecked.lens _MoveSettings'damageWindowEndMs
+              (\ x__ y__ -> x__{_MoveSettings'damageWindowEndMs = y__})
+
+type instance Data.ProtoLens.Field "energyDelta" MoveSettings =
+     Data.Int.Int32
+
+instance Data.ProtoLens.HasField "energyDelta" MoveSettings
+         MoveSettings where
+        field _
+          = Lens.Family2.Unchecked.lens _MoveSettings'energyDelta
+              (\ x__ y__ -> x__{_MoveSettings'energyDelta = y__})
+
+instance Data.Default.Class.Default MoveSettings where
+        def
+          = MoveSettings{_MoveSettings'movementId = Data.Default.Class.def,
+                         _MoveSettings'animationId = Data.ProtoLens.fieldDefault,
+                         _MoveSettings'pokemonType = Data.Default.Class.def,
+                         _MoveSettings'power = Data.ProtoLens.fieldDefault,
+                         _MoveSettings'accuracyChance = Data.ProtoLens.fieldDefault,
+                         _MoveSettings'criticalChance = Data.ProtoLens.fieldDefault,
+                         _MoveSettings'healScalar = Data.ProtoLens.fieldDefault,
+                         _MoveSettings'staminaLossScalar = Data.ProtoLens.fieldDefault,
+                         _MoveSettings'trainerLevelMin = Data.ProtoLens.fieldDefault,
+                         _MoveSettings'trainerLevelMax = Data.ProtoLens.fieldDefault,
+                         _MoveSettings'vfxName = Data.ProtoLens.fieldDefault,
+                         _MoveSettings'durationMs = Data.ProtoLens.fieldDefault,
+                         _MoveSettings'damageWindowStartMs = Data.ProtoLens.fieldDefault,
+                         _MoveSettings'damageWindowEndMs = Data.ProtoLens.fieldDefault,
+                         _MoveSettings'energyDelta = Data.ProtoLens.fieldDefault}
+
+instance Data.ProtoLens.Message MoveSettings where
+        descriptor
+          = let movementId__field_descriptor
+                  = Data.ProtoLens.FieldDescriptor "movement_id"
+                      (Data.ProtoLens.EnumField ::
+                         Data.ProtoLens.FieldTypeDescriptor
+                           Proto.POGOProtos.Enums.PokemonMovementType.PokemonMovementType)
+                      (Data.ProtoLens.PlainField Data.ProtoLens.Optional movementId)
+                animationId__field_descriptor
+                  = Data.ProtoLens.FieldDescriptor "animation_id"
+                      (Data.ProtoLens.Int32Field ::
+                         Data.ProtoLens.FieldTypeDescriptor Data.Int.Int32)
+                      (Data.ProtoLens.PlainField Data.ProtoLens.Optional animationId)
+                pokemonType__field_descriptor
+                  = Data.ProtoLens.FieldDescriptor "pokemon_type"
+                      (Data.ProtoLens.EnumField ::
+                         Data.ProtoLens.FieldTypeDescriptor
+                           Proto.POGOProtos.Enums.PokemonType.PokemonType)
+                      (Data.ProtoLens.PlainField Data.ProtoLens.Optional pokemonType)
+                power__field_descriptor
+                  = Data.ProtoLens.FieldDescriptor "power"
+                      (Data.ProtoLens.FloatField ::
+                         Data.ProtoLens.FieldTypeDescriptor Prelude.Float)
+                      (Data.ProtoLens.PlainField Data.ProtoLens.Optional power)
+                accuracyChance__field_descriptor
+                  = Data.ProtoLens.FieldDescriptor "accuracy_chance"
+                      (Data.ProtoLens.FloatField ::
+                         Data.ProtoLens.FieldTypeDescriptor Prelude.Float)
+                      (Data.ProtoLens.PlainField Data.ProtoLens.Optional accuracyChance)
+                criticalChance__field_descriptor
+                  = Data.ProtoLens.FieldDescriptor "critical_chance"
+                      (Data.ProtoLens.FloatField ::
+                         Data.ProtoLens.FieldTypeDescriptor Prelude.Float)
+                      (Data.ProtoLens.PlainField Data.ProtoLens.Optional criticalChance)
+                healScalar__field_descriptor
+                  = Data.ProtoLens.FieldDescriptor "heal_scalar"
+                      (Data.ProtoLens.FloatField ::
+                         Data.ProtoLens.FieldTypeDescriptor Prelude.Float)
+                      (Data.ProtoLens.PlainField Data.ProtoLens.Optional healScalar)
+                staminaLossScalar__field_descriptor
+                  = Data.ProtoLens.FieldDescriptor "stamina_loss_scalar"
+                      (Data.ProtoLens.FloatField ::
+                         Data.ProtoLens.FieldTypeDescriptor Prelude.Float)
+                      (Data.ProtoLens.PlainField Data.ProtoLens.Optional
+                         staminaLossScalar)
+                trainerLevelMin__field_descriptor
+                  = Data.ProtoLens.FieldDescriptor "trainer_level_min"
+                      (Data.ProtoLens.Int32Field ::
+                         Data.ProtoLens.FieldTypeDescriptor Data.Int.Int32)
+                      (Data.ProtoLens.PlainField Data.ProtoLens.Optional trainerLevelMin)
+                trainerLevelMax__field_descriptor
+                  = Data.ProtoLens.FieldDescriptor "trainer_level_max"
+                      (Data.ProtoLens.Int32Field ::
+                         Data.ProtoLens.FieldTypeDescriptor Data.Int.Int32)
+                      (Data.ProtoLens.PlainField Data.ProtoLens.Optional trainerLevelMax)
+                vfxName__field_descriptor
+                  = Data.ProtoLens.FieldDescriptor "vfx_name"
+                      (Data.ProtoLens.StringField ::
+                         Data.ProtoLens.FieldTypeDescriptor Data.Text.Text)
+                      (Data.ProtoLens.PlainField Data.ProtoLens.Optional vfxName)
+                durationMs__field_descriptor
+                  = Data.ProtoLens.FieldDescriptor "duration_ms"
+                      (Data.ProtoLens.Int32Field ::
+                         Data.ProtoLens.FieldTypeDescriptor Data.Int.Int32)
+                      (Data.ProtoLens.PlainField Data.ProtoLens.Optional durationMs)
+                damageWindowStartMs__field_descriptor
+                  = Data.ProtoLens.FieldDescriptor "damage_window_start_ms"
+                      (Data.ProtoLens.Int32Field ::
+                         Data.ProtoLens.FieldTypeDescriptor Data.Int.Int32)
+                      (Data.ProtoLens.PlainField Data.ProtoLens.Optional
+                         damageWindowStartMs)
+                damageWindowEndMs__field_descriptor
+                  = Data.ProtoLens.FieldDescriptor "damage_window_end_ms"
+                      (Data.ProtoLens.Int32Field ::
+                         Data.ProtoLens.FieldTypeDescriptor Data.Int.Int32)
+                      (Data.ProtoLens.PlainField Data.ProtoLens.Optional
+                         damageWindowEndMs)
+                energyDelta__field_descriptor
+                  = Data.ProtoLens.FieldDescriptor "energy_delta"
+                      (Data.ProtoLens.Int32Field ::
+                         Data.ProtoLens.FieldTypeDescriptor Data.Int.Int32)
+                      (Data.ProtoLens.PlainField Data.ProtoLens.Optional energyDelta)
+              in
+              Data.ProtoLens.MessageDescriptor
+                (Data.Map.fromList
+                   [(Data.ProtoLens.Tag 1, movementId__field_descriptor),
+                    (Data.ProtoLens.Tag 2, animationId__field_descriptor),
+                    (Data.ProtoLens.Tag 3, pokemonType__field_descriptor),
+                    (Data.ProtoLens.Tag 4, power__field_descriptor),
+                    (Data.ProtoLens.Tag 5, accuracyChance__field_descriptor),
+                    (Data.ProtoLens.Tag 6, criticalChance__field_descriptor),
+                    (Data.ProtoLens.Tag 7, healScalar__field_descriptor),
+                    (Data.ProtoLens.Tag 8, staminaLossScalar__field_descriptor),
+                    (Data.ProtoLens.Tag 9, trainerLevelMin__field_descriptor),
+                    (Data.ProtoLens.Tag 10, trainerLevelMax__field_descriptor),
+                    (Data.ProtoLens.Tag 11, vfxName__field_descriptor),
+                    (Data.ProtoLens.Tag 12, durationMs__field_descriptor),
+                    (Data.ProtoLens.Tag 13, damageWindowStartMs__field_descriptor),
+                    (Data.ProtoLens.Tag 14, damageWindowEndMs__field_descriptor),
+                    (Data.ProtoLens.Tag 15, energyDelta__field_descriptor)])
+                (Data.Map.fromList
+                   [("movement_id", movementId__field_descriptor),
+                    ("animation_id", animationId__field_descriptor),
+                    ("pokemon_type", pokemonType__field_descriptor),
+                    ("power", power__field_descriptor),
+                    ("accuracy_chance", accuracyChance__field_descriptor),
+                    ("critical_chance", criticalChance__field_descriptor),
+                    ("heal_scalar", healScalar__field_descriptor),
+                    ("stamina_loss_scalar", staminaLossScalar__field_descriptor),
+                    ("trainer_level_min", trainerLevelMin__field_descriptor),
+                    ("trainer_level_max", trainerLevelMax__field_descriptor),
+                    ("vfx_name", vfxName__field_descriptor),
+                    ("duration_ms", durationMs__field_descriptor),
+                    ("damage_window_start_ms", damageWindowStartMs__field_descriptor),
+                    ("damage_window_end_ms", damageWindowEndMs__field_descriptor),
+                    ("energy_delta", energyDelta__field_descriptor)])
+
+accuracyChance ::
+               forall msg msg' .
+                 Data.ProtoLens.HasField "accuracyChance" msg msg' =>
+                 Lens.Family2.Lens msg msg'
+                   (Data.ProtoLens.Field "accuracyChance" msg)
+                   (Data.ProtoLens.Field "accuracyChance" msg')
+accuracyChance
+  = Data.ProtoLens.field
+      (Data.ProtoLens.ProxySym ::
+         Data.ProtoLens.ProxySym "accuracyChance")
+
+animationId ::
+            forall msg msg' . Data.ProtoLens.HasField "animationId" msg msg' =>
+              Lens.Family2.Lens msg msg' (Data.ProtoLens.Field "animationId" msg)
+                (Data.ProtoLens.Field "animationId" msg')
+animationId
+  = Data.ProtoLens.field
+      (Data.ProtoLens.ProxySym :: Data.ProtoLens.ProxySym "animationId")
+
+criticalChance ::
+               forall msg msg' .
+                 Data.ProtoLens.HasField "criticalChance" msg msg' =>
+                 Lens.Family2.Lens msg msg'
+                   (Data.ProtoLens.Field "criticalChance" msg)
+                   (Data.ProtoLens.Field "criticalChance" msg')
+criticalChance
+  = Data.ProtoLens.field
+      (Data.ProtoLens.ProxySym ::
+         Data.ProtoLens.ProxySym "criticalChance")
+
+damageWindowEndMs ::
+                  forall msg msg' .
+                    Data.ProtoLens.HasField "damageWindowEndMs" msg msg' =>
+                    Lens.Family2.Lens msg msg'
+                      (Data.ProtoLens.Field "damageWindowEndMs" msg)
+                      (Data.ProtoLens.Field "damageWindowEndMs" msg')
+damageWindowEndMs
+  = Data.ProtoLens.field
+      (Data.ProtoLens.ProxySym ::
+         Data.ProtoLens.ProxySym "damageWindowEndMs")
+
+damageWindowStartMs ::
+                    forall msg msg' .
+                      Data.ProtoLens.HasField "damageWindowStartMs" msg msg' =>
+                      Lens.Family2.Lens msg msg'
+                        (Data.ProtoLens.Field "damageWindowStartMs" msg)
+                        (Data.ProtoLens.Field "damageWindowStartMs" msg')
+damageWindowStartMs
+  = Data.ProtoLens.field
+      (Data.ProtoLens.ProxySym ::
+         Data.ProtoLens.ProxySym "damageWindowStartMs")
+
+durationMs ::
+           forall msg msg' . Data.ProtoLens.HasField "durationMs" msg msg' =>
+             Lens.Family2.Lens msg msg' (Data.ProtoLens.Field "durationMs" msg)
+               (Data.ProtoLens.Field "durationMs" msg')
+durationMs
+  = Data.ProtoLens.field
+      (Data.ProtoLens.ProxySym :: Data.ProtoLens.ProxySym "durationMs")
+
+energyDelta ::
+            forall msg msg' . Data.ProtoLens.HasField "energyDelta" msg msg' =>
+              Lens.Family2.Lens msg msg' (Data.ProtoLens.Field "energyDelta" msg)
+                (Data.ProtoLens.Field "energyDelta" msg')
+energyDelta
+  = Data.ProtoLens.field
+      (Data.ProtoLens.ProxySym :: Data.ProtoLens.ProxySym "energyDelta")
+
+healScalar ::
+           forall msg msg' . Data.ProtoLens.HasField "healScalar" msg msg' =>
+             Lens.Family2.Lens msg msg' (Data.ProtoLens.Field "healScalar" msg)
+               (Data.ProtoLens.Field "healScalar" msg')
+healScalar
+  = Data.ProtoLens.field
+      (Data.ProtoLens.ProxySym :: Data.ProtoLens.ProxySym "healScalar")
+
+movementId ::
+           forall msg msg' . Data.ProtoLens.HasField "movementId" msg msg' =>
+             Lens.Family2.Lens msg msg' (Data.ProtoLens.Field "movementId" msg)
+               (Data.ProtoLens.Field "movementId" msg')
+movementId
+  = Data.ProtoLens.field
+      (Data.ProtoLens.ProxySym :: Data.ProtoLens.ProxySym "movementId")
+
+pokemonType ::
+            forall msg msg' . Data.ProtoLens.HasField "pokemonType" msg msg' =>
+              Lens.Family2.Lens msg msg' (Data.ProtoLens.Field "pokemonType" msg)
+                (Data.ProtoLens.Field "pokemonType" msg')
+pokemonType
+  = Data.ProtoLens.field
+      (Data.ProtoLens.ProxySym :: Data.ProtoLens.ProxySym "pokemonType")
+
+power ::
+      forall msg msg' . Data.ProtoLens.HasField "power" msg msg' =>
+        Lens.Family2.Lens msg msg' (Data.ProtoLens.Field "power" msg)
+          (Data.ProtoLens.Field "power" msg')
+power
+  = Data.ProtoLens.field
+      (Data.ProtoLens.ProxySym :: Data.ProtoLens.ProxySym "power")
+
+staminaLossScalar ::
+                  forall msg msg' .
+                    Data.ProtoLens.HasField "staminaLossScalar" msg msg' =>
+                    Lens.Family2.Lens msg msg'
+                      (Data.ProtoLens.Field "staminaLossScalar" msg)
+                      (Data.ProtoLens.Field "staminaLossScalar" msg')
+staminaLossScalar
+  = Data.ProtoLens.field
+      (Data.ProtoLens.ProxySym ::
+         Data.ProtoLens.ProxySym "staminaLossScalar")
+
+trainerLevelMax ::
+                forall msg msg' .
+                  Data.ProtoLens.HasField "trainerLevelMax" msg msg' =>
+                  Lens.Family2.Lens msg msg'
+                    (Data.ProtoLens.Field "trainerLevelMax" msg)
+                    (Data.ProtoLens.Field "trainerLevelMax" msg')
+trainerLevelMax
+  = Data.ProtoLens.field
+      (Data.ProtoLens.ProxySym ::
+         Data.ProtoLens.ProxySym "trainerLevelMax")
+
+trainerLevelMin ::
+                forall msg msg' .
+                  Data.ProtoLens.HasField "trainerLevelMin" msg msg' =>
+                  Lens.Family2.Lens msg msg'
+                    (Data.ProtoLens.Field "trainerLevelMin" msg)
+                    (Data.ProtoLens.Field "trainerLevelMin" msg')
+trainerLevelMin
+  = Data.ProtoLens.field
+      (Data.ProtoLens.ProxySym ::
+         Data.ProtoLens.ProxySym "trainerLevelMin")
+
+vfxName ::
+        forall msg msg' . Data.ProtoLens.HasField "vfxName" msg msg' =>
+          Lens.Family2.Lens msg msg' (Data.ProtoLens.Field "vfxName" msg)
+            (Data.ProtoLens.Field "vfxName" msg')
+vfxName
+  = Data.ProtoLens.field
+      (Data.ProtoLens.ProxySym :: Data.ProtoLens.ProxySym "vfxName")
diff --git a/src/Proto/POGOProtos/Settings/Master/PlayerLevelSettings.hs b/src/Proto/POGOProtos/Settings/Master/PlayerLevelSettings.hs
new file mode 100644
--- /dev/null
+++ b/src/Proto/POGOProtos/Settings/Master/PlayerLevelSettings.hs
@@ -0,0 +1,187 @@
+{- This file was auto-generated from POGOProtos/Settings/Master/PlayerLevelSettings.proto by the proto-lens-protoc program. -}
+{-# LANGUAGE ScopedTypeVariables, DataKinds, TypeFamilies,
+  MultiParamTypeClasses, FlexibleContexts, FlexibleInstances #-}
+{-# OPTIONS_GHC -fno-warn-unused-imports#-}
+module Proto.POGOProtos.Settings.Master.PlayerLevelSettings where
+import qualified Prelude
+import qualified Data.ProtoLens
+import qualified Data.ProtoLens.Message.Enum
+import qualified Lens.Family2
+import qualified Lens.Family2.Unchecked
+import qualified Data.Default.Class
+import qualified Data.Text
+import qualified Data.Int
+import qualified Data.Word
+import qualified Data.Map
+import qualified Data.ByteString
+
+data PlayerLevelSettings = PlayerLevelSettings{_PlayerLevelSettings'rankNum
+                                               :: [Data.Int.Int32],
+                                               _PlayerLevelSettings'requiredExperience ::
+                                               [Data.Int.Int32],
+                                               _PlayerLevelSettings'cpMultiplier :: [Prelude.Float],
+                                               _PlayerLevelSettings'maxEggPlayerLevel ::
+                                               Data.Int.Int32,
+                                               _PlayerLevelSettings'maxEncounterPlayerLevel ::
+                                               Data.Int.Int32}
+                         deriving (Prelude.Show, Prelude.Eq)
+
+type instance Data.ProtoLens.Field "rankNum" PlayerLevelSettings =
+     [Data.Int.Int32]
+
+instance Data.ProtoLens.HasField "rankNum" PlayerLevelSettings
+         PlayerLevelSettings where
+        field _
+          = Lens.Family2.Unchecked.lens _PlayerLevelSettings'rankNum
+              (\ x__ y__ -> x__{_PlayerLevelSettings'rankNum = y__})
+
+type instance
+     Data.ProtoLens.Field "requiredExperience" PlayerLevelSettings =
+     [Data.Int.Int32]
+
+instance Data.ProtoLens.HasField "requiredExperience"
+         PlayerLevelSettings PlayerLevelSettings where
+        field _
+          = Lens.Family2.Unchecked.lens
+              _PlayerLevelSettings'requiredExperience
+              (\ x__ y__ -> x__{_PlayerLevelSettings'requiredExperience = y__})
+
+type instance
+     Data.ProtoLens.Field "cpMultiplier" PlayerLevelSettings =
+     [Prelude.Float]
+
+instance Data.ProtoLens.HasField "cpMultiplier" PlayerLevelSettings
+         PlayerLevelSettings where
+        field _
+          = Lens.Family2.Unchecked.lens _PlayerLevelSettings'cpMultiplier
+              (\ x__ y__ -> x__{_PlayerLevelSettings'cpMultiplier = y__})
+
+type instance
+     Data.ProtoLens.Field "maxEggPlayerLevel" PlayerLevelSettings =
+     Data.Int.Int32
+
+instance Data.ProtoLens.HasField "maxEggPlayerLevel"
+         PlayerLevelSettings PlayerLevelSettings where
+        field _
+          = Lens.Family2.Unchecked.lens
+              _PlayerLevelSettings'maxEggPlayerLevel
+              (\ x__ y__ -> x__{_PlayerLevelSettings'maxEggPlayerLevel = y__})
+
+type instance
+     Data.ProtoLens.Field "maxEncounterPlayerLevel" PlayerLevelSettings
+     = Data.Int.Int32
+
+instance Data.ProtoLens.HasField "maxEncounterPlayerLevel"
+         PlayerLevelSettings PlayerLevelSettings where
+        field _
+          = Lens.Family2.Unchecked.lens
+              _PlayerLevelSettings'maxEncounterPlayerLevel
+              (\ x__ y__ ->
+                 x__{_PlayerLevelSettings'maxEncounterPlayerLevel = y__})
+
+instance Data.Default.Class.Default PlayerLevelSettings where
+        def
+          = PlayerLevelSettings{_PlayerLevelSettings'rankNum = [],
+                                _PlayerLevelSettings'requiredExperience = [],
+                                _PlayerLevelSettings'cpMultiplier = [],
+                                _PlayerLevelSettings'maxEggPlayerLevel =
+                                  Data.ProtoLens.fieldDefault,
+                                _PlayerLevelSettings'maxEncounterPlayerLevel =
+                                  Data.ProtoLens.fieldDefault}
+
+instance Data.ProtoLens.Message PlayerLevelSettings where
+        descriptor
+          = let rankNum__field_descriptor
+                  = Data.ProtoLens.FieldDescriptor "rank_num"
+                      (Data.ProtoLens.Int32Field ::
+                         Data.ProtoLens.FieldTypeDescriptor Data.Int.Int32)
+                      (Data.ProtoLens.RepeatedField Data.ProtoLens.Unpacked rankNum)
+                requiredExperience__field_descriptor
+                  = Data.ProtoLens.FieldDescriptor "required_experience"
+                      (Data.ProtoLens.Int32Field ::
+                         Data.ProtoLens.FieldTypeDescriptor Data.Int.Int32)
+                      (Data.ProtoLens.RepeatedField Data.ProtoLens.Unpacked
+                         requiredExperience)
+                cpMultiplier__field_descriptor
+                  = Data.ProtoLens.FieldDescriptor "cp_multiplier"
+                      (Data.ProtoLens.FloatField ::
+                         Data.ProtoLens.FieldTypeDescriptor Prelude.Float)
+                      (Data.ProtoLens.RepeatedField Data.ProtoLens.Unpacked cpMultiplier)
+                maxEggPlayerLevel__field_descriptor
+                  = Data.ProtoLens.FieldDescriptor "max_egg_player_level"
+                      (Data.ProtoLens.Int32Field ::
+                         Data.ProtoLens.FieldTypeDescriptor Data.Int.Int32)
+                      (Data.ProtoLens.PlainField Data.ProtoLens.Optional
+                         maxEggPlayerLevel)
+                maxEncounterPlayerLevel__field_descriptor
+                  = Data.ProtoLens.FieldDescriptor "max_encounter_player_level"
+                      (Data.ProtoLens.Int32Field ::
+                         Data.ProtoLens.FieldTypeDescriptor Data.Int.Int32)
+                      (Data.ProtoLens.PlainField Data.ProtoLens.Optional
+                         maxEncounterPlayerLevel)
+              in
+              Data.ProtoLens.MessageDescriptor
+                (Data.Map.fromList
+                   [(Data.ProtoLens.Tag 1, rankNum__field_descriptor),
+                    (Data.ProtoLens.Tag 2, requiredExperience__field_descriptor),
+                    (Data.ProtoLens.Tag 3, cpMultiplier__field_descriptor),
+                    (Data.ProtoLens.Tag 4, maxEggPlayerLevel__field_descriptor),
+                    (Data.ProtoLens.Tag 5, maxEncounterPlayerLevel__field_descriptor)])
+                (Data.Map.fromList
+                   [("rank_num", rankNum__field_descriptor),
+                    ("required_experience", requiredExperience__field_descriptor),
+                    ("cp_multiplier", cpMultiplier__field_descriptor),
+                    ("max_egg_player_level", maxEggPlayerLevel__field_descriptor),
+                    ("max_encounter_player_level",
+                     maxEncounterPlayerLevel__field_descriptor)])
+
+cpMultiplier ::
+             forall msg msg' .
+               Data.ProtoLens.HasField "cpMultiplier" msg msg' =>
+               Lens.Family2.Lens msg msg'
+                 (Data.ProtoLens.Field "cpMultiplier" msg)
+                 (Data.ProtoLens.Field "cpMultiplier" msg')
+cpMultiplier
+  = Data.ProtoLens.field
+      (Data.ProtoLens.ProxySym :: Data.ProtoLens.ProxySym "cpMultiplier")
+
+maxEggPlayerLevel ::
+                  forall msg msg' .
+                    Data.ProtoLens.HasField "maxEggPlayerLevel" msg msg' =>
+                    Lens.Family2.Lens msg msg'
+                      (Data.ProtoLens.Field "maxEggPlayerLevel" msg)
+                      (Data.ProtoLens.Field "maxEggPlayerLevel" msg')
+maxEggPlayerLevel
+  = Data.ProtoLens.field
+      (Data.ProtoLens.ProxySym ::
+         Data.ProtoLens.ProxySym "maxEggPlayerLevel")
+
+maxEncounterPlayerLevel ::
+                        forall msg msg' .
+                          Data.ProtoLens.HasField "maxEncounterPlayerLevel" msg msg' =>
+                          Lens.Family2.Lens msg msg'
+                            (Data.ProtoLens.Field "maxEncounterPlayerLevel" msg)
+                            (Data.ProtoLens.Field "maxEncounterPlayerLevel" msg')
+maxEncounterPlayerLevel
+  = Data.ProtoLens.field
+      (Data.ProtoLens.ProxySym ::
+         Data.ProtoLens.ProxySym "maxEncounterPlayerLevel")
+
+rankNum ::
+        forall msg msg' . Data.ProtoLens.HasField "rankNum" msg msg' =>
+          Lens.Family2.Lens msg msg' (Data.ProtoLens.Field "rankNum" msg)
+            (Data.ProtoLens.Field "rankNum" msg')
+rankNum
+  = Data.ProtoLens.field
+      (Data.ProtoLens.ProxySym :: Data.ProtoLens.ProxySym "rankNum")
+
+requiredExperience ::
+                   forall msg msg' .
+                     Data.ProtoLens.HasField "requiredExperience" msg msg' =>
+                     Lens.Family2.Lens msg msg'
+                       (Data.ProtoLens.Field "requiredExperience" msg)
+                       (Data.ProtoLens.Field "requiredExperience" msg')
+requiredExperience
+  = Data.ProtoLens.field
+      (Data.ProtoLens.ProxySym ::
+         Data.ProtoLens.ProxySym "requiredExperience")
diff --git a/src/Proto/POGOProtos/Settings/Master/Pokemon/CameraAttributes.hs b/src/Proto/POGOProtos/Settings/Master/Pokemon/CameraAttributes.hs
new file mode 100644
--- /dev/null
+++ b/src/Proto/POGOProtos/Settings/Master/Pokemon/CameraAttributes.hs
@@ -0,0 +1,178 @@
+{- This file was auto-generated from POGOProtos/Settings/Master/Pokemon/CameraAttributes.proto by the proto-lens-protoc program. -}
+{-# LANGUAGE ScopedTypeVariables, DataKinds, TypeFamilies,
+  MultiParamTypeClasses, FlexibleContexts, FlexibleInstances #-}
+{-# OPTIONS_GHC -fno-warn-unused-imports#-}
+module Proto.POGOProtos.Settings.Master.Pokemon.CameraAttributes
+       where
+import qualified Prelude
+import qualified Data.ProtoLens
+import qualified Data.ProtoLens.Message.Enum
+import qualified Lens.Family2
+import qualified Lens.Family2.Unchecked
+import qualified Data.Default.Class
+import qualified Data.Text
+import qualified Data.Int
+import qualified Data.Word
+import qualified Data.Map
+import qualified Data.ByteString
+
+data CameraAttributes = CameraAttributes{_CameraAttributes'diskRadiusM
+                                         :: Prelude.Float,
+                                         _CameraAttributes'cylinderRadiusM :: Prelude.Float,
+                                         _CameraAttributes'cylinderHeightM :: Prelude.Float,
+                                         _CameraAttributes'cylinderGroundM :: Prelude.Float,
+                                         _CameraAttributes'shoulderModeScale :: Prelude.Float}
+                      deriving (Prelude.Show, Prelude.Eq)
+
+type instance Data.ProtoLens.Field "diskRadiusM" CameraAttributes =
+     Prelude.Float
+
+instance Data.ProtoLens.HasField "diskRadiusM" CameraAttributes
+         CameraAttributes where
+        field _
+          = Lens.Family2.Unchecked.lens _CameraAttributes'diskRadiusM
+              (\ x__ y__ -> x__{_CameraAttributes'diskRadiusM = y__})
+
+type instance
+     Data.ProtoLens.Field "cylinderRadiusM" CameraAttributes =
+     Prelude.Float
+
+instance Data.ProtoLens.HasField "cylinderRadiusM" CameraAttributes
+         CameraAttributes where
+        field _
+          = Lens.Family2.Unchecked.lens _CameraAttributes'cylinderRadiusM
+              (\ x__ y__ -> x__{_CameraAttributes'cylinderRadiusM = y__})
+
+type instance
+     Data.ProtoLens.Field "cylinderHeightM" CameraAttributes =
+     Prelude.Float
+
+instance Data.ProtoLens.HasField "cylinderHeightM" CameraAttributes
+         CameraAttributes where
+        field _
+          = Lens.Family2.Unchecked.lens _CameraAttributes'cylinderHeightM
+              (\ x__ y__ -> x__{_CameraAttributes'cylinderHeightM = y__})
+
+type instance
+     Data.ProtoLens.Field "cylinderGroundM" CameraAttributes =
+     Prelude.Float
+
+instance Data.ProtoLens.HasField "cylinderGroundM" CameraAttributes
+         CameraAttributes where
+        field _
+          = Lens.Family2.Unchecked.lens _CameraAttributes'cylinderGroundM
+              (\ x__ y__ -> x__{_CameraAttributes'cylinderGroundM = y__})
+
+type instance
+     Data.ProtoLens.Field "shoulderModeScale" CameraAttributes =
+     Prelude.Float
+
+instance Data.ProtoLens.HasField "shoulderModeScale"
+         CameraAttributes CameraAttributes where
+        field _
+          = Lens.Family2.Unchecked.lens _CameraAttributes'shoulderModeScale
+              (\ x__ y__ -> x__{_CameraAttributes'shoulderModeScale = y__})
+
+instance Data.Default.Class.Default CameraAttributes where
+        def
+          = CameraAttributes{_CameraAttributes'diskRadiusM =
+                               Data.ProtoLens.fieldDefault,
+                             _CameraAttributes'cylinderRadiusM = Data.ProtoLens.fieldDefault,
+                             _CameraAttributes'cylinderHeightM = Data.ProtoLens.fieldDefault,
+                             _CameraAttributes'cylinderGroundM = Data.ProtoLens.fieldDefault,
+                             _CameraAttributes'shoulderModeScale = Data.ProtoLens.fieldDefault}
+
+instance Data.ProtoLens.Message CameraAttributes where
+        descriptor
+          = let diskRadiusM__field_descriptor
+                  = Data.ProtoLens.FieldDescriptor "disk_radius_m"
+                      (Data.ProtoLens.FloatField ::
+                         Data.ProtoLens.FieldTypeDescriptor Prelude.Float)
+                      (Data.ProtoLens.PlainField Data.ProtoLens.Optional diskRadiusM)
+                cylinderRadiusM__field_descriptor
+                  = Data.ProtoLens.FieldDescriptor "cylinder_radius_m"
+                      (Data.ProtoLens.FloatField ::
+                         Data.ProtoLens.FieldTypeDescriptor Prelude.Float)
+                      (Data.ProtoLens.PlainField Data.ProtoLens.Optional cylinderRadiusM)
+                cylinderHeightM__field_descriptor
+                  = Data.ProtoLens.FieldDescriptor "cylinder_height_m"
+                      (Data.ProtoLens.FloatField ::
+                         Data.ProtoLens.FieldTypeDescriptor Prelude.Float)
+                      (Data.ProtoLens.PlainField Data.ProtoLens.Optional cylinderHeightM)
+                cylinderGroundM__field_descriptor
+                  = Data.ProtoLens.FieldDescriptor "cylinder_ground_m"
+                      (Data.ProtoLens.FloatField ::
+                         Data.ProtoLens.FieldTypeDescriptor Prelude.Float)
+                      (Data.ProtoLens.PlainField Data.ProtoLens.Optional cylinderGroundM)
+                shoulderModeScale__field_descriptor
+                  = Data.ProtoLens.FieldDescriptor "shoulder_mode_scale"
+                      (Data.ProtoLens.FloatField ::
+                         Data.ProtoLens.FieldTypeDescriptor Prelude.Float)
+                      (Data.ProtoLens.PlainField Data.ProtoLens.Optional
+                         shoulderModeScale)
+              in
+              Data.ProtoLens.MessageDescriptor
+                (Data.Map.fromList
+                   [(Data.ProtoLens.Tag 1, diskRadiusM__field_descriptor),
+                    (Data.ProtoLens.Tag 2, cylinderRadiusM__field_descriptor),
+                    (Data.ProtoLens.Tag 3, cylinderHeightM__field_descriptor),
+                    (Data.ProtoLens.Tag 4, cylinderGroundM__field_descriptor),
+                    (Data.ProtoLens.Tag 5, shoulderModeScale__field_descriptor)])
+                (Data.Map.fromList
+                   [("disk_radius_m", diskRadiusM__field_descriptor),
+                    ("cylinder_radius_m", cylinderRadiusM__field_descriptor),
+                    ("cylinder_height_m", cylinderHeightM__field_descriptor),
+                    ("cylinder_ground_m", cylinderGroundM__field_descriptor),
+                    ("shoulder_mode_scale", shoulderModeScale__field_descriptor)])
+
+cylinderGroundM ::
+                forall msg msg' .
+                  Data.ProtoLens.HasField "cylinderGroundM" msg msg' =>
+                  Lens.Family2.Lens msg msg'
+                    (Data.ProtoLens.Field "cylinderGroundM" msg)
+                    (Data.ProtoLens.Field "cylinderGroundM" msg')
+cylinderGroundM
+  = Data.ProtoLens.field
+      (Data.ProtoLens.ProxySym ::
+         Data.ProtoLens.ProxySym "cylinderGroundM")
+
+cylinderHeightM ::
+                forall msg msg' .
+                  Data.ProtoLens.HasField "cylinderHeightM" msg msg' =>
+                  Lens.Family2.Lens msg msg'
+                    (Data.ProtoLens.Field "cylinderHeightM" msg)
+                    (Data.ProtoLens.Field "cylinderHeightM" msg')
+cylinderHeightM
+  = Data.ProtoLens.field
+      (Data.ProtoLens.ProxySym ::
+         Data.ProtoLens.ProxySym "cylinderHeightM")
+
+cylinderRadiusM ::
+                forall msg msg' .
+                  Data.ProtoLens.HasField "cylinderRadiusM" msg msg' =>
+                  Lens.Family2.Lens msg msg'
+                    (Data.ProtoLens.Field "cylinderRadiusM" msg)
+                    (Data.ProtoLens.Field "cylinderRadiusM" msg')
+cylinderRadiusM
+  = Data.ProtoLens.field
+      (Data.ProtoLens.ProxySym ::
+         Data.ProtoLens.ProxySym "cylinderRadiusM")
+
+diskRadiusM ::
+            forall msg msg' . Data.ProtoLens.HasField "diskRadiusM" msg msg' =>
+              Lens.Family2.Lens msg msg' (Data.ProtoLens.Field "diskRadiusM" msg)
+                (Data.ProtoLens.Field "diskRadiusM" msg')
+diskRadiusM
+  = Data.ProtoLens.field
+      (Data.ProtoLens.ProxySym :: Data.ProtoLens.ProxySym "diskRadiusM")
+
+shoulderModeScale ::
+                  forall msg msg' .
+                    Data.ProtoLens.HasField "shoulderModeScale" msg msg' =>
+                    Lens.Family2.Lens msg msg'
+                      (Data.ProtoLens.Field "shoulderModeScale" msg)
+                      (Data.ProtoLens.Field "shoulderModeScale" msg')
+shoulderModeScale
+  = Data.ProtoLens.field
+      (Data.ProtoLens.ProxySym ::
+         Data.ProtoLens.ProxySym "shoulderModeScale")
diff --git a/src/Proto/POGOProtos/Settings/Master/Pokemon/EncounterAttributes.hs b/src/Proto/POGOProtos/Settings/Master/Pokemon/EncounterAttributes.hs
new file mode 100644
--- /dev/null
+++ b/src/Proto/POGOProtos/Settings/Master/Pokemon/EncounterAttributes.hs
@@ -0,0 +1,308 @@
+{- This file was auto-generated from POGOProtos/Settings/Master/Pokemon/EncounterAttributes.proto by the proto-lens-protoc program. -}
+{-# LANGUAGE ScopedTypeVariables, DataKinds, TypeFamilies,
+  MultiParamTypeClasses, FlexibleContexts, FlexibleInstances #-}
+{-# OPTIONS_GHC -fno-warn-unused-imports#-}
+module Proto.POGOProtos.Settings.Master.Pokemon.EncounterAttributes
+       where
+import qualified Prelude
+import qualified Data.ProtoLens
+import qualified Data.ProtoLens.Message.Enum
+import qualified Lens.Family2
+import qualified Lens.Family2.Unchecked
+import qualified Data.Default.Class
+import qualified Data.Text
+import qualified Data.Int
+import qualified Data.Word
+import qualified Data.Map
+import qualified Data.ByteString
+import qualified Proto.POGOProtos.Enums.PokemonMovementType
+
+data EncounterAttributes = EncounterAttributes{_EncounterAttributes'baseCaptureRate
+                                               :: Prelude.Float,
+                                               _EncounterAttributes'baseFleeRate :: Prelude.Float,
+                                               _EncounterAttributes'collisionRadiusM ::
+                                               Prelude.Float,
+                                               _EncounterAttributes'collisionHeightM ::
+                                               Prelude.Float,
+                                               _EncounterAttributes'collisionHeadRadiusM ::
+                                               Prelude.Float,
+                                               _EncounterAttributes'movementType ::
+                                               Proto.POGOProtos.Enums.PokemonMovementType.PokemonMovementType,
+                                               _EncounterAttributes'movementTimerS :: Prelude.Float,
+                                               _EncounterAttributes'jumpTimeS :: Prelude.Float,
+                                               _EncounterAttributes'attackTimerS :: Prelude.Float}
+                         deriving (Prelude.Show, Prelude.Eq)
+
+type instance
+     Data.ProtoLens.Field "baseCaptureRate" EncounterAttributes =
+     Prelude.Float
+
+instance Data.ProtoLens.HasField "baseCaptureRate"
+         EncounterAttributes EncounterAttributes where
+        field _
+          = Lens.Family2.Unchecked.lens _EncounterAttributes'baseCaptureRate
+              (\ x__ y__ -> x__{_EncounterAttributes'baseCaptureRate = y__})
+
+type instance
+     Data.ProtoLens.Field "baseFleeRate" EncounterAttributes =
+     Prelude.Float
+
+instance Data.ProtoLens.HasField "baseFleeRate" EncounterAttributes
+         EncounterAttributes where
+        field _
+          = Lens.Family2.Unchecked.lens _EncounterAttributes'baseFleeRate
+              (\ x__ y__ -> x__{_EncounterAttributes'baseFleeRate = y__})
+
+type instance
+     Data.ProtoLens.Field "collisionRadiusM" EncounterAttributes =
+     Prelude.Float
+
+instance Data.ProtoLens.HasField "collisionRadiusM"
+         EncounterAttributes EncounterAttributes where
+        field _
+          = Lens.Family2.Unchecked.lens _EncounterAttributes'collisionRadiusM
+              (\ x__ y__ -> x__{_EncounterAttributes'collisionRadiusM = y__})
+
+type instance
+     Data.ProtoLens.Field "collisionHeightM" EncounterAttributes =
+     Prelude.Float
+
+instance Data.ProtoLens.HasField "collisionHeightM"
+         EncounterAttributes EncounterAttributes where
+        field _
+          = Lens.Family2.Unchecked.lens _EncounterAttributes'collisionHeightM
+              (\ x__ y__ -> x__{_EncounterAttributes'collisionHeightM = y__})
+
+type instance
+     Data.ProtoLens.Field "collisionHeadRadiusM" EncounterAttributes =
+     Prelude.Float
+
+instance Data.ProtoLens.HasField "collisionHeadRadiusM"
+         EncounterAttributes EncounterAttributes where
+        field _
+          = Lens.Family2.Unchecked.lens
+              _EncounterAttributes'collisionHeadRadiusM
+              (\ x__ y__ -> x__{_EncounterAttributes'collisionHeadRadiusM = y__})
+
+type instance
+     Data.ProtoLens.Field "movementType" EncounterAttributes =
+     Proto.POGOProtos.Enums.PokemonMovementType.PokemonMovementType
+
+instance Data.ProtoLens.HasField "movementType" EncounterAttributes
+         EncounterAttributes where
+        field _
+          = Lens.Family2.Unchecked.lens _EncounterAttributes'movementType
+              (\ x__ y__ -> x__{_EncounterAttributes'movementType = y__})
+
+type instance
+     Data.ProtoLens.Field "movementTimerS" EncounterAttributes =
+     Prelude.Float
+
+instance Data.ProtoLens.HasField "movementTimerS"
+         EncounterAttributes EncounterAttributes where
+        field _
+          = Lens.Family2.Unchecked.lens _EncounterAttributes'movementTimerS
+              (\ x__ y__ -> x__{_EncounterAttributes'movementTimerS = y__})
+
+type instance Data.ProtoLens.Field "jumpTimeS" EncounterAttributes
+     = Prelude.Float
+
+instance Data.ProtoLens.HasField "jumpTimeS" EncounterAttributes
+         EncounterAttributes where
+        field _
+          = Lens.Family2.Unchecked.lens _EncounterAttributes'jumpTimeS
+              (\ x__ y__ -> x__{_EncounterAttributes'jumpTimeS = y__})
+
+type instance
+     Data.ProtoLens.Field "attackTimerS" EncounterAttributes =
+     Prelude.Float
+
+instance Data.ProtoLens.HasField "attackTimerS" EncounterAttributes
+         EncounterAttributes where
+        field _
+          = Lens.Family2.Unchecked.lens _EncounterAttributes'attackTimerS
+              (\ x__ y__ -> x__{_EncounterAttributes'attackTimerS = y__})
+
+instance Data.Default.Class.Default EncounterAttributes where
+        def
+          = EncounterAttributes{_EncounterAttributes'baseCaptureRate =
+                                  Data.ProtoLens.fieldDefault,
+                                _EncounterAttributes'baseFleeRate = Data.ProtoLens.fieldDefault,
+                                _EncounterAttributes'collisionRadiusM =
+                                  Data.ProtoLens.fieldDefault,
+                                _EncounterAttributes'collisionHeightM =
+                                  Data.ProtoLens.fieldDefault,
+                                _EncounterAttributes'collisionHeadRadiusM =
+                                  Data.ProtoLens.fieldDefault,
+                                _EncounterAttributes'movementType = Data.Default.Class.def,
+                                _EncounterAttributes'movementTimerS = Data.ProtoLens.fieldDefault,
+                                _EncounterAttributes'jumpTimeS = Data.ProtoLens.fieldDefault,
+                                _EncounterAttributes'attackTimerS = Data.ProtoLens.fieldDefault}
+
+instance Data.ProtoLens.Message EncounterAttributes where
+        descriptor
+          = let baseCaptureRate__field_descriptor
+                  = Data.ProtoLens.FieldDescriptor "base_capture_rate"
+                      (Data.ProtoLens.FloatField ::
+                         Data.ProtoLens.FieldTypeDescriptor Prelude.Float)
+                      (Data.ProtoLens.PlainField Data.ProtoLens.Optional baseCaptureRate)
+                baseFleeRate__field_descriptor
+                  = Data.ProtoLens.FieldDescriptor "base_flee_rate"
+                      (Data.ProtoLens.FloatField ::
+                         Data.ProtoLens.FieldTypeDescriptor Prelude.Float)
+                      (Data.ProtoLens.PlainField Data.ProtoLens.Optional baseFleeRate)
+                collisionRadiusM__field_descriptor
+                  = Data.ProtoLens.FieldDescriptor "collision_radius_m"
+                      (Data.ProtoLens.FloatField ::
+                         Data.ProtoLens.FieldTypeDescriptor Prelude.Float)
+                      (Data.ProtoLens.PlainField Data.ProtoLens.Optional
+                         collisionRadiusM)
+                collisionHeightM__field_descriptor
+                  = Data.ProtoLens.FieldDescriptor "collision_height_m"
+                      (Data.ProtoLens.FloatField ::
+                         Data.ProtoLens.FieldTypeDescriptor Prelude.Float)
+                      (Data.ProtoLens.PlainField Data.ProtoLens.Optional
+                         collisionHeightM)
+                collisionHeadRadiusM__field_descriptor
+                  = Data.ProtoLens.FieldDescriptor "collision_head_radius_m"
+                      (Data.ProtoLens.FloatField ::
+                         Data.ProtoLens.FieldTypeDescriptor Prelude.Float)
+                      (Data.ProtoLens.PlainField Data.ProtoLens.Optional
+                         collisionHeadRadiusM)
+                movementType__field_descriptor
+                  = Data.ProtoLens.FieldDescriptor "movement_type"
+                      (Data.ProtoLens.EnumField ::
+                         Data.ProtoLens.FieldTypeDescriptor
+                           Proto.POGOProtos.Enums.PokemonMovementType.PokemonMovementType)
+                      (Data.ProtoLens.PlainField Data.ProtoLens.Optional movementType)
+                movementTimerS__field_descriptor
+                  = Data.ProtoLens.FieldDescriptor "movement_timer_s"
+                      (Data.ProtoLens.FloatField ::
+                         Data.ProtoLens.FieldTypeDescriptor Prelude.Float)
+                      (Data.ProtoLens.PlainField Data.ProtoLens.Optional movementTimerS)
+                jumpTimeS__field_descriptor
+                  = Data.ProtoLens.FieldDescriptor "jump_time_s"
+                      (Data.ProtoLens.FloatField ::
+                         Data.ProtoLens.FieldTypeDescriptor Prelude.Float)
+                      (Data.ProtoLens.PlainField Data.ProtoLens.Optional jumpTimeS)
+                attackTimerS__field_descriptor
+                  = Data.ProtoLens.FieldDescriptor "attack_timer_s"
+                      (Data.ProtoLens.FloatField ::
+                         Data.ProtoLens.FieldTypeDescriptor Prelude.Float)
+                      (Data.ProtoLens.PlainField Data.ProtoLens.Optional attackTimerS)
+              in
+              Data.ProtoLens.MessageDescriptor
+                (Data.Map.fromList
+                   [(Data.ProtoLens.Tag 1, baseCaptureRate__field_descriptor),
+                    (Data.ProtoLens.Tag 2, baseFleeRate__field_descriptor),
+                    (Data.ProtoLens.Tag 3, collisionRadiusM__field_descriptor),
+                    (Data.ProtoLens.Tag 4, collisionHeightM__field_descriptor),
+                    (Data.ProtoLens.Tag 5, collisionHeadRadiusM__field_descriptor),
+                    (Data.ProtoLens.Tag 6, movementType__field_descriptor),
+                    (Data.ProtoLens.Tag 7, movementTimerS__field_descriptor),
+                    (Data.ProtoLens.Tag 8, jumpTimeS__field_descriptor),
+                    (Data.ProtoLens.Tag 9, attackTimerS__field_descriptor)])
+                (Data.Map.fromList
+                   [("base_capture_rate", baseCaptureRate__field_descriptor),
+                    ("base_flee_rate", baseFleeRate__field_descriptor),
+                    ("collision_radius_m", collisionRadiusM__field_descriptor),
+                    ("collision_height_m", collisionHeightM__field_descriptor),
+                    ("collision_head_radius_m",
+                     collisionHeadRadiusM__field_descriptor),
+                    ("movement_type", movementType__field_descriptor),
+                    ("movement_timer_s", movementTimerS__field_descriptor),
+                    ("jump_time_s", jumpTimeS__field_descriptor),
+                    ("attack_timer_s", attackTimerS__field_descriptor)])
+
+attackTimerS ::
+             forall msg msg' .
+               Data.ProtoLens.HasField "attackTimerS" msg msg' =>
+               Lens.Family2.Lens msg msg'
+                 (Data.ProtoLens.Field "attackTimerS" msg)
+                 (Data.ProtoLens.Field "attackTimerS" msg')
+attackTimerS
+  = Data.ProtoLens.field
+      (Data.ProtoLens.ProxySym :: Data.ProtoLens.ProxySym "attackTimerS")
+
+baseCaptureRate ::
+                forall msg msg' .
+                  Data.ProtoLens.HasField "baseCaptureRate" msg msg' =>
+                  Lens.Family2.Lens msg msg'
+                    (Data.ProtoLens.Field "baseCaptureRate" msg)
+                    (Data.ProtoLens.Field "baseCaptureRate" msg')
+baseCaptureRate
+  = Data.ProtoLens.field
+      (Data.ProtoLens.ProxySym ::
+         Data.ProtoLens.ProxySym "baseCaptureRate")
+
+baseFleeRate ::
+             forall msg msg' .
+               Data.ProtoLens.HasField "baseFleeRate" msg msg' =>
+               Lens.Family2.Lens msg msg'
+                 (Data.ProtoLens.Field "baseFleeRate" msg)
+                 (Data.ProtoLens.Field "baseFleeRate" msg')
+baseFleeRate
+  = Data.ProtoLens.field
+      (Data.ProtoLens.ProxySym :: Data.ProtoLens.ProxySym "baseFleeRate")
+
+collisionHeadRadiusM ::
+                     forall msg msg' .
+                       Data.ProtoLens.HasField "collisionHeadRadiusM" msg msg' =>
+                       Lens.Family2.Lens msg msg'
+                         (Data.ProtoLens.Field "collisionHeadRadiusM" msg)
+                         (Data.ProtoLens.Field "collisionHeadRadiusM" msg')
+collisionHeadRadiusM
+  = Data.ProtoLens.field
+      (Data.ProtoLens.ProxySym ::
+         Data.ProtoLens.ProxySym "collisionHeadRadiusM")
+
+collisionHeightM ::
+                 forall msg msg' .
+                   Data.ProtoLens.HasField "collisionHeightM" msg msg' =>
+                   Lens.Family2.Lens msg msg'
+                     (Data.ProtoLens.Field "collisionHeightM" msg)
+                     (Data.ProtoLens.Field "collisionHeightM" msg')
+collisionHeightM
+  = Data.ProtoLens.field
+      (Data.ProtoLens.ProxySym ::
+         Data.ProtoLens.ProxySym "collisionHeightM")
+
+collisionRadiusM ::
+                 forall msg msg' .
+                   Data.ProtoLens.HasField "collisionRadiusM" msg msg' =>
+                   Lens.Family2.Lens msg msg'
+                     (Data.ProtoLens.Field "collisionRadiusM" msg)
+                     (Data.ProtoLens.Field "collisionRadiusM" msg')
+collisionRadiusM
+  = Data.ProtoLens.field
+      (Data.ProtoLens.ProxySym ::
+         Data.ProtoLens.ProxySym "collisionRadiusM")
+
+jumpTimeS ::
+          forall msg msg' . Data.ProtoLens.HasField "jumpTimeS" msg msg' =>
+            Lens.Family2.Lens msg msg' (Data.ProtoLens.Field "jumpTimeS" msg)
+              (Data.ProtoLens.Field "jumpTimeS" msg')
+jumpTimeS
+  = Data.ProtoLens.field
+      (Data.ProtoLens.ProxySym :: Data.ProtoLens.ProxySym "jumpTimeS")
+
+movementTimerS ::
+               forall msg msg' .
+                 Data.ProtoLens.HasField "movementTimerS" msg msg' =>
+                 Lens.Family2.Lens msg msg'
+                   (Data.ProtoLens.Field "movementTimerS" msg)
+                   (Data.ProtoLens.Field "movementTimerS" msg')
+movementTimerS
+  = Data.ProtoLens.field
+      (Data.ProtoLens.ProxySym ::
+         Data.ProtoLens.ProxySym "movementTimerS")
+
+movementType ::
+             forall msg msg' .
+               Data.ProtoLens.HasField "movementType" msg msg' =>
+               Lens.Family2.Lens msg msg'
+                 (Data.ProtoLens.Field "movementType" msg)
+                 (Data.ProtoLens.Field "movementType" msg')
+movementType
+  = Data.ProtoLens.field
+      (Data.ProtoLens.ProxySym :: Data.ProtoLens.ProxySym "movementType")
diff --git a/src/Proto/POGOProtos/Settings/Master/Pokemon/StatsAttributes.hs b/src/Proto/POGOProtos/Settings/Master/Pokemon/StatsAttributes.hs
new file mode 100644
--- /dev/null
+++ b/src/Proto/POGOProtos/Settings/Master/Pokemon/StatsAttributes.hs
@@ -0,0 +1,140 @@
+{- This file was auto-generated from POGOProtos/Settings/Master/Pokemon/StatsAttributes.proto by the proto-lens-protoc program. -}
+{-# LANGUAGE ScopedTypeVariables, DataKinds, TypeFamilies,
+  MultiParamTypeClasses, FlexibleContexts, FlexibleInstances #-}
+{-# OPTIONS_GHC -fno-warn-unused-imports#-}
+module Proto.POGOProtos.Settings.Master.Pokemon.StatsAttributes
+       where
+import qualified Prelude
+import qualified Data.ProtoLens
+import qualified Data.ProtoLens.Message.Enum
+import qualified Lens.Family2
+import qualified Lens.Family2.Unchecked
+import qualified Data.Default.Class
+import qualified Data.Text
+import qualified Data.Int
+import qualified Data.Word
+import qualified Data.Map
+import qualified Data.ByteString
+
+data StatsAttributes = StatsAttributes{_StatsAttributes'baseStamina
+                                       :: Data.Int.Int32,
+                                       _StatsAttributes'baseAttack :: Data.Int.Int32,
+                                       _StatsAttributes'baseDefense :: Data.Int.Int32,
+                                       _StatsAttributes'dodgeEnergyDelta :: Data.Int.Int32}
+                     deriving (Prelude.Show, Prelude.Eq)
+
+type instance Data.ProtoLens.Field "baseStamina" StatsAttributes =
+     Data.Int.Int32
+
+instance Data.ProtoLens.HasField "baseStamina" StatsAttributes
+         StatsAttributes where
+        field _
+          = Lens.Family2.Unchecked.lens _StatsAttributes'baseStamina
+              (\ x__ y__ -> x__{_StatsAttributes'baseStamina = y__})
+
+type instance Data.ProtoLens.Field "baseAttack" StatsAttributes =
+     Data.Int.Int32
+
+instance Data.ProtoLens.HasField "baseAttack" StatsAttributes
+         StatsAttributes where
+        field _
+          = Lens.Family2.Unchecked.lens _StatsAttributes'baseAttack
+              (\ x__ y__ -> x__{_StatsAttributes'baseAttack = y__})
+
+type instance Data.ProtoLens.Field "baseDefense" StatsAttributes =
+     Data.Int.Int32
+
+instance Data.ProtoLens.HasField "baseDefense" StatsAttributes
+         StatsAttributes where
+        field _
+          = Lens.Family2.Unchecked.lens _StatsAttributes'baseDefense
+              (\ x__ y__ -> x__{_StatsAttributes'baseDefense = y__})
+
+type instance
+     Data.ProtoLens.Field "dodgeEnergyDelta" StatsAttributes =
+     Data.Int.Int32
+
+instance Data.ProtoLens.HasField "dodgeEnergyDelta" StatsAttributes
+         StatsAttributes where
+        field _
+          = Lens.Family2.Unchecked.lens _StatsAttributes'dodgeEnergyDelta
+              (\ x__ y__ -> x__{_StatsAttributes'dodgeEnergyDelta = y__})
+
+instance Data.Default.Class.Default StatsAttributes where
+        def
+          = StatsAttributes{_StatsAttributes'baseStamina =
+                              Data.ProtoLens.fieldDefault,
+                            _StatsAttributes'baseAttack = Data.ProtoLens.fieldDefault,
+                            _StatsAttributes'baseDefense = Data.ProtoLens.fieldDefault,
+                            _StatsAttributes'dodgeEnergyDelta = Data.ProtoLens.fieldDefault}
+
+instance Data.ProtoLens.Message StatsAttributes where
+        descriptor
+          = let baseStamina__field_descriptor
+                  = Data.ProtoLens.FieldDescriptor "base_stamina"
+                      (Data.ProtoLens.Int32Field ::
+                         Data.ProtoLens.FieldTypeDescriptor Data.Int.Int32)
+                      (Data.ProtoLens.PlainField Data.ProtoLens.Optional baseStamina)
+                baseAttack__field_descriptor
+                  = Data.ProtoLens.FieldDescriptor "base_attack"
+                      (Data.ProtoLens.Int32Field ::
+                         Data.ProtoLens.FieldTypeDescriptor Data.Int.Int32)
+                      (Data.ProtoLens.PlainField Data.ProtoLens.Optional baseAttack)
+                baseDefense__field_descriptor
+                  = Data.ProtoLens.FieldDescriptor "base_defense"
+                      (Data.ProtoLens.Int32Field ::
+                         Data.ProtoLens.FieldTypeDescriptor Data.Int.Int32)
+                      (Data.ProtoLens.PlainField Data.ProtoLens.Optional baseDefense)
+                dodgeEnergyDelta__field_descriptor
+                  = Data.ProtoLens.FieldDescriptor "dodge_energy_delta"
+                      (Data.ProtoLens.Int32Field ::
+                         Data.ProtoLens.FieldTypeDescriptor Data.Int.Int32)
+                      (Data.ProtoLens.PlainField Data.ProtoLens.Optional
+                         dodgeEnergyDelta)
+              in
+              Data.ProtoLens.MessageDescriptor
+                (Data.Map.fromList
+                   [(Data.ProtoLens.Tag 1, baseStamina__field_descriptor),
+                    (Data.ProtoLens.Tag 2, baseAttack__field_descriptor),
+                    (Data.ProtoLens.Tag 3, baseDefense__field_descriptor),
+                    (Data.ProtoLens.Tag 8, dodgeEnergyDelta__field_descriptor)])
+                (Data.Map.fromList
+                   [("base_stamina", baseStamina__field_descriptor),
+                    ("base_attack", baseAttack__field_descriptor),
+                    ("base_defense", baseDefense__field_descriptor),
+                    ("dodge_energy_delta", dodgeEnergyDelta__field_descriptor)])
+
+baseAttack ::
+           forall msg msg' . Data.ProtoLens.HasField "baseAttack" msg msg' =>
+             Lens.Family2.Lens msg msg' (Data.ProtoLens.Field "baseAttack" msg)
+               (Data.ProtoLens.Field "baseAttack" msg')
+baseAttack
+  = Data.ProtoLens.field
+      (Data.ProtoLens.ProxySym :: Data.ProtoLens.ProxySym "baseAttack")
+
+baseDefense ::
+            forall msg msg' . Data.ProtoLens.HasField "baseDefense" msg msg' =>
+              Lens.Family2.Lens msg msg' (Data.ProtoLens.Field "baseDefense" msg)
+                (Data.ProtoLens.Field "baseDefense" msg')
+baseDefense
+  = Data.ProtoLens.field
+      (Data.ProtoLens.ProxySym :: Data.ProtoLens.ProxySym "baseDefense")
+
+baseStamina ::
+            forall msg msg' . Data.ProtoLens.HasField "baseStamina" msg msg' =>
+              Lens.Family2.Lens msg msg' (Data.ProtoLens.Field "baseStamina" msg)
+                (Data.ProtoLens.Field "baseStamina" msg')
+baseStamina
+  = Data.ProtoLens.field
+      (Data.ProtoLens.ProxySym :: Data.ProtoLens.ProxySym "baseStamina")
+
+dodgeEnergyDelta ::
+                 forall msg msg' .
+                   Data.ProtoLens.HasField "dodgeEnergyDelta" msg msg' =>
+                   Lens.Family2.Lens msg msg'
+                     (Data.ProtoLens.Field "dodgeEnergyDelta" msg)
+                     (Data.ProtoLens.Field "dodgeEnergyDelta" msg')
+dodgeEnergyDelta
+  = Data.ProtoLens.field
+      (Data.ProtoLens.ProxySym ::
+         Data.ProtoLens.ProxySym "dodgeEnergyDelta")
diff --git a/src/Proto/POGOProtos/Settings/Master/PokemonSettings.hs b/src/Proto/POGOProtos/Settings/Master/PokemonSettings.hs
new file mode 100644
--- /dev/null
+++ b/src/Proto/POGOProtos/Settings/Master/PokemonSettings.hs
@@ -0,0 +1,708 @@
+{- This file was auto-generated from POGOProtos/Settings/Master/PokemonSettings.proto by the proto-lens-protoc program. -}
+{-# LANGUAGE ScopedTypeVariables, DataKinds, TypeFamilies,
+  MultiParamTypeClasses, FlexibleContexts, FlexibleInstances #-}
+{-# OPTIONS_GHC -fno-warn-unused-imports#-}
+module Proto.POGOProtos.Settings.Master.PokemonSettings where
+import qualified Prelude
+import qualified Data.ProtoLens
+import qualified Data.ProtoLens.Message.Enum
+import qualified Lens.Family2
+import qualified Lens.Family2.Unchecked
+import qualified Data.Default.Class
+import qualified Data.Text
+import qualified Data.Int
+import qualified Data.Word
+import qualified Data.Map
+import qualified Data.ByteString
+import qualified Proto.POGOProtos.Enums.PokemonId
+import qualified Proto.POGOProtos.Enums.PokemonMove
+import qualified Proto.POGOProtos.Enums.PokemonRarity
+import qualified Proto.POGOProtos.Enums.PokemonType
+import qualified
+       Proto.POGOProtos.Settings.Master.Pokemon.CameraAttributes
+import qualified
+       Proto.POGOProtos.Settings.Master.Pokemon.EncounterAttributes
+import qualified
+       Proto.POGOProtos.Settings.Master.Pokemon.StatsAttributes
+
+data PokemonSettings = PokemonSettings{_PokemonSettings'pokemonId
+                                       :: Proto.POGOProtos.Enums.PokemonId.PokemonId,
+                                       _PokemonSettings'modelScale :: Prelude.Float,
+                                       _PokemonSettings'type' ::
+                                       Proto.POGOProtos.Enums.PokemonType.PokemonType,
+                                       _PokemonSettings'type2 ::
+                                       Proto.POGOProtos.Enums.PokemonType.PokemonType,
+                                       _PokemonSettings'camera ::
+                                       Prelude.Maybe
+                                         Proto.POGOProtos.Settings.Master.Pokemon.CameraAttributes.CameraAttributes,
+                                       _PokemonSettings'encounter ::
+                                       Prelude.Maybe
+                                         Proto.POGOProtos.Settings.Master.Pokemon.EncounterAttributes.EncounterAttributes,
+                                       _PokemonSettings'stats ::
+                                       Prelude.Maybe
+                                         Proto.POGOProtos.Settings.Master.Pokemon.StatsAttributes.StatsAttributes,
+                                       _PokemonSettings'quickMoves ::
+                                       [Proto.POGOProtos.Enums.PokemonMove.PokemonMove],
+                                       _PokemonSettings'cinematicMoves ::
+                                       [Proto.POGOProtos.Enums.PokemonMove.PokemonMove],
+                                       _PokemonSettings'animationTime :: [Prelude.Float],
+                                       _PokemonSettings'evolutionIds ::
+                                       [Proto.POGOProtos.Enums.PokemonId.PokemonId],
+                                       _PokemonSettings'evolutionPips :: Data.Int.Int32,
+                                       _PokemonSettings'rarity ::
+                                       Proto.POGOProtos.Enums.PokemonRarity.PokemonRarity,
+                                       _PokemonSettings'pokedexHeightM :: Prelude.Float,
+                                       _PokemonSettings'pokedexWeightKg :: Prelude.Float,
+                                       _PokemonSettings'parentPokemonId ::
+                                       Proto.POGOProtos.Enums.PokemonId.PokemonId,
+                                       _PokemonSettings'heightStdDev :: Prelude.Float,
+                                       _PokemonSettings'weightStdDev :: Prelude.Float,
+                                       _PokemonSettings'kmDistanceToHatch :: Prelude.Float,
+                                       _PokemonSettings'familyId ::
+                                       Proto.POGOProtos.Enums.PokemonId.PokemonId,
+                                       _PokemonSettings'candyToEvolve :: Data.Int.Int32}
+                     deriving (Prelude.Show, Prelude.Eq)
+
+type instance Data.ProtoLens.Field "pokemonId" PokemonSettings =
+     Proto.POGOProtos.Enums.PokemonId.PokemonId
+
+instance Data.ProtoLens.HasField "pokemonId" PokemonSettings
+         PokemonSettings where
+        field _
+          = Lens.Family2.Unchecked.lens _PokemonSettings'pokemonId
+              (\ x__ y__ -> x__{_PokemonSettings'pokemonId = y__})
+
+type instance Data.ProtoLens.Field "modelScale" PokemonSettings =
+     Prelude.Float
+
+instance Data.ProtoLens.HasField "modelScale" PokemonSettings
+         PokemonSettings where
+        field _
+          = Lens.Family2.Unchecked.lens _PokemonSettings'modelScale
+              (\ x__ y__ -> x__{_PokemonSettings'modelScale = y__})
+
+type instance Data.ProtoLens.Field "type'" PokemonSettings =
+     Proto.POGOProtos.Enums.PokemonType.PokemonType
+
+instance Data.ProtoLens.HasField "type'" PokemonSettings
+         PokemonSettings where
+        field _
+          = Lens.Family2.Unchecked.lens _PokemonSettings'type'
+              (\ x__ y__ -> x__{_PokemonSettings'type' = y__})
+
+type instance Data.ProtoLens.Field "type2" PokemonSettings =
+     Proto.POGOProtos.Enums.PokemonType.PokemonType
+
+instance Data.ProtoLens.HasField "type2" PokemonSettings
+         PokemonSettings where
+        field _
+          = Lens.Family2.Unchecked.lens _PokemonSettings'type2
+              (\ x__ y__ -> x__{_PokemonSettings'type2 = y__})
+
+type instance Data.ProtoLens.Field "camera" PokemonSettings =
+     Proto.POGOProtos.Settings.Master.Pokemon.CameraAttributes.CameraAttributes
+
+instance Data.ProtoLens.HasField "camera" PokemonSettings
+         PokemonSettings where
+        field _
+          = (Prelude..) maybe'camera
+              (Data.ProtoLens.maybeLens Data.Default.Class.def)
+
+type instance Data.ProtoLens.Field "maybe'camera" PokemonSettings =
+     Prelude.Maybe
+       Proto.POGOProtos.Settings.Master.Pokemon.CameraAttributes.CameraAttributes
+
+instance Data.ProtoLens.HasField "maybe'camera" PokemonSettings
+         PokemonSettings where
+        field _
+          = Lens.Family2.Unchecked.lens _PokemonSettings'camera
+              (\ x__ y__ -> x__{_PokemonSettings'camera = y__})
+
+type instance Data.ProtoLens.Field "encounter" PokemonSettings =
+     Proto.POGOProtos.Settings.Master.Pokemon.EncounterAttributes.EncounterAttributes
+
+instance Data.ProtoLens.HasField "encounter" PokemonSettings
+         PokemonSettings where
+        field _
+          = (Prelude..) maybe'encounter
+              (Data.ProtoLens.maybeLens Data.Default.Class.def)
+
+type instance
+     Data.ProtoLens.Field "maybe'encounter" PokemonSettings =
+     Prelude.Maybe
+       Proto.POGOProtos.Settings.Master.Pokemon.EncounterAttributes.EncounterAttributes
+
+instance Data.ProtoLens.HasField "maybe'encounter" PokemonSettings
+         PokemonSettings where
+        field _
+          = Lens.Family2.Unchecked.lens _PokemonSettings'encounter
+              (\ x__ y__ -> x__{_PokemonSettings'encounter = y__})
+
+type instance Data.ProtoLens.Field "stats" PokemonSettings =
+     Proto.POGOProtos.Settings.Master.Pokemon.StatsAttributes.StatsAttributes
+
+instance Data.ProtoLens.HasField "stats" PokemonSettings
+         PokemonSettings where
+        field _
+          = (Prelude..) maybe'stats
+              (Data.ProtoLens.maybeLens Data.Default.Class.def)
+
+type instance Data.ProtoLens.Field "maybe'stats" PokemonSettings =
+     Prelude.Maybe
+       Proto.POGOProtos.Settings.Master.Pokemon.StatsAttributes.StatsAttributes
+
+instance Data.ProtoLens.HasField "maybe'stats" PokemonSettings
+         PokemonSettings where
+        field _
+          = Lens.Family2.Unchecked.lens _PokemonSettings'stats
+              (\ x__ y__ -> x__{_PokemonSettings'stats = y__})
+
+type instance Data.ProtoLens.Field "quickMoves" PokemonSettings =
+     [Proto.POGOProtos.Enums.PokemonMove.PokemonMove]
+
+instance Data.ProtoLens.HasField "quickMoves" PokemonSettings
+         PokemonSettings where
+        field _
+          = Lens.Family2.Unchecked.lens _PokemonSettings'quickMoves
+              (\ x__ y__ -> x__{_PokemonSettings'quickMoves = y__})
+
+type instance Data.ProtoLens.Field "cinematicMoves" PokemonSettings
+     = [Proto.POGOProtos.Enums.PokemonMove.PokemonMove]
+
+instance Data.ProtoLens.HasField "cinematicMoves" PokemonSettings
+         PokemonSettings where
+        field _
+          = Lens.Family2.Unchecked.lens _PokemonSettings'cinematicMoves
+              (\ x__ y__ -> x__{_PokemonSettings'cinematicMoves = y__})
+
+type instance Data.ProtoLens.Field "animationTime" PokemonSettings
+     = [Prelude.Float]
+
+instance Data.ProtoLens.HasField "animationTime" PokemonSettings
+         PokemonSettings where
+        field _
+          = Lens.Family2.Unchecked.lens _PokemonSettings'animationTime
+              (\ x__ y__ -> x__{_PokemonSettings'animationTime = y__})
+
+type instance Data.ProtoLens.Field "evolutionIds" PokemonSettings =
+     [Proto.POGOProtos.Enums.PokemonId.PokemonId]
+
+instance Data.ProtoLens.HasField "evolutionIds" PokemonSettings
+         PokemonSettings where
+        field _
+          = Lens.Family2.Unchecked.lens _PokemonSettings'evolutionIds
+              (\ x__ y__ -> x__{_PokemonSettings'evolutionIds = y__})
+
+type instance Data.ProtoLens.Field "evolutionPips" PokemonSettings
+     = Data.Int.Int32
+
+instance Data.ProtoLens.HasField "evolutionPips" PokemonSettings
+         PokemonSettings where
+        field _
+          = Lens.Family2.Unchecked.lens _PokemonSettings'evolutionPips
+              (\ x__ y__ -> x__{_PokemonSettings'evolutionPips = y__})
+
+type instance Data.ProtoLens.Field "rarity" PokemonSettings =
+     Proto.POGOProtos.Enums.PokemonRarity.PokemonRarity
+
+instance Data.ProtoLens.HasField "rarity" PokemonSettings
+         PokemonSettings where
+        field _
+          = Lens.Family2.Unchecked.lens _PokemonSettings'rarity
+              (\ x__ y__ -> x__{_PokemonSettings'rarity = y__})
+
+type instance Data.ProtoLens.Field "pokedexHeightM" PokemonSettings
+     = Prelude.Float
+
+instance Data.ProtoLens.HasField "pokedexHeightM" PokemonSettings
+         PokemonSettings where
+        field _
+          = Lens.Family2.Unchecked.lens _PokemonSettings'pokedexHeightM
+              (\ x__ y__ -> x__{_PokemonSettings'pokedexHeightM = y__})
+
+type instance
+     Data.ProtoLens.Field "pokedexWeightKg" PokemonSettings =
+     Prelude.Float
+
+instance Data.ProtoLens.HasField "pokedexWeightKg" PokemonSettings
+         PokemonSettings where
+        field _
+          = Lens.Family2.Unchecked.lens _PokemonSettings'pokedexWeightKg
+              (\ x__ y__ -> x__{_PokemonSettings'pokedexWeightKg = y__})
+
+type instance
+     Data.ProtoLens.Field "parentPokemonId" PokemonSettings =
+     Proto.POGOProtos.Enums.PokemonId.PokemonId
+
+instance Data.ProtoLens.HasField "parentPokemonId" PokemonSettings
+         PokemonSettings where
+        field _
+          = Lens.Family2.Unchecked.lens _PokemonSettings'parentPokemonId
+              (\ x__ y__ -> x__{_PokemonSettings'parentPokemonId = y__})
+
+type instance Data.ProtoLens.Field "heightStdDev" PokemonSettings =
+     Prelude.Float
+
+instance Data.ProtoLens.HasField "heightStdDev" PokemonSettings
+         PokemonSettings where
+        field _
+          = Lens.Family2.Unchecked.lens _PokemonSettings'heightStdDev
+              (\ x__ y__ -> x__{_PokemonSettings'heightStdDev = y__})
+
+type instance Data.ProtoLens.Field "weightStdDev" PokemonSettings =
+     Prelude.Float
+
+instance Data.ProtoLens.HasField "weightStdDev" PokemonSettings
+         PokemonSettings where
+        field _
+          = Lens.Family2.Unchecked.lens _PokemonSettings'weightStdDev
+              (\ x__ y__ -> x__{_PokemonSettings'weightStdDev = y__})
+
+type instance
+     Data.ProtoLens.Field "kmDistanceToHatch" PokemonSettings =
+     Prelude.Float
+
+instance Data.ProtoLens.HasField "kmDistanceToHatch"
+         PokemonSettings PokemonSettings where
+        field _
+          = Lens.Family2.Unchecked.lens _PokemonSettings'kmDistanceToHatch
+              (\ x__ y__ -> x__{_PokemonSettings'kmDistanceToHatch = y__})
+
+type instance Data.ProtoLens.Field "familyId" PokemonSettings =
+     Proto.POGOProtos.Enums.PokemonId.PokemonId
+
+instance Data.ProtoLens.HasField "familyId" PokemonSettings
+         PokemonSettings where
+        field _
+          = Lens.Family2.Unchecked.lens _PokemonSettings'familyId
+              (\ x__ y__ -> x__{_PokemonSettings'familyId = y__})
+
+type instance Data.ProtoLens.Field "candyToEvolve" PokemonSettings
+     = Data.Int.Int32
+
+instance Data.ProtoLens.HasField "candyToEvolve" PokemonSettings
+         PokemonSettings where
+        field _
+          = Lens.Family2.Unchecked.lens _PokemonSettings'candyToEvolve
+              (\ x__ y__ -> x__{_PokemonSettings'candyToEvolve = y__})
+
+instance Data.Default.Class.Default PokemonSettings where
+        def
+          = PokemonSettings{_PokemonSettings'pokemonId =
+                              Data.Default.Class.def,
+                            _PokemonSettings'modelScale = Data.ProtoLens.fieldDefault,
+                            _PokemonSettings'type' = Data.Default.Class.def,
+                            _PokemonSettings'type2 = Data.Default.Class.def,
+                            _PokemonSettings'camera = Prelude.Nothing,
+                            _PokemonSettings'encounter = Prelude.Nothing,
+                            _PokemonSettings'stats = Prelude.Nothing,
+                            _PokemonSettings'quickMoves = [],
+                            _PokemonSettings'cinematicMoves = [],
+                            _PokemonSettings'animationTime = [],
+                            _PokemonSettings'evolutionIds = [],
+                            _PokemonSettings'evolutionPips = Data.ProtoLens.fieldDefault,
+                            _PokemonSettings'rarity = Data.Default.Class.def,
+                            _PokemonSettings'pokedexHeightM = Data.ProtoLens.fieldDefault,
+                            _PokemonSettings'pokedexWeightKg = Data.ProtoLens.fieldDefault,
+                            _PokemonSettings'parentPokemonId = Data.Default.Class.def,
+                            _PokemonSettings'heightStdDev = Data.ProtoLens.fieldDefault,
+                            _PokemonSettings'weightStdDev = Data.ProtoLens.fieldDefault,
+                            _PokemonSettings'kmDistanceToHatch = Data.ProtoLens.fieldDefault,
+                            _PokemonSettings'familyId = Data.Default.Class.def,
+                            _PokemonSettings'candyToEvolve = Data.ProtoLens.fieldDefault}
+
+instance Data.ProtoLens.Message PokemonSettings where
+        descriptor
+          = let pokemonId__field_descriptor
+                  = Data.ProtoLens.FieldDescriptor "pokemon_id"
+                      (Data.ProtoLens.EnumField ::
+                         Data.ProtoLens.FieldTypeDescriptor
+                           Proto.POGOProtos.Enums.PokemonId.PokemonId)
+                      (Data.ProtoLens.PlainField Data.ProtoLens.Optional pokemonId)
+                modelScale__field_descriptor
+                  = Data.ProtoLens.FieldDescriptor "model_scale"
+                      (Data.ProtoLens.FloatField ::
+                         Data.ProtoLens.FieldTypeDescriptor Prelude.Float)
+                      (Data.ProtoLens.PlainField Data.ProtoLens.Optional modelScale)
+                type'__field_descriptor
+                  = Data.ProtoLens.FieldDescriptor "type"
+                      (Data.ProtoLens.EnumField ::
+                         Data.ProtoLens.FieldTypeDescriptor
+                           Proto.POGOProtos.Enums.PokemonType.PokemonType)
+                      (Data.ProtoLens.PlainField Data.ProtoLens.Optional type')
+                type2__field_descriptor
+                  = Data.ProtoLens.FieldDescriptor "type_2"
+                      (Data.ProtoLens.EnumField ::
+                         Data.ProtoLens.FieldTypeDescriptor
+                           Proto.POGOProtos.Enums.PokemonType.PokemonType)
+                      (Data.ProtoLens.PlainField Data.ProtoLens.Optional type2)
+                camera__field_descriptor
+                  = Data.ProtoLens.FieldDescriptor "camera"
+                      (Data.ProtoLens.MessageField ::
+                         Data.ProtoLens.FieldTypeDescriptor
+                           Proto.POGOProtos.Settings.Master.Pokemon.CameraAttributes.CameraAttributes)
+                      (Data.ProtoLens.OptionalField maybe'camera)
+                encounter__field_descriptor
+                  = Data.ProtoLens.FieldDescriptor "encounter"
+                      (Data.ProtoLens.MessageField ::
+                         Data.ProtoLens.FieldTypeDescriptor
+                           Proto.POGOProtos.Settings.Master.Pokemon.EncounterAttributes.EncounterAttributes)
+                      (Data.ProtoLens.OptionalField maybe'encounter)
+                stats__field_descriptor
+                  = Data.ProtoLens.FieldDescriptor "stats"
+                      (Data.ProtoLens.MessageField ::
+                         Data.ProtoLens.FieldTypeDescriptor
+                           Proto.POGOProtos.Settings.Master.Pokemon.StatsAttributes.StatsAttributes)
+                      (Data.ProtoLens.OptionalField maybe'stats)
+                quickMoves__field_descriptor
+                  = Data.ProtoLens.FieldDescriptor "quick_moves"
+                      (Data.ProtoLens.EnumField ::
+                         Data.ProtoLens.FieldTypeDescriptor
+                           Proto.POGOProtos.Enums.PokemonMove.PokemonMove)
+                      (Data.ProtoLens.RepeatedField Data.ProtoLens.Unpacked quickMoves)
+                cinematicMoves__field_descriptor
+                  = Data.ProtoLens.FieldDescriptor "cinematic_moves"
+                      (Data.ProtoLens.EnumField ::
+                         Data.ProtoLens.FieldTypeDescriptor
+                           Proto.POGOProtos.Enums.PokemonMove.PokemonMove)
+                      (Data.ProtoLens.RepeatedField Data.ProtoLens.Unpacked
+                         cinematicMoves)
+                animationTime__field_descriptor
+                  = Data.ProtoLens.FieldDescriptor "animation_time"
+                      (Data.ProtoLens.FloatField ::
+                         Data.ProtoLens.FieldTypeDescriptor Prelude.Float)
+                      (Data.ProtoLens.RepeatedField Data.ProtoLens.Unpacked
+                         animationTime)
+                evolutionIds__field_descriptor
+                  = Data.ProtoLens.FieldDescriptor "evolution_ids"
+                      (Data.ProtoLens.EnumField ::
+                         Data.ProtoLens.FieldTypeDescriptor
+                           Proto.POGOProtos.Enums.PokemonId.PokemonId)
+                      (Data.ProtoLens.RepeatedField Data.ProtoLens.Unpacked evolutionIds)
+                evolutionPips__field_descriptor
+                  = Data.ProtoLens.FieldDescriptor "evolution_pips"
+                      (Data.ProtoLens.Int32Field ::
+                         Data.ProtoLens.FieldTypeDescriptor Data.Int.Int32)
+                      (Data.ProtoLens.PlainField Data.ProtoLens.Optional evolutionPips)
+                rarity__field_descriptor
+                  = Data.ProtoLens.FieldDescriptor "rarity"
+                      (Data.ProtoLens.EnumField ::
+                         Data.ProtoLens.FieldTypeDescriptor
+                           Proto.POGOProtos.Enums.PokemonRarity.PokemonRarity)
+                      (Data.ProtoLens.PlainField Data.ProtoLens.Optional rarity)
+                pokedexHeightM__field_descriptor
+                  = Data.ProtoLens.FieldDescriptor "pokedex_height_m"
+                      (Data.ProtoLens.FloatField ::
+                         Data.ProtoLens.FieldTypeDescriptor Prelude.Float)
+                      (Data.ProtoLens.PlainField Data.ProtoLens.Optional pokedexHeightM)
+                pokedexWeightKg__field_descriptor
+                  = Data.ProtoLens.FieldDescriptor "pokedex_weight_kg"
+                      (Data.ProtoLens.FloatField ::
+                         Data.ProtoLens.FieldTypeDescriptor Prelude.Float)
+                      (Data.ProtoLens.PlainField Data.ProtoLens.Optional pokedexWeightKg)
+                parentPokemonId__field_descriptor
+                  = Data.ProtoLens.FieldDescriptor "parent_pokemon_id"
+                      (Data.ProtoLens.EnumField ::
+                         Data.ProtoLens.FieldTypeDescriptor
+                           Proto.POGOProtos.Enums.PokemonId.PokemonId)
+                      (Data.ProtoLens.PlainField Data.ProtoLens.Optional parentPokemonId)
+                heightStdDev__field_descriptor
+                  = Data.ProtoLens.FieldDescriptor "height_std_dev"
+                      (Data.ProtoLens.FloatField ::
+                         Data.ProtoLens.FieldTypeDescriptor Prelude.Float)
+                      (Data.ProtoLens.PlainField Data.ProtoLens.Optional heightStdDev)
+                weightStdDev__field_descriptor
+                  = Data.ProtoLens.FieldDescriptor "weight_std_dev"
+                      (Data.ProtoLens.FloatField ::
+                         Data.ProtoLens.FieldTypeDescriptor Prelude.Float)
+                      (Data.ProtoLens.PlainField Data.ProtoLens.Optional weightStdDev)
+                kmDistanceToHatch__field_descriptor
+                  = Data.ProtoLens.FieldDescriptor "km_distance_to_hatch"
+                      (Data.ProtoLens.FloatField ::
+                         Data.ProtoLens.FieldTypeDescriptor Prelude.Float)
+                      (Data.ProtoLens.PlainField Data.ProtoLens.Optional
+                         kmDistanceToHatch)
+                familyId__field_descriptor
+                  = Data.ProtoLens.FieldDescriptor "family_id"
+                      (Data.ProtoLens.EnumField ::
+                         Data.ProtoLens.FieldTypeDescriptor
+                           Proto.POGOProtos.Enums.PokemonId.PokemonId)
+                      (Data.ProtoLens.PlainField Data.ProtoLens.Optional familyId)
+                candyToEvolve__field_descriptor
+                  = Data.ProtoLens.FieldDescriptor "candy_to_evolve"
+                      (Data.ProtoLens.Int32Field ::
+                         Data.ProtoLens.FieldTypeDescriptor Data.Int.Int32)
+                      (Data.ProtoLens.PlainField Data.ProtoLens.Optional candyToEvolve)
+              in
+              Data.ProtoLens.MessageDescriptor
+                (Data.Map.fromList
+                   [(Data.ProtoLens.Tag 1, pokemonId__field_descriptor),
+                    (Data.ProtoLens.Tag 3, modelScale__field_descriptor),
+                    (Data.ProtoLens.Tag 4, type'__field_descriptor),
+                    (Data.ProtoLens.Tag 5, type2__field_descriptor),
+                    (Data.ProtoLens.Tag 6, camera__field_descriptor),
+                    (Data.ProtoLens.Tag 7, encounter__field_descriptor),
+                    (Data.ProtoLens.Tag 8, stats__field_descriptor),
+                    (Data.ProtoLens.Tag 9, quickMoves__field_descriptor),
+                    (Data.ProtoLens.Tag 10, cinematicMoves__field_descriptor),
+                    (Data.ProtoLens.Tag 11, animationTime__field_descriptor),
+                    (Data.ProtoLens.Tag 12, evolutionIds__field_descriptor),
+                    (Data.ProtoLens.Tag 13, evolutionPips__field_descriptor),
+                    (Data.ProtoLens.Tag 14, rarity__field_descriptor),
+                    (Data.ProtoLens.Tag 15, pokedexHeightM__field_descriptor),
+                    (Data.ProtoLens.Tag 16, pokedexWeightKg__field_descriptor),
+                    (Data.ProtoLens.Tag 17, parentPokemonId__field_descriptor),
+                    (Data.ProtoLens.Tag 18, heightStdDev__field_descriptor),
+                    (Data.ProtoLens.Tag 19, weightStdDev__field_descriptor),
+                    (Data.ProtoLens.Tag 20, kmDistanceToHatch__field_descriptor),
+                    (Data.ProtoLens.Tag 21, familyId__field_descriptor),
+                    (Data.ProtoLens.Tag 22, candyToEvolve__field_descriptor)])
+                (Data.Map.fromList
+                   [("pokemon_id", pokemonId__field_descriptor),
+                    ("model_scale", modelScale__field_descriptor),
+                    ("type", type'__field_descriptor),
+                    ("type_2", type2__field_descriptor),
+                    ("camera", camera__field_descriptor),
+                    ("encounter", encounter__field_descriptor),
+                    ("stats", stats__field_descriptor),
+                    ("quick_moves", quickMoves__field_descriptor),
+                    ("cinematic_moves", cinematicMoves__field_descriptor),
+                    ("animation_time", animationTime__field_descriptor),
+                    ("evolution_ids", evolutionIds__field_descriptor),
+                    ("evolution_pips", evolutionPips__field_descriptor),
+                    ("rarity", rarity__field_descriptor),
+                    ("pokedex_height_m", pokedexHeightM__field_descriptor),
+                    ("pokedex_weight_kg", pokedexWeightKg__field_descriptor),
+                    ("parent_pokemon_id", parentPokemonId__field_descriptor),
+                    ("height_std_dev", heightStdDev__field_descriptor),
+                    ("weight_std_dev", weightStdDev__field_descriptor),
+                    ("km_distance_to_hatch", kmDistanceToHatch__field_descriptor),
+                    ("family_id", familyId__field_descriptor),
+                    ("candy_to_evolve", candyToEvolve__field_descriptor)])
+
+animationTime ::
+              forall msg msg' .
+                Data.ProtoLens.HasField "animationTime" msg msg' =>
+                Lens.Family2.Lens msg msg'
+                  (Data.ProtoLens.Field "animationTime" msg)
+                  (Data.ProtoLens.Field "animationTime" msg')
+animationTime
+  = Data.ProtoLens.field
+      (Data.ProtoLens.ProxySym ::
+         Data.ProtoLens.ProxySym "animationTime")
+
+camera ::
+       forall msg msg' . Data.ProtoLens.HasField "camera" msg msg' =>
+         Lens.Family2.Lens msg msg' (Data.ProtoLens.Field "camera" msg)
+           (Data.ProtoLens.Field "camera" msg')
+camera
+  = Data.ProtoLens.field
+      (Data.ProtoLens.ProxySym :: Data.ProtoLens.ProxySym "camera")
+
+candyToEvolve ::
+              forall msg msg' .
+                Data.ProtoLens.HasField "candyToEvolve" msg msg' =>
+                Lens.Family2.Lens msg msg'
+                  (Data.ProtoLens.Field "candyToEvolve" msg)
+                  (Data.ProtoLens.Field "candyToEvolve" msg')
+candyToEvolve
+  = Data.ProtoLens.field
+      (Data.ProtoLens.ProxySym ::
+         Data.ProtoLens.ProxySym "candyToEvolve")
+
+cinematicMoves ::
+               forall msg msg' .
+                 Data.ProtoLens.HasField "cinematicMoves" msg msg' =>
+                 Lens.Family2.Lens msg msg'
+                   (Data.ProtoLens.Field "cinematicMoves" msg)
+                   (Data.ProtoLens.Field "cinematicMoves" msg')
+cinematicMoves
+  = Data.ProtoLens.field
+      (Data.ProtoLens.ProxySym ::
+         Data.ProtoLens.ProxySym "cinematicMoves")
+
+encounter ::
+          forall msg msg' . Data.ProtoLens.HasField "encounter" msg msg' =>
+            Lens.Family2.Lens msg msg' (Data.ProtoLens.Field "encounter" msg)
+              (Data.ProtoLens.Field "encounter" msg')
+encounter
+  = Data.ProtoLens.field
+      (Data.ProtoLens.ProxySym :: Data.ProtoLens.ProxySym "encounter")
+
+evolutionIds ::
+             forall msg msg' .
+               Data.ProtoLens.HasField "evolutionIds" msg msg' =>
+               Lens.Family2.Lens msg msg'
+                 (Data.ProtoLens.Field "evolutionIds" msg)
+                 (Data.ProtoLens.Field "evolutionIds" msg')
+evolutionIds
+  = Data.ProtoLens.field
+      (Data.ProtoLens.ProxySym :: Data.ProtoLens.ProxySym "evolutionIds")
+
+evolutionPips ::
+              forall msg msg' .
+                Data.ProtoLens.HasField "evolutionPips" msg msg' =>
+                Lens.Family2.Lens msg msg'
+                  (Data.ProtoLens.Field "evolutionPips" msg)
+                  (Data.ProtoLens.Field "evolutionPips" msg')
+evolutionPips
+  = Data.ProtoLens.field
+      (Data.ProtoLens.ProxySym ::
+         Data.ProtoLens.ProxySym "evolutionPips")
+
+familyId ::
+         forall msg msg' . Data.ProtoLens.HasField "familyId" msg msg' =>
+           Lens.Family2.Lens msg msg' (Data.ProtoLens.Field "familyId" msg)
+             (Data.ProtoLens.Field "familyId" msg')
+familyId
+  = Data.ProtoLens.field
+      (Data.ProtoLens.ProxySym :: Data.ProtoLens.ProxySym "familyId")
+
+heightStdDev ::
+             forall msg msg' .
+               Data.ProtoLens.HasField "heightStdDev" msg msg' =>
+               Lens.Family2.Lens msg msg'
+                 (Data.ProtoLens.Field "heightStdDev" msg)
+                 (Data.ProtoLens.Field "heightStdDev" msg')
+heightStdDev
+  = Data.ProtoLens.field
+      (Data.ProtoLens.ProxySym :: Data.ProtoLens.ProxySym "heightStdDev")
+
+kmDistanceToHatch ::
+                  forall msg msg' .
+                    Data.ProtoLens.HasField "kmDistanceToHatch" msg msg' =>
+                    Lens.Family2.Lens msg msg'
+                      (Data.ProtoLens.Field "kmDistanceToHatch" msg)
+                      (Data.ProtoLens.Field "kmDistanceToHatch" msg')
+kmDistanceToHatch
+  = Data.ProtoLens.field
+      (Data.ProtoLens.ProxySym ::
+         Data.ProtoLens.ProxySym "kmDistanceToHatch")
+
+maybe'camera ::
+             forall msg msg' .
+               Data.ProtoLens.HasField "maybe'camera" msg msg' =>
+               Lens.Family2.Lens msg msg'
+                 (Data.ProtoLens.Field "maybe'camera" msg)
+                 (Data.ProtoLens.Field "maybe'camera" msg')
+maybe'camera
+  = Data.ProtoLens.field
+      (Data.ProtoLens.ProxySym :: Data.ProtoLens.ProxySym "maybe'camera")
+
+maybe'encounter ::
+                forall msg msg' .
+                  Data.ProtoLens.HasField "maybe'encounter" msg msg' =>
+                  Lens.Family2.Lens msg msg'
+                    (Data.ProtoLens.Field "maybe'encounter" msg)
+                    (Data.ProtoLens.Field "maybe'encounter" msg')
+maybe'encounter
+  = Data.ProtoLens.field
+      (Data.ProtoLens.ProxySym ::
+         Data.ProtoLens.ProxySym "maybe'encounter")
+
+maybe'stats ::
+            forall msg msg' . Data.ProtoLens.HasField "maybe'stats" msg msg' =>
+              Lens.Family2.Lens msg msg' (Data.ProtoLens.Field "maybe'stats" msg)
+                (Data.ProtoLens.Field "maybe'stats" msg')
+maybe'stats
+  = Data.ProtoLens.field
+      (Data.ProtoLens.ProxySym :: Data.ProtoLens.ProxySym "maybe'stats")
+
+modelScale ::
+           forall msg msg' . Data.ProtoLens.HasField "modelScale" msg msg' =>
+             Lens.Family2.Lens msg msg' (Data.ProtoLens.Field "modelScale" msg)
+               (Data.ProtoLens.Field "modelScale" msg')
+modelScale
+  = Data.ProtoLens.field
+      (Data.ProtoLens.ProxySym :: Data.ProtoLens.ProxySym "modelScale")
+
+parentPokemonId ::
+                forall msg msg' .
+                  Data.ProtoLens.HasField "parentPokemonId" msg msg' =>
+                  Lens.Family2.Lens msg msg'
+                    (Data.ProtoLens.Field "parentPokemonId" msg)
+                    (Data.ProtoLens.Field "parentPokemonId" msg')
+parentPokemonId
+  = Data.ProtoLens.field
+      (Data.ProtoLens.ProxySym ::
+         Data.ProtoLens.ProxySym "parentPokemonId")
+
+pokedexHeightM ::
+               forall msg msg' .
+                 Data.ProtoLens.HasField "pokedexHeightM" msg msg' =>
+                 Lens.Family2.Lens msg msg'
+                   (Data.ProtoLens.Field "pokedexHeightM" msg)
+                   (Data.ProtoLens.Field "pokedexHeightM" msg')
+pokedexHeightM
+  = Data.ProtoLens.field
+      (Data.ProtoLens.ProxySym ::
+         Data.ProtoLens.ProxySym "pokedexHeightM")
+
+pokedexWeightKg ::
+                forall msg msg' .
+                  Data.ProtoLens.HasField "pokedexWeightKg" msg msg' =>
+                  Lens.Family2.Lens msg msg'
+                    (Data.ProtoLens.Field "pokedexWeightKg" msg)
+                    (Data.ProtoLens.Field "pokedexWeightKg" msg')
+pokedexWeightKg
+  = Data.ProtoLens.field
+      (Data.ProtoLens.ProxySym ::
+         Data.ProtoLens.ProxySym "pokedexWeightKg")
+
+pokemonId ::
+          forall msg msg' . Data.ProtoLens.HasField "pokemonId" msg msg' =>
+            Lens.Family2.Lens msg msg' (Data.ProtoLens.Field "pokemonId" msg)
+              (Data.ProtoLens.Field "pokemonId" msg')
+pokemonId
+  = Data.ProtoLens.field
+      (Data.ProtoLens.ProxySym :: Data.ProtoLens.ProxySym "pokemonId")
+
+quickMoves ::
+           forall msg msg' . Data.ProtoLens.HasField "quickMoves" msg msg' =>
+             Lens.Family2.Lens msg msg' (Data.ProtoLens.Field "quickMoves" msg)
+               (Data.ProtoLens.Field "quickMoves" msg')
+quickMoves
+  = Data.ProtoLens.field
+      (Data.ProtoLens.ProxySym :: Data.ProtoLens.ProxySym "quickMoves")
+
+rarity ::
+       forall msg msg' . Data.ProtoLens.HasField "rarity" msg msg' =>
+         Lens.Family2.Lens msg msg' (Data.ProtoLens.Field "rarity" msg)
+           (Data.ProtoLens.Field "rarity" msg')
+rarity
+  = Data.ProtoLens.field
+      (Data.ProtoLens.ProxySym :: Data.ProtoLens.ProxySym "rarity")
+
+stats ::
+      forall msg msg' . Data.ProtoLens.HasField "stats" msg msg' =>
+        Lens.Family2.Lens msg msg' (Data.ProtoLens.Field "stats" msg)
+          (Data.ProtoLens.Field "stats" msg')
+stats
+  = Data.ProtoLens.field
+      (Data.ProtoLens.ProxySym :: Data.ProtoLens.ProxySym "stats")
+
+type' ::
+      forall msg msg' . Data.ProtoLens.HasField "type'" msg msg' =>
+        Lens.Family2.Lens msg msg' (Data.ProtoLens.Field "type'" msg)
+          (Data.ProtoLens.Field "type'" msg')
+type'
+  = Data.ProtoLens.field
+      (Data.ProtoLens.ProxySym :: Data.ProtoLens.ProxySym "type'")
+
+type2 ::
+      forall msg msg' . Data.ProtoLens.HasField "type2" msg msg' =>
+        Lens.Family2.Lens msg msg' (Data.ProtoLens.Field "type2" msg)
+          (Data.ProtoLens.Field "type2" msg')
+type2
+  = Data.ProtoLens.field
+      (Data.ProtoLens.ProxySym :: Data.ProtoLens.ProxySym "type2")
+
+weightStdDev ::
+             forall msg msg' .
+               Data.ProtoLens.HasField "weightStdDev" msg msg' =>
+               Lens.Family2.Lens msg msg'
+                 (Data.ProtoLens.Field "weightStdDev" msg)
+                 (Data.ProtoLens.Field "weightStdDev" msg')
+weightStdDev
+  = Data.ProtoLens.field
+      (Data.ProtoLens.ProxySym :: Data.ProtoLens.ProxySym "weightStdDev")
diff --git a/src/Proto/POGOProtos/Settings/Master/PokemonUpgradeSettings.hs b/src/Proto/POGOProtos/Settings/Master/PokemonUpgradeSettings.hs
new file mode 100644
--- /dev/null
+++ b/src/Proto/POGOProtos/Settings/Master/PokemonUpgradeSettings.hs
@@ -0,0 +1,158 @@
+{- This file was auto-generated from POGOProtos/Settings/Master/PokemonUpgradeSettings.proto by the proto-lens-protoc program. -}
+{-# LANGUAGE ScopedTypeVariables, DataKinds, TypeFamilies,
+  MultiParamTypeClasses, FlexibleContexts, FlexibleInstances #-}
+{-# OPTIONS_GHC -fno-warn-unused-imports#-}
+module Proto.POGOProtos.Settings.Master.PokemonUpgradeSettings
+       where
+import qualified Prelude
+import qualified Data.ProtoLens
+import qualified Data.ProtoLens.Message.Enum
+import qualified Lens.Family2
+import qualified Lens.Family2.Unchecked
+import qualified Data.Default.Class
+import qualified Data.Text
+import qualified Data.Int
+import qualified Data.Word
+import qualified Data.Map
+import qualified Data.ByteString
+
+data PokemonUpgradeSettings = PokemonUpgradeSettings{_PokemonUpgradeSettings'upgradesPerLevel
+                                                     :: Data.Int.Int32,
+                                                     _PokemonUpgradeSettings'allowedLevelsAbovePlayer
+                                                     :: Data.Int.Int32,
+                                                     _PokemonUpgradeSettings'candyCost ::
+                                                     [Data.Int.Int32],
+                                                     _PokemonUpgradeSettings'stardustCost ::
+                                                     [Data.Int.Int32]}
+                            deriving (Prelude.Show, Prelude.Eq)
+
+type instance
+     Data.ProtoLens.Field "upgradesPerLevel" PokemonUpgradeSettings =
+     Data.Int.Int32
+
+instance Data.ProtoLens.HasField "upgradesPerLevel"
+         PokemonUpgradeSettings PokemonUpgradeSettings where
+        field _
+          = Lens.Family2.Unchecked.lens
+              _PokemonUpgradeSettings'upgradesPerLevel
+              (\ x__ y__ -> x__{_PokemonUpgradeSettings'upgradesPerLevel = y__})
+
+type instance
+     Data.ProtoLens.Field "allowedLevelsAbovePlayer"
+       PokemonUpgradeSettings
+     = Data.Int.Int32
+
+instance Data.ProtoLens.HasField "allowedLevelsAbovePlayer"
+         PokemonUpgradeSettings PokemonUpgradeSettings where
+        field _
+          = Lens.Family2.Unchecked.lens
+              _PokemonUpgradeSettings'allowedLevelsAbovePlayer
+              (\ x__ y__ ->
+                 x__{_PokemonUpgradeSettings'allowedLevelsAbovePlayer = y__})
+
+type instance
+     Data.ProtoLens.Field "candyCost" PokemonUpgradeSettings =
+     [Data.Int.Int32]
+
+instance Data.ProtoLens.HasField "candyCost" PokemonUpgradeSettings
+         PokemonUpgradeSettings where
+        field _
+          = Lens.Family2.Unchecked.lens _PokemonUpgradeSettings'candyCost
+              (\ x__ y__ -> x__{_PokemonUpgradeSettings'candyCost = y__})
+
+type instance
+     Data.ProtoLens.Field "stardustCost" PokemonUpgradeSettings =
+     [Data.Int.Int32]
+
+instance Data.ProtoLens.HasField "stardustCost"
+         PokemonUpgradeSettings PokemonUpgradeSettings where
+        field _
+          = Lens.Family2.Unchecked.lens _PokemonUpgradeSettings'stardustCost
+              (\ x__ y__ -> x__{_PokemonUpgradeSettings'stardustCost = y__})
+
+instance Data.Default.Class.Default PokemonUpgradeSettings where
+        def
+          = PokemonUpgradeSettings{_PokemonUpgradeSettings'upgradesPerLevel =
+                                     Data.ProtoLens.fieldDefault,
+                                   _PokemonUpgradeSettings'allowedLevelsAbovePlayer =
+                                     Data.ProtoLens.fieldDefault,
+                                   _PokemonUpgradeSettings'candyCost = [],
+                                   _PokemonUpgradeSettings'stardustCost = []}
+
+instance Data.ProtoLens.Message PokemonUpgradeSettings where
+        descriptor
+          = let upgradesPerLevel__field_descriptor
+                  = Data.ProtoLens.FieldDescriptor "upgrades_per_level"
+                      (Data.ProtoLens.Int32Field ::
+                         Data.ProtoLens.FieldTypeDescriptor Data.Int.Int32)
+                      (Data.ProtoLens.PlainField Data.ProtoLens.Optional
+                         upgradesPerLevel)
+                allowedLevelsAbovePlayer__field_descriptor
+                  = Data.ProtoLens.FieldDescriptor "allowed_levels_above_player"
+                      (Data.ProtoLens.Int32Field ::
+                         Data.ProtoLens.FieldTypeDescriptor Data.Int.Int32)
+                      (Data.ProtoLens.PlainField Data.ProtoLens.Optional
+                         allowedLevelsAbovePlayer)
+                candyCost__field_descriptor
+                  = Data.ProtoLens.FieldDescriptor "candy_cost"
+                      (Data.ProtoLens.Int32Field ::
+                         Data.ProtoLens.FieldTypeDescriptor Data.Int.Int32)
+                      (Data.ProtoLens.RepeatedField Data.ProtoLens.Unpacked candyCost)
+                stardustCost__field_descriptor
+                  = Data.ProtoLens.FieldDescriptor "stardust_cost"
+                      (Data.ProtoLens.Int32Field ::
+                         Data.ProtoLens.FieldTypeDescriptor Data.Int.Int32)
+                      (Data.ProtoLens.RepeatedField Data.ProtoLens.Unpacked stardustCost)
+              in
+              Data.ProtoLens.MessageDescriptor
+                (Data.Map.fromList
+                   [(Data.ProtoLens.Tag 1, upgradesPerLevel__field_descriptor),
+                    (Data.ProtoLens.Tag 2, allowedLevelsAbovePlayer__field_descriptor),
+                    (Data.ProtoLens.Tag 3, candyCost__field_descriptor),
+                    (Data.ProtoLens.Tag 4, stardustCost__field_descriptor)])
+                (Data.Map.fromList
+                   [("upgrades_per_level", upgradesPerLevel__field_descriptor),
+                    ("allowed_levels_above_player",
+                     allowedLevelsAbovePlayer__field_descriptor),
+                    ("candy_cost", candyCost__field_descriptor),
+                    ("stardust_cost", stardustCost__field_descriptor)])
+
+allowedLevelsAbovePlayer ::
+                         forall msg msg' .
+                           Data.ProtoLens.HasField "allowedLevelsAbovePlayer" msg msg' =>
+                           Lens.Family2.Lens msg msg'
+                             (Data.ProtoLens.Field "allowedLevelsAbovePlayer" msg)
+                             (Data.ProtoLens.Field "allowedLevelsAbovePlayer" msg')
+allowedLevelsAbovePlayer
+  = Data.ProtoLens.field
+      (Data.ProtoLens.ProxySym ::
+         Data.ProtoLens.ProxySym "allowedLevelsAbovePlayer")
+
+candyCost ::
+          forall msg msg' . Data.ProtoLens.HasField "candyCost" msg msg' =>
+            Lens.Family2.Lens msg msg' (Data.ProtoLens.Field "candyCost" msg)
+              (Data.ProtoLens.Field "candyCost" msg')
+candyCost
+  = Data.ProtoLens.field
+      (Data.ProtoLens.ProxySym :: Data.ProtoLens.ProxySym "candyCost")
+
+stardustCost ::
+             forall msg msg' .
+               Data.ProtoLens.HasField "stardustCost" msg msg' =>
+               Lens.Family2.Lens msg msg'
+                 (Data.ProtoLens.Field "stardustCost" msg)
+                 (Data.ProtoLens.Field "stardustCost" msg')
+stardustCost
+  = Data.ProtoLens.field
+      (Data.ProtoLens.ProxySym :: Data.ProtoLens.ProxySym "stardustCost")
+
+upgradesPerLevel ::
+                 forall msg msg' .
+                   Data.ProtoLens.HasField "upgradesPerLevel" msg msg' =>
+                   Lens.Family2.Lens msg msg'
+                     (Data.ProtoLens.Field "upgradesPerLevel" msg)
+                     (Data.ProtoLens.Field "upgradesPerLevel" msg')
+upgradesPerLevel
+  = Data.ProtoLens.field
+      (Data.ProtoLens.ProxySym ::
+         Data.ProtoLens.ProxySym "upgradesPerLevel")
diff --git a/src/Proto/POGOProtos/Settings/Master/TypeEffectiveSettings.hs b/src/Proto/POGOProtos/Settings/Master/TypeEffectiveSettings.hs
new file mode 100644
--- /dev/null
+++ b/src/Proto/POGOProtos/Settings/Master/TypeEffectiveSettings.hs
@@ -0,0 +1,88 @@
+{- This file was auto-generated from POGOProtos/Settings/Master/TypeEffectiveSettings.proto by the proto-lens-protoc program. -}
+{-# LANGUAGE ScopedTypeVariables, DataKinds, TypeFamilies,
+  MultiParamTypeClasses, FlexibleContexts, FlexibleInstances #-}
+{-# OPTIONS_GHC -fno-warn-unused-imports#-}
+module Proto.POGOProtos.Settings.Master.TypeEffectiveSettings where
+import qualified Prelude
+import qualified Data.ProtoLens
+import qualified Data.ProtoLens.Message.Enum
+import qualified Lens.Family2
+import qualified Lens.Family2.Unchecked
+import qualified Data.Default.Class
+import qualified Data.Text
+import qualified Data.Int
+import qualified Data.Word
+import qualified Data.Map
+import qualified Data.ByteString
+import qualified Proto.POGOProtos.Enums.PokemonType
+
+data TypeEffectiveSettings = TypeEffectiveSettings{_TypeEffectiveSettings'attackScalar
+                                                   :: [Prelude.Float],
+                                                   _TypeEffectiveSettings'attackType ::
+                                                   Proto.POGOProtos.Enums.PokemonType.PokemonType}
+                           deriving (Prelude.Show, Prelude.Eq)
+
+type instance
+     Data.ProtoLens.Field "attackScalar" TypeEffectiveSettings =
+     [Prelude.Float]
+
+instance Data.ProtoLens.HasField "attackScalar"
+         TypeEffectiveSettings TypeEffectiveSettings where
+        field _
+          = Lens.Family2.Unchecked.lens _TypeEffectiveSettings'attackScalar
+              (\ x__ y__ -> x__{_TypeEffectiveSettings'attackScalar = y__})
+
+type instance
+     Data.ProtoLens.Field "attackType" TypeEffectiveSettings =
+     Proto.POGOProtos.Enums.PokemonType.PokemonType
+
+instance Data.ProtoLens.HasField "attackType" TypeEffectiveSettings
+         TypeEffectiveSettings where
+        field _
+          = Lens.Family2.Unchecked.lens _TypeEffectiveSettings'attackType
+              (\ x__ y__ -> x__{_TypeEffectiveSettings'attackType = y__})
+
+instance Data.Default.Class.Default TypeEffectiveSettings where
+        def
+          = TypeEffectiveSettings{_TypeEffectiveSettings'attackScalar = [],
+                                  _TypeEffectiveSettings'attackType = Data.Default.Class.def}
+
+instance Data.ProtoLens.Message TypeEffectiveSettings where
+        descriptor
+          = let attackScalar__field_descriptor
+                  = Data.ProtoLens.FieldDescriptor "attack_scalar"
+                      (Data.ProtoLens.FloatField ::
+                         Data.ProtoLens.FieldTypeDescriptor Prelude.Float)
+                      (Data.ProtoLens.RepeatedField Data.ProtoLens.Unpacked attackScalar)
+                attackType__field_descriptor
+                  = Data.ProtoLens.FieldDescriptor "attack_type"
+                      (Data.ProtoLens.EnumField ::
+                         Data.ProtoLens.FieldTypeDescriptor
+                           Proto.POGOProtos.Enums.PokemonType.PokemonType)
+                      (Data.ProtoLens.PlainField Data.ProtoLens.Optional attackType)
+              in
+              Data.ProtoLens.MessageDescriptor
+                (Data.Map.fromList
+                   [(Data.ProtoLens.Tag 1, attackScalar__field_descriptor),
+                    (Data.ProtoLens.Tag 2, attackType__field_descriptor)])
+                (Data.Map.fromList
+                   [("attack_scalar", attackScalar__field_descriptor),
+                    ("attack_type", attackType__field_descriptor)])
+
+attackScalar ::
+             forall msg msg' .
+               Data.ProtoLens.HasField "attackScalar" msg msg' =>
+               Lens.Family2.Lens msg msg'
+                 (Data.ProtoLens.Field "attackScalar" msg)
+                 (Data.ProtoLens.Field "attackScalar" msg')
+attackScalar
+  = Data.ProtoLens.field
+      (Data.ProtoLens.ProxySym :: Data.ProtoLens.ProxySym "attackScalar")
+
+attackType ::
+           forall msg msg' . Data.ProtoLens.HasField "attackType" msg msg' =>
+             Lens.Family2.Lens msg msg' (Data.ProtoLens.Field "attackType" msg)
+               (Data.ProtoLens.Field "attackType" msg')
+attackType
+  = Data.ProtoLens.field
+      (Data.ProtoLens.ProxySym :: Data.ProtoLens.ProxySym "attackType")
