I am a big fan of protagonists with dubious character traits. There is something about a blurry line that adds flavour and depth. In fact, if the protagonist was to stop and consider themselves, they might think they were on the wrong side of that invisible virtuous line.
So in short, I like my protagonists…to be bad.
Why is a less than perfect protagonist good?
If you are the kind of person who goes to the gym 5 days a week, then going 5 days a week is no big thing. BUT, if you struggle to go once a week, then 5 days in a row is pretty impressive! And so with our protagonist. The more reluctant they are, and the more doing something good or heroic chafes, the more interesting it is when they are finally forced to comply.
As a reader, the more confused you are about the protagonists virtue, the more the tension grows. Will they do the right thing? Are they capable of doing the right thing even? Or are they just too damn lazy?
And what about our antagonist? Are they wholly bad? Or do they have redeeming qualities? Do you empathise with them at any point in the book? Perhaps their behaviour has been abhorrent, and then you discover a terrible secret about their past that casts new questions onto everything they have so far done.
There is a certain fascination with a good guy who is not completely good.
And likewise with a bad guy who is not completely bad.