Python: Store rotation / normal in bezier curve point? Still trying to visualize a game file format in Blender, I think I reached a limit of what I can do with Blender Bezier Curves.

The game file format defines the coordinates of the curve point and the two handles. It additionally, however, defines a rotation of the curve point, basically a normal, because it needs to move and rotate objects along the path the curve forms.

Is it possible to store a normal in a Bezier Curve Point?


I didn't find anything like a normal / rotation for bezier curve points in the documentation.
Also, curves don't seem to support custom data layers like with the BMesh API where I could at least store the original normal information. Also it would be hard to edit those normals then visually.
I think it would be a monstrous task for someone who has never worked with the Blender C(++) codebase to add a new object type supporting that, or is it possible to relatively "easily" add normals to curve points or derive a new curve type from the existing one, just adding this information and keeping big parts of the base curve class?
Bezier curve objects can store a property called tilt.
It is basically a per point rotation value or normal that controls it's twisting on a per.vertex basis.

It can be set through the UI in edit mode under the Properties Shelf > Transform > Tilt or through the Python API with bpy.types.BezierSplinePoint.tilt



As far asI know curves don't support arbitrary data layers per vertex like BMesh does, but I may be wrong.