#pragma warning disable IDE1006 // Naming Styles
using SabreTools.Data.Models.Metadata;
namespace SabreTools.Data.Models.ClrMamePro
{
/// rom
public class Rom
{
/// name
[Required]
public string? Name { get; set; }
/// size, Numeric
[Required]
public long? Size { get; set; }
/// crc
public string? CRC { get; set; }
/// md5
public string? MD5 { get; set; }
/// sha1
public string? SHA1 { get; set; }
/// merge
public string? Merge { get; set; }
/// status
public ItemStatus? Status { get; set; }
/// flags
public string? Flags { get; set; }
/// date
public string? Date { get; set; }
#region Hash Extensions
/// crc16; Appears before CRC
public string? CRC16 { get; set; }
/// crc64; Appears after CRC
public string? CRC64 { get; set; }
/// md2; Appears after CRC64
public string? MD2 { get; set; }
/// md4; Appears after MD2
public string? MD4 { get; set; }
/// ripemd128; Appears after MD5
public string? RIPEMD128 { get; set; }
/// ripemd160; Appears after RIPEMD128
public string? RIPEMD160 { get; set; }
/// sha256; Also in No-Intro spec; Appears after SHA1
public string? SHA256 { get; set; }
/// sha384; Appears after SHA256
public string? SHA384 { get; set; }
/// sha512; Appears after SHA384
public string? SHA512 { get; set; }
/// spamsum; Appears after SHA512
public string? SpamSum { get; set; }
/// blake3; Appears after SHA512
public string? BLAKE3 { get; set; }
#endregion
#region DiscImgeCreator Extensions
/// xxh3_64; Appears after SpamSum
public string? xxHash364 { get; set; }
/// xxh3_128; Appears after xxHash364
public string? xxHash3128 { get; set; }
#endregion
#region MAME Extensions
/// region; Appears after Status
public string? Region { get; set; }
/// offs; Appears after Flags
public string? Offs { get; set; }
#endregion
#region No-Intro Extensions
/// serial; Appears after Offs
public string? Serial { get; set; }
/// header; Appears after Serial
public string? Header { get; set; }
#endregion
#region RomVault Extensions
/// inverted; Boolean; Appears after Date
public bool? Inverted { get; set; }
/// mia; Boolean; Appears after Inverted
public bool? MIA { get; set; }
#endregion
}
}