| AssessmentItem | Generic assessment item for questions and tests Reusable for quizzes, tests, and exercises |
| AssignmentLesson | Assignment lesson type Extends base lesson with assignment-specific content |
| AssignmentLessonContent | Content shape for assignment lessons |
| CodeExample | Code example with syntax highlighting |
| CodingExerciseLesson | Coding exercise lesson type Extends base lesson with coding exercise-specific content |
| CodingExerciseLessonContent | Content shape for coding exercise lessons |
| CompleteProgressAction | - |
| ContentLayout | Generic layout structure for content organization Used by lessons that need ordered, type-based content blocks |
| Curriculum | Represents a complete curriculum |
| CurriculumEnrollment | Represents a student's enrollment in a curriculum |
| CurriculumLessonBase | Base interface for all curriculum lessons Contains common fields shared by all lesson types |
| CurriculumModule | Represents a module within a curriculum |
| CurriculumWithStructure | Full curriculum structure: curriculum + ordered modules + lesson summaries + progress |
| Described | Base interface for entities with descriptions |
| Identifiable | Base interface for entities with unique identifiers |
| Instructional | Generic interface for content that includes instructions Reusable across lessons that provide guidance to students |
| LessonImage | Inline image block, usable across lesson types |
| LessonProgress | Represents a student's progress on a specific lesson |
| LessonSummaryWithProgress | A lesson summary bundled with the current user's progress. Used in curriculum structure overview. |
| LessonVideo | Inline video block, usable across lesson types |
| LessonWithProgress | A full lesson bundled with the current user's progress. Used when opening a specific lesson. |
| LiveSessionLesson | Live session lesson type Extends base lesson with live session-specific content |
| LiveSessionLessonContent | Content shape for live session lessons |
| Marker | Generic marker for position-based annotations Used for timestamps, bookmarks, milestones, etc. |
| ModuleWithLessons | A module with its ordered lesson summaries (each with optional progress) |
| ProgressActionBase | - |
| ProjectDeliverable | Project deliverable |
| ProjectLesson | Project lesson type Extends base lesson with project-specific content |
| ProjectLessonContent | Content shape for project lessons |
| ProjectStep | Project step with instructions |
| QuizLesson | Quiz lesson type Extends base lesson with quiz-specific content |
| QuizLessonContent | Content shape for quiz lessons |
| QuizQuestion | Individual quiz question |
| ReadingLesson | Reading lesson type Extends base lesson with reading-specific content |
| ReadingLessonContent | Content shape for reading lessons |
| ReadingSection | Reading section with structured content |
| Resource | Generic resource for supplementary learning materials Reusable across all lesson types |
| RubricCriterion | Rubric criterion for assignment grading |
| Scoreable | Base interface for entities with point values |
| StartProgressAction | - |
| SubmitProgressAction | - |
| Task | Task for coding exercises Represents a coding challenge with test cases and completion tracking |
| TestCase | Test case for validating code exercises Used to define expected inputs and outputs for automated testing |
| Titled | Base interface for entities with titles |
| VideoLesson | Video lesson type Extends base lesson with video-specific content |
| VideoLessonContent | Content shape for video lessons |