// The other games of Kestrel's Hall, from the family list the kit keeps // (family.json, one copy shipped with every game), so a player who liked one // table can find the next, and the hall's front door. This game is left out // of its own list. export interface FamilyGame { slug: string; name: string; url: string; pitch: string; players: string; origin: string; } /** The family list: the hall's front door and every game but this one. */ export interface Family { hall: string; games: FamilyGame[]; } export async function loadFamily(self: string): Promise { try { const res = await fetch('/family.json', { cache: 'no-cache' }); if (!res.ok) return { hall: '', games: [] }; const data = (await res.json()) as { hall?: string; games?: FamilyGame[] }; return { hall: data.hall ?? '', games: (data.games ?? []).filter((g) => g.slug !== self) }; } catch { return { hall: '', games: [] }; } }