if (option.required() && optionValues.get(option) == null) {
throw new IllegalArgumentException("Option " + option.name() + " is required");
}
}
for (Argument argument : arguments.keySet()) {
if (argument.required() && argumentValues.get(argument) == null) {
throw new IllegalArgumentException("Argument " + argument.name() + " is required");
}
}
// Convert and inject values
for (Map.Entry<Option, Object> entry : optionValues.entrySet()) {