Thanks Richard
Ryan Scott has also put together a solution[1], which is basically what you proposed.
But in terms of trying to clean up the code by removing a straightforward constraint type,
I think this solution adds more complexity than it removes.
So I will leave it as it is.
Alan