internal void AddKeyIfValueAvailable(TInterestedHoldingParty ask) => InterestedHoldingPartyToResource.AddKeyIfValueAvailable(ask);
public void RemoveKeyIfStillThere(TInterestedHoldingParty ask) => InterestedHoldingPartyToResource.RemoveKeyIfStillThere(ask);
// Probably a bit goofy taking the 'add if missing' as a lambda, as the caller technically has the true value, which should match what he'd just put in here // Maybe to get rid of ambiguity the action should be ResourceHolder.Build... or something and just take it all private in here. internal void AddKeyRebuildingHeldResourceFromPassedInOnlyIfItSomehowWasMissing(TInterestedHoldingParty ask, Func <TResourceObject> getResourceObject) => InterestedHoldingPartyToResource.AddUnrepresentedKeyWithRecreateIfMissing(ask, () => ListModule.Singleton(getResourceObject()));