'★', 'currency_name' => 'Stars', 'currency_permanence' => 'permanent', 'timezone' => 'UTC', 'week_starts_on' => 0, ]; } function loadFamilySettings(): array { $raw = readJsonFile('family_settings.json'); if (!is_array($raw)) { return defaultFamilySettings(); } return array_merge(defaultFamilySettings(), $raw); } /** * Tab label: symbol + name (e.g. "★ Stars"). */ function currencyTabLabel(array $familySettings): string { $sym = trim((string) ($familySettings['currency_symbol'] ?? '')); $name = trim((string) ($familySettings['currency_name'] ?? '')); $label = trim($sym . ' ' . $name); return $label !== '' ? $label : 'Currency'; }