function createYearGroupedMonthPathMapper(monthGroupSize = 3, irgnoreRecentYears = 4) {
  const ignoreYearFrom = '' + (new Date().getFullYear() - irgnoreRecentYears)

  const groupedMonthMapper = function (year, entry) {
    let month = +entry.date.substring(5, 7)
    const monthGroup = '' + (month + (monthGroupSize - (month % monthGroupSize)) % monthGroupSize)
    return [year, monthGroup.padStart(2, '0')]
  }

  return function(entry) {
    const year = entry.date.substring(0, 4)
    if (year > ignoreYearFrom) {
      return yearMonthPathMapper(entry)
    }
    return groupedMonthMapper(year, entry)
  }
}
Group month in ceiled group month values for older years

eg. for monthGroupSize = 3: 01 -> 03, 02 -> 03, 03 -> 03, 04 -> 06, ...

Do not group month if year is within the given recent ignored
year count since we expect frequent entry changes in the recent
year but not the the past years.

For recent years the updates more granular than in the past.

So we can group the years of the past to reduce the total object
count and to speed up initial load by less requests