Where do you use (elaborated) structs?

In his book Data-Oriented Programming - Unlearning Objects, the author Sharvit gives some guidelines for programming, which at first glance seem to be already baked in the Julia language like the separation of functions and data.

[Later it dawns you that each programming language has its own mantra, often tied to a specialty in its implementation, like Clojure’s immutable data structures relying heavily on dedicated hashmaps.]

The book also recommends “generic data structures” to keep access simple and interfaces adaptable. In Julia this could be simple flat structs.
In numerical textbooks using Julia structs barely play a role, here on Discourse they show up often in abstract MWExamples.

So I would like to hear your experiences on:

  • Where did you need more complex (types, nesting, etc) structs?
  • Was there a trade-off, did you find a balance or remedy?