['state' => 'ready', 'service' => 'ai'], 'ai_alt_text' => ['state' => 'ready', 'service' => 'ai'], // --- AI Alt-Text (admin UI flags) --- // These IDs are used in the WP admin screens. They all map to the same implementation status. 'ai_feature_alt_text' => ['state' => 'ready', 'service' => 'ai'], 'ai_feature_automatic_alt_text_on_upload' => ['state' => 'ready', 'service' => 'ai'], 'ai_feature_description_level' => ['state' => 'ready', 'service' => 'ai'], 'ai_feature_language' => ['state' => 'ready', 'service' => 'ai'], 'ai_feature_automatic_daily_alt_text' => ['state' => 'ready', 'service' => 'ai'], // --- Local features --- 'voice_commands' => ['state' => 'coming_soon', 'service' => null], 'custom_voice_commands' => ['state' => 'coming_soon', 'service' => null], // --- Scanner / analytics (future) --- 'advanced_scanner' => ['state' => 'coming_soon', 'service' => null], 'analytics' => ['state' => 'coming_soon', 'service' => null], // --- White-label / API (future) --- 'white_label' => ['state' => 'coming_soon', 'service' => null], 'api_access' => ['state' => 'coming_soon', 'service' => null], // --- User profile / account UX (future) --- 'user_profile_activate_account' => ['state' => 'coming_soon', 'service' => null], 'user_profile_guest_settings' => ['state' => 'coming_soon', 'service' => null], 'user_profile_automatic_saving' => ['state' => 'coming_soon', 'service' => null], 'user_profile_sharing_settings' => ['state' => 'coming_soon', 'service' => null], 'user_profile_device_sync' => ['state' => 'coming_soon', 'service' => null], ]; } function a11ybridge_feature_state(string $feature_id): string { $cat = a11ybridge_feature_catalog(); $state = $cat[$feature_id]['state'] ?? 'unknown'; return is_string($state) ? $state : 'unknown'; } function a11ybridge_feature_is_ready(string $feature_id): bool { return a11ybridge_feature_state($feature_id) === 'ready'; } function a11ybridge_feature_is_coming_soon(string $feature_id): bool { return a11ybridge_feature_state($feature_id) === 'coming_soon'; }