def chain
import bend-toon-codec@0.1.0.0/src/fold.bend as Foldimport Base
import bend-toon-codec@0.1.0.0/src/json.bend as J
102# Walk single-key objects from `v`, at most `budget` segments in all.
103def chain(+v: J.Json, +n: U32, +budget: U32, +key: String, +ok: Bool) -> Ci:
104 match v:
105 case J.JObj{J.JField{k2, v2, J.JNil{}}}:
106 chain.step(U32.is_lt(n, budget), v, n, key, ok, chain(v2, (n + 1 : U32), budget, key ++ "." ++ k2, ok && ident(k2)))
107 case _:
108 Ci{n, key, v, ok}