24 lines
817 B
Markdown
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>`.
|