using System;
using Cthangover.Core.Utils;
namespace Cthangover.Core.Relationship
{
///
/// Runtime model for a recruited party member. Stores the recruit's
/// unique ID, the character template it was created from, and a
/// modifiable bag that behaviours
/// read and mutate during tick/configure events.
///
/// Marked [Serializable] so the recruiting roster survives
/// save/load — PropertyData serialises its nested values
/// automatically. The PROP_HEALTH constant is the conventional
/// key for health tracking; behaviours that need custom state
/// (e.g. morale, loyalty timers) add their own keys to the
/// Properties bag at configure time.
///
[Serializable]
public class Recruit
{
/// Conventional key for the recruit's health value in the Properties bag.
public const string PROP_HEALTH = "Health";
/// Unique instance ID (auto-generated via RecruitingData.GenID).
public string ID { get; set; }
/// Character template ID this recruit was spawned from.
public string CharacterID { get; set; }
/// Mutable property bag — behaviours read/write custom state here.
public PropertyData Properties { get; set; } = new();
}
}