Subaru SSM2 packet base class. Designed for object reusability which means immutable. Properties can be changed and will only affect those packet bytes. I.e. once header info has been set, one can modify payload data, header bytes won't be rewritten. Also avoids many backing fields since most properties directly read/write packet bytes.