acdream/src/AcDream.Launcher.Core/Launching/LauncherInstallRecord.cs

26 lines
927 B
C#

namespace AcDream.Launcher.Core.Launching;
/// <summary>
/// The DAT/pak locations a completed install (LA9) records and every
/// session-config composition consumes for
/// <see cref="SessionContentDescriptor"/>. Integrity metadata is launcher-
/// local: it is verified before this record is admitted to the orchestrator
/// and is deliberately not copied into the host session-config contract.
/// </summary>
public sealed record LauncherInstallRecord(
string DatDirectory,
string PreparedAssetPath,
string PreparedAssetSha256 = "",
long PreparedAssetSize = 0,
uint BakeToolVersion = 0)
{
public const int CurrentRecordVersion = 1;
public int Version { get; init; } = CurrentRecordVersion;
public bool HasIntegrityMetadata =>
!string.IsNullOrEmpty(PreparedAssetSha256)
&& PreparedAssetSha256.Length == 64
&& PreparedAssetSize > 0
&& BakeToolVersion > 0;
}