def get_overlapping_miRNA_mRNA(conn, location: dict = {}):
    """
    Takes a Chado database connection, a location, and returns a dictionary of all miRNA /
    mRNA features that overlap the given location.

    :param conn: The psycopg2 connection object for the Chado database.
    :param location: Dictionary containing the featureloc fields (srcfeature_id, scaffold, fmin, and fmax)
    :return: Dictionary containing FlyBase ID as key and a tuple of FlyBase ID, symbol, and feature type.
    """
    # SQL query to look for overlapping transcript features.
    miRNA_mRNA_query = """
    select f.uniquename,
           flybase.current_symbol(f.uniquename),
           cvt.name
        from featureloc_slice(%s, %s, %s) as fl join feature f on fl.feature_id=f.feature_id
                                                join cvterm cvt on f.type_id=cvt.cvterm_id
        where f.uniquename ~ '^FBtr\d+$'
            and f.is_obsolete = false
            and f.is_analysis = false
            and cvt.name in ('miRNA','mRNA')
        ;
    """
    cur = conn.cursor()
    cur.execute(miRNA_mRNA_query, (location['srcfeature_id'], location['fmin'], location['fmax']))
    # Return a dictionary containing all miRNA and mRNA features that overlap the given location.
    # The dictionary key is the FBtr ID and the value is a tuple with FBtr ID, symbol, and feature type.
    return {r[0]: r for r in cur}