{
  "app_name": "PokeResell",
  "pages": [
    {
      "page_id": "homepage",
      "page_title": "Home",
      "route_path": "/",
      "route_params": [],
      "image_indices": [],
      "description": "Landing page for the Pokemon Card Resell Platform. Displays a hero banner with search bar, featured listings carousel, trending cards section, popular sets grid, recently listed cards, and category quick-links (by Pokemon type, rarity, card type). Includes global navigation header with logo, search bar, cart icon with badge count, wishlist icon, notifications bell, user avatar/login button. Footer with links to About, FAQ, Terms, Privacy. Guests see Sign Up / Login CTAs prominently. Stat cards showing total listings, active sellers, and cards sold.",
      "navigates_to": [
        "search_results",
        "listing_detail",
        "card_sets_browse",
        "login",
        "register",
        "cart",
        "wishlist"
      ]
    },
    {
      "page_id": "register",
      "page_title": "Sign Up",
      "route_path": "/register",
      "route_params": [],
      "image_indices": [],
      "description": "Registration page with form fields: email, password, confirm password, display name. Password strength indicator. Social login buttons (Google, Facebook). Link to login page. Terms of Service and Privacy Policy checkboxes. Submit button creates account and sends verification email. Inline validation for all fields.",
      "navigates_to": [
        "login",
        "homepage"
      ]
    },
    {
      "page_id": "login",
      "page_title": "Log In",
      "route_path": "/login",
      "route_params": [],
      "image_indices": [],
      "description": "Login page with email and password fields, 'Remember me' checkbox, 'Forgot password?' link, social login buttons (Google, Facebook), and link to registration page. Error messages for invalid credentials. Submit button authenticates user and redirects to homepage or previous page.",
      "navigates_to": [
        "register",
        "homepage",
        "forgot_password"
      ]
    },
    {
      "page_id": "forgot_password",
      "page_title": "Forgot Password",
      "route_path": "/forgot-password",
      "route_params": [],
      "image_indices": [],
      "description": "Simple form with email field to request password reset link. Success message displayed after submission. Link back to login page.",
      "navigates_to": [
        "login"
      ]
    },
    {
      "page_id": "search_results",
      "page_title": "Search & Browse",
      "route_path": "/search",
      "route_params": [],
      "image_indices": [],
      "description": "Search results page with prominent search bar at top with autocomplete. Left sidebar with filters: Card Set (multi-select dropdown), Rarity (checkboxes), Condition (checkboxes: Mint, Near Mint, Lightly Played, etc.), Price Range (min/max inputs with slider), Graded/Ungraded toggle, Grading Service (PSA, BGS, CGC), Seller Rating (star filter), Pokemon Type (Fire, Water, Grass, etc.), Card Type (Pokemon, Trainer, Energy), Shipping Location. Sort dropdown: Relevance, Price Low-High, Price High-Low, Newest, Seller Rating. Results displayed as grid of listing cards showing: card thumbnail image, card name, set name, condition badge, price, seller name with rating stars, 'Add to Cart' and 'Wishlist' quick-action buttons. Pagination at bottom. Result count displayed. Active filters shown as removable chips above results.",
      "navigates_to": [
        "listing_detail",
        "seller_profile",
        "homepage"
      ]
    },
    {
      "page_id": "listing_detail",
      "page_title": "Listing Details",
      "route_path": "/listings/:listingId",
      "route_params": [
        "listingId"
      ],
      "image_indices": [],
      "description": "Detailed view of a single card listing. Image gallery with thumbnails (front, back, detail shots) and zoom capability. Card information section: card name, Pokemon name, set name with set symbol, card number, rarity badge, type. Listing details: condition with description, price prominently displayed, quantity available, grading info (service logo, grade, cert number with verification link) if graded. Action buttons: 'Add to Cart', 'Make an Offer' (if offers enabled, opens modal with offer amount input, optional message, and submit button), 'Add to Wishlist'. Seller info card: store name, avatar, rating stars, total sales, response time, 'Message Seller' button (opens modal with message textarea), 'View Store' link. Shipping information: methods available, estimated cost, estimated delivery. Description text from seller. 'Similar Listings' section at bottom showing other listings of same card for price comparison. 'Report Listing' link in footer area.",
      "navigates_to": [
        "cart",
        "seller_profile",
        "search_results",
        "wishlist"
      ]
    },
    {
      "page_id": "card_sets_browse",
      "page_title": "Browse Card Sets",
      "route_path": "/sets",
      "route_params": [],
      "image_indices": [],
      "description": "Grid display of all Pokemon TCG sets/expansions. Each set card shows: set symbol/logo, set name, release date, total cards count, and number of available listings. Filter by series/generation. Sort by release date or name. Clicking a set navigates to search results filtered by that set.",
      "navigates_to": [
        "search_results",
        "homepage"
      ]
    },
    {
      "page_id": "cart",
      "page_title": "Shopping Cart",
      "route_path": "/cart",
      "route_params": [],
      "image_indices": [],
      "description": "Shopping cart page showing all cart items grouped by seller. Each item row displays: card thumbnail, card name, condition, seller name, quantity selector, unit price, line total, and remove button. Reservation timer shown per item (15 min countdown). Cart summary sidebar: subtotal, estimated shipping, estimated tax, promo code input with 'Apply' button, order total. 'Proceed to Checkout' button. 'Continue Shopping' link. 'Save for Later' option per item. Empty state shows message with link to browse listings. Notifications if items become unavailable or prices change.",
      "navigates_to": [
        "checkout",
        "listing_detail",
        "search_results"
      ]
    },
    {
      "page_id": "checkout",
      "page_title": "Checkout",
      "route_path": "/checkout",
      "route_params": [],
      "image_indices": [],
      "description": "Multi-step checkout page. Step 1 - Shipping Address: select from saved addresses or add new address form (name, street, city, state, zip, country, phone). Step 2 - Shipping Method: select from available options with cost and estimated delivery. Step 3 - Payment: credit/debit card form (card number, expiry, CVV, name), PayPal button, Apple Pay / Google Pay buttons. Step 4 - Review: order summary with all items, shipping address, billing address, shipping method, payment method, itemized costs (subtotal, shipping, tax, platform fee, discount, total). 'Place Order' button. Promo code already applied from cart. Estimated delivery date shown. Back buttons to edit each step.",
      "navigates_to": [
        "order_confirmation",
        "cart"
      ]
    },
    {
      "page_id": "order_confirmation",
      "page_title": "Order Confirmation",
      "route_path": "/orders/:orderId/confirmation",
      "route_params": [
        "orderId"
      ],
      "image_indices": [],
      "description": "Order confirmation page shown after successful purchase. Displays success checkmark icon, order number, confirmation message. Order summary: items purchased with thumbnails, seller info, shipping address, estimated delivery, payment method (masked), total charged. 'Track Order' button, 'Continue Shopping' button, 'View Order Details' link. Note about confirmation email sent.",
      "navigates_to": [
        "order_detail",
        "search_results",
        "buyer_orders"
      ]
    },
    {
      "page_id": "buyer_orders",
      "page_title": "My Orders",
      "route_path": "/account/orders",
      "route_params": [],
      "image_indices": [],
      "description": "Buyer's order history page. Table/list of all orders with columns: Order Number, Date, Seller, Items (thumbnails), Total, Status (badge: Pending, Processing, Shipped, Delivered, Completed, Cancelled, Refunded). Filter tabs by status. Search by order number. Each row is clickable to view order detail. Pagination for large order lists.",
      "navigates_to": [
        "order_detail",
        "account_profile"
      ]
    },
    {
      "page_id": "order_detail",
      "page_title": "Order Details",
      "route_path": "/account/orders/:orderId",
      "route_params": [
        "orderId"
      ],
      "image_indices": [],
      "description": "Detailed order view for buyer. Order timeline showing status progression with timestamps. Order info: order number, date, status badge. Items list with card thumbnails, names, conditions, quantities, prices. Seller info with message button. Shipping details: address, carrier, tracking number (clickable link), delivery status. Payment summary: subtotal, shipping, tax, fees, total, payment method. Action buttons based on status: 'Confirm Receipt' (if delivered), 'Leave Review' (if completed, opens modal with star rating 1-5, aspect ratings for communication/shipping/accuracy, text review textarea, photo upload, submit button), 'Open Dispute' (opens modal with reason dropdown, description textarea, evidence photo upload, submit button), 'Contact Seller' (opens message modal), 'Download Invoice'. Return/dispute section if applicable.",
      "navigates_to": [
        "buyer_orders",
        "seller_profile",
        "listing_detail"
      ]
    },
    {
      "page_id": "wishlist",
      "page_title": "My Wishlist",
      "route_path": "/account/wishlist",
      "route_params": [],
      "image_indices": [],
      "description": "User's wishlist page showing saved cards in grid or list view. Each item shows: card image, card name, set, current lowest listing price, availability status (X listings available), price alert threshold (editable inline), notes field. Actions per item: 'View Listings' button, 'Set Price Alert' (inline input for threshold price), 'Remove' button. Bulk actions: export to CSV. Toggle wishlist visibility (public/private). Share wishlist URL button. Empty state with link to browse cards. Price trend indicator (up/down arrow) if price data available.",
      "navigates_to": [
        "listing_detail",
        "search_results",
        "account_profile"
      ]
    },
    {
      "page_id": "account_profile",
      "page_title": "My Account",
      "route_path": "/account/profile",
      "route_params": [],
      "image_indices": [],
      "description": "User profile management page with sidebar navigation to account sections (Profile, Addresses, Notifications, Security, Become a Seller). Profile tab: form with fields for display name, bio (textarea), avatar upload, location. Verification badges shown (email verified, phone verified). Save button. Account activity summary: member since date, total purchases, total spent. Link to delete account.",
      "navigates_to": [
        "account_addresses",
        "account_notifications",
        "become_seller",
        "buyer_orders",
        "wishlist"
      ]
    },
    {
      "page_id": "account_addresses",
      "page_title": "My Addresses",
      "route_path": "/account/addresses",
      "route_params": [],
      "image_indices": [],
      "description": "Address management page showing list of saved addresses as cards. Each address card shows: name, full address, phone, default shipping/billing badges, Edit and Delete buttons. 'Add New Address' button opens inline form or modal with fields: full name, address line 1, address line 2, city, state/province, postal code, country dropdown, phone number, checkboxes for 'Set as default shipping' and 'Set as default billing'. Save and Cancel buttons.",
      "navigates_to": [
        "account_profile"
      ]
    },
    {
      "page_id": "account_notifications",
      "page_title": "Notification Preferences",
      "route_path": "/account/notifications",
      "route_params": [],
      "image_indices": [],
      "description": "Notification preferences page with toggle switches organized by category. Categories: Orders (confirmation, shipped, delivered), Messages (new message), Offers (new offer, offer response), Wishlist (price alerts), Reviews (review requests), Promotions (marketing emails). Each category has toggles for Email and In-App channels. Quiet hours setting with start/end time pickers. Save preferences button.",
      "navigates_to": [
        "account_profile"
      ]
    },
    {
      "page_id": "become_seller",
      "page_title": "Become a Seller",
      "route_path": "/account/become-seller",
      "route_params": [],
      "image_indices": [],
      "description": "Seller application page. Form with fields: store name, business type (individual/business), description/bio, tax ID (optional), payout method selection (bank account or PayPal) with relevant fields. Store policies textarea (return policy, shipping policy). Agreement to seller terms checkbox. Submit application button. Info section explaining seller benefits, fees, and requirements.",
      "navigates_to": [
        "account_profile",
        "seller_dashboard"
      ]
    },
    {
      "page_id": "seller_profile",
      "page_title": "Seller Store",
      "route_path": "/sellers/:sellerId",
      "route_params": [
        "sellerId"
      ],
      "image_indices": [],
      "description": "Public seller profile/store page. Header with store name, avatar, seller badges (Top Seller, Verified, Fast Shipper), member since date, location. Stats: overall rating (stars + number), total sales, total reviews, average ship time, response time. Tabs: 'Listings' (grid of active listings with filters), 'Reviews' (list of buyer reviews with star ratings, text, date, seller responses, filter by rating, sort by date/helpfulness). 'Message Seller' button opens modal. Listings tab shows seller's cards in same format as search results with sort/filter options.",
      "navigates_to": [
        "listing_detail",
        "search_results"
      ]
    },
    {
      "page_id": "seller_dashboard",
      "page_title": "Seller Dashboard",
      "route_path": "/seller/dashboard",
      "route_params": [],
      "image_indices": [],
      "description": "Seller's main dashboard with overview stats. Stat cards: Total Revenue, Total Sales, Active Listings, Pending Orders, Average Rating, Available Balance. Sales chart (line graph showing revenue over time with date range selector). Recent orders table: order number, buyer, items, total, status, date. Quick action buttons: 'Create Listing', 'View All Orders', 'View Payouts'. Notifications feed showing recent activity (new orders, offers, messages). Performance metrics: average ship time, response rate, dispute rate.",
      "navigates_to": [
        "seller_listings",
        "seller_orders",
        "seller_create_listing",
        "seller_offers",
        "seller_analytics",
        "seller_payouts",
        "messages_inbox"
      ]
    },
    {
      "page_id": "seller_listings",
      "page_title": "My Listings",
      "route_path": "/seller/listings",
      "route_params": [],
      "image_indices": [],
      "description": "Seller's listing management page. Table with columns: Image (thumbnail), Card Name, Set, Condition, Price, Quantity, Status (Active/Draft/Pending/Sold/Deactivated badge), Views, Favorites, Date Listed, Actions. Filter tabs: All, Active, Draft, Pending Review, Sold, Deactivated. Search bar to find listings. Sort by date, price, views. Action buttons per row: Edit (navigates to edit form), Deactivate/Reactivate toggle, Duplicate, Delete (confirmation modal with warning about pending orders). Bulk actions: select multiple and deactivate/delete. 'Create New Listing' button prominently placed. Pagination.",
      "navigates_to": [
        "seller_create_listing",
        "seller_dashboard"
      ]
    },
    {
      "page_id": "seller_create_listing",
      "page_title": "Create Listing",
      "route_path": "/seller/listings/create",
      "route_params": [],
      "image_indices": [],
      "description": "Multi-section form for creating a new listing. Section 1 - Card Selection: search input with autocomplete to find card from master catalog, displays selected card info (name, set, number, rarity, official artwork). Section 2 - Photos: drag-and-drop image upload area, minimum 2 required (front/back), maximum 10, supported formats shown, image preview thumbnails with reorder and delete. Section 3 - Condition: dropdown select from standardized list (Mint, Near Mint, Lightly Played, Moderately Played, Heavily Played, Damaged). Section 4 - Grading (optional toggle): if enabled shows grading service dropdown (PSA, BGS, CGC), grade input, certification number input. Section 5 - Pricing: price input field ($), quantity input (1-999), 'Accept Offers' toggle, minimum offer threshold input (shown when offers enabled). Section 6 - Description: textarea (max 2000 chars) with character counter. Section 7 - Shipping: shipping options checkboxes, shipping cost input. Preview button shows listing as buyers would see it. 'Save as Draft' and 'Submit for Review' buttons.",
      "navigates_to": [
        "seller_listings",
        "seller_dashboard"
      ]
    },
    {
      "page_id": "seller_edit_listing",
      "page_title": "Edit Listing",
      "route_path": "/seller/listings/:listingId/edit",
      "route_params": [
        "listingId"
      ],
      "image_indices": [],
      "description": "Same form layout as Create Listing but pre-populated with existing listing data. Card selection is read-only (cannot change card after creation). All other fields editable. Additional info shown: current views, favorites, date created. 'Update Listing' button saves changes. 'Cancel' returns to listings page. Warning banner if listing has pending orders (some fields may be restricted).",
      "navigates_to": [
        "seller_listings",
        "seller_dashboard"
      ]
    },
    {
      "page_id": "seller_orders",
      "page_title": "Seller Orders",
      "route_path": "/seller/orders",
      "route_params": [],
      "image_indices": [],
      "description": "Seller's order management page. Table with columns: Order Number, Date, Buyer, Items (thumbnails + count), Total, Status (badge), Ship By Date. Filter tabs: All, Pending (needs action), Processing, Shipped, Delivered, Completed, Cancelled. Sort by date, status. Clicking a row expands inline or navigates to detail showing: buyer shipping address, items with details, packing slip print button, 'Mark as Shipped' button (opens modal with carrier dropdown, tracking number input, submit button), order timeline. Bulk actions for printing packing slips. Fulfillment metrics shown: orders needing shipment count, average ship time, on-time rate.",
      "navigates_to": [
        "seller_dashboard"
      ]
    },
    {
      "page_id": "seller_offers",
      "page_title": "Manage Offers",
      "route_path": "/seller/offers",
      "route_params": [],
      "image_indices": [],
      "description": "Seller's offer management page. Table with columns: Card (thumbnail + name), Buyer, Offer Amount, Asking Price, Difference (%), Message, Date, Status (Pending/Accepted/Declined/Expired/Countered badge), Actions. Filter tabs: Pending, Accepted, Declined, Expired, All. For pending offers, action buttons: 'Accept' (confirmation modal), 'Decline' (modal with optional message), 'Counter' (modal with new price input and message). Auto-accept/auto-decline threshold settings accessible via settings icon. Sort by date, amount, percentage of asking price.",
      "navigates_to": [
        "seller_dashboard",
        "listing_detail"
      ]
    },
    {
      "page_id": "seller_analytics",
      "page_title": "Sales Analytics",
      "route_path": "/seller/analytics",
      "route_params": [],
      "image_indices": [],
      "description": "Seller analytics dashboard. Date range picker at top. Stat cards: Total Revenue, Total Orders, Average Order Value, Conversion Rate, Total Views. Charts: Revenue over time (line chart), Orders over time (bar chart), Top selling cards (horizontal bar chart), Sales by condition (pie chart), Sales by set (pie chart). Table of top performing listings: card name, views, sales, revenue, conversion rate. Traffic sources breakdown. Export reports button (CSV/PDF).",
      "navigates_to": [
        "seller_dashboard"
      ]
    },
    {
      "page_id": "seller_payouts",
      "page_title": "Payouts",
      "route_path": "/seller/payouts",
      "route_params": [],
      "image_indices": [],
      "description": "Seller payout management page. Balance summary cards: Available Balance, Pending Balance (in holding period), Total Earned. 'Request Payout' button (if manual payouts enabled). Payout history table: Date, Amount, Status (Pending/Processing/Completed/Failed badge), Method, Reference ID. Transaction breakdown table: Order Number, Sale Amount, Platform Fee, Processing Fee, Net Amount, Status, Date. Payout method settings: connected bank account or PayPal with edit option. Payout schedule info (automatic weekly/monthly or manual).",
      "navigates_to": [
        "seller_dashboard"
      ]
    },
    {
      "page_id": "messages_inbox",
      "page_title": "Messages",
      "route_path": "/messages",
      "route_params": [],
      "image_indices": [],
      "description": "Messaging inbox with two-panel layout. Left panel: list of conversations sorted by most recent, showing other user's avatar, name, last message preview, timestamp, unread badge. Search conversations bar. Right panel: selected conversation thread with messages displayed as chat bubbles (sent/received), timestamps, context card (linked listing or order if applicable), message input textarea with attach image button and send button. Archive and block options in conversation header. Empty state when no conversation selected.",
      "navigates_to": [
        "listing_detail",
        "order_detail",
        "seller_dashboard",
        "account_profile"
      ]
    },
    {
      "page_id": "notifications_page",
      "page_title": "Notifications",
      "route_path": "/notifications",
      "route_params": [],
      "image_indices": [],
      "description": "Full notifications page showing all notifications in chronological list. Each notification shows: icon (by type), title, description, timestamp, read/unread indicator. Types: order updates, new messages, offer responses, price alerts, review requests, dispute updates, promotional. 'Mark All as Read' button at top. Click notification navigates to relevant page (order, listing, conversation). Filter by type dropdown. Pagination or infinite scroll.",
      "navigates_to": [
        "order_detail",
        "listing_detail",
        "messages_inbox",
        "seller_offers"
      ]
    },
    {
      "page_id": "admin_dashboard",
      "page_title": "Admin Dashboard",
      "route_path": "/admin",
      "route_params": [],
      "image_indices": [],
      "description": "Admin overview dashboard with platform-wide metrics. Stat cards: Total Users, Active Listings, GMV (Gross Merchandise Value), Revenue from Fees, Pending Disputes, Moderation Queue count. Charts: GMV over time (line), New users over time (line), Transaction volume (bar), Revenue breakdown (pie). Recent activity feed: new registrations, flagged listings, open disputes. Quick links to all admin sections. Sidebar navigation to: Users, Listings Moderation, Disputes, Reports, Card Catalog, Promotions, Platform Settings, Analytics.",
      "navigates_to": [
        "admin_users",
        "admin_moderation",
        "admin_disputes",
        "admin_reports",
        "admin_card_catalog",
        "admin_promotions",
        "admin_settings",
        "admin_analytics"
      ]
    },
    {
      "page_id": "admin_users",
      "page_title": "User Management",
      "route_path": "/admin/users",
      "route_params": [],
      "image_indices": [],
      "description": "Admin user management page. Table with columns: Avatar, Username, Email, Role (badge: Buyer/Seller/Admin/Moderator), Status (Active/Suspended/Banned badge), Joined Date, Last Active, Total Orders, Total Listings, Actions. Search bar by name/email. Filters: role, status, date range. Actions per row: View Details (opens drawer with full profile, activity history, orders, listings, reviews, disputes), Suspend (modal with reason and duration), Ban (modal with reason), Verify Identity, Reset Password, Impersonate (with confirmation). Pagination. Export users button.",
      "navigates_to": [
        "admin_dashboard"
      ]
    },
    {
      "page_id": "admin_moderation",
      "page_title": "Listing Moderation",
      "route_path": "/admin/moderation",
      "route_params": [],
      "image_indices": [],
      "description": "Moderation queue for listings pending review. Queue count displayed. List/grid of pending listings showing: card images, card name, seller name, price, condition, date submitted. Each listing expandable or clickable to show full details including all images, description, grading info. Action buttons per listing: 'Approve' (makes listing active), 'Reject' (modal with reason selection and custom message to seller), 'Flag for Review' (escalate), 'Edit' (modify listing details). Filters: date submitted, seller (new vs trusted), flagged by system. Moderator notes field. History tab showing recently moderated listings with decisions.",
      "navigates_to": [
        "admin_dashboard"
      ]
    },
    {
      "page_id": "admin_disputes",
      "page_title": "Dispute Management",
      "route_path": "/admin/disputes",
      "route_params": [],
      "image_indices": [],
      "description": "Admin dispute management page. Table with columns: Dispute ID, Order Number, Buyer, Seller, Reason, Status (Open/Under Review/Resolved/Closed badge), Date Opened, Days Open, Priority. Filter tabs: Open, Under Review, Resolved, All. Sort by date, priority, age. Clicking a dispute opens detail view showing: dispute reason, buyer's description and evidence photos, seller's response and evidence, order details, communication history, timeline. Resolution actions: 'Full Refund' button, 'Partial Refund' (amount input), 'No Action' button, 'Request More Info' (from either party), 'Generate Return Label'. Resolution notes textarea. Dispute metrics: average resolution time, open count, resolution breakdown.",
      "navigates_to": [
        "admin_dashboard",
        "order_detail"
      ]
    },
    {
      "page_id": "admin_reports",
      "page_title": "Report Management",
      "route_path": "/admin/reports",
      "route_params": [],
      "image_indices": [],
      "description": "Admin page for managing user-submitted reports. Table with columns: Report ID, Reporter, Reported Item (Listing/User link), Reason, Status (New/Investigating/Resolved/Dismissed badge), Date, Actions. Filter by status, reason type, date. Detail view shows: report reason, reporter's description, reported content/user details, previous reports against same entity. Actions: 'Investigate' (change status), 'Remove Listing', 'Warn User', 'Suspend User', 'Dismiss Report' (with reason). Communication with reporter option. Resolution tracking.",
      "navigates_to": [
        "admin_dashboard"
      ]
    },
    {
      "page_id": "admin_card_catalog",
      "page_title": "Card Catalog Management",
      "route_path": "/admin/card-catalog",
      "route_params": [],
      "image_indices": [],
      "description": "Admin card catalog management. Tabs: Cards, Sets, Categories. Cards tab: searchable table with columns: Card Name, Pokemon, Set, Number, Rarity, Type, Listings Count, Actions (Edit/Delete). 'Add Card' button opens modal/form with fields: name, Pokemon name, set (dropdown), card number, rarity (dropdown), type (dropdown), HP, attacks (repeatable fields), abilities, weakness, resistance, retreat cost, official artwork upload. Sets tab: table of all sets with name, release date, total cards, series, actions. 'Add Set' button with form. Categories tab: tree view of categories with add/edit/delete. Bulk import button for card data (CSV upload).",
      "navigates_to": [
        "admin_dashboard"
      ]
    },
    {
      "page_id": "admin_promotions",
      "page_title": "Promotions Management",
      "route_path": "/admin/promotions",
      "route_params": [],
      "image_indices": [],
      "description": "Admin promotions and discount code management. Table of promotions: Code, Type (Percentage/Fixed), Discount Value, Min Purchase, Usage Limit, Used Count, Start Date, End Date, Status (Active/Expired/Disabled badge), Actions. 'Create Promotion' button opens form with fields: code (auto-generate option), discount type dropdown, discount value, minimum purchase amount, max total uses, max uses per user, start date, end date, restrict to specific users toggle, description. Edit and disable/enable actions per row. Usage analytics: total redemptions, revenue impact.",
      "navigates_to": [
        "admin_dashboard"
      ]
    },
    {
      "page_id": "admin_settings",
      "page_title": "Platform Settings",
      "route_path": "/admin/settings",
      "route_params": [],
      "image_indices": [],
      "description": "Platform configuration page with sections/tabs. Fees & Commission: platform commission rate (%), payment processing fee (% + fixed). Listings: moderation enabled toggle, auto-approve for trusted sellers toggle, max images per listing, min/max price. Orders: cart reservation duration (minutes), auto-complete days after delivery, seller ship-by days, dispute window days. Offers: min offer percentage, offer expiration hours, checkout time limit hours. Payouts: holding period days, payout schedule (manual/automatic), minimum payout amount. Shipping: supported carriers list, international shipping toggle. Each section has Save button. Feature flags section with toggles for various platform features.",
      "navigates_to": [
        "admin_dashboard"
      ]
    },
    {
      "page_id": "admin_analytics",
      "page_title": "Platform Analytics",
      "route_path": "/admin/analytics",
      "route_params": [],
      "image_indices": [],
      "description": "Comprehensive platform analytics page. Date range picker. KPI cards: GMV, Revenue, Active Users, New Registrations, Conversion Rate, Average Order Value. Charts: GMV trend (line), User growth (line), Listings created vs sold (dual bar), Revenue by fee type (stacked bar), Top 10 cards by sales volume (horizontal bar), Geographic distribution (map or table), Category breakdown (pie). Tables: top sellers by revenue, top cards by demand, busiest hours/days. Export custom reports button with date range and metric selection.",
      "navigates_to": [
        "admin_dashboard"
      ]
    }
  ],
  "shared_state": [
    {
      "key": "currentUser",
      "type": "{ id: string; email: string; displayName: string; role: 'guest' | 'buyer' | 'seller' | 'admin' | 'moderator'; avatarUrl: string | null; isEmailVerified: boolean; isSeller: boolean } | null",
      "initial_value": "null",
      "description": "Currently authenticated user information, used across all pages for auth checks, role-based UI rendering, and personalization"
    },
    {
      "key": "cartItemCount",
      "type": "number",
      "initial_value": "0",
      "description": "Number of items in the shopping cart, displayed as badge on cart icon in global header"
    },
    {
      "key": "unreadNotificationCount",
      "type": "number",
      "initial_value": "0",
      "description": "Count of unread notifications displayed on the notification bell icon in global header"
    },
    {
      "key": "unreadMessageCount",
      "type": "number",
      "initial_value": "0",
      "description": "Count of unread messages displayed on the messages icon in global header"
    },
    {
      "key": "cartId",
      "type": "string | null",
      "initial_value": "null",
      "description": "Active cart ID for the current user, used during shopping and checkout flow"
    }
  ],
  "default_route": "homepage",
  "design_system": {
    "theme_mode": "light",
    "density": "comfortable",
    "color_primary": "#E3350D",
    "color_success": "#52c41a",
    "color_warning": "#FFCB05",
    "color_error": "#ff4d4f",
    "color_bg_container": "#ffffff",
    "color_bg_layout": "#f7f8fa",
    "color_text": "#1a1a2e",
    "color_border": "#e0e0e0",
    "font_family": "Inter, -apple-system, sans-serif",
    "font_size_base": 14,
    "border_radius": 8,
    "component_overrides": {}
  }
}
