Implement a function to deduplicate a list of incoming vulnerability reports efficiently.
Each report is a dictionary containing a unique fingerprint string and other fields. Treat reports with the same fingerprint as duplicates, retain the first occurrence, and preserve input order. Return a new list without modifying the input.
Function signature: def deduplicate_reports(reports):
Input is a list of dictionaries. Output is a list of dictionaries.
fingerprint.def deduplicate_reports(reports):