I would type it like this:

    result.map { items =>
      items.map {
        case BucketItem(name, isVirtual) => //...
      }
    }

Is there any reason you are using a partial function on the `map` of the `Future`?