package api func clonePayloadPointer(payload map[string]any) *map[string]any { if len(payload) == 0 { return nil } out := make(map[string]any, len(payload)) for key, value := range payload { out[key] = clonePayloadValue(value) } return &out } func clonePayloadValue(value any) any { switch typed := value.(type) { case map[string]any: out := make(map[string]any, len(typed)) for key, item := range typed { out[key] = clonePayloadValue(item) } return out case []any: out := make([]any, len(typed)) for index, item := range typed { out[index] = clonePayloadValue(item) } return out default: return value } }