Typically, a Fili program's response writing infrastructure will consist of a collection of unrelated
ResponseWriters each responsible for serializing the ResultSet into a specific format, and a single
ResponseWriter that chooses the correct one based on the current state of the DataApiRequest.
This interface allows customers provide a clean interface to the logic that makes that selection. Its
sole purpose is to take a `DataApiRequest` and return the `ResponseWriter` that should be used
to write the response.