JSONDecoder.decode
KeyedContainerProtocol.decode(:for)
If each `KeyPath` encapsulates the type information, the `decode` methods won't need a `type` parameter.