Skills: TypeScript · canon knowledge · visual design instinct
Time: ~4 hours
Good for: Lore experts who can pick the right framing per event
Difficulty: Intermediate
Context
lib/data/event-cinematics.ts registers 5 cinematic interrupts that fire when the era scrubber crosses canonical years (Order 66, Duel on Mustafar, Battle of Yavin, Battle of Endor, Hosnian Cataclysm). The framework supports any number — we just need to add more.
Targets
5 more, chosen for narrative weight:
- Battle of Hoth (3 ABY) —
single-pulse over the Outer Rim, alarm tone. Subtitle: "Echo Base falls."
- Battle of Crait (34 ABY) —
single-pulse accent-blue with a short "salt drift" caption. Subtitle: "The spark of the Resistance."
- Treaty of Coruscant (-3653 BBY) —
binary-suns legends-amber. Subtitle: "An uneasy peace."
- Knights of Ren formation (~28 ABY) —
multi-pulse 6 alarm-red points. Subtitle: "Six who bend the knee."
- Battle of Jakku (5 ABY) —
multi-pulse 12 cream pulses (downed Star Destroyers). Subtitle: "The Empire dies in the desert."
Each entry follows the existing EventCinematic schema in event-cinematics.ts. Year, windowYears, title, subtitle, durationMs, visual, pulseCount, tone, audioCue, source.
Acceptance criteria
- All 5 added with cited Wookieepedia URLs
- Each fires exactly once per era-cross (existing dispatcher handles this)
- Stories may auto-fire some (e.g. Skywalker Family crosses 5 ABY → Battle of Jakku; Order of the Sith crosses 28 ABY → Knights of Ren)
- Reduced-motion → title card only, no pulses
npx tsc --noEmit exits 0
Lore reference
https://starwars.fandom.com/wiki/Battle_of_Hoth
https://starwars.fandom.com/wiki/Battle_of_Crait
https://starwars.fandom.com/wiki/Treaty_of_Coruscant
https://starwars.fandom.com/wiki/Knights_of_Ren
https://starwars.fandom.com/wiki/Battle_of_Jakku
Context
lib/data/event-cinematics.tsregisters 5 cinematic interrupts that fire when the era scrubber crosses canonical years (Order 66, Duel on Mustafar, Battle of Yavin, Battle of Endor, Hosnian Cataclysm). The framework supports any number — we just need to add more.Targets
5 more, chosen for narrative weight:
single-pulseover the Outer Rim, alarm tone. Subtitle: "Echo Base falls."single-pulseaccent-blue with a short "salt drift" caption. Subtitle: "The spark of the Resistance."binary-sunslegends-amber. Subtitle: "An uneasy peace."multi-pulse6 alarm-red points. Subtitle: "Six who bend the knee."multi-pulse12 cream pulses (downed Star Destroyers). Subtitle: "The Empire dies in the desert."Each entry follows the existing
EventCinematicschema inevent-cinematics.ts. Year, windowYears, title, subtitle, durationMs, visual, pulseCount, tone, audioCue, source.Acceptance criteria
npx tsc --noEmitexits 0Lore reference
https://starwars.fandom.com/wiki/Battle_of_Hoth
https://starwars.fandom.com/wiki/Battle_of_Crait
https://starwars.fandom.com/wiki/Treaty_of_Coruscant
https://starwars.fandom.com/wiki/Knights_of_Ren
https://starwars.fandom.com/wiki/Battle_of_Jakku