I have noticed something, which I believe is an issue with the adapt-contrib-assessment extension (but not confident enough about it to create a GitHub issue...).
I had a course with an assessment that uses question banks (AT: 0.10.5, FW: 5.18.4).
It worked as it should when I used SPOOR but when I switched to xAPI there seemed to be a problem:
If I return to a passed assessment in a new session, it no longer shows up as completed in the menu.
I made a small course to isolate the issue.
It has just one page with an assessment with 6 questions in 3 banks (two questions in each bank).
My split is "1,1,1".
This is what I found out:
When I return to the course in a new session after passing the assessment, the article that is the assessment is not completed, even if the question components and their blocks are completed.
Or this is at least how it looks when I use the course map in the Kineo Developer Tools.
After some investigation, the problem seems to be that when restoring the completion status of the assessment article, it considers all 6 questions in the article - not just the ones that were actually drawn.
This causes the assessment article to be set as incomplete, as the remaining 3 questions are all incomplete.
When using the SPOOR/scorm extension it seems to restore the status of the assessment with regards to the questions drawn.
I am using the adapt-contrib-xapi version 0.8.3, as there is a breaking issue with the latest version (https://github.com/adaptlearning/adapt-contrib-xapi/issues/105).
A somewhat loosely related question:
I noticed that the xAPI extension saves the completion status of components, blocks, articles, content objects and course using the xAPI state API.
But it only restores the completion status of components and blocks.
At first, it made sense as the status would "bubble up" to the remaining elements (like in the issue above, where the status of all the question blocks causes the parent article to be incomplete).
But then I wondered: Why not just restore the completion status of components - wouldn't this, in turn, set the completion state of blocks?