docs: @NotNull
      protected  Map<String, Map<String, Object>>  toTypeArguments(ParameterElement... parameters) {
          final LinkedHashMap<String, Map<String, Object>>  map = new LinkedHashMap<>(parameters.length);
          for (ParameterElement ce : parameters) {
              final ClassElement type = ce.getType();
              if (type == null) {
                  continue;
              }
              final Map<String, ClassElement> subArgs = type.getTypeArguments();
              if (CollectionUtils.isNotEmpty(subArgs)) {
                  map.put(ce.getName(), toTypeArguments(subArgs));
              }
          }
          return map;
      }