In a couple of places eg #45 (comment), we lean on the visit_composite implementation to handle some decoding. This requires a TypeId (which we don't care about), and so we just provide some default thing because we have no actual ID. This leads us to needing TypeId: Default, which is a bit of a hack.
Let's tweak the code so that we don't need this, and then we can remove the bound on scale-type-resolver.