code: protected List<String> checkSetup() {
          List<String> messages = new ArrayList<>();
          if (command == null) {
              messages.add(coreBundle.getString("command.not.passed"));
          } else if (!isCommand(command)) {
              messages.add(String.format(coreBundle.getString("command.unknown"), command));
          } else {
              if (StringUtil.trimToNull(url) == null) {
                  messages.add(String.format(coreBundle.getString("option.required"), "--" + OPTIONS.URL));
              }
  
              if (isChangeLogRequired(command) && (StringUtil.trimToNull(changeLogFile) == null)) {
                  messages.add(String.format(coreBundle.getString("option.required"), "--" + OPTIONS.CHANGELOG_FILE));
              }
  
              if (isNoArgCommand(command) && !commandParams.isEmpty()) {
                  messages.add(coreBundle.getString(ERRORMSG_UNEXPECTED_PARAMETERS) + commandParams);
              } else {
                  validateCommandParameters(messages);
              }
          }
          return messages;
      }
docs: After parsing, checks if the given combination of main command and can be executed.
  
  @return an empty List if successful, or a list of error messages