docs: public Binding<?> requestBinding(String key, Object requiredBy, ClassLoader classLoader,
        boolean mustHaveInjections, boolean library) {
      assertLockHeld();
  
      Binding<?> binding = null;
      for (Linker linker = this; linker != null; linker = linker.base) {
        binding = linker.bindings.get(key);
        if (binding != null) {
          if (linker != this && !binding.isLinked()) throw new AssertionError();
          break;
        }
      }
  
      if (binding == null) {
        // We can't satisfy this binding. Make sure it'll work next time!
        Binding<?> deferredBinding =
            new DeferredBinding(key, classLoader, requiredBy, mustHaveInjections);
        deferredBinding.setLibrary(library);
        deferredBinding.setDependedOn(true);
        toLink.add(deferredBinding);
        attachSuccess = false;
        return null;
      }
  
      if (!binding.isLinked()) {
        toLink.add(binding); // This binding was never linked; link it now!
      }
  
      binding.setLibrary(library);
      binding.setDependedOn(true);
      return binding;
    }