I think no need to write about known things here.
... better to write personal messages...
Your "fantasy" look pretty funny...
Here we have to publish ready-made solutions - templates... i think.
@privateer... you are right... but name must be more shortly.
e.g.:
enum Format : int
{NoCompression = 0, Oodle1Compression = 2};
... The names of the parent objects are complementing this short name.
...
@ TDW... your verbosity is tedious and poorly translated.