There were IPng proposals in which zero-padding an IPv4 address gave you a valid, interroutable IPng address. One network is a strict superset of the other.
It's been 22 years since the first Global Unicast IPv6 allocations were made and progress has been very slow. This will not be complete until long after I am retired.
Yeah, because NAT64 is 11 years old:
https://datatracker.ietf.org/doc/html/rfc6146
IPv6 was useless without it. It took over 13 years for people to figure that out.
How would you accomplish this? How could an IPv4-only system send a packet to an IPv8 address? IPv4 packets only have 32 bits for the destination and source IP addresses, there's no way to fit the address for any newer protocol with longer addresses in there.
Concretely: if you're a router and you accept IPv6 packets, you must offer NAT64 services on any interface from which you accept IPv4 packets. The upgrade ripples outward from the core routers (default-free zone) in two waves. As soon as all of a router's peers support IPv6, that router can drop NAT64 and IPv4. No flag days. All coordination is between a pair of peers with a direct link.
There were IPng proposals that had this requirement (using different terms, of course). IPv6 wasted more than a decade fighting against NAT64, tooth and nail. It wasn't until they finally caved and standardized NAT64 that people took IPv6 seriously -- but by then it was too late to make it a mandatory feature of dual-stack routers and there was already hardware shipping with IPv6. The clean upgrade path was lost forever.
Next time anybody complains about the IPv6 transition taking so long, you know who to blame.
NAT64 has worse scaling than CGNAT (requires more state and moving pieces) so it was never a solution to drive adoption.