Brought back semantic validation

* 1.2 is back where it was prior to being removed
* 2.0 is a work in progress but is as complete as possible due to lack of documentation