Tests for how we handle parameters of different types

It may well be that a `ServerType` is a perfectly reasonable way to represent a decoder for the supplied type. Or the expected parameter type, which the client might ask about. But there might be two of them when they differ, in which case there would also be a cast, determined at parse time.

Or the cleanups you suggest with the current data model may be sufficient, with or without cast lookups there.