///|
fn get_at_path(current : Json, path : ArrayView[Json]) -> Json? {
match path {
[] => Some(current)
[key, .. rest] => {
guard path_segment(key) is Some(segment) else { return None }
guard segment.read(current) is Some(next) else { return None }
get_at_path(next, rest)
}
}
}