// Copyright (c) 2025-2026 GeWuYou // SPDX-License-Identifier: Apache-2.0 namespace GFramework.Game.Config; /// /// 表示一个对象节点上声明的 object-focused if / then / else 条件约束。 /// 三个分支都共享父对象已声明字段集合,不会把分支 schema 扩展成新的生成类型形状。 /// internal sealed class YamlConfigConditionalSchemas { /// /// 初始化条件分支约束模型。 /// /// 条件判断 schema。 /// 条件命中时需要满足的 schema。 /// 条件未命中时需要满足的 schema。 /// 时抛出。 public YamlConfigConditionalSchemas( YamlConfigSchemaNode ifSchema, YamlConfigSchemaNode? thenSchema, YamlConfigSchemaNode? elseSchema) { ArgumentNullException.ThrowIfNull(ifSchema); IfSchema = ifSchema; ThenSchema = thenSchema; ElseSchema = elseSchema; } /// /// 获取条件判断 schema。 /// public YamlConfigSchemaNode IfSchema { get; } /// /// 获取条件命中时需要满足的 schema。 /// public YamlConfigSchemaNode? ThenSchema { get; } /// /// 获取条件未命中时需要满足的 schema。 /// public YamlConfigSchemaNode? ElseSchema { get; } }