Class
Courses in ascending sequence order — the ladder order the home
renders — so downstream use cases never re-sort, matching the guarantee
ModuleRepository.listByCourse already gives for modules.
slice() first: sorting the backing array in place would reorder the
seed the caller passed in.
Driven adapter: in-memory implementation of
CourseRepository.Production seed data is supplied at construction time and is treated as immutable from the perspective of this adapter. A real database adapter (Postgres, JSON file, ...) implements the same port and lands in a separate change.