Explain your approach to ensuring data quality and lineage in a multi-source environment for Jpmorgan Chase &.
Implement the function below to validate records, retain the latest valid record from each source, detect conflicting field values, and record source lineage.
Input: a list of record dictionaries plus required fields and expected source names. Return clean_records and structured issues; each clean record must include its contributing source names.
def audit_records(records, required_fields, expected_sources):