#include "Workspace/WorkspaceModelInternal.h" namespace XCEngine::UI::Editor { UIEditorWorkspaceValidationResult ValidateUIEditorWorkspace( const UIEditorWorkspaceModel& workspace) { std::unordered_set nodeIds = {}; std::unordered_set panelIds = {}; UIEditorWorkspaceValidationResult result = Internal::ValidateNodeRecursive(workspace.root, nodeIds, panelIds); if (!result.IsValid()) { return result; } if (!workspace.activePanelId.empty()) { const UIEditorWorkspacePanelState* activePanel = FindUIEditorWorkspaceActivePanel(workspace); if (activePanel == nullptr) { return Internal::MakeValidationError( UIEditorWorkspaceValidationCode::InvalidActivePanelId, "Active panel id '" + workspace.activePanelId + "' is missing or hidden by the current tab selection."); } } return {}; } } // namespace XCEngine::UI::Editor