static QuestSet ExtractQuestSet(OneWayTreeNode node)
    {
        QuestSet set = new QuestSet();

        OneWayTreeNode[] nodes = node.rAsList();
        QuestInfo[]      infos = new QuestInfo[nodes.Length];
        for (int i = 0; i < nodes.Length; i++)
        {
            infos[i] = nodes[i].data;
        }
        set.quests = infos;
        return(set);
    }
    static QuestTreeDirections ExtractQuestDirections(OneWayTreeNode node)
    {
        QuestTreeDirections dirs = new QuestTreeDirections();

        OneWayTreeNode[] nodes = node.rAsList();
        dirs.nodes = new IntSerializableArr[nodes.Length];
        for (int i = 0; i < dirs.nodes.Length; i++)
        {
            dirs.nodes[i]            = new IntSerializableArr();
            dirs.nodes[i].directions = new int[nodes[i].children.Count];
            for (int j = 0; j < dirs.nodes[i].directions.Length; j++)
            {
                dirs.nodes[i].directions[j] = i + j + 1;// untested
            }
        }
        return(dirs);
    }