The SerialisationTraits implementation always uses primitive serialization if the type is an enum, without first checking if there is a user-defined SerialisationTraits overload for the enum type. This makes it impossible to serialize enums as strings (using something like eg magic_enum).
I think the SerialisationTraits should always check if there is a user-defined specialization first, and use it if there is one, even for primitive types (at least for enums). Serializing enums as simple integers is brittle and prone to breakage if enum values are ever added or removed.
