- A lot of stuff has been shunted into
JSONBcolumns for now
- Column names have been converted to snake_case to avoid potential bugs caused by Postgres automatic conversion of unquoted camelCase identifiers to lower case
metasub objects are flattened to dotted.paths
- Null constraints need some more attention
- The implementation of manuscript versions uses a linked list of
previous_version. The whole list can be queried with a recursive CTE. Alternative suggestions welcome.