internal void RegisterQueryFeature(Type channelType, Type queryFeatureType, QueryFeature qf)
        {
            Known(channelType);

            var channeId = channelType.FullName;

            if (!_channelFeaturesQuery.ContainsKey(channeId))
            {
                _channelFeaturesQuery[channeId] = new Dictionary <string, QueryFeature>();
            }

            var features  = _channelFeaturesQuery[channeId];
            var featureId = queryFeatureType.FullName;

            if (!features.ContainsKey(featureId))
            {
                features[featureId] = qf;
            }
            else
            {
                throw new TectureException($"Query feature {queryFeatureType.Name} is already implemented for {channelType.Name}");
            }

            qf._aux = _auxilary.ForChannel(channelType);
            qf.CallOnRegister();
        }