using System.Diagnostics.CodeAnalysis; namespace Bitvault; public record Vault(TValue? Value = default); public record Vault { public Vault(string name, string password) { Name = name; Password = password; } public Vault(string password) { Password = password; } public static Vault As(TValue value) => new(value); public static Vault As() where TValue : new() => new(new TValue()); [MaybeNull] public string Name { get; } [MaybeNull] public string? Password { get; } }