The C++ classes that wrap DNA structs should never store any data. Runtime data needs to be stored on the runtime classes/structs and anything else needs to be put into DNA. This adds static asserts to make sure (at compile time) that these classes have the same size as the DNA structs (i.e. they don't store additional data).