code: public CsvReader includeFields(String mask) {
  		boolean[] includedMask = new boolean[mask.length()];
  
  		for (int i = 0; i < mask.length(); i++) {
  			char c = mask.charAt(i);
  			if (c == '1' || c == 'T' || c == 't') {
  				includedMask[i] = true;
  			} else if (c != '0' && c != 'F' && c != 'f') {
  				throw new IllegalArgumentException("Mask string may contain only '0' and '1'.");
  			}
  		}
  
  		return includeFields(includedMask);
  	}
docs: Configures which fields of the CSV file should be included and which should be skipped. The
  positions in the string (read from position 0 to its length) define whether the field at
  the corresponding position in the CSV schema should be included.
  parser will look at the first {@code n} fields, where {@code n} is the length of the mask string
  The parser will skip over all fields where the character at the corresponding position
  in the string is {@code '0'}, {@code 'F'}, or {@code 'f'} (representing the value
  {@code false}). The result contains the fields where the corresponding position in
  the boolean array is {@code '1'}, {@code 'T'}, or {@code 't'} (representing the value {@code true}).
  
  @param mask The string mask defining which fields to include and which to skip.
  @return The CSV reader instance itself, to allow for fluent function chaining.