docs: public <T> boolean map(Class<? super T> baseClass, Class<T> typeClass)
      {
          assert baseClass != null && typeClass != null;
  
          if (typeClass.isInterface()
                  || Modifier.isAbstract(typeClass.getModifiers()))
          {
              throw new IllegalArgumentException(typeClass
                      + " cannot be an interface/abstract class.");
          }
  
          final HasSchema<?> last = pojoMapping.putIfAbsent(baseClass.getName(),
                  new Mapped<T>(baseClass, typeClass, this));
  
          return last == null
                  || (last instanceof Mapped<?> && ((Mapped<?>) last).typeClass == typeClass);
      }