def _splits_for_summary_description_openapi_doc(lines):
    """Splites a list of docstring lines between the summary, description,
    and other properties for an API route openapi spec.

    For the openapi spec block, it should start with '````openapi' and close
    with '```'.

    Parameters
    ----------
    lines : list[str]

    Returns
    -------
    tuple
        summary : str
        description : str
        openapi : str

    """
    info = []
    openapi = []

    in_openapi = False

    for line in lines:
        if '```openapi' == line:
            in_openapi = True
            continue

        if in_openapi and '```' == line:
            in_openapi = False
            continue

        if not in_openapi:
            info.append(line)
        else:
            openapi.append(line)

    return info[0], info[1:], openapi