Function
Every lesson of the module, in sequence order
The module's progress state
Reads the completion marks and saved playback positions once and hands them
to moduleProgress, where the rules live and are tested. Both stores
are empty on the server and before hydration, so the first render always
reports not-started; a caller that must not assert that before hydration
gates on useIsHydrated.
Browser-side only — do NOT call from a Server Component.
Where the learner stands in one module on this device.