import collections


def _compile_job_list(job_iterator):
    """
    Make one unified list of jobs from a job iterator.
    Identify jobs by their `description` or index in the `job_iterator`.
    Keep the last one in the `job_iterator` for each job identifier.
    Remove jobs missing the required fields.
    """
    jobs_dict = collections.OrderedDict()
    for i, job in enumerate(job_iterator):
        job_id = job.get('description', i)
        if 'url' in job and 'schedule' in job:
            jobs_dict[job_id] = job
        elif job_id in jobs_dict:
            del jobs_dict[job_id]
    return list(jobs_dict.values())