docs: public static void setFieldValue(Object object, Field field, Object value) throws IllegalArgumentException, BugError
    {
      Params.notNull(field, "Field");
  
      Class<?> type = field.getType();
      if(!type.equals(String.class) && value instanceof String) {
        value = ConverterRegistry.getConverter().asObject((String)value, type);
      }
      if(value != null && !Types.isInstanceOf(value, type)) {
        throw new BugError("Value |%s| is not assignable to field |%s|.", value.getClass(), field);
      }
  
      try {
        field.setAccessible(true);
        field.set(object, value);
      }
      catch(IllegalAccessException e) {
        throw new BugError(e);
      }
    }