public static bool TryGetFeature <TFeature>(this IVirtualCompanionExecutionContext context, string key, out TFeature feature)
        {
            feature = default(TFeature);
            if (context.TryGetValue(key, out var value) && value is TFeature castedFeature)
            {
                feature = castedFeature;
            }

            return(!Object.Equals(feature, default(TFeature)));
        }