I have checked all answers about this problem on stackoverflow, but still can not figure out how to fix this. My model looks like this
protocol Commandable: Eq
I believe the problem here is that the equatable protocol has self requirements. So you can solve you problem by removing equatable protocol from your Commandable protocol and make your your structs equatable instead. This will of course limit your protocol but maybe it is a trade-off that is reasonable?