## ADDED Requirements ### Requirement: Elective set definitions The system SHALL define 12 elective sets, each with an ID, display name, term (Spring/Summer/Fall), and an ordered list of course IDs. Sets 1 and 6 (Spring Set 1 and Summer Set 1) SHALL contain the same three courses. #### Scenario: All 12 sets present - **WHEN** the data module is loaded - **THEN** exactly 12 elective sets are defined, covering Spring (sets 1-5), Summer (sets 6-8), and Fall (sets 9-12) #### Scenario: Sets 1 and 6 share courses - **WHEN** inspecting Spring Set 1 and Summer Set 1 - **THEN** both sets contain the same three course entries (Global Immersion Experience II, Collaboration Conflict and Negotiation, Conquering High Stakes Communication) ### Requirement: Course definitions The system SHALL define 46 courses. Each course SHALL have an ID, display name, and the ID of the elective set it belongs to. #### Scenario: Course count - **WHEN** the data module is loaded - **THEN** exactly 46 courses are defined #### Scenario: Each course belongs to one set - **WHEN** iterating all courses - **THEN** every course references a valid elective set ID, and the set's course list includes that course ### Requirement: Specialization definitions The system SHALL define 14 specializations. Each specialization SHALL have an ID, display name, and abbreviation. Specializations with a required course gate SHALL reference the required course ID. #### Scenario: Specialization count - **WHEN** the data module is loaded - **THEN** exactly 14 specializations are defined #### Scenario: Required course mappings - **WHEN** inspecting specializations with required courses - **THEN** exactly 4 specializations have required course gates: Sustainable Business and Innovation (Sustainability for Competitive Advantage), Entrepreneurship and Innovation (Foundations of Entrepreneurship), Entertainment Media and Technology (Entertainment and Media Industries), Brand Management (Brand Strategy) ### Requirement: Course-specialization qualification matrix Each course SHALL declare which specializations it qualifies for, with a marker type of standard (■), S1, or S2. Courses with no qualifying specializations SHALL have an empty qualification list. #### Scenario: Marker types - **WHEN** inspecting course qualifications - **THEN** every qualification entry uses one of three marker types: standard, S1, or S2 #### Scenario: Strategy markers - **WHEN** counting Strategy-qualifying courses - **THEN** exactly 10 courses have S1 markers and exactly 7 courses have S2 markers #### Scenario: Qualification counts match reachability table - **WHEN** counting qualifying courses per specialization (across distinct sets) - **THEN** the counts match the "Across Sets" column in the reachability summary: Management 11, Strategy 9, Leadership and Change Management 9, Finance 9, Corporate Finance 8, Marketing 7, Banking 6, Brand Management 6, Financial Instruments and Markets 6, Management of Technology and Operations 6, Global Business 5, Entertainment Media and Technology 4, Entrepreneurship and Innovation 4, Sustainable Business and Innovation 4 ### Requirement: Derived lookup indexes The data module SHALL export pre-computed lookup maps: courses by set ID, qualifying specializations by course ID, and qualifying courses by specialization ID. These lookups SHALL be computed once at module load. #### Scenario: Courses-by-set lookup - **WHEN** querying courses for a given set ID - **THEN** the returned list matches the set's defined course list in order #### Scenario: Specs-by-course lookup - **WHEN** querying specializations for a given course ID - **THEN** the returned list contains all specializations the course qualifies for, with correct marker types