For explicit information on how resource names are chosen, see this dotnet docs issue.
This gist is meant to be a slightly higher level explanation on how resource names are used. Mostly I'm just documenting as much context as possible before I forget.
That Foo.resx
will get passed to a few tasks in different forms throughout the build.