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.