The goal is to have as few dependencies as possible. To remove a dependency on Guava, we shade in selected classes such as ImmutableMap.
One gotcha is if new code uses a Guava class that's not on our shaded list, we don't have an automated way to detect that it would blow up later.
We could add an ArchUnit test to check for any Guava classes that aren't on our shaded list.