In order to be able to inject dependencies into edit constraint classes, they should ideally be stateless so we don't have to create new instances every time we want to check constraints.
To pass data from a failed constraint to EditPage, we could use subclasses of EditPageStatus.