Anders geht es nunmal nicht (effektiv).
Man kann ab TPersistent vererben und dort das Streaming missbrauchen
oder via
RTTI alles suchen und kopieren.
Bei sowas, wo man etwas mal vergessen könnte, kann man auch
{$IF SizeOf(TMyRecord) <> 123} {$MESSAGE Error '...'} {$IFEND}
Bei Klassen ist das leider nicht ganz so einfach, direkt im Compiler, daher wohl eher
if Self.InstanceSize <> 123 then raise ...;
[edit] Kannst auch mal nachsehn, wo sich die InstanceSize in der TypeInfo versteckt.
Das in dein Assign und 123 auf den aktuellen Wert setzen.
-> neues Feld = Peng