Record a navigation, as a declared route PATTERN.

Pass the concrete path your router produced. The platform matches it against your declared patterns and records the pattern: /patients/12345 becomes /patients/:id, and the id is discarded at the boundary rather than filtered later. A path matching no declared pattern records nothing — and reports success either way, because telling you which paths are accepted would be a read channel.

the same typed errors as emitAnalyticsEvent.