public void addWorkspace(@Nonnull Workspace workspace) {
		// Only allow serializable workspaces
		WorkspaceResource primaryResource = workspace.getPrimaryResource();
		if (!ResourceModel.isSupported(primaryResource))
			return;

		// Wrap to model
		ResourceModel primary = ResourceModel.from(primaryResource);
		List<ResourceModel> libraries = workspace.getSupportingResources().stream()
				.map(ResourceModel::from)
				.filter(Objects::nonNull)
				.toList();
		WorkspaceModel workspaceModel = new WorkspaceModel(primary, libraries);

		// Update recent workspace list, where new items are inserted at the beginning.
		// Old items are removed near the end.
		List<WorkspaceModel> updatedList = new ArrayList<>(recentWorkspaces.getValue());
		if (recentWorkspaces.contains(workspaceModel))
			updatedList.remove(workspaceModel);
		while (updatedList.size() >= maxRecentWorkspaces.getValue())
			updatedList.remove(updatedList.size() - 1);
		updatedList.add(0, workspaceModel);
		recentWorkspaces.setValue(updatedList);
	}
@param workspace
		Workspace to add to {@link #getRecentWorkspaces()}.
recaf-ui/src/main/java/software/coley/recaf/ui/config/RecentFilesConfig.java