I looked at it, that isn't a punch, it's a vigorous shove to his shoulder that slips off and slides along Royals face.
Royal barged him in the back, when he wasn't looking (brave) and then hit the deck clutching his face like he'd been clubbed by Tyson Fury.
If you're not embarrassed by Royals reaction then you need to take a look at yourself.
As I said, I might not like it, but he retaliated and that's a bookable offense, particularly if Royals barge is. So I agree, he should have got the red, or just a yellow and Royals yellow anulled as well. Personally I'd like to see all players who play acted like Royal did get booked.
I have more respect for Ziyech, at least he had the balls to have a go at a guy who saw him coming.
I'm guessing you've never thrown or taken a punch.