public <S> JdbiImmutables registerImmutable(Class<S> spec) {
        final Class<? extends S> impl = classByPrefix("Immutable", spec);
        return registerImmutable(spec, impl, JdbiOptionals.findFirstPresent(
                () -> nullaryMethodOf(spec, "builder"),
                () -> nullaryMethodOf(impl, "builder"))
                    .orElseThrow(() -> new IllegalArgumentException("Neither " + spec + " nor " + impl + " have a 'builder' method")));
    }
Register bean arguments and row mapping for an {@code Immutable*} value class, expecting the default generated class and builder names.
@param spec the specification interface or abstract class
@param <S> the specification class
@return a plugin that configures type mapping for the given class
core/src/main/java/org/jdbi/v3/core/mapper/immutables/JdbiImmutables.java