Initial commit: Add project files
ci / backend (push) Failing after 12s
ci / frontend (push) Failing after 19s
ci / static (push) Failing after 45s

This commit is contained in:
2026-08-02 05:15:36 +09:00
commit dcd1322d41
636 changed files with 122352 additions and 0 deletions
@@ -0,0 +1,32 @@
namespace KArtSell.BuildingBlocks.Versioning;
/// <summary>
/// Immutable identity of the data, model, configuration and code used for a decision.
/// Values are opaque, approved identifiers or SHA-256 digests; they are never inferred from the client.
/// </summary>
public sealed record VersionSet(
string DatasetId,
string DataHash,
string ModelVersion,
string ConfigVersion,
string CodeSha,
string ContractVersion)
{
public void EnsureValid()
{
EnsureNotBlank(DatasetId, nameof(DatasetId));
EnsureNotBlank(DataHash, nameof(DataHash));
EnsureNotBlank(ModelVersion, nameof(ModelVersion));
EnsureNotBlank(ConfigVersion, nameof(ConfigVersion));
EnsureNotBlank(CodeSha, nameof(CodeSha));
EnsureNotBlank(ContractVersion, nameof(ContractVersion));
}
private static void EnsureNotBlank(string value, string name)
{
if (string.IsNullOrWhiteSpace(value))
{
throw new ArgumentException($"{name} must be an approved, non-blank identifier.", name);
}
}
}