Granular permissions

I’d like to give someone on my team the ability to edit my posts, but not publish. Right now editing and publishing are bundled under the Editor role. So the only way I can have a Contributor edit my posts is to make them a co-author on the post. And then remember to remove their name before I publish. It’d be awesome if one of these were possible:

a) Editors couldn’t publish
b) there was a new role that could edit but not publish
c) I could assign permissions to staff members granularly

I searched the forum for this and didn’t see it, but please let me know if I missed something similar. Thanks!