I see 2 possibilities:
- Some modules may install its own metadata, which is typically done in module’s activator on startup. In such a case a module will install metadata only if a mapping does not exist in the system yet. Following installation of metadata in module’s activator, both terms and mappings can be created by a module using API calls to MetadataMappingService. If metadata cannot be installed due to any reason e.g. duplicate names validation error, then the module may decide to create just terms and let an administrator set mappings to metadata, which exist in the system.
- Some modules will only come with terms (added on startup from module’s activator), expecting an administrator to set mappings to metadata, which exist in the system.
Are there are any other outstanding design issues, which I am missing?