Setup smart product list programmatically

For testing, we need to setup smart product lists programmatically, but w’re not sure how to correctly do the setup. We want to do a simple filter condition on variant ID. The following does not seem to work:

            var productList = new DynamicProductList()
            {
                Id = name,
                SystemId = productListId,
                Items = new List<ProductListToBaseProductLink>(),
                Conditions = new List<DynamicProductListCondition>() 
            };
           
            var condition = new IdFilterCondition()
            {
                Operator = "equal", // ???
                Value = "123456"
            };

            productList.Conditions.Add(
                new DynamicProductListCondition(condition.GetType())
                    {
                        SystemId = Guid.NewGuid(),
                        Data = condition
                    });

            using (Solution.Instance.SystemToken.Use())
            {
                _productListService.Create(productList);
            }

Litium version: 7.02

Saw that Mårten had made task to update a smart list example on his github account
https://gist.github.com/martenw/1cfb8ac4ad407933e873bba30f105a43