def METHOD_NAME(handle, model, position=None, flip=False):
    """Saves game to file in fen format"""
    color = model.boards[-1].color
    fen = model.boards[-1].asFen().split(" ")
    # First four parts of fen are the same in epd
    handle.write(" ".join(fen[:4]))
    ############################################################################
    # Repetition count                                                         #
    ############################################################################
    rep_count = model.boards[-1].board.repetitionCount()
    ############################################################################
    # Centipawn evaluation                                                     #
    ############################################################################
    if model.status == WHITEWON:
        if color == WHITE:
            ceval = 32766
        else:
            ceval = -32766
    elif model.status == BLACKWON:
        if color == WHITE:
            ceval = -32766
        else:
            ceval = 32766
    elif model.status == DRAW:
        ceval = 0
    else:
        ceval = evaluateComplete(model.boards[-1].board, model.boards[-1].color)
    ############################################################################
    # Opcodes                                                                  #
    ############################################################################
    opcodes = (
        ("fmvn", fen[5]),  # In fen full move number is the 6th field
        ("hmvc", fen[4]),  # In fen halfmove clock is the 5th field
        # Email and name of receiver and sender. We don't know the email.
        ("tcri", "?@?.? %s" % repr(model.players[color]).replace(";", "")),
        ("tcsi", "?@?.? %s" % repr(model.players[1 - color]).replace(";", "")),
        ("ce", ceval),
        ("rc", rep_count),
    )
    for key, value in opcodes:
        handle.write(f" {key} {value};")
    ############################################################################
    # Resign opcode                                                            #
    ############################################################################
    if model.status in (WHITEWON, BLACKWON) and model.reason == WON_RESIGN:
        handle.write(" resign;")
    print("", file=handle)
    handle.close()