Learn
URI contracts and platform links
Treat a URI as the serialized form of a typed Destination and validate absolute links at the application boundary.
URI contracts and platform links
The typed Destination constructor is the application API. A NavigationUriCodec<D> is its web and platform serialization boundary.
Canonical codecs encode and decode. NavigationUriAlias<D> only decodes retired or alternate URLs, ensuring the next route report uses the canonical address. A stackPlanBuilder reconstructs required parent entries atomically when a deep link opens a leaf route.
Mounted URI patterns are validated for ambiguity. The Graph rejects overlaps such as /products/:id and /products/new instead of selecting by declaration order.
Absolute App Links, Universal Links, and custom-scheme URLs should pass a NavigationPlatformLinkConfiguration allow-list before graph decoding. Native Android intent filters and Apple associated-domain configuration are still required; Ark Navigation owns validation after Flutter receives the URI, not operating-system registration.
An unknown-URI handler may return a typed fallback. It should also preserve the failure for diagnostics rather than silently turning every malformed link into Home.