ryan-summers: I have now done some implementation with miniconf, and so far it has gone quite smooth, all my simplified unit tests passed quite easily, but then came the port of our production code :P. I have struck two "issues", that I could use you assistance with: 1. I am not quite sure i understand the selection of `depth` in situations with `Options`? For my use case I have a macro that generates a "patch" version of my json tree, which is basically just a copy where all fields are wrapped in Options. I modified this macro to also copy the `tree` attributes, and increment `depth`. I initially assumed depth should always be incremented by one when wrapping in Option, but this turned out not to be the case? It seems to somehow work if I do `new_depth = if orig_depth < 2 { orig_depth + 1 } else { orig_depth + 2 };`, but I can't reason about it? 2. I have an enum in the middle of my json tree, that I assume I would manually need to implement `Tree*` traits for, as the derive does not handle enums? Do you have any examples or assistance in how this should/could be done? To make matters worse, my enum is `adjacently tagged` in its json form: ```rust #[serde(rename_all = "lowercase", tag = "key", content = "value")] pub enum Foo { #[default] Bar, Baz(InnerStruct), } ``` I am prepared to do strange shenanigans for this impl, as I know this is not within scope for miniconf-derive