neon-sprawl/server/NeonSprawl.Server/Game/Skills/ContentPathsOptions.cs

32 lines
1.4 KiB
C#

namespace NeonSprawl.Server.Game.Skills;
/// <summary>Configuration for loading authoring content from disk (NEO-34).</summary>
public sealed class ContentPathsOptions
{
public const string SectionName = "Content";
/// <summary>
/// Optional. Absolute path, or path relative to <see cref="Microsoft.Extensions.Hosting.IHostEnvironment.ContentRootPath"/>.
/// When unset, the host walks ancestors of <see cref="AppContext.BaseDirectory"/> for a <c>content/skills</c> directory.
/// </summary>
public string? SkillsDirectory { get; set; }
/// <summary>
/// Optional override for <c>skill-def.schema.json</c>.
/// When unset, resolved as <c>{parent of skills directory}/schemas/skill-def.schema.json</c> (same layout as the repo).
/// </summary>
public string? SkillDefSchemaPath { get; set; }
/// <summary>
/// Optional. Absolute path, or path relative to <see cref="Microsoft.Extensions.Hosting.IHostEnvironment.ContentRootPath"/>.
/// When unset, the host walks ancestors of <see cref="AppContext.BaseDirectory"/> for a <c>content/mastery</c> directory.
/// </summary>
public string? MasteryDirectory { get; set; }
/// <summary>
/// Optional override for <c>mastery-catalog.schema.json</c>.
/// When unset, resolved as <c>{parent of mastery directory}/schemas/mastery-catalog.schema.json</c>.
/// </summary>
public string? MasteryCatalogSchemaPath { get; set; }
}