// Copyright (c) 2025-2026 GeWuYou
// SPDX-License-Identifier: Apache-2.0
using GFramework.Game.Config;
namespace GFramework.Godot.Config;
///
/// 描述 Godot YAML 配置加载器的初始化约定。
///
public sealed class GodotYamlConfigLoaderOptions
{
///
/// 获取或设置配置源根目录。
/// 默认值为 res://,表示从项目资源路径读取 YAML 与 schema 文本。
///
public string SourceRootPath { get; init; } = "res://";
///
/// 获取或设置运行时缓存根目录。
/// 当 在当前环境下无法直接映射为普通文件系统目录时,
/// 加载器会先把所需文本资产复制到这里,再交给底层 。
///
public string RuntimeCacheRootPath { get; init; } = "user://config_cache";
///
/// 获取或设置本次启动会访问到的配置表来源描述。
/// Godot 导出态无法假设任意文本目录都可被枚举,因此调用方应显式提供参与本轮加载的配置目录与 schema 文件。
///
public IReadOnlyCollection TableSources { get; init; } =
Array.Empty();
///
/// 获取或设置用于配置底层 的回调。
/// 调用方通常应在这里调用生成器产出的 RegisterAllGeneratedConfigTables(),
/// 或显式注册当前场景所需的手写表定义。
///
public Action? ConfigureLoader { get; init; }
}