I am thinking about simultaneously working on an obverse and reverse tree as a beginner, with German in my case. I can scale how many levels and crowns I go for as well as recursive depth based on how much time and effort that I have/want to put into the task. I like the idea of working simultaneously with two partially known languages. In my case, French is the only to-me-unknown option ready for a reverse German tree, but it is a language that I repeatedly show inclinations toward, so that works for me. I have been trying out a similar approach with deepl for translation (using it with two partially unknown languages), and I find that the net impact strikes a nice balance. With German on the input (a beginner language for me) and looking at the French translation (A0, unknown, but cat 1 for me), what I notice is that I don't lean too much on the translation as a crutch to decipher German. Sometimes the German is easier to read and other times the French, but between the two of them, I ought to be able to figure it out. I think Duolingo works well for people who prefer a bit of uncertainty and what I want to try extends that just a little, but not past any breaking points. I have a pretty high tolerance for uncertainty and seek it even.
For my German tree, I am doing it as a reverse Spanish tree which is nice to help me maintain ES.
Thanks for mentioning the pyramid approach. How you walk the nodes of each tree has many interesting possibilities. Good choice of data structure for the main interface.