Chatoyant_runtime.JsonSourceRuntime-independent JSON representation.
This module is intentionally small and pure. Provider decoders should use it at their boundaries, while backend-specific modules can translate to and from native OCaml parsers or JavaScript values. Unknown provider fields should be preserved as JSON values when doing so helps forward compatibility.
Return a field from an object, or None when the value is not an object or the field is missing. Duplicate keys resolve to the first key encountered.
Encode a compact JSON string. This is used by tests and deterministic request-body fixtures; backend implementations may use native encoders for production IO.