The thing is that interface implementation is not required for this type of project, e.g. if the value does not implement an interface, validation simply be skipped. E.g. if value is a slice that contains structs. Slice does not necessary need to implement an interface when we validate structs recursively.