Since my original post, we’ve made good progress using an annotated tabular data package to autogenerate variants (different tabular data packages) of that and then associated machine-readable resources.
We’ve now concluded that we should keep a pure (without our annotations) main tabular data package with a full data structure and use separate machine readable definitions for each “application profile”. An application profile will be a tabular data package that contains a subset of the tables and fields in the main package. It might also change the optional/required setting?
Is there a standard way of documenting and generating these application profiles, i.e. these views on a full data package? All we’ve done so far is to define Jolt transformations.
Related: Is there a way of defining extra constraints? e.g. one of two fields must be populated or these must be at least one record in a one-to-many relationship (i.e. a cardinality of 1:∞)
There’s some more discussion here.
TIA