We may need two decoders: json and hyperresource in the end to fill up a `HyperResource`