Modules Documentation
Cross-module connections
Which other modules surface signals here and why.
Coverage is a heavy contributor to the cross-module graph despite having only one structural link (parentEventId). Through the four optional mention arrays, a single coverage article can connect to 10-30 founders + startups + opportunities + files. The reverse-lookups feed "Mentioned in coverage" rails on every connected entity’s profile.
The five connections
- Coverage → Calendar (T1 structural)
- parentEventId — required, never null. The single non-optional cross-module link in the platform. On the event details page, every coverage article with this parent renders as a card in the "Coverage" section.
- Coverage → Founders (T2 editorial)
- mentionedFounderIds[]. Each entry surfaces as a profile pill in the article sidebar. On the founder profile, the reverse-lookup produces the "Mentioned in coverage" rail.
- Coverage → Startups (T2 editorial)
- mentionedStartupIds[]. Same sidebar pill treatment. On the startup details page, "Mentioned in coverage" rail surfaces every article that named the startup.
- Coverage → Opportunities (T2 editorial)
- mentionedOpportunityIds[]. Usually used when coverage reports outcomes that tie back to an opportunity (e.g. "winners are invited to apply to the next cohort of [opportunity]"). Reverse-lookup on the opportunity surfaces past coverage relevance.
- Coverage → Founder Files (T3 contextual)
- mentionedFileIds[]. Used when a Founder File was distributed or referenced at the event. The reverse-lookup feeds a "Coverage that references this file" block on the file details page.
Why mentions are entity-typed (not free text)
Editors could in theory just type founder/startup names into the bodyHtml as free text. Instead, mention arrays force the editor to pick the actual entity from a search picker at draft time. This buys two things: (1) reverse-lookups work — a founder mentioned in 5 coverage articles automatically gets a "Mentioned in 5 coverage articles" rail without any extra wiring, (2) name spelling stays canonical — if a founder is named "Ahmed Hassan" on their profile, every mention auto-renders that spelling instead of risking "Ahmad Hasan" / "A. Hassan" / etc inconsistencies across articles.
