Hi Karl,
here are the scopes of each identifier in the SCORM Manifest:
- manifest@identifier: it defines the identity of the package;
- item@identifier: it defines the identity of the item in the TOC of the package;
- item@identifierref: it is an internal ref used to resolve the item declared in the TOC and the HTML Asset/SCO associated with it: you can change it maintaining the "referential integrity".
If you don't want Moodle to detect orphans SCO and to delete no more required tracking data, you should preserve:
- manifest@identifier: not required in Moodle but I strongly suggest to keep it equal for tracking the fact that you've updated the package to fix some content issues and not to change the overall training scopes of that package (the so called "Quick Fix" procedure);
- item@identifier: required in Moodle, to keep its tracking data still stored in the database.
You can prove it by yourself by testing the package update process in a "sandbox", which should be always part of your "Update a SCORM package" procedure in a live Production environment: read an example for such a procedure in https://moodle.org/mod/forum/discuss.php?d=228272#p994443.
Why? You could always miss to respect the constraints above and it is better to fix it in the "sandbox" before altering the real tracking data and Moodle, in the future, could have a regression/change in the above set of constraints.
HTH,
Matteo