If you hadn't already, I would have suggested vibe coding this.
I've done a different thing also with OSM data (isochrone rather than point-to-point routing) and put it on github to avoid needing to care about bandwidth on my domain, because also around ten megabytes for Berlin's data, despite having a step to convert JSON to a much more compact form with only the data I needed: