untilExactlyK<T extends Object>  method 
Waits until a dependency with the exact typeEntity is registered.
The result is cast to T.
Note: Requires enableUntilExactlyK: true during registration.
If typeEntity doesn't match an existing or future registration exactly,
this will not resolve.
Implementation
Resolvable<T> untilExactlyK<T extends Object>(
  Entity typeEntity, {
  Entity groupEntity = const DefaultEntity(),
  bool traverse = true,
}) {
  final g = groupEntity.preferOverDefault(focusGroup);
  final test = getK(typeEntity, groupEntity: g);
  UNSAFE:
  {
    if (test.isSome()) {
      return test.unwrap().map((e) => e as T);
    }
    var completer = completersK[g]?.firstWhereOrNull(
      (e) => e.typeEntity == typeEntity,
    );
    if (completer == null) {
      completer = ReservedSafeCompleter(typeEntity);
      (completersK[g] ??= []).add(completer);
    }
    return completer.resolvable().map((_) {
      final temp = completersK[g] ?? [];
      for (var n = 0; n < temp.length; n++) {
        final e = temp[n];
        if (e.typeEntity == typeEntity) {
          temp.removeAt(n);
          break;
        }
      }
      return getK<T>(typeEntity, groupEntity: g).unwrap();
    }).flatten();
  }
}