I really don't know how to work with data in emacs - could stand to document what I _do_ know, and then start hammering away at the rest of it here.
Setting things in dir-locals should be easier than it is.
Not everyone wants to share the dir-locals, so you .gitignore it - then you can's search for it b/c projectile ignores the .gitignores.
You need to remember this bizarre syntax (it's not evaluable elisp!)
Then you need to re-evaluate the dir-locals after changing it.
Then you get prompted about new-dir-locals whenever you enter a new file.
It's a solution but feels out-dated/ready to be made-amazing. Maybe there's an opportunity for an emacs lib here?