m2-market/contracts/deeplink.md

24 lines
817 B
Markdown

# M2 Store deep-link contract v1
Canonical listing detail URI:
```text
m2store://listing/<listing_id>?source=&proposal_id=&q=
```
Examples:
```text
m2store://listing/lst_competitor-scan?source=scout&proposal_id=prop_01j2abc
m2store://listing/lst_mm-pdf-report?source=hermes&q=pdf%20report
```
Rules:
- Path segment is `listing`, not `solution`.
- `<listing_id>` uses the `lst_` prefix from `contracts/ids.md`.
- Allowed query parameters are exactly `source`, `proposal_id`, and `q`.
- The URI is navigate-only. It never installs, purchases, grants licenses, or mutates state.
- Unknown listing IDs open Store search/detail error UI without leaking tenant-forbidden records.
- Store may keep an internal route such as `/solution/<listing_id>`, but the external protocol
stays `m2store://listing/<listing_id>`.