code: @Override
      public void registerAdditionalCapabilityRequirement(RuntimeRequirementRegistration requirement) {
          writeLock.lock();
          try {
              registerRequirement(requirement);
          } finally {
              writeLock.unlock();
          }
      }
docs: Registers an additional requirement a capability has beyond what it was aware of when {@code capability}
  was passed to {@link #registerCapability(RuntimeCapabilityRegistration)}. Used for cases
  where a capability optionally depends on another capability, and whether or not that requirement is needed is
  not known when the capability is first registered.
  
  
  @param requirement the requirement
  @throws java.lang.IllegalArgumentException if no matching capability is currently
  {@link #registerCapability(RuntimeCapabilityRegistration) registered} for either {@code required} or {@code dependent}