I found this post from 2 years ago about it but there hasn’t been any update on it.
I’m extremely new to penpot, but I was curious about this and decided to poke around. According to the User’s Guide, it sounds like the application uses a couple of iterations for a file format and the current open format is bound to the application features of the version of penpot (currently v2.3). The conceptual data model of the file data appears to be documented in the Technical Guide here.
Further discussion of the penpot data structure is discussed in the Technical Guide Section 3.7 Data Guide.