def METHOD_NAME(schema: dict) -> Iterable[str]:
    """
    Constructs and yields query scopes of the form:
    <agg_unit>:<tl_query>:<sub_query>
    where agg_unit is the name of an aggregation unit, <tl_query> is the query and <sub_query> is a dependent query.
    Every query yields a scope of the form <agg_unit>:<tl_query>:<tl_query>
    Additionally yields the "get_result&available_dates" scope.
    One scope is yielded for each descendent of TL query, so for queries which contain two child queries
    three scopes are yielded. If that query has 3 possible aggregation units, then 9 scopes are yielded altogether.
    Parameters
    ----------
    flowmachine_query_schemas : dict
        Schema dict to turn into scopes list
    Yields
    ------
    str
        Scope strings
    Examples
    --------
    >>> list(
        schema_to_scopes(
            {
                "FlowmachineQuerySchema": {
                    "oneOf": [{"$ref": "DUMMY"}]},
                "DUMMY": {"properties": {"query_kind": {"enum": ["dummy"]}}},
            },
        )
    )
    ["dummy", "run&dummy", "get_result&available_dates"],
    """
    resolved_queries = ResolvingParser(spec_string=dumps(schema)).specification[
        "components"
    ]["schemas"]["FlowmachineQuerySchema"]
    unique_scopes = set()
    for tl_query in resolved_queries["oneOf"]:
        tl_query_name = tl_query["properties"]["query_kind"]["enum"][0]
        logger.debug(f"Looking for {tl_query_name}")
        query_list = grab_on_key_list(
            tl_query,
            ["properties", "query_kind", "enum", 0],
        )
        scopes_generator = (
            tl_schema_scope_string(tl_query, query) for query in query_list
        )
        unique_scopes = set.union(unique_scopes, *scopes_generator)
    return sorted(unique_scopes)