I think we should use the existing `@type` if the `:min_length` or `:max_length` key are not provided.

The keys should also be renamed to match the types, so `:minimum_length` and `:maximum_length`.