using System.Text.Json.Serialization;

namespace Theriapolis.Core.Data;

/// <summary>
/// Immutable background definition loaded from backgrounds.json.
/// Phase 5 grants the listed skill / tool proficiencies but does not
/// apply the named feature's mechanical effect — those resolve to
/// dialogue / quest / faction systems shipped in Phase 6.
/// </summary>
public sealed record BackgroundDef
{
    [JsonPropertyName("id")]
    public string Id { get; init; } = "";

    [JsonPropertyName("name")]
    public string Name { get; init; } = "";

    [JsonPropertyName("flavor")]
    public string Flavor { get; init; } = "";

    [JsonPropertyName("skill_proficiencies")]
    public string[] SkillProficiencies { get; init; } = Array.Empty<string>();

    [JsonPropertyName("tool_proficiencies")]
    public string[] ToolProficiencies { get; init; } = Array.Empty<string>();

    [JsonPropertyName("feature_name")]
    public string FeatureName { get; init; } = "";

    [JsonPropertyName("feature_description")]
    public string FeatureDescription { get; init; } = "";

    [JsonPropertyName("suggested_personality")]
    public string SuggestedPersonality { get; init; } = "";
}
