Coding Standard and avoiding name collisions

I’m making a plugin that involves writing alternate implementations of several engine classes, including Slate’s FGeometry, FArrangedWidget, SWidget, and probably quite a few more before I start on my own widgets. (I wish I could just make derived classes - that would save me a ton of trouble - but almost nothing in the low-level Slate classes is virtual.)

I want to keep my class and file names relatively consistent with the ones Epic uses so that someone who’s familiar with Slate will be able to recognize them and understand what they do. But I obviously can’t use the same names because my plugin isn’t self-contained - it’s heavily dependent on all the other Slate stuff that I’m not rewriting.

The solution I originally jumped to was using prefixing (Geometry → KGeometry, FGeometry → FKGeometry), but that’s discouraged by the coding standards. Suffixing would work but makes searching even more obnoxious.

What is the preferred solution?