I have a class called a PrimitiveMesh and another one called a PolygonMesh. Almost the same thing, but they differ in the way that the primitive has hard restrictions to be considered valid. No non-manifold geometry and no self-intersections. Basically a container that then can be converted to a PlaneMesh and processed into a solid. The PolygonMesh is more of a rendering output that holds more info regarding visual representations.
Maybe I should call it InputMesh and OutputMesh so that it is more clear to what it is actually meant for.
Thinking out loud I guess.