This idea came up on Twitter: https://twitter.com/D0Wind/status/1587986699434328065?t=fdl2Sy3QUoaGgHj3AGVmjA&s=19 We can create partial copy constructors where we leave non matching properties as extra parameters of the generated constructor.