In this package which uses property wrappers to affect the how types are decoded,
Resilient is a struct which is
Decodable but is never actually intended to be initialized via
init(from:) (indeed, that codepath currenly
asserts). I would be able to remove this assertion, conformance and initializer if the synthesized
Decodable initializer didn't require that the type of the property be
Decodable, only that the synthesized call to
container.decode(Foo.self, forKey: .foo) type checked correctly. We would then be able to catch these
asserts at compile-time, and not need to provide a fallback path.
What do folks think?