def METHOD_NAME(destination_frame: List[str]) -> np.ndarray:
    """ Builds a transformation matrix that switches the coordinate frame.
    :param destination_frame: An array containing three elements, describing each axis of the destination
                              coordinate frame based on the axes of the source frame.
                              Available: ["X", "Y", "Z", "-X", "-Y", "-Z"].
    :return: The transformation matrix
    """
    assert len(destination_frame) == 3, f"The specified coordinate frame has more or less than " \
                                        f"tree axes: {destination_frame}"
    # Build transformation matrix that maps the given matrix to the specified coordinate frame.
    tmat = np.zeros((4, 4))
    for i, axis in enumerate(destination_frame):
        axis = axis.upper()
        if axis.endswith("X"):
            tmat[i, 0] = 1
        elif axis.endswith("Y"):
            tmat[i, 1] = 1
        elif axis.endswith("Z"):
            tmat[i, 2] = 1
        else:
            raise Exception("Invalid axis: " + axis)
        if axis.startswith("-"):
            tmat[i] *= -1
    tmat[3, 3] = 1
    return tmat