Not a big fan of this kind of repetition in names. I think it would be nicer to have either `CompletionContextType` as a top-level class, or simply call it `Type`, or (since it's too general), `Region`. Then it would be `CompletionContext.Region` and `CompletionContext.DefaultRegion`, etc.

Can be a different PR. (also a short scaladoc describing what these are would be nice)