using System.Collections.Generic; namespace Models; /// /// 定义数据的通用结构(i18n + 标识 + 标签) /// 设计说明: /// 1) LocalizedText 只保存 Key/Fallback,不做翻译,翻译交给服务层。 /// 2) DefinitionHeader 用组合而非继承,避免所有定义都挂在同一基类。 /// 3) Tags 统一用 string Id,便于 Mod 增删与过滤。 /// 注意事项: /// - 资源路径统一使用 res:// 且小写下划线。 /// - Id 建议使用 “namespace:name” 形式,例如 “core:discipline_biology”。 /// 未来扩展: /// - 可加入 Icon/Color/SortOrder 以支持 UI 排序与分组。 /// - 可加入 Source/Version 字段用于 Mod 冲突排查。 /// public sealed class LocalizedText { /// /// 键值 /// public string Key { get; set; } /// /// 默认值 /// public string Fallback { get; set; } } public sealed class DefinitionHeader { /// /// 定义ID /// public string Id { get; set; } /// /// 名称 /// public LocalizedText Name { get; set; } = new(); /// /// 描述 /// public LocalizedText Description { get; set; } = new(); /// /// 图标路径 /// public string IconPath { get; set; } /// /// 标签列表 /// public List Tags { get; } = new(); }