# M2 Store deep-link contract v1 Canonical listing detail URI: ```text m2store://listing/?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`. - `` 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/`, but the external protocol stays `m2store://listing/`.