@Override
  public Map<String, ValidationResult.Option> askUser(List<ValidationResult> validationResults) throws OperationCancelledException {
    System.out.println("Validation info:");
    for (var item : validationResults) {
      System.out.printf("  %s  %s: %s%n", item.kind, item.path, item.message);
    }

    var choices = new HashMap<String, ValidationResult.Option>();
    for (var item : validationResults) {
      if (myForceReplace && item.options.contains(ValidationResult.Option.REPLACE)) {
        choices.put(item.path, ValidationResult.Option.REPLACE);
        System.out.println("Selected REPLACE for " + item.path);
        continue;
      }
      if (item.kind == ValidationResult.Kind.ERROR) {
        System.out.println("Invalid files were detected. Failing.");
        throw new OperationCancelledException();
      }
      if (item.kind == ValidationResult.Kind.CONFLICT) {
        System.out.println("Conflicting files were detected. Failing.");
        throw new OperationCancelledException();
      }
    }
    return choices;
  }
@Override
  public Map<String, ValidationResult.Option> askUser(List<ValidationResult> validationResults)