Performs validation for the current definition. The method will return on the first error encountered by default but could go through all validations and report all errors (e.g. when saving the asset errors are reported to the user). An object using an invalid definition will not be registered in the simulation. The result of the validation is stored until next validation and can be retrieved using `IsValid_.