docs: public static CharSequence removePrefix(CharSequence fieldName, List<String> prefixes) {
  		if (prefixes == null || prefixes.isEmpty()) return fieldName;
  		
  		fieldName = fieldName.toString();
  		
  		outer:
  		for (String prefix : prefixes) {
  			if (prefix.length() == 0) return fieldName;
  			if (fieldName.length() <= prefix.length()) continue outer;
  			for (int i = 0; i < prefix.length(); i++) {
  				if (fieldName.charAt(i) != prefix.charAt(i)) continue outer;
  			}
  			char followupChar = fieldName.charAt(prefix.length());
  			// if prefix is a letter then follow up letter needs to not be lowercase, i.e. 'foo' is not a match
  			// as field named 'oo' with prefix 'f', but 'fOo' would be.
  			if (Character.isLetter(prefix.charAt(prefix.length() - 1)) &&
  					Character.isLowerCase(followupChar)) continue outer;
  			return "" + Character.toLowerCase(followupChar) + fieldName.subSequence(prefix.length() + 1, fieldName.length());
  		}
  		
  		return null;
  	}