def METHOD_NAME(doc):
    """Convert an entire synthesis recipe."""
    return {
        "doi": str(doc["doi"]),
        "paragraph_string": " ".join(doc["ext_paragraph"]),
        "synthesis_type": str(doc["synthesis_type"]),
        "reaction_string": str(doc["reaction_string"]),
        "reaction": {
            "left_side": [
                {"amount": str(x["amount"]), "material": str(x["material"])}
                for x in doc["reaction"]["left"]
            ],
            "right_side": [
                {"amount": str(x["amount"]), "material": str(x["material"])}
                for x in doc["reaction"]["right"]
            ],
        },
        "targets_formula": [x.formula for x in target_comps(doc)],
        "target": convert_material(doc["target"]),
        "targets_formula_s": [x.reduced_formula for x in target_comps(doc)],
        "precursors_formula_s": [x.reduced_formula for x in precursor_comps(doc)],
        "precursors_formula": [x.formula for x in precursor_comps(doc)],
        "precursors": [convert_material(x) for x in doc["precursors"]],
        "operations": [convert_op(x) for x in doc.get("operations", [])],
    }