Class BKPMNModelPackage has 6 attributes in addition to those inherited from SCEModelPackage. Is it clear that these attributes are not more generally applicable, and could be included at the SCE level?
Attributes:
completed: might not be easy to maintain; the approach we use is semver.org, and sub-v1.0.0 versions for drafts, and for later major versions, v2.0.0-rc17 versoin strings.
published: attribute likely to be difficult to maintain. The rules for maintaining this attribute value in sync with the version and versionDate attributes are somewhat arcane.
jursidiction: This attribute defines the countries or other areas (such as states) where the BKPMNModelPackage is in effect.
likely to be problematic to keep up to date. Attributes to do with use of models should not normally be in said models
effectivePeriodStard, effectivePeriodEnd: for similar reasons, likely to be difficult to establish values and difficult to maintain over time.
It would appear from the documentation that the completed, published, version and versionDate attributes are really trying to express phases of an artefact lifecycle, but in a complex way. It would be much better to create a lifecycleState attribute and define its state machine. A model for doing this can be found at https://specifications.openehr.org/releases/AM/latest/Identification.html#_lifecycle_model (openEHR Archetype Identification specification).
With respect to the effectivePeriodxx attributes, what does 'in effect' mean? For whom? Org A may stop using a particular package, while Org B uses it for another 2 years. Or is the idea that the dates are set centrally? By whom?
Generally speaking, an approach that explicitly models lifecycleState, and incorporates release management (i.e. the idea of target publishable versions), plus a disciplined version naming scheme based on semver.org will probably work better than trying to maintain the above attributes within instance data.