namespace Theriapolis.Core.Persistence;

/// <summary>
/// Phase 6 M4 — serializable quest engine state. Holds active + completed
/// quests + the player journal tail. Round-trips via SaveCodec
/// <c>TAG_QUESTS = 111</c>.
/// </summary>
public sealed class QuestSnapshot
{
    public List<QuestStateSnapshot> Active    { get; set; } = new();
    public List<QuestStateSnapshot> Completed { get; set; } = new();

    /// <summary>Most recent journal entries written by the engine.</summary>
    public List<string> Journal { get; set; } = new();
}

public sealed class QuestStateSnapshot
{
    public string QuestId       { get; set; } = "";
    public string CurrentStep   { get; set; } = "";
    public byte   Status        { get; set; }     // QuestStatus byte value
    public long   StartedAt     { get; set; }
    public long   StepStartedAt { get; set; }
    public string[] JournalLines { get; set; } = System.Array.Empty<string>();
}
