For sheet importers, the fact that the key data is embedded in the Field type is a bit awkward. It seems to me that the essence of a Field does not need to be connected to any particular key, just like SQLAlchemy Column objects do not need to be connected to a name. It might be more natural to represent the fields as an OrderedDict and pull the key data out.