*/ public static function defaults(): array { return array_fill_keys( self::panel_keys(), '' ); } /** * Return the keys carrying structured meta content (titles, subtitles, * advice, UI strings). Panel 1 has no meta — its heading lives in the * template and it carries a description only. * * @return string[] */ public static function meta_keys(): array { return array( 'panel3a', 'panel3b', 'panel3c', 'panel3d', 'ui' ); } /** * Canonical default panel content, wrapped in __() so every string is * visible to gettext (issue 00027). Matches the strings shipped in the * frontend before 00027 so seeding changes nothing visually; editorial * revision is issue 00021's remit. * * Result panels (3a–3d) carry title/subtitle/description/advice; advice * is a structured list rendered as a