clickedJson

fun clickedJson(name: String, propertiesJson: String, scope: Map<String, String> = emptyMap(), target: String? = null)

clicked for properties that are not all strings — numbers, booleans, nested objects — passed as a JSON object literal. The Swift side has no way to express a JsonObject, and a [String: String] dictionary cannot carry them, so this is the escape hatch; it mirrors the JsonObject overload the Compose API offers.

propertiesJson must parse to a JSON object. Anything else — malformed text, or a valid JSON array/number/string — is dropped to empty properties rather than throwing or guessing, and the event is still recorded: losing the properties of an event is bad, losing the event (or crashing Swift) is worse.