2025-09-26 12:44:16 -04:00
|
|
|
|
2025-09-26 13:06:18 -04:00
|
|
|
namespace SabreTools.Data.Models.Metadata
|
2025-09-26 10:20:48 -04:00
|
|
|
{
|
|
|
|
|
/// <summary>
|
|
|
|
|
/// Format-agnostic representation of metadata header data
|
|
|
|
|
/// </summary>
|
|
|
|
|
public class Header : DictionaryBase
|
|
|
|
|
{
|
2026-04-01 13:18:45 -04:00
|
|
|
#region Properties
|
|
|
|
|
|
2026-04-02 22:01:42 -04:00
|
|
|
public string? Author { get; set; }
|
|
|
|
|
|
2026-04-02 02:18:08 -04:00
|
|
|
/// <remarks>(none|split|merged|nonmerged|fullmerged|device|full) "split"</remarks>
|
|
|
|
|
public MergingFlag BiosMode { get; set; }
|
|
|
|
|
|
2026-04-02 22:01:42 -04:00
|
|
|
public string? Build { get; set; }
|
|
|
|
|
|
|
|
|
|
public string? Category { get; set; }
|
|
|
|
|
|
|
|
|
|
public string? Comment { get; set; }
|
|
|
|
|
|
|
|
|
|
public string? Date { get; set; }
|
|
|
|
|
|
|
|
|
|
public string? DatVersion { get; set; }
|
|
|
|
|
|
2026-04-01 21:59:16 -04:00
|
|
|
/// <remarks>(yes|no) "no"</remarks>
|
|
|
|
|
public bool? Debug { get; set; }
|
|
|
|
|
|
2026-04-02 11:18:49 -04:00
|
|
|
public string? Description { get; set; }
|
|
|
|
|
|
2026-04-02 22:01:42 -04:00
|
|
|
public string? Email { get; set; }
|
|
|
|
|
|
|
|
|
|
public string? EmulatorVersion { get; set; }
|
|
|
|
|
|
2026-04-02 02:18:08 -04:00
|
|
|
/// <remarks>(none|split|merged|nonmerged|fullmerged|device|full) "split"</remarks>
|
|
|
|
|
public MergingFlag ForceMerging { get; set; }
|
|
|
|
|
|
|
|
|
|
/// <remarks>(obsolete|required|ignore) "obsolete"</remarks>
|
|
|
|
|
public NodumpFlag ForceNodump { get; set; }
|
|
|
|
|
|
|
|
|
|
/// <remarks>(zip|unzip) "zip"</remarks>
|
|
|
|
|
public PackingFlag ForcePacking { get; set; }
|
|
|
|
|
|
2026-04-01 21:59:16 -04:00
|
|
|
/// <remarks>(yes|no) "yes"</remarks>
|
|
|
|
|
public bool? ForceZipping { get; set; }
|
|
|
|
|
|
2026-04-02 22:01:42 -04:00
|
|
|
public string? Homepage { get; set; }
|
|
|
|
|
|
|
|
|
|
public string? Id { get; set; }
|
|
|
|
|
|
2026-04-01 21:59:16 -04:00
|
|
|
/// <remarks>(yes|no) "no"</remarks>
|
|
|
|
|
public bool? LockBiosMode { get; set; }
|
|
|
|
|
|
|
|
|
|
/// <remarks>(yes|no) "no"</remarks>
|
|
|
|
|
public bool? LockRomMode { get; set; }
|
|
|
|
|
|
|
|
|
|
/// <remarks>(yes|no) "no"</remarks>
|
|
|
|
|
public bool? LockSampleMode { get; set; }
|
|
|
|
|
|
2026-04-02 22:01:42 -04:00
|
|
|
public string? MameConfig { get; set; }
|
|
|
|
|
|
2026-04-01 13:18:45 -04:00
|
|
|
public string? Name { get; set; }
|
|
|
|
|
|
2026-04-02 22:01:42 -04:00
|
|
|
public string? Notes { get; set; }
|
|
|
|
|
|
|
|
|
|
public string? Plugin { get; set; }
|
|
|
|
|
|
|
|
|
|
public string? RefName { get; set; }
|
|
|
|
|
|
2026-04-02 02:18:08 -04:00
|
|
|
/// <remarks>(none|split|merged|nonmerged|fullmerged|device|full) "split"</remarks>
|
|
|
|
|
public MergingFlag RomMode { get; set; }
|
|
|
|
|
|
2026-04-02 22:01:42 -04:00
|
|
|
public string? RomTitle { get; set; }
|
|
|
|
|
|
|
|
|
|
public string? RootDir { get; set; }
|
|
|
|
|
|
2026-04-02 02:18:08 -04:00
|
|
|
/// <remarks>(none|split|merged|nonmerged|fullmerged|device|full) "split"</remarks>
|
|
|
|
|
public MergingFlag SampleMode { get; set; }
|
|
|
|
|
|
2026-04-02 22:01:42 -04:00
|
|
|
public string? System { get; set; }
|
2026-04-01 13:18:45 -04:00
|
|
|
|
2026-04-02 22:01:42 -04:00
|
|
|
public string? Timestamp { get; set; }
|
2025-09-26 10:20:48 -04:00
|
|
|
|
2026-04-02 22:01:42 -04:00
|
|
|
public string? Type { get; set; }
|
2025-09-26 10:20:48 -04:00
|
|
|
|
2026-04-02 22:01:42 -04:00
|
|
|
public string? Url { get; set; }
|
|
|
|
|
|
|
|
|
|
public string? Version { get; set; }
|
|
|
|
|
|
|
|
|
|
#endregion
|
|
|
|
|
|
|
|
|
|
#region Keys
|
2025-09-26 10:20:48 -04:00
|
|
|
|
|
|
|
|
/// TODO: This needs an internal model OR mapping to fields
|
|
|
|
|
/// <remarks>CanOpen</remarks>
|
|
|
|
|
[NoFilter]
|
|
|
|
|
public const string CanOpenKey = "canOpen";
|
|
|
|
|
|
|
|
|
|
/// <remarks>string, string[]</remarks>
|
|
|
|
|
public const string HeaderKey = "header";
|
|
|
|
|
|
|
|
|
|
/// TODO: This needs an internal model OR mapping to fields
|
|
|
|
|
/// <remarks>Search</remarks>
|
|
|
|
|
[NoFilter]
|
|
|
|
|
public const string ImagesKey = "images";
|
|
|
|
|
|
|
|
|
|
/// <remarks>string</remarks>
|
|
|
|
|
public const string ImFolderKey = "imFolder";
|
|
|
|
|
|
|
|
|
|
/// TODO: This needs an internal model OR mapping to fields
|
|
|
|
|
/// <remarks>Infos</remarks>
|
|
|
|
|
[NoFilter]
|
|
|
|
|
public const string InfosKey = "infos";
|
|
|
|
|
|
|
|
|
|
/// TODO: This needs an internal model OR mapping to fields
|
|
|
|
|
/// <remarks>NewDat</remarks>
|
|
|
|
|
[NoFilter]
|
|
|
|
|
public const string NewDatKey = "newDat";
|
|
|
|
|
|
|
|
|
|
/// <remarks>string</remarks>
|
|
|
|
|
public const string SchemaLocationKey = "schemaLocation";
|
|
|
|
|
|
|
|
|
|
/// <remarks>string</remarks>
|
|
|
|
|
public const string ScreenshotsHeightKey = "screenshotsHeight";
|
|
|
|
|
|
|
|
|
|
/// <remarks>string</remarks>
|
|
|
|
|
public const string ScreenshotsWidthKey = "screenshotsWidth";
|
|
|
|
|
|
|
|
|
|
/// TODO: This needs an internal model OR mapping to fields
|
|
|
|
|
/// <remarks>Search</remarks>
|
|
|
|
|
[NoFilter]
|
|
|
|
|
public const string SearchKey = "search";
|
|
|
|
|
|
|
|
|
|
#endregion
|
|
|
|
|
}
|
2026-01-27 12:03:01 -05:00
|
|
|
}
|