using System.Text.Json.Nodes;

// ReSharper disable CollectionNeverUpdated.Global

namespace PkmnLib.Dynamic.Libraries.DataLoaders.Models;

/// <summary>
/// Represents a serialized ability.
/// </summary>
public class SerializedAbility
{
    /// <inheritdoc cref="PkmnLib.Static.Species.IAbility.Effect"/>
    public string? Effect { get; set; }

    /// <inheritdoc cref="PkmnLib.Static.Species.IAbility.Parameters"/>
    public Dictionary<string, JsonNode> Parameters { get; set; } = new();

    /// <summary>
    /// A collection of arbitrary flags that can be used to mark the ability with specific properties.
    /// </summary>
    public string[] Flags { get; set; } = [];

    /// <summary>
    /// Indicates whether the ability can be changed by effects such as Skill Swap or Role Play.
    /// </summary>
    public bool? CanBeChanged { get; set; }
}