using System.Numerics; namespace InkForge.Data { public abstract class ValueEntity { public TEntity Value { get; set; } = default!; } public abstract class Entity : ValueEntity where TKey : struct, INumber { public TKey? Id { get; set; } } public abstract class VersionedEntity : ValueEntity where TKey : struct, INumber { public TKey Id { get; set; } public int? Version { get; set; } } }