using System.Text.Json;
using System.Text.Json.Nodes;
using System.Text.Json.Serialization;
namespace PkmnLib.Dynamic.Libraries.DataLoaders.Models;
/// 
/// A wrapper class for serialized move data.
/// 
public class SerializedMoveDataWrapper
{
    /// 
    /// The name of the move data file.
    /// 
    public List Data { get; set; } = null!;
}
/// 
/// A class representing a serialized move.
/// 
public class SerializedMove
{
    /// 
    public string Name { get; set; } = null!;
    /// 
    public string Type { get; set; } = null!;
    /// 
    public byte Power { get; set; }
    /// 
    public byte PP { get; set; }
    /// 
    public byte Accuracy { get; set; }
    /// 
    public sbyte Priority { get; set; }
    /// 
    public string Target { get; set; } = null!;
    /// 
    public string Category { get; set; } = null!;
    /// 
    /// Arbitrary flags that can be applied to the move.
    /// 
    public string[] Flags { get; set; } = null!;
    /// 
    public SerializedMoveEffect? Effect { get; set; }
    /// 
    /// Additional non-standard data that can be added to the move.
    /// 
    [JsonExtensionData]
    public Dictionary? ExtensionData { get; set; }
}
/// 
/// A class representing a serialized move effect.
/// 
public class SerializedMoveEffect
{
    /// 
    public string Name { get; set; } = null!;
    /// 
    public float? Chance { get; set; }
    /// 
    public Dictionary? Parameters { get; set; } = null!;
}