There is one thing that puzzles me, “AllowNegative” property. It does prevent negative numbers (if unchecked) when you have a Min set to 0.
However, it will not stop Max = 0 and Min = negative problem of the Max going greater than 0. Guess you could have a “AllowPositive” property but I doubt that would be beneficial.