using System.Xml;
using System.Xml.Serialization;
namespace SabreTools.Models.Logiqx
{
[XmlRoot("rom")]
public class Rom
{
[XmlAttribute("name")]
public string Name { get; set; }
[XmlAttribute("size")]
public long Size { get; set; }
[XmlAttribute("crc")]
public string? CRC { get; set; }
[XmlAttribute("md5")]
public string? MD5 { get; set; }
[XmlAttribute("sha1")]
public string? SHA1 { get; set; }
[XmlAttribute("merge")]
public string? Merge { get; set; }
/// (baddump|nodump|good|verified) "good"
[XmlAttribute("status")]
public string? Status { get; set; }
[XmlAttribute("date")]
public string? Date { get; set; }
#region Hash Extensions
/// Also in No-Intro spec; Appears after SHA1
[XmlAttribute("sha256")]
public string? SHA256 { get; set; }
/// Appears after SHA256
[XmlAttribute("sha384")]
public string? SHA384 { get; set; }
/// Appears after SHA384
[XmlAttribute("sha512")]
public string? SHA512 { get; set; }
/// Appears after SHA512
[XmlAttribute("spamsum")]
public string? SpamSum { get; set; }
#endregion
#region DiscImgeCreator Extensions
/// Appears after SpamSum
[XmlAttribute("xxh3_64")]
public string? xxHash364 { get; set; }
/// Appears after xxHash364
[XmlAttribute("xxh3_128")]
public string? xxHash3128 { get; set; }
#endregion
#region No-Intro Extensions
/// Appears after Status
[XmlAttribute("serial")]
public string? Serial { get; set; }
/// Appears after Serial
[XmlAttribute("header")]
public string? Header { get; set; }
#endregion
#region RomVault Extensions
/// Boolean; Appears after Date
[XmlAttribute("inverted")]
public bool? Inverted { get; set; }
/// Boolean; Appears after Inverted
[XmlAttribute("mia")]
public bool? MIA { get; set; }
#endregion
}
}