diff --git a/changelog.md b/changelog.md
--- a/changelog.md
+++ b/changelog.md
@@ -1,5 +1,11 @@
 # Changelog
 
+## 0.6.0.0
+
+- Require `json-spec` >= 1.4 and `json-spec-elm` >= 0.6, which provide
+  `JsonDict` support (Elm `Dict String a`) via `json-spec-elm`.
+- The test API now exercises `JsonDict` in `DashboardData`.
+
 ## 0.5.1.0
 
 - Improved Elm generator output.
diff --git a/json-spec-elm-servant.cabal b/json-spec-elm-servant.cabal
--- a/json-spec-elm-servant.cabal
+++ b/json-spec-elm-servant.cabal
@@ -1,6 +1,6 @@
 cabal-version:       3.0
 name:                json-spec-elm-servant
-version:             0.5.1.0
+version:             0.6.0.0
 synopsis:            Generated elm code for servant APIs.
 description:         Generate Elm encoders, decoders, and API requests
                      for an Servant API, where the shape of the data
@@ -31,8 +31,8 @@
     , elm-syntax           >= 0.3.3.0   && < 0.4
     , filepath             >= 1.4.200.1 && < 1.6
     , http-types           >= 0.12.3    && < 0.13
-    , json-spec            >= 1.3.0.0   && < 1.4
-    , json-spec-elm        >= 0.5.0.1   && < 0.6
+    , json-spec            >= 1.4.0.0   && < 1.5
+    , json-spec-elm        >= 0.6.0.0   && < 0.7
     , mtl                  >= 2.3.1     && < 2.4
     , prettyprinter        >= 1.7.1     && < 1.8
     , process              >= 1.6.18.0  && < 1.7
diff --git a/src/Data/JsonSpec/Elm/Servant.hs b/src/Data/JsonSpec/Elm/Servant.hs
--- a/src/Data/JsonSpec/Elm/Servant.hs
+++ b/src/Data/JsonSpec/Elm/Servant.hs
@@ -37,10 +37,9 @@
   QP(..),
 ) where
 
-
 import Bound (Var(B, F), Scope, abstract1, closed, toScope)
 import Control.Monad.Writer (MonadTrans(lift), MonadWriter(tell), execWriter)
-import Data.Foldable (Foldable(fold), foldl', traverse_)
+import Data.Foldable (Foldable(fold, foldl'), traverse_)
 import Data.HashMap.Strict (HashMap)
 import Data.JsonSpec
   ( HasJsonDecodingSpec(DecodingSpec), HasJsonEncodingSpec(EncodingSpec)
@@ -60,11 +59,10 @@
 import Language.Elm.Type (Type)
 import Network.HTTP.Types (Method)
 import Prelude
-  ( Applicative(pure), Bool(False, True), Eq((==))
-  , Foldable(foldr, length), Functor(fmap), Maybe(Just, Nothing)
-  , Monad((>>=)), Monoid(mconcat, mempty), Semigroup((<>))
-  , Traversable(sequence, traverse), ($), (.), (<$>), IO, Int, String, drop
-  , error, init, putStrLn, reverse, unlines
+  ( Applicative(pure), Bool(False, True), Eq((==)), Foldable(foldr, length)
+  , Functor(fmap), Maybe(Just, Nothing), Monad((>>=)), Monoid(mconcat, mempty)
+  , Semigroup((<>)), Traversable(sequence, traverse), ($), (.), (<$>), IO, Int
+  , String, drop, error, init, putStrLn, reverse, unlines
   )
 import Prettyprinter (defaultLayoutOptions, layoutPretty)
 import Prettyprinter.Render.Text (renderStrict)
@@ -89,7 +87,6 @@
 import qualified Language.Elm.Pattern as Pat
 import qualified Language.Elm.Type as Type
 import qualified System.OsPath as OsPath
-
 
 {-|
   This function will traverse the @api@ type, generating elm definitions for:
diff --git a/test/Api.hs b/test/Api.hs
--- a/test/Api.hs
+++ b/test/Api.hs
@@ -46,7 +46,6 @@
   FEConfig(..),
 ) where
 
-
 import Data.Aeson (FromJSON, FromJSONKey, ToJSON, ToJSONKey)
 import Data.Binary (Binary)
 import Data.ByteString (ByteString)
@@ -54,8 +53,8 @@
   ( Field(Field), HasJsonDecodingSpec(DecodingSpec, fromJSONStructure)
   , HasJsonEncodingSpec(EncodingSpec, toJSONStructure), SpecJSON(SpecJSON)
   , Specification
-    ( JsonArray, JsonDateTime, JsonEither, JsonInt, JsonLet, JsonObject, JsonRef
-    , JsonString, JsonTag
+    ( JsonArray, JsonDateTime, JsonDict, JsonEither, JsonInt, JsonLet
+    , JsonObject, JsonRef, JsonString, JsonTag
     )
   )
 import Data.Map (Map)
@@ -78,7 +77,6 @@
 import Web.Cookie (SetCookie)
 import qualified Data.JsonSpec as Spec
 
-
 data Api mode = Api
   { protectedApi :: mode
       :- "api"
@@ -193,14 +191,7 @@
     JsonLet
       '[ '("DashboardData"
           , JsonObject
-              '[ "proposals" :::
-                    JsonArray
-                      (
-                        JsonObject
-                          '[   "key" ::: EncodingSpec ProposalId
-                           , "value" ::: EncodingSpec Proposal
-                           ]
-                      )
+              '[ "proposals" ::: JsonDict (EncodingSpec Proposal)
                , "credits" ::: EncodingSpec AvailableCredits
                , "user" ::: EncodingSpec DiscordUser
                ]
