Why does encode(to:) in an Encodable type take in an existential type?

AFAIK migrating away from existentials in some next-gen Codable would also help unblock bringing that to embedded.