// Copyright (c) 2025-2026 GeWuYou // SPDX-License-Identifier: Apache-2.0 namespace GFramework.Game.Abstractions.Config; /// /// 表示配置加载过程中可稳定断言的失败类别。 /// 该枚举用于把文件系统、schema 校验、反序列化和跨表引用错误从自由文本消息中抽离出来, /// 便于日志、测试和上层工具以结构化方式处理失败原因。 /// public enum ConfigLoadFailureKind { /// /// 配置目录不存在。 /// ConfigDirectoryNotFound, /// /// 绑定的 schema 文件不存在。 /// SchemaFileNotFound, /// /// 读取 schema 文件失败。 /// SchemaReadFailed, /// /// schema 文件不是合法 JSON。 /// SchemaInvalidJson, /// /// schema 内容超出了当前运行时支持的子集或不满足最小约束。 /// SchemaUnsupported, /// /// 读取配置文件失败。 /// ConfigFileReadFailed, /// /// YAML 文本在进入 schema 校验阶段前无法被解析。 /// YamlParseFailed, /// /// YAML 文档数量或结构不符合运行时约束。 /// InvalidYamlDocument, /// /// 对象中出现了重复字段。 /// DuplicateProperty, /// /// YAML 中出现了 schema 未声明的字段。 /// UnknownProperty, /// /// YAML 缺失 schema 要求的字段。 /// MissingRequiredProperty, /// /// YAML 值类型与 schema 声明不匹配。 /// PropertyTypeMismatch, /// /// YAML 标量值为 null,但 schema 不允许。 /// NullScalarValue, /// /// YAML 标量值不在 schema 声明的 enum 集合中。 /// EnumValueNotAllowed, /// /// YAML 标量值违反了 schema 声明的最小值、最大值或长度约束。 /// ConstraintViolation, /// /// YAML 可被读取,但无法成功反序列化到目标 CLR 类型。 /// DeserializationFailed, /// /// 已解析的配置项无法构造成运行时配置表。 /// TableBuildFailed, /// /// 跨表引用声明的目标表不可用。 /// ReferencedTableNotFound, /// /// 跨表引用值无法转换到目标表主键类型。 /// ReferenceKeyTypeMismatch, /// /// 跨表引用值在目标表中不存在。 /// ReferencedKeyNotFound, /// /// 兜底的未分类失败。 /// UnexpectedFailure }