namespace Campaign_Tracker.Server.LegacyData.Schema; /// /// Represents a single column in a legacy Access table for compatibility checking. /// All structural attributes (name, type code, declared size, nullability) are part /// of the comparison signature — any change in any of them is reported as drift. /// public sealed record LegacyColumnDefinition( string Name, int TypeCode, int? Size, bool Nullable); /// /// Represents a legacy table's full structural definition: the table name plus /// the ordered list of columns. Column order is preserved from the baseline file /// but column comparison is name-keyed (order changes are not flagged as drift — /// schema drift refers to structural deltas, not declaration order). /// public sealed record LegacyTableDefinition( string Name, IReadOnlyList Columns);