# Asset Marketplace Contracts

> **Architecture only.** No Marketplace product implementation.  
> Assets: [asset-registry.md](asset-registry.md) · Lifecycle: [asset-lifecycle.md](asset-lifecycle.md)  
> Contract version: `asset-marketplace.v1`

---

## 1. Purpose

Describe how **assets** may participate commercially with an independent Marketplace product — without implementing Marketplace.

---

## 2. AssetMarketplaceDeclaration

| Field | Type | Meaning |
| --- | --- | --- |
| `distribution` | enum[] | Multi-select modes — §3 |
| `marketplace_ready` | bool | Eligible to list |
| `pricing_item_code` | string? | Optional Pricing Catalog ref for paid assets |
| `license_terms_ref` | string? | Opaque terms |
| `visibility` | enum | `public` \| `private` \| `organization` \| `enterprise` \| `unlisted` |
| `publisher_tenant_id` | uuid? | When tenant-published (future) |
| `ext` | object | |

---

## 3. Distribution modes

| Mode | Meaning |
| --- | --- |
| `installed` | May be installed into tenant/workspace |
| `shared` | May be shared within allowed scope |
| `cloned` | May be cloned into a new draft asset |
| `purchased` | May be acquired via commercial purchase (future) |
| `free` | No charge |
| `enterprise_only` | Enterprise channel only |
| `private` | Not publicly listed |
| `organization_only` | Org-scoped |
| `marketplace_ready` | Listing-eligible flag/mode |

---

## 4. Ownership

| Concern | Owner |
| --- | --- |
| Asset Registry vocabulary | Core commercial |
| Asset payload / templates content | Publisher product or owning service |
| Marketplace listing & commerce | Marketplace product (when implemented) |
| Payment capture for purchases | Payment (when activated) |

**No Marketplace implementation** is authorized by this document.

---

## 5. Invariants

1. `marketplace_ready` ≠ listed or sold.
2. Free/purchased modes do not embed amounts — Pricing Catalog refs only.
3. Experience may render installed assets; it does not own marketplace commerce.
