private static Map<String, ValidationResult.Option> askForResolutions(List<ValidationResult> problems, UpdaterUI ui) throws OperationCancelledException {
    if (problems.isEmpty()) return Map.of();
    LOG.warning("conflicts:");
    for (ValidationResult problem : problems) {
      String record = "  " + problem.action.name() + ' ' + problem.path + ": " + problem.message;
      if (!problem.details.isEmpty()) record += " (" + problem.details + ')';
      LOG.warning(record);
    }
    Map<String, ValidationResult.Option> resolutions = ui.askUser(problems);
    LOG.warning("resolutions:");
    for (Map.Entry<String, ValidationResult.Option> entry : resolutions.entrySet()) {
      LOG.warning("  " + entry.getKey() + ": " + entry.getValue());
    }
    return resolutions;
  }
private static Map<String, ValidationResult.Option> askForResolutions(List<ValidationResult> problems, UpdaterUI ui)