TASK: Build the wine-club data model in the Shopify Admin UI (Settings → Custom data). You have collaborator access to the store "Maison Fayard" (grs60a-y0.myshopify.com). This is a collaboration store — do NOT try to create API tokens or use GraphQL; everything here is done by clicking in Settings → Custom data. Work only in this store's admin. Field KEYS must match exactly (app code reads them). After typing each field's display name, EDIT the auto-generated "key" so it matches the Key column below. For every metaobject definition, enable "Storefront access" (expose to Storefront API) and turn on the publishable / "entries can be published" option. ORDERING (avoids reference chicken-and-egg): Step A: create metaobject "Wine Club Tier Pool" but SKIP its "Cycle" and "Upgrade target" fields for now. Step B: create metaobject "Wine Club Cycle" (its "Tier pools" field can now reference Tier Pool, which exists). Step C: edit "Wine Club Tier Pool" and ADD the "Cycle" and "Upgrade target" fields. === METAOBJECT 1 — "Wine Club Tier Pool" (type: wineclub_tier_pool) === | Field name | Key | Type | | Cycle | cycle | Metaobject reference → Wine Club Cycle (ADD IN STEP C) | | Tier | tier | Single line text | | Tier label | tier_label | Single line text | | Bottle count | bottle_count | Integer | | Base price | base_price | Money | | Default wines | default_wines | Product — LIST of references | | Swap pool | swap_pool | Product — LIST of references | | Upgrade target | upgrade_target | Metaobject reference → Wine Club Tier Pool (self) (ADD IN STEP C) | === METAOBJECT 2 — "Wine Club Cycle" (type: wineclub_cycle) === | Field name | Key | Type | | Name | name | Single line text | | Cadence | cadence | Single line text | | Open at | open_at | Date | | Close at | close_at | Date | | Status | status | Single line text | | Tier pools | tier_pools | Metaobject reference → Wine Club Tier Pool — LIST | === PRODUCT METAFIELDS (Settings → Custom data → Products → Add definition) === Enable Storefront access on each. Namespace and key must be exactly as shown. | Name | Namespace and key | Type | | Vintage | wineclub.vintage | Single line text | | Wine type | wineclub.wine_type | Single line text | | Catalog group | wineclub.catalog_group | Single line text | === CUSTOMER METAFIELD (Settings → Custom data → Customers → Add definition) === | Name | Namespace and key | Type | Access | | Wine club selection | wineclub.selection | JSON | Storefront read; admin read/write | === THEN: seed data (PAUSE for the user's confirmation before creating entries) === 1) Create one "Wine Club Cycle" entry: name="Q2 2026", cadence="quarterly", open_at=2026-04-15, close_at=2026-05-30, status="open". (Confirm real dates.) 2) Open the store's Products list and show the user every wine with its title + price, so they can say which wines are the DEFAULT box vs SWAP pool per tier. Do NOT guess. 3) After they confirm, create 4 "Wine Club Tier Pool" entries (use the product PICKER for default_wines / swap_pool — no IDs needed). Set each entry's handle to -: | handle | tier | tier_label | bottle_count | base_price | upgrade_target | | q2-2026-classic-3 | classic-3 | Classic Club · 3 bottles | 3 | 150.00 USD | q2-2026-reserve-3 | | q2-2026-classic-6 | classic-6 | Classic Club · 6 bottles | 6 | 300.00 USD | q2-2026-reserve-6 | | q2-2026-reserve-3 | reserve-3 | Reserve Club · 3 bottles | 3 | 400.00 USD | (leave empty) | | q2-2026-reserve-6 | reserve-6 | Reserve Club · 6 bottles | 6 | 800.00 USD | (leave empty) | Set each pool's "cycle" field to the Q2 2026 cycle entry. (Magnum $1,300 is BI-ANNUAL, not quarterly — flag it to the user, don't add it here.) 4) Edit the Q2 2026 cycle's "tier_pools" field to list all pools you created. REPORT AT THE END: which definitions were created, the wine product list you found, the pools you seeded, and which wine products still need wineclub.vintage / wineclub.wine_type / wineclub.catalog_group set.