` IDs. * * Legacy `toplevel_page_*` and `mcp-manager_page_*` IDs are retained ADDITIVELY * per FR-022 / A9 — defense against multi-plugin ordering scenarios where an * older `acrossai-co/main-menu` version wins jetpack-autoloader version * resolution and our plugin re-registers as top-level. Never remove legacy IDs. * * Used by Admin\Main::is_plugin_admin_screen() for the asset-enqueue guard. * * @return string[] */ public static function plugin_screen_ids(): array { return array( // Post-Feature-010 submenu IDs (under shared `acrossai` parent). 'acrossai_page_' . self::PARENT, // Shared Settings page (Feature 012 — MCP tab lives here). 'acrossai_page_acrossai-settings', // Legacy top-level IDs (retained additively per A9). 'toplevel_page_' . self::PARENT, ); } /** * Private constructor — constants-only utility, never instantiated. */ private function __construct() { // Never instantiated — constants-only utility. } }