function prepareChildren(children, path, print) {
    let svelteOptionsComment;
    const childrenWithoutOptions = [];
    for (let idx = 0; idx < children.length; idx++) {
        const currentChild = children[idx];
        if (currentChild.type === 'Text' && getUnencodedText(currentChild) === '') {
            continue;
        }
        if (isEmptyTextNode(currentChild) && doesEmbedStartAfterNode(currentChild, path)) {
            continue;
        }
        if (isCommentFollowedByOptions(currentChild, idx)) {
            svelteOptionsComment = printComment(currentChild);
            const nextChild = children[idx + 1];
            idx += nextChild && isEmptyTextNode(nextChild) ? 1 : 0;
            continue;
        }
        if (currentChild.type === 'Options') {
            printSvelteOptions(currentChild, idx, path, print);
            continue;
        }
        childrenWithoutOptions.push(currentChild);
    }
    const mergedChildrenWithoutOptions = [];
    for (let idx = 0; idx < childrenWithoutOptions.length; idx++) {
        const currentChild = childrenWithoutOptions[idx];
        const nextChild = childrenWithoutOptions[idx + 1];
        if (currentChild.type === 'Text' && nextChild && nextChild.type === 'Text') {
            // A tag was snipped out (f.e. svelte:options). Join text
            currentChild.raw += nextChild.raw;
            currentChild.data += nextChild.data;
            idx++;
        }
        mergedChildrenWithoutOptions.push(currentChild);
    }
    return mergedChildrenWithoutOptions;
    function printSvelteOptions(node, idx, path, print) {
        svelteOptionsDoc = groupConcat([
            groupConcat([
                '<',
                node.name,
                indent(groupConcat(path.map(print, 'children', idx, 'attributes'))),
                ' />',
            ]),
            hardline,
        ]);
        if (svelteOptionsComment) {
            svelteOptionsDoc = groupConcat([svelteOptionsComment, hardline, svelteOptionsDoc]);
        }
    }
    function isCommentFollowedByOptions(node, idx) {
        if (node.type !== 'Comment' || isIgnoreEndDirective(node) || isIgnoreStartDirective(node)) {
            return false;
        }
        const nextChild = children[idx + 1];
        if (nextChild) {
            if (isEmptyTextNode(nextChild)) {
                const afterNext = children[idx + 2];
                return afterNext && afterNext.type === 'Options';
            }
            return nextChild.type === 'Options';
        }
        return false;
    }
}
`svelte:options` is part of the html part but needs to be snipped out and handled
separately to reorder it as configured. The comment above it should be moved with it.
Do that here.