optionContext comes from the shell converter terminology. Using "context" would require a full rename everywhere (which I'm fine with).

Will handle as a separate commit so we can cherry pick