public Builder AddCheckFilter(string name, bool value)
            {
                var f = new MatchmakeFilter()
                {
                    Name  = name,
                    Check = value
                };

                message.payload.MatchmakeAdd.Filters.Add(f);
                return(this);
            }
            public Builder AddRangeFilter(string name, long lowerbound, long upperbound)
            {
                var f = new MatchmakeFilter()
                {
                    Name  = name,
                    Range = new MatchmakeFilter.Types.RangeFilter()
                    {
                        LowerBound = lowerbound,
                        UpperBound = upperbound
                    }
                };

                message.payload.MatchmakeAdd.Filters.Add(f);
                return(this);
            }
            public Builder AddTermFilter(string name, HashSet <string> terms, bool matchAllTerms)
            {
                var f = new MatchmakeFilter()
                {
                    Name = name,
                    Term = new MatchmakeFilter.Types.TermFilter()
                    {
                        MatchAllTerms = matchAllTerms
                    }
                };

                f.Term.Terms.AddRange(terms);

                message.payload.MatchmakeAdd.Filters.Add(f);
                return(this);
            }