Modified the grammar to get around a bug, changed from "[("@" name s):annotation+]" to "[(("@" name s)+):annotation]".
Added attribute "type" to annotation @State.
Added argument "Validator... validators" to asImmutable() and assertIsValid().
Renamed from "state" to "s".
Replaced method setDefaults with @Optional annotation variable "defaultValue".