On second thought, we should probably accept that "discovery" is a core concept and have structures that represent it.  Then bend the ES/whatever modules around those concepts.

So perhaps this method would transform a `List<DiscoveryResult>` and we have code in the ES module that transforms `ElasticIO.Result` instances to `DiscoveryResult` instances.

Just thinking out loud about this coupling.