private static void unapplyModificationsFromShanghaiOnwards(
      final GenesisConfigOptions config,
      final Map<Long, Function<ProtocolSpecBuilder, ProtocolSpecBuilder>> postMergeModifications) {
    // Any post-Paris fork can rely on the MainnetProtocolSpec definitions again
    // Must allow for config to skip Shanghai and go straight to a later fork.
    if (!config.getForkBlockTimestamps().isEmpty()) {
      postMergeModifications.put(config.getForkBlockTimestamps().getFirst(), Function.identity());
    }
  }
Apply Paris specific modifications because the Merge Transition code does not utilise {@link
org.hyperledger.besu.ethereum.mainnet.MainnetProtocolSpecFactory.parisDefinition} until the
shanghaiDefinition is utilised. This is due to the way the Transition works via TTD rather than
via a blockNumber so it can't be looked up in the schedule.
consensus/merge/src/main/java/org/hyperledger/besu/consensus/merge/MergeProtocolSchedule.java