I actually didn't know that the SwiftUI List element natively supports hierarchical lists, until someone on Reddit asked for an example. Here's mine:
struct Park: Identifiable { let id = UUID() let name: String let children: [Park]? }
struct ContentView: View { private let parks = [ Park(name: "Sierra Nevada", children: [ Park(name: "Yosemite", children: [ Park(name: "Mount Dana", children: nil), Park(name: "Mount Lyell", children: nil), ]), Park(name: "Stanislaus National Forest", children: [ Park(name: "Emigrant Wilderniss", children: nil), Park(name: "Carson-Iceberg Wilderniss", children: nil), ]) ]) ]
var body: some View { List(parks, children: \.children, rowContent: { Text($0.name) }) } }