Extract Points From OCC Geometry

I want to extract the points from each face in the geometry. I tried the python code below

        faces = threed_geom.faces

        for face in faces:
            vertices = face.vertices
            vertex_tuples = []
            for vertex in vertices:
                vertex_tuples.append(vertex.p)
            print(vertex_tuples)

but I get the points for each edge and not the whole face (as in edge 1 point 1, then edge 1 point 2, then edge 2 point 1 and so on) and there doesn’t appear to be a consistent winding order so it’s not even straightforward to reassemble them. If it matters I want to make a shapely MultiPolygon/vtk polydata from it. Also Ideally I don’t have to use a library that requires Conda.

Edit: so for example these are both faces in the same geometry.

[(0.96, -0.17, 0), (0.96, -0.17, 1), (0.96, 0.8, 0), (0.96, 0.8, 1), (0.96, -0.17, 0), (0.96, 0.8, 0), (0.96, -0.17, 1), (0.96, 0.8, 1)]

and

[(0.32, 0.44, 1), (0.32, 0.62, 1), (0.32, 0.62, 1), (-0.15, 0.62, 1), (-0.15, 0.62, 1), (-0.15, 0.44, 1), (-0.15, 0.44, 1), (0.32, 0.44, 1)]