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: atom(), opts: Map.t(), required?: boolean(), type: atom(), validator: validator() }
validator() :: {atom(), any()} | atom() | nil