constraint: more validation and spec cleanup