Given a list of records records, where each record is a dictionary with keys id, status, and score, return a new list containing only records whose status equals a given string target_status and whose score is at least min_score. If multiple records have the same id, keep only the one with the highest score; if scores are equal, keep the one that appears first. Return the final records sorted by id in ascending order.
1 <= len(records) <= 10^40 <= records[i]["id"] <= 10^90 <= records[i]["score"] <= 10^9id, status, and scoretarget_status is a non-empty string