diff --git a/LICENSE.md b/LICENSE.md
new file mode 100644
--- /dev/null
+++ b/LICENSE.md
@@ -0,0 +1,20 @@
+Copyright (c) 2016 David Reaver
+Copyright (c) 2022 Markus Schirp
+
+Permission is hereby granted, free of charge, to any person obtaining a copy of
+this software and associated documentation files (the "Software"), to deal in
+the Software without restriction, including without limitation the rights to
+use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies
+of the Software, and to permit persons to whom the Software is furnished to do
+so, subject to the following conditions:
+
+The above copyright notice and this permission notice shall be included in all
+copies or substantial portions of the Software.
+
+THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
+SOFTWARE.
diff --git a/gen/Stratosphere/DirectoryService/MicrosoftAD.hs b/gen/Stratosphere/DirectoryService/MicrosoftAD.hs
new file mode 100644
--- /dev/null
+++ b/gen/Stratosphere/DirectoryService/MicrosoftAD.hs
@@ -0,0 +1,89 @@
+module Stratosphere.DirectoryService.MicrosoftAD (
+        module Exports, MicrosoftAD(..), mkMicrosoftAD
+    ) where
+import qualified Data.Aeson as JSON
+import qualified Stratosphere.Prelude as Prelude
+import Stratosphere.Property
+import {-# SOURCE #-} Stratosphere.DirectoryService.MicrosoftAD.VpcSettingsProperty as Exports
+import Stratosphere.ResourceProperties
+import Stratosphere.Value
+data MicrosoftAD
+  = -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-directoryservice-microsoftad.html>
+    MicrosoftAD {haddock_workaround_ :: (),
+                 -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-directoryservice-microsoftad.html#cfn-directoryservice-microsoftad-createalias>
+                 createAlias :: (Prelude.Maybe (Value Prelude.Bool)),
+                 -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-directoryservice-microsoftad.html#cfn-directoryservice-microsoftad-edition>
+                 edition :: (Prelude.Maybe (Value Prelude.Text)),
+                 -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-directoryservice-microsoftad.html#cfn-directoryservice-microsoftad-enablesso>
+                 enableSso :: (Prelude.Maybe (Value Prelude.Bool)),
+                 -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-directoryservice-microsoftad.html#cfn-directoryservice-microsoftad-name>
+                 name :: (Value Prelude.Text),
+                 -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-directoryservice-microsoftad.html#cfn-directoryservice-microsoftad-password>
+                 password :: (Value Prelude.Text),
+                 -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-directoryservice-microsoftad.html#cfn-directoryservice-microsoftad-shortname>
+                 shortName :: (Prelude.Maybe (Value Prelude.Text)),
+                 -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-directoryservice-microsoftad.html#cfn-directoryservice-microsoftad-vpcsettings>
+                 vpcSettings :: VpcSettingsProperty}
+  deriving stock (Prelude.Eq, Prelude.Show)
+mkMicrosoftAD ::
+  Value Prelude.Text
+  -> Value Prelude.Text -> VpcSettingsProperty -> MicrosoftAD
+mkMicrosoftAD name password vpcSettings
+  = MicrosoftAD
+      {haddock_workaround_ = (), name = name, password = password,
+       vpcSettings = vpcSettings, createAlias = Prelude.Nothing,
+       edition = Prelude.Nothing, enableSso = Prelude.Nothing,
+       shortName = Prelude.Nothing}
+instance ToResourceProperties MicrosoftAD where
+  toResourceProperties MicrosoftAD {..}
+    = ResourceProperties
+        {awsType = "AWS::DirectoryService::MicrosoftAD",
+         supportsTags = Prelude.False,
+         properties = Prelude.fromList
+                        ((Prelude.<>)
+                           ["Name" JSON..= name, "Password" JSON..= password,
+                            "VpcSettings" JSON..= vpcSettings]
+                           (Prelude.catMaybes
+                              [(JSON..=) "CreateAlias" Prelude.<$> createAlias,
+                               (JSON..=) "Edition" Prelude.<$> edition,
+                               (JSON..=) "EnableSso" Prelude.<$> enableSso,
+                               (JSON..=) "ShortName" Prelude.<$> shortName]))}
+instance JSON.ToJSON MicrosoftAD where
+  toJSON MicrosoftAD {..}
+    = JSON.object
+        (Prelude.fromList
+           ((Prelude.<>)
+              ["Name" JSON..= name, "Password" JSON..= password,
+               "VpcSettings" JSON..= vpcSettings]
+              (Prelude.catMaybes
+                 [(JSON..=) "CreateAlias" Prelude.<$> createAlias,
+                  (JSON..=) "Edition" Prelude.<$> edition,
+                  (JSON..=) "EnableSso" Prelude.<$> enableSso,
+                  (JSON..=) "ShortName" Prelude.<$> shortName])))
+instance Property "CreateAlias" MicrosoftAD where
+  type PropertyType "CreateAlias" MicrosoftAD = Value Prelude.Bool
+  set newValue MicrosoftAD {..}
+    = MicrosoftAD {createAlias = Prelude.pure newValue, ..}
+instance Property "Edition" MicrosoftAD where
+  type PropertyType "Edition" MicrosoftAD = Value Prelude.Text
+  set newValue MicrosoftAD {..}
+    = MicrosoftAD {edition = Prelude.pure newValue, ..}
+instance Property "EnableSso" MicrosoftAD where
+  type PropertyType "EnableSso" MicrosoftAD = Value Prelude.Bool
+  set newValue MicrosoftAD {..}
+    = MicrosoftAD {enableSso = Prelude.pure newValue, ..}
+instance Property "Name" MicrosoftAD where
+  type PropertyType "Name" MicrosoftAD = Value Prelude.Text
+  set newValue MicrosoftAD {..} = MicrosoftAD {name = newValue, ..}
+instance Property "Password" MicrosoftAD where
+  type PropertyType "Password" MicrosoftAD = Value Prelude.Text
+  set newValue MicrosoftAD {..}
+    = MicrosoftAD {password = newValue, ..}
+instance Property "ShortName" MicrosoftAD where
+  type PropertyType "ShortName" MicrosoftAD = Value Prelude.Text
+  set newValue MicrosoftAD {..}
+    = MicrosoftAD {shortName = Prelude.pure newValue, ..}
+instance Property "VpcSettings" MicrosoftAD where
+  type PropertyType "VpcSettings" MicrosoftAD = VpcSettingsProperty
+  set newValue MicrosoftAD {..}
+    = MicrosoftAD {vpcSettings = newValue, ..}
diff --git a/gen/Stratosphere/DirectoryService/MicrosoftAD/VpcSettingsProperty.hs b/gen/Stratosphere/DirectoryService/MicrosoftAD/VpcSettingsProperty.hs
new file mode 100644
--- /dev/null
+++ b/gen/Stratosphere/DirectoryService/MicrosoftAD/VpcSettingsProperty.hs
@@ -0,0 +1,40 @@
+module Stratosphere.DirectoryService.MicrosoftAD.VpcSettingsProperty (
+        VpcSettingsProperty(..), mkVpcSettingsProperty
+    ) where
+import qualified Data.Aeson as JSON
+import qualified Stratosphere.Prelude as Prelude
+import Stratosphere.Property
+import Stratosphere.ResourceProperties
+import Stratosphere.Value
+data VpcSettingsProperty
+  = -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-directoryservice-microsoftad-vpcsettings.html>
+    VpcSettingsProperty {haddock_workaround_ :: (),
+                         -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-directoryservice-microsoftad-vpcsettings.html#cfn-directoryservice-microsoftad-vpcsettings-subnetids>
+                         subnetIds :: (ValueList Prelude.Text),
+                         -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-directoryservice-microsoftad-vpcsettings.html#cfn-directoryservice-microsoftad-vpcsettings-vpcid>
+                         vpcId :: (Value Prelude.Text)}
+  deriving stock (Prelude.Eq, Prelude.Show)
+mkVpcSettingsProperty ::
+  ValueList Prelude.Text -> Value Prelude.Text -> VpcSettingsProperty
+mkVpcSettingsProperty subnetIds vpcId
+  = VpcSettingsProperty
+      {haddock_workaround_ = (), subnetIds = subnetIds, vpcId = vpcId}
+instance ToResourceProperties VpcSettingsProperty where
+  toResourceProperties VpcSettingsProperty {..}
+    = ResourceProperties
+        {awsType = "AWS::DirectoryService::MicrosoftAD.VpcSettings",
+         supportsTags = Prelude.False,
+         properties = ["SubnetIds" JSON..= subnetIds,
+                       "VpcId" JSON..= vpcId]}
+instance JSON.ToJSON VpcSettingsProperty where
+  toJSON VpcSettingsProperty {..}
+    = JSON.object
+        ["SubnetIds" JSON..= subnetIds, "VpcId" JSON..= vpcId]
+instance Property "SubnetIds" VpcSettingsProperty where
+  type PropertyType "SubnetIds" VpcSettingsProperty = ValueList Prelude.Text
+  set newValue VpcSettingsProperty {..}
+    = VpcSettingsProperty {subnetIds = newValue, ..}
+instance Property "VpcId" VpcSettingsProperty where
+  type PropertyType "VpcId" VpcSettingsProperty = Value Prelude.Text
+  set newValue VpcSettingsProperty {..}
+    = VpcSettingsProperty {vpcId = newValue, ..}
diff --git a/gen/Stratosphere/DirectoryService/MicrosoftAD/VpcSettingsProperty.hs-boot b/gen/Stratosphere/DirectoryService/MicrosoftAD/VpcSettingsProperty.hs-boot
new file mode 100644
--- /dev/null
+++ b/gen/Stratosphere/DirectoryService/MicrosoftAD/VpcSettingsProperty.hs-boot
@@ -0,0 +1,9 @@
+module Stratosphere.DirectoryService.MicrosoftAD.VpcSettingsProperty where
+import qualified Data.Aeson as JSON
+import qualified Stratosphere.Prelude as Prelude
+import Stratosphere.ResourceProperties
+data VpcSettingsProperty :: Prelude.Type
+instance ToResourceProperties VpcSettingsProperty
+instance Prelude.Eq VpcSettingsProperty
+instance Prelude.Show VpcSettingsProperty
+instance JSON.ToJSON VpcSettingsProperty
diff --git a/gen/Stratosphere/DirectoryService/SimpleAD.hs b/gen/Stratosphere/DirectoryService/SimpleAD.hs
new file mode 100644
--- /dev/null
+++ b/gen/Stratosphere/DirectoryService/SimpleAD.hs
@@ -0,0 +1,95 @@
+module Stratosphere.DirectoryService.SimpleAD (
+        module Exports, SimpleAD(..), mkSimpleAD
+    ) where
+import qualified Data.Aeson as JSON
+import qualified Stratosphere.Prelude as Prelude
+import Stratosphere.Property
+import {-# SOURCE #-} Stratosphere.DirectoryService.SimpleAD.VpcSettingsProperty as Exports
+import Stratosphere.ResourceProperties
+import Stratosphere.Value
+data SimpleAD
+  = -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-directoryservice-simplead.html>
+    SimpleAD {haddock_workaround_ :: (),
+              -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-directoryservice-simplead.html#cfn-directoryservice-simplead-createalias>
+              createAlias :: (Prelude.Maybe (Value Prelude.Bool)),
+              -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-directoryservice-simplead.html#cfn-directoryservice-simplead-description>
+              description :: (Prelude.Maybe (Value Prelude.Text)),
+              -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-directoryservice-simplead.html#cfn-directoryservice-simplead-enablesso>
+              enableSso :: (Prelude.Maybe (Value Prelude.Bool)),
+              -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-directoryservice-simplead.html#cfn-directoryservice-simplead-name>
+              name :: (Value Prelude.Text),
+              -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-directoryservice-simplead.html#cfn-directoryservice-simplead-password>
+              password :: (Prelude.Maybe (Value Prelude.Text)),
+              -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-directoryservice-simplead.html#cfn-directoryservice-simplead-shortname>
+              shortName :: (Prelude.Maybe (Value Prelude.Text)),
+              -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-directoryservice-simplead.html#cfn-directoryservice-simplead-size>
+              size :: (Value Prelude.Text),
+              -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-directoryservice-simplead.html#cfn-directoryservice-simplead-vpcsettings>
+              vpcSettings :: VpcSettingsProperty}
+  deriving stock (Prelude.Eq, Prelude.Show)
+mkSimpleAD ::
+  Value Prelude.Text
+  -> Value Prelude.Text -> VpcSettingsProperty -> SimpleAD
+mkSimpleAD name size vpcSettings
+  = SimpleAD
+      {haddock_workaround_ = (), name = name, size = size,
+       vpcSettings = vpcSettings, createAlias = Prelude.Nothing,
+       description = Prelude.Nothing, enableSso = Prelude.Nothing,
+       password = Prelude.Nothing, shortName = Prelude.Nothing}
+instance ToResourceProperties SimpleAD where
+  toResourceProperties SimpleAD {..}
+    = ResourceProperties
+        {awsType = "AWS::DirectoryService::SimpleAD",
+         supportsTags = Prelude.False,
+         properties = Prelude.fromList
+                        ((Prelude.<>)
+                           ["Name" JSON..= name, "Size" JSON..= size,
+                            "VpcSettings" JSON..= vpcSettings]
+                           (Prelude.catMaybes
+                              [(JSON..=) "CreateAlias" Prelude.<$> createAlias,
+                               (JSON..=) "Description" Prelude.<$> description,
+                               (JSON..=) "EnableSso" Prelude.<$> enableSso,
+                               (JSON..=) "Password" Prelude.<$> password,
+                               (JSON..=) "ShortName" Prelude.<$> shortName]))}
+instance JSON.ToJSON SimpleAD where
+  toJSON SimpleAD {..}
+    = JSON.object
+        (Prelude.fromList
+           ((Prelude.<>)
+              ["Name" JSON..= name, "Size" JSON..= size,
+               "VpcSettings" JSON..= vpcSettings]
+              (Prelude.catMaybes
+                 [(JSON..=) "CreateAlias" Prelude.<$> createAlias,
+                  (JSON..=) "Description" Prelude.<$> description,
+                  (JSON..=) "EnableSso" Prelude.<$> enableSso,
+                  (JSON..=) "Password" Prelude.<$> password,
+                  (JSON..=) "ShortName" Prelude.<$> shortName])))
+instance Property "CreateAlias" SimpleAD where
+  type PropertyType "CreateAlias" SimpleAD = Value Prelude.Bool
+  set newValue SimpleAD {..}
+    = SimpleAD {createAlias = Prelude.pure newValue, ..}
+instance Property "Description" SimpleAD where
+  type PropertyType "Description" SimpleAD = Value Prelude.Text
+  set newValue SimpleAD {..}
+    = SimpleAD {description = Prelude.pure newValue, ..}
+instance Property "EnableSso" SimpleAD where
+  type PropertyType "EnableSso" SimpleAD = Value Prelude.Bool
+  set newValue SimpleAD {..}
+    = SimpleAD {enableSso = Prelude.pure newValue, ..}
+instance Property "Name" SimpleAD where
+  type PropertyType "Name" SimpleAD = Value Prelude.Text
+  set newValue SimpleAD {..} = SimpleAD {name = newValue, ..}
+instance Property "Password" SimpleAD where
+  type PropertyType "Password" SimpleAD = Value Prelude.Text
+  set newValue SimpleAD {..}
+    = SimpleAD {password = Prelude.pure newValue, ..}
+instance Property "ShortName" SimpleAD where
+  type PropertyType "ShortName" SimpleAD = Value Prelude.Text
+  set newValue SimpleAD {..}
+    = SimpleAD {shortName = Prelude.pure newValue, ..}
+instance Property "Size" SimpleAD where
+  type PropertyType "Size" SimpleAD = Value Prelude.Text
+  set newValue SimpleAD {..} = SimpleAD {size = newValue, ..}
+instance Property "VpcSettings" SimpleAD where
+  type PropertyType "VpcSettings" SimpleAD = VpcSettingsProperty
+  set newValue SimpleAD {..} = SimpleAD {vpcSettings = newValue, ..}
diff --git a/gen/Stratosphere/DirectoryService/SimpleAD/VpcSettingsProperty.hs b/gen/Stratosphere/DirectoryService/SimpleAD/VpcSettingsProperty.hs
new file mode 100644
--- /dev/null
+++ b/gen/Stratosphere/DirectoryService/SimpleAD/VpcSettingsProperty.hs
@@ -0,0 +1,40 @@
+module Stratosphere.DirectoryService.SimpleAD.VpcSettingsProperty (
+        VpcSettingsProperty(..), mkVpcSettingsProperty
+    ) where
+import qualified Data.Aeson as JSON
+import qualified Stratosphere.Prelude as Prelude
+import Stratosphere.Property
+import Stratosphere.ResourceProperties
+import Stratosphere.Value
+data VpcSettingsProperty
+  = -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-directoryservice-simplead-vpcsettings.html>
+    VpcSettingsProperty {haddock_workaround_ :: (),
+                         -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-directoryservice-simplead-vpcsettings.html#cfn-directoryservice-simplead-vpcsettings-subnetids>
+                         subnetIds :: (ValueList Prelude.Text),
+                         -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-directoryservice-simplead-vpcsettings.html#cfn-directoryservice-simplead-vpcsettings-vpcid>
+                         vpcId :: (Value Prelude.Text)}
+  deriving stock (Prelude.Eq, Prelude.Show)
+mkVpcSettingsProperty ::
+  ValueList Prelude.Text -> Value Prelude.Text -> VpcSettingsProperty
+mkVpcSettingsProperty subnetIds vpcId
+  = VpcSettingsProperty
+      {haddock_workaround_ = (), subnetIds = subnetIds, vpcId = vpcId}
+instance ToResourceProperties VpcSettingsProperty where
+  toResourceProperties VpcSettingsProperty {..}
+    = ResourceProperties
+        {awsType = "AWS::DirectoryService::SimpleAD.VpcSettings",
+         supportsTags = Prelude.False,
+         properties = ["SubnetIds" JSON..= subnetIds,
+                       "VpcId" JSON..= vpcId]}
+instance JSON.ToJSON VpcSettingsProperty where
+  toJSON VpcSettingsProperty {..}
+    = JSON.object
+        ["SubnetIds" JSON..= subnetIds, "VpcId" JSON..= vpcId]
+instance Property "SubnetIds" VpcSettingsProperty where
+  type PropertyType "SubnetIds" VpcSettingsProperty = ValueList Prelude.Text
+  set newValue VpcSettingsProperty {..}
+    = VpcSettingsProperty {subnetIds = newValue, ..}
+instance Property "VpcId" VpcSettingsProperty where
+  type PropertyType "VpcId" VpcSettingsProperty = Value Prelude.Text
+  set newValue VpcSettingsProperty {..}
+    = VpcSettingsProperty {vpcId = newValue, ..}
diff --git a/gen/Stratosphere/DirectoryService/SimpleAD/VpcSettingsProperty.hs-boot b/gen/Stratosphere/DirectoryService/SimpleAD/VpcSettingsProperty.hs-boot
new file mode 100644
--- /dev/null
+++ b/gen/Stratosphere/DirectoryService/SimpleAD/VpcSettingsProperty.hs-boot
@@ -0,0 +1,9 @@
+module Stratosphere.DirectoryService.SimpleAD.VpcSettingsProperty where
+import qualified Data.Aeson as JSON
+import qualified Stratosphere.Prelude as Prelude
+import Stratosphere.ResourceProperties
+data VpcSettingsProperty :: Prelude.Type
+instance ToResourceProperties VpcSettingsProperty
+instance Prelude.Eq VpcSettingsProperty
+instance Prelude.Show VpcSettingsProperty
+instance JSON.ToJSON VpcSettingsProperty
diff --git a/stratosphere-directoryservice.cabal b/stratosphere-directoryservice.cabal
new file mode 100644
--- /dev/null
+++ b/stratosphere-directoryservice.cabal
@@ -0,0 +1,76 @@
+cabal-version: 1.12
+
+-- This file has been generated from package.yaml by hpack version 0.38.2.
+--
+-- see: https://github.com/sol/hpack
+
+name:           stratosphere-directoryservice
+version:        1.0.0
+synopsis:       Stratosphere integration for AWS DirectoryService.
+description:    Integration into stratosphere to generate resources and properties for AWS DirectoryService
+category:       AWS, Cloud, DirectoryService
+stability:      experimental
+homepage:       https://github.com/mbj/stratosphere#readme
+bug-reports:    https://github.com/mbj/stratosphere/issues
+maintainer:     Markus Schirp
+license:        MIT
+license-file:   LICENSE.md
+build-type:     Simple
+
+source-repository head
+  type: git
+  location: https://github.com/mbj/stratosphere
+
+flag development
+  description: Run GHC with development flags
+  manual: True
+  default: False
+
+library
+  exposed-modules:
+      Stratosphere.DirectoryService.MicrosoftAD
+      Stratosphere.DirectoryService.MicrosoftAD.VpcSettingsProperty
+      Stratosphere.DirectoryService.SimpleAD
+      Stratosphere.DirectoryService.SimpleAD.VpcSettingsProperty
+  other-modules:
+      Paths_stratosphere_directoryservice
+  hs-source-dirs:
+      gen
+  default-extensions:
+      DataKinds
+      DeriveGeneric
+      DerivingStrategies
+      DerivingVia
+      DuplicateRecordFields
+      FlexibleContexts
+      FlexibleInstances
+      GADTs
+      GeneralizedNewtypeDeriving
+      InstanceSigs
+      LambdaCase
+      MultiParamTypeClasses
+      NoFieldSelectors
+      NoImplicitPrelude
+      NumericUnderscores
+      OverloadedLists
+      OverloadedRecordDot
+      OverloadedStrings
+      PolyKinds
+      RecordWildCards
+      ScopedTypeVariables
+      StandaloneDeriving
+      Strict
+      TemplateHaskell
+      TupleSections
+      TypeApplications
+      TypeFamilies
+  ghc-options: -Wall -Wcompat -Widentities -Wimplicit-prelude -Wincomplete-record-updates -Wincomplete-uni-patterns -Wmissing-local-signatures -Wmissing-signatures -Wmonomorphism-restriction -Wredundant-constraints -fhide-source-paths -funbox-strict-fields -optP-Wno-nonportable-include-path -Wno-unused-imports
+  build-depends:
+      aeson ==2.*
+    , base >=4.8 && <4.22
+    , stratosphere ==1.0.0
+  default-language: Haskell2010
+  if flag(development)
+    ghc-options: -Werror
+  else
+    ghc-options: -Wwarn
