In differential benchmarking we would like for the gas estimations to only happen once per transaction such that we're not bottlenecked by gas estimates in the benchmarks.
One way to do that would be to cache the gas estimate with the following cache key:
struct CacheKey {
metadata_file_path: PathBuf,
case_idx: CaseIdx,
step_path: StepPath
}