Your code assumes that Published has a member named value
that's exposed in its mirror, but Published could have renamed the value
property, or removed it altogether and used some other mechanism, or started conforming to CustomReflectable. What I'm wondering is why you aren't just using wrappedValue
(EDIT: directly, not through the mirror), which you know exists because it's a property wrapper…but even given that, it's not clear that this code is a good idea. See Why you can't make someone else's class Decodable: a long-winded explanation of 'required' initializers. (Sorry for the lack of formatting; that explanation predates our use of Discourse!)