It would be helpful to document what subclasses have to provide: field_class and get_field_data().