To make the marinade, place the onion in a food processor and process in bursts until very finely chopped.
Tip the onion onto a piece of muslin, pull the corners together and squeeze into a large bowl to extract the onion juice.
Alternatively, strain in a fine sieve to remove the juice.
Place the pulp into a bowl and whisk in the Baharat, garlic, lemon zest and juice, and olive oil. Season then add the chicken, rubbing the marinade in well. Cover and place in the fridge to marinate for 15–20 minutes, or overnight.
For the garlic sauce, place the garlic in a small saucepan, cover with cold water, bring to the boil and cook over high heat for 30 seconds.
Remove the garlic and peel. Place into a mortar and pestle with a good pinch of salt and pound for 2–3 minutes or until very smooth.
Gradually add the olive oil, then the lemon juice in a thin stream while pounding and mixing (if the mixture looks like it will split, add a tablespoon of hot water).
Preheat a griddle over high heat.
Remove the chicken from the marinade and dry it with some clean kitchen paper.
Place the chicken onto the griddle and cook for 8–10 minutes, turning occasionally, until lightly charred and firm to the touch, or until thoroughly cooked with no pink meat and the juices run clear.
Remove the chicken onto a chopping board, allow to rest for 2–3 minutes then carve into finger-sized pieces.
To serve, place each flatbread or wrap onto a plate, spread with the garlic sauce, top with tomato, onion, and chicken then roll-up.