CGPoint . Date and Data , but also all types are likely to have same representation across entire payload. The types indicate their only one representation by conforming to Codable . The current problem is that, when it differs from assumption, there is no way to adopt "really" assumed format instead of built-in format. So I realized that introducing strategies is not the best way for my motivation. A better way is to Codable conformance from some types ( Data , Date , CGPoint and more).extension Foo: Codable to conform their "real" format.