It is advisable to use this sparingly. Ideally, Constraint.Process(SolverState) should rule out
possibilities before the algorithm places them. Only use this in cases where the violation is a subtle result of
interaction between multiple constraints.