Module
Projects catalog entries onto what the client pages count progress over: each course with its modules and lesson slices. Lesson bodies stay on the server.
The level a learner card names — the first level course, never a reference course — and its lessons, which the card's progress line counts.
The catalog, resolved once per request for every route that renders it — the home and the learner's own pages.