I propose a combination of a simple procedural abstraction for defining new types at the most fundamental level with a more convenient syntax for everyday use. I don't see a reason that we can't have both in WG1.
I propose RecordsCowan plus RecordsArcfide.
Types created using RecordsArcfide are implemented by RecordsCowan.
Types created using RecordsCowan may inherit from types created using RecordsArcfide. (Since RecordsArcfide doesn't support inheritance, it's not possible, without extension, to go the other way around.)