docs: public static ExchangeMetaData adaptMetaData(
        ExchangeMetaData exchangeMetaData,
        List<BitfinexSymbolDetail> symbolDetails,
        Map<CurrencyPair, BigDecimal> lastPrices) {
  
      final Map<CurrencyPair, CurrencyPairMetaData> currencyPairs =
          exchangeMetaData.getCurrencyPairs();
      symbolDetails
          .parallelStream()
          .forEach(
              bitfinexSymbolDetail -> {
                final CurrencyPair currencyPair = adaptCurrencyPair(bitfinexSymbolDetail.getPair());
  
                // Infer price-scale from last and price-precision
                BigDecimal last = lastPrices.get(currencyPair);
                int pricePercision = bitfinexSymbolDetail.getPrice_precision();
                int priceScale = last.scale() + (pricePercision - last.precision());
  
                CurrencyPairMetaData newMetaData =
                    new CurrencyPairMetaData(
                        currencyPairs.get(currencyPair) == null
                            ? null
                            : currencyPairs
                                .get(currencyPair)
                                .getTradingFee(), // Take tradingFee from static metaData if exists
                        bitfinexSymbolDetail.getMinimum_order_size(),
                        bitfinexSymbolDetail.getMaximum_order_size(),
                        priceScale,
                        null);
                currencyPairs.put(currencyPair, newMetaData);
              });
      return exchangeMetaData;
    }