code: public static <T> Field create(Type type, T value, Map<String, String> attributes) {
      return new Field(Utils.checkNotNull(type, "type"), type.convert(value), attributes);
    }
docs: Creates a field of a given type, the value is converted to the specified type.
  <p/>
  If the type is <code>MAP</code>, <code>LIST</code> or <code>LIST_MAP</code> this method performs a deep copy of
  the value.
  
  @param type the type of the field to create.
  @param value the value to set in the field.
  @param attributes the field-level attributes (can be null)
  @return the created Field.
  @throws IllegalArgumentException if the value cannot be converted to the specified type.