field_type() :: :single | :aggregate
t() :: %Csvto.Field{default: term, field_index: integer | nil, field_name: String.t | nil, field_type: field_type, file: String.t, line: integer, name: String.t, opts: Map.t, required?: boolean, type: atom, validator: validator}
validator() :: {atom, any} | atom | nil