HTML::Shakan::Field - base class for field object
This is a base class for filed object.
  - id
- the 'id' attribute for the HTML elements.
- name
- the 'name' attribute for the HTML elements.
- value
- the 'value' attribute for the HTML elements.
- filters:
    ArrayRef[Str]
- This is parameter filters in arrayref.
    For example, following field removes white space from
        parameter value in head and end.     TextField(
        name     => 'f',
        required => 1,
        filters  => [qw'WhiteSpace']
    ),
    
- widget
- type of widget.
- attr
- hashref about the miscellaneous attributes.
- label
- label for this field.
- label_class
- class attribute for this field's label.
- required
- is this field's value required?
- custom_validation
- 
        TextField(
        name => 'id',
        custom_validation => sub {
            my ($form, $field) = @_;
            if (is_reserved_id($form->param($field->name))) {
                $form->set_error($field->name() => 'reserved');
            }
        }
    )
    You can register custom validation callback. The callback function takes two arguments. 
  - $form
- This is a instance of HTML::Shakan. You can take query parameter value by
      this object.
- $field
- The field object itself.
 
  - constraints
- constraints for FormValidator::Lite.