This name... I can't put my finger on anything that sounds better, but the word 'request' is throwing me. Really our idea of 'criteria' mimics the http requests that we throw at the endpoints. Maybe `ApiClient` works better here? Not sure, that still sounds a little funny considering we already have a class we refer as that (which arguably could use a renaming).

Just thought-dumping here: an api request as far as the Matrix is concerned, is a single url that always gets similar params thrown at it. Based off of that line of thinking, should we move endpoint knowledge into the criteria/request objects? It already seems odd that that data lives in the class that does our HTTP communication.