The focus on ground-level retail as opposed to multi-story retail is a bit disappointing. This Substack post from Noah Smith does a really great job explaining why density for retail is also an important part of creating walkable neighborhoods: https://www.noahpinion.blog/p/a-better-way-to-build-a-downto...
I agree, but in the GCP world, a lot of these things are merging. My understanding is that Cloud Run, Cloud Run Functions (previously known as Cloud Functions Gen2) and even App Engine Flexible all run in the same underlying cloud run infrastructure, so it's essentially just some interface differences that to me now seem more like historical legacy/backwards compatibility reasons than meaningful functionality differences (e.g. Functions can now handle multiple concurrent requests).