Thanks, Jason the "discountAmount" column was the missing ingredient.
It works fine when the coupon is applied to one item, but if another item from the same category is added to cart, the free item discount disappears?
Also, if other items from other categories are added to cart it discounts the entire column subtotal...