docs: public static ModelNode validateRequest(CommandContext ctx, ModelNode request) throws CommandFormatException {
  
          final Set<String> keys = request.keys();
          if (keys.size() == 2) { // no props
              return null;
          }
          ModelNode outcome = (ModelNode) ctx.get(Scope.REQUEST, DESCRIPTION_RESPONSE);
          if (outcome == null) {
              outcome = retrieveDescription(ctx, request, true);
              if (outcome == null) {
                  return null;
              } else {
                  ctx.set(Scope.REQUEST, DESCRIPTION_RESPONSE, outcome);
              }
          }
          if(!outcome.has(Util.RESULT)) {
              throw new CommandFormatException("Failed to perform " + Util.READ_OPERATION_DESCRIPTION + " to validate the request: result is not available.");
          }
  
          final String operationName = request.get(Util.OPERATION).asString();
  
          final ModelNode result = outcome.get(Util.RESULT);
          final Set<String> definedProps = result.hasDefined(Util.REQUEST_PROPERTIES) ? result.get(Util.REQUEST_PROPERTIES).keys() : Collections.emptySet();
          if(definedProps.isEmpty()) {
              if(!(keys.size() == 3 && keys.contains(Util.OPERATION_HEADERS))) {
                  throw new CommandFormatException("Operation '" + operationName + "' does not expect any property.");
              }
          } else {
              int skipped = 0;
              for(String prop : keys) {
                  if(skipped < 2 && (prop.equals(Util.ADDRESS) || prop.equals(Util.OPERATION))) {
                      ++skipped;
                      continue;
                  }
                  if(!definedProps.contains(prop)) {
                      if(!Util.OPERATION_HEADERS.equals(prop)) {
                          throw new CommandFormatException("'" + prop + "' is not found among the supported properties: " + definedProps);
                      }
                  }
              }
          }
          return outcome;
      }