Modules Documentation
Validation rules
Required fields, formats, ranges.
Complete
Files are the highest-investment editorial product on the platform. Every file passes 6 verification gates before publication: schema, EN + AR + (optional FR) language parity, TOC structural integrity, sponsor accuracy, lead-capture readiness, and editorial fact-check.
Schema-level validation
- All required fields present + typed correctly (id, slug, fileNumber, category, lang.en, lang.ar, etc).
- `fileNumber` is unique across all FounderFile entries.
- `slug` matches `^[a-z0-9-]+$` and is unique.
- `availableLanguages[]` matches which `lang.<locale>` blocks are populated.
- `sponsorId` (when set) resolves to an existing FounderFileSponsor entry.
The 6 editorial verification gates
- EN + AR content parity — Both versions must exist + be editorially authored (not auto-translated). FR is optional but if present, must also be authored.
- TOC structural integrity — Every `tocSections[].anchor` exists in the rendered `bodyHtml`. Editor verifies no broken anchors.
- Sponsor accuracy — If sponsored, the sponsor relationship is documented in the sponsorship contract. Sponsor name + tier match what the contract specifies.
- Lead-capture readiness — Download modal renders with correct file context. Email delivery configured. Lead routes to admin queue + (when consentPartners=true) to sponsor partner queue.
- Editorial fact-check — Every named entity (founder, startup, opportunity, event) in the body is verified. Every external claim is sourced. Editor sign-off recorded.
- Cover image / SVG fallback — Either `coverImageUrl` is set + image loads, OR the file-specific SVG fallback renders. No "broken cover" state.
