Member Junction
    Preparing search index...

    Per-field provenance recording which source decided each attribute during the merge.

    interface FieldMergeLog {
        AttributeWinners: {
            AllowsNull?: "Declared" | "Discovered" | "Initial";
            Description?: "Declared" | "Discovered" | "Initial";
            ForeignKey?: "Declared" | "Discovered" | "Initial";
            IsPrimaryKey?: "Declared" | "Discovered" | "Initial";
            IsReadOnly?: "Declared" | "Discovered" | "Initial";
            IsRequired?: "Declared" | "Discovered" | "Initial";
            IsUniqueKey?: "Declared" | "Discovered" | "Initial";
            Length?: "Declared" | "Discovered" | "Initial";
            Type?: "Declared" | "Discovered" | "Initial";
        };
        EffectiveSource: "Custom"
        | "Declared"
        | "Discovered";
        FieldName: string;
        ObjectName: string;
    }
    Index

    Properties

    AttributeWinners: {
        AllowsNull?: "Declared" | "Discovered" | "Initial";
        Description?: "Declared" | "Discovered" | "Initial";
        ForeignKey?: "Declared" | "Discovered" | "Initial";
        IsPrimaryKey?: "Declared" | "Discovered" | "Initial";
        IsReadOnly?: "Declared" | "Discovered" | "Initial";
        IsRequired?: "Declared" | "Discovered" | "Initial";
        IsUniqueKey?: "Declared" | "Discovered" | "Initial";
        Length?: "Declared" | "Discovered" | "Initial";
        Type?: "Declared" | "Discovered" | "Initial";
    }

    Per-attribute precedence map: 'Declared' = curated value won (no overwrite from discovery), 'Discovered' = describe output won (overwrote curated for DDL-affecting attribute), 'Initial' = field is newly created (no prior value).

    EffectiveSource: "Custom" | "Declared" | "Discovered"

    What overall record was decided to be the row's MetadataSource.

    FieldName: string
    ObjectName: string