JsonSerializable

type JsonSerializable: 
  | null
  | string
  | number
  | boolean
  | JsonArray
  | JsonObject;

Any type that can be natively converted to a string with JSON.stringify.

undefined cannot be JSON serialized directly, but as a nested value inside a serializable array or object, it can
be. We use UnsafeJsonSerializableOrUndefined as the type for the values embedded inside JsonArray and
JsonObject for this reason.