Public schemas for courses, offerings, staff assignments, and their canonical identifiers.
| Schema | Responsibility |
|---|---|
CourseCodeSchema | Normalized department-style course code. |
CourseIdSchema | Stable kebab-case course record identifier. |
CourseSchema | Course identity, codes, title, credits, and departments. |
CourseOfferingIdSchema | Stable kebab-case offering identifier. |
CourseStaffSchema | Academic username and teaching role assignment. |
CourseOfferingSchema | Course, academic year, semester, staff, and departments for one offering. |
Course records are stable catalog entries. Offerings add time and staffing context without duplicating the course definition.