//! 发布页面标签的数据结构。保留稳定页面身份、标题、选中状态和开发工具类别;页面的托管所有权由模型层管理。 //! //! Immutable page registry projections. Host navigation is rendered in sidebar. //! IDs are session-local data and never own managed VM objects. use serde::{Deserialize, Serialize}; #[derive(Clone, Debug, PartialEq, Eq, Serialize, Deserialize)] /// 托管页面注册表的不可变投影,原生工具只使用稳定 ID 与显示元数据。 pub struct Tab { pub id: u64, pub title: String, pub active: bool, #[serde(default, skip_serializing_if = "Option::is_none")] pub developer_tool: Option, }