Sorry I meant that the PartiallyIterable trait adds the following method:

```scala
def multiGet(start: K, end: Option[K] = None, maxNumKeys: Option[Int] = None,
  descending: Boolean = false): Future[Iterable[(K, V)]] 
```

while ReadableStore already has a multiGet defined:
```scala
def multiGet[K1 <: K](ks: Set[K1]): Map[K1, Future[Option[V]]]
```

While it is still valid syntax, I personally prefer creating a separate Store combinator that conforms to the existing interface but with the key type for gets being a range instead, i.e. SplittableStore.

The 'range key' can possibly encapsulate everything you need to perform the slice query (start, end, maxNumKeys, descending, etc).

In other words, the slice query can be implemented in terms of a ReadableStore with the key being your 'range key' and value being `Spool[(K, V)]`, `Set[V]` (or any other structure that gets you the values in that range in a reasonable fashion).