Clarification on periodic cubic bezier vertex counts

The UsdGeomBasisCurves documentation is filled with great details, but there’s one thing that is somewhat confusing about it.

In the context of periodic cubic bezier, it says that:
For periodic curves, at least one of the curve's initial vertices are repeated to close the curve. For cubic curves, the number of vertices repeated is '4 - vstep'.

It also provides some other validity and count examples (for vstep of 3), which imply that 6 verts would be correct:
validity : (curveVertexCounts[i]) % vstep == 0
example : periodic cubic bezier [6 9 6]

But if I understand correctly, if you do repeat at least one of the curve’s initial vertices, then the count should be 7 in this case? How many vertices should actually be present in the file?

Does anyone know for sure?

Hi Jesse. The reason only six points are required to define a two segment periodic curve is that the repetition that closes the curve occurs on the imaging side not in scene description. That can be achieved in the renderer directly or in a hydra pipeline.

Got it. So the application is expected to do the duplication, if needed, internally on their side.

A .usd file with 7 vertices, in this case for example, is invalid. Is that correct?

For periodic bezier, yes. I think that should be fine for catmullRom and bspline though.