@Override
    public Optional<RowMapper<?>> build(Type mapType, ConfigRegistry config) {
        return Optional.of(mapType)
            .filter(ParameterizedType.class::isInstance)
            .map(ParameterizedType.class::cast)
            .filter(maybeMap -> Map.class.equals(maybeMap.getRawType()))
            .filter(map -> String.class.equals(GenericTypes.findGenericParameter(map, Map.class, 0).orElse(null)))
            .flatMap(map -> GenericTypes.findGenericParameter(map, Map.class, 1))
            .filter(value -> !Object.class.equals(value))
            .flatMap(config.get(ColumnMappers.class)::findFor)
            .map(GenericMapMapper::new);
    }
Factory for a RowMapper that can map resultset rows to column name/generic value {@link Map}s.
<p>
Each row in the resultset becomes a distinct {@link Map}, in which the keys are all distinct column names and the values are the corresponding cell contents.
All values are mapped to the same generic type {@code T} (e.g. {@link java.math.BigDecimal}) by a {@link ColumnMapper} from the {@link ConfigRegistry}.
<p>
This differs from {@link MapMapper} by supporting a concrete type instead of only {@link Object}, and from {@code collecting} into a {@link Map}
in that the latter maps an entire resultset to a single {@link Map} and can only keep 1 key and 1 value from each row.
<p>
Use cases for this are mainly single-row results like numeric reports (e.g. the price components,
taxes, etc of a product for sale, or a set of possible labeled values for a user setting), and matrices.

@see ResultBearing#mapToMap(GenericType)
@see MapMapper
@see ResultBearing#mapToMap()
@see ResultBearing#collectInto(GenericType)
core/src/main/java/org/jdbi/v3/core/mapper/GenericMapMapperFactory.java