Validates the given value and returns a list of error messages.
value
Returns an empty list if the value is valid.
List<String> validate(T value);