Using Field as an Enum made sense in the context of planning to
make multiple variants containing Field components or more nested
subcomponents in a single Enum. Using a functional approach to
extract those sub-fields allows for replacing the Enum with a
Struct and permitting encapsulated storage of sub-field delimeters
for external callers which don't have easy access to them but need
a sub-field value returned.
Implement the data conversion, parsing changes, and functional
changes to sub-field accessors.
Using Field as an Enum made sense in the context of planning to make multiple variants containing Field components or more nested subcomponents in a single Enum. Using a functional approach to extract those sub-fields allows for replacing the Enum with a Struct and permitting encapsulated storage of sub-field delimeters for external callers which don't have easy access to them but need a sub-field value returned.
Implement the data conversion, parsing changes, and functional changes to sub-field accessors.
Testing: Passes tests