{"id":"restaurant-cafe","type":"soulcraft","role":"primary","status":"released","name":"Restaurant & Cafe","description":"Full-service restaurant and cafe platform for reservations, table management, menu curation, and kitchen operations","longDescription":"Complete restaurant and cafe management for dine-in, takeout, catering, and private dining — table reservations, menu engineering, kitchen display coordination, inventory tracking, and guest history. Handles walk-in seating alongside booked reservations.","version":"1.0.0","author":{"name":"Soulcraft Labs","email":"kits@soulcraft.com","url":"https://soulcraft.com"},"icon":"🍽️","tags":["restaurant","cafe","dining","food","reservations","kitchen"],"previewImageUrl":"kits/restaurant-cafe/images/preview.webp","variables":[{"key":"businessName","label":"Business Name","description":"The name of your restaurant or cafe (e.g. \"The Copper Table\")","type":"string","required":true,"example":"The Copper Table","default":"The Copper Table"},{"key":"tagline","label":"Tagline","description":"A short phrase shown under the logo (e.g. \"farm to fork, every day.\")","type":"string","required":false,"example":"farm to fork, every day.","default":"farm to fork, every day."},{"key":"locationName","label":"Location Name","description":"The display name for this specific location (e.g. \"The Copper Table Downtown\")","type":"string","required":true,"example":"The Copper Table Downtown"},{"key":"locationSlug","label":"Location URL Slug","description":"URL-safe identifier for this location used in reservation links (e.g. \"downtown\")","type":"string","required":true,"example":"downtown"},{"key":"address","label":"Street Address","description":"Street address of your restaurant (e.g. \"412 Main St\")","type":"address","required":true,"example":"412 Main St"},{"key":"city","label":"City","description":"City where your restaurant is located","type":"string","required":true,"example":"Portland"},{"key":"state","label":"State / Province","description":"Two-letter state or province code","type":"string","required":true,"example":"OR"},{"key":"zip","label":"ZIP / Postal Code","type":"string","required":true,"example":"97201"},{"key":"timezone","label":"Timezone","description":"IANA timezone for this location (used for scheduling)","type":"timezone","required":true,"example":"America/Los_Angeles","default":"America/New_York"},{"key":"phone","label":"Phone Number","type":"phone","required":true,"example":"(503) 555-0187"},{"key":"email","label":"Contact Email","type":"email","required":true,"example":"hello@thecoppertable.com"},{"key":"cuisineType","label":"Cuisine Type","description":"Primary cuisine style (e.g. \"American\", \"Italian\", \"Japanese\", \"Cafe & Bakery\")","type":"string","required":false,"example":"New American","default":"New American"}],"shared":{"industry":"food-beverage","category":"hospitality","glossary":{"cover":"A single seated guest — used to measure dining room capacity and turnover rate","turn":"The number of times a table is seated and cleared during a service period","mise en place":"The complete preparation and organization of ingredients and tools before service begins","86'd":"An item that is no longer available for the current service, either sold out or pulled from the menu","ticket":"A printed or digital order sent from the POS to the kitchen display for preparation","comp":"A menu item served at no charge, typically for guest recovery or staff meals"},"aiExpertise":["restaurant and cafe operations and service flow","reservation management and table turn optimization","menu engineering, food costing, and pricing strategy","kitchen workflow and ticket pacing","food safety, allergen awareness, and dietary accommodation"],"dataModelHints":["booking","experience","time_slot","staff","customer","inventory_item","menu_item","loyalty_account","transaction"],"dataModel":{"entities":[{"domain":"location","type":"Location","description":"A physical restaurant or cafe location with its own floor plan, table layout, menu, and kitchen.","products":{"workshop":{"view":"graph","icon":"📍"},"venue":{"mapsTo":"LocationMeta","pos":false}}},{"domain":"booking","type":"Event","description":"A table reservation for a specific party size, date, and time — with optional seating preferences and special occasion notes.","products":{"workshop":{"view":"board","icon":"📅"},"venue":{"mapsTo":"BookingMeta","pos":true},"academy":{"mapsTo":"practice-session","assessable":true}}},{"domain":"time_slot","type":"Event","description":"An available reservation slot at a specific time, tied to table availability and service period capacity.","products":{"workshop":{"view":"timeline","icon":"🕐"},"venue":{"mapsTo":"TimeSlotMeta","pos":false}}},{"domain":"experience","type":"Product","description":"A dining experience type such as Dine-In, Takeout/Pickup, Catering Event, or Private Dining — each with its own flow, duration, and pricing model.","products":{"workshop":{"view":"gallery","icon":"🍽️"},"venue":{"mapsTo":"ExperienceMeta","pos":true},"academy":{"mapsTo":"skill-unit","assessable":true}}},{"domain":"menu_item","type":"Thing","description":"A dish, drink, or dessert on the menu with price, category, dietary flags, allergen info, and prep time.","products":{"workshop":{"view":"board","icon":"🍴"},"venue":{"mapsTo":"InventoryItemMeta","pos":true},"academy":{"mapsTo":"material","assessable":false}}},{"domain":"customer","type":"Person","description":"A restaurant guest with reservation history, dietary preferences, seating preferences, and loyalty account.","products":{"workshop":{"view":"board","icon":"👤"},"venue":{"mapsTo":"CustomerMeta","pos":false},"academy":{"mapsTo":"learner","assessable":false}}},{"domain":"staff","type":"Person","description":"A team member — head chef, line cook, server, host, bartender, barista, or manager — with their schedule, role, and section assignments.","products":{"workshop":{"view":"board","icon":"👨‍🍳"},"venue":{"mapsTo":"StaffMeta","pos":false},"academy":{"mapsTo":"instructor","assessable":false}}},{"domain":"transaction","type":"Measurement","description":"A revenue or refund record for a dining check, takeout order, or catering invoice, always stored in cents.","products":{"workshop":{"view":"timeline","icon":"💳"},"venue":{"mapsTo":"TransactionMeta","pos":false}}},{"domain":"inventory_item","type":"Thing","description":"A kitchen supply or ingredient — fresh produce, proteins, dry goods, beverages, or packaging — tracked for usage, waste, and reorder.","products":{"workshop":{"view":"graph","icon":"📦"},"venue":{"mapsTo":"InventoryItemMeta","pos":false},"academy":{"mapsTo":"material","assessable":false}}},{"domain":"gift_card","type":"Thing","description":"A digital or physical gift card redeemable for dine-in, takeout, or catering services.","products":{"workshop":{"view":"board","icon":"🎁"},"venue":{"mapsTo":"GiftCardMeta","pos":true}}},{"domain":"loyalty_account","type":"Person","description":"A guest loyalty account tracking visits and spend, with tier rewards for frequent diners.","products":{"workshop":{"view":"stats","icon":"⭐"},"venue":{"mapsTo":"LoyaltyAccountMeta","pos":false}}},{"domain":"content_page","type":"Document","description":"A CMS-managed page such as Menu, About Us, Private Events, or Catering.","products":{"workshop":{"view":"board","icon":"📄"},"venue":{"mapsTo":"ContentPageMeta","pos":false},"academy":{"mapsTo":"learning-resource","assessable":false}}},{"domain":"blog_post","type":"Document","description":"A published post featuring seasonal menus, chef spotlights, sourcing stories, or event recaps.","products":{"workshop":{"view":"board","icon":"✍️"},"venue":{"mapsTo":"BlogPostMeta","pos":false},"academy":{"mapsTo":"learning-resource","assessable":false}}}],"relationships":[{"from":"customer","to":"booking","verb":"Creates","description":"Guest makes a reservation for a specific date, time, and party size."},{"from":"booking","to":"experience","verb":"Contains","description":"Reservation is for a specific dining experience (dine-in, private dining, catering)."},{"from":"booking","to":"time_slot","verb":"ParticipatesIn","description":"Reservation occupies a specific time slot within the service period."},{"from":"experience","to":"time_slot","verb":"OccursAt","description":"A dining experience is available at scheduled reservation slots."},{"from":"staff","to":"time_slot","verb":"ParticipatesIn","description":"A server, host, or bartender is assigned to a section or station during a service period."},{"from":"experience","to":"menu_item","verb":"Contains","description":"A dining experience includes access to the menu — dine-in sees the full menu, catering uses a curated selection."},{"from":"menu_item","to":"inventory_item","verb":"Consumes","description":"Each dish consumes specific ingredients tracked for prep, waste, and reorder."},{"from":"transaction","to":"booking","verb":"References","description":"Payment or refund record links back to the dining reservation or takeout order."}]},"suggestions":[{"label":"Table turn rates tonight","prompt":"Show me table turn rates and cover counts for tonight's dinner service — where are the bottlenecks?"},{"label":"Menu item profitability","prompt":"Break down food cost percentage and margin for each menu category this month"},{"label":"Reservation trends","prompt":"What are the busiest reservation windows this week and where do we have open capacity?"},{"label":"Inventory usage report","prompt":"Which ingredients are running low and need to be reordered before the weekend?"}]},"workshop":{"aiPersona":{"role":"You are the AI assistant for a restaurant and cafe. You help chefs, managers, and front-of-house staff manage reservations, menu engineering, kitchen inventory, and service flow. You understand the business of food — from plate costing and allergen safety to table turn optimization and seasonal menu planning.","expertise":["reservation management and table turn optimization","menu engineering, food costing, and pricing strategy","kitchen inventory and ingredient sourcing","front-of-house service flow and section management","restaurant and cafe operations"],"tone":"collaborator"},"graphGuidance":{"conceptCreation":{"triggers":["reservation or booking mentioned","menu item, dish, or drink introduced","chef, server, or kitchen staff referenced","ingredient or kitchen supply mentioned","guest or regular diner discussed"],"typeMapping":{"reservation":"event","booking":"event","time slot":"event","chef":"person","server":"person","bartender":"person","barista":"person","host":"person","guest":"person","customer":"person","ingredient":"thing","supply":"thing","menu item":"thing","dish":"thing","experience":"product","transaction":"measurement"}},"relationshipPatterns":[{"from":"customer","to":"booking","verb":"Creates","description":"Guest makes a reservation for a specific date and party size"},{"from":"staff","to":"booking","verb":"ParticipatesIn","description":"Server or host manages the table during the guest's visit"},{"from":"booking","to":"experience","verb":"Contains","description":"Reservation is for a specific dining experience (dine-in, catering, private)"},{"from":"menu_item","to":"inventory_item","verb":"Consumes","description":"Each dish consumes ingredients tracked for prep and reorder"}],"rules":["Menu items must include allergen flags and dietary accommodation notes","Catering and private dining experiences require advance deposit confirmation","Kitchen inventory should track par levels and trigger reorder alerts at threshold"]},"workspaceConfig":{"paradigm":"analyst","defaultTab":"explore","defaultView":"board"},"qualityGates":{"projectChecks":["All menu items have accurate food cost percentages and allergen flags","Each service period has configured table capacity and reservation slots","Kitchen inventory par levels and reorder thresholds are set for all categories"]},"remoteWorkspace":{"connectedWorkbenches":[{"name":"Reservation Board","view":"board","entityTypes":["booking","time_slot"],"description":"Tonight's reservations with table assignments, party sizes, and seating preferences"},{"name":"Guest Directory","view":"gallery","entityTypes":["customer"],"description":"Guest profiles with visit history, dietary preferences, and special occasion notes"},{"name":"Revenue by Service","view":"stats","entityTypes":["transaction"],"description":"Revenue breakdown across dine-in, takeout, catering, and private dining"},{"name":"Staff Schedule","view":"board","entityTypes":["staff","time_slot"],"description":"Front-of-house and kitchen staff shifts with section and station assignments"},{"name":"Menu & Inventory","view":"tree","entityTypes":["menu_item","inventory_item"],"description":"Menu items organized by category with ingredient usage, food cost, and stock levels"}]}},"academy":{"skillPath":"food-service-fundamentals","level":"beginner","learningObjectives":["Understanding kitchen brigade hierarchy and station responsibilities","Food safety fundamentals — temperature control, cross-contamination prevention, and allergen management","Basic knife skills, mise en place, and prep workflow","Menu engineering — balancing food cost, plate presentation, and guest value perception","Front-of-house service standards — greeting, pacing, upselling, and guest recovery"],"assessmentTypes":["hands-on"],"mode":"apprenticeship","tutorPersona":{"inheritsFrom":"workshop.aiPersona","method":"direct","encouragementLevel":"challenging","flashcardsEnabled":false},"certification":{"requiresHumanCertifier":true,"aiCertifierAllowed":false,"lineageEnabled":true,"minimumLineageDepth":2,"certificationSlug":"food-service-fundamentals"},"gamification":{"enabled":true,"achievements":["chain-maker","deep-thinker","bridge-builder"],"streaks":false,"leaderboard":false},"cohort":{"maxSize":4,"durationDays":90,"fixedStart":false}},"venue":{"bookingNumberPrefix":"RC","subdomainPrefix":"restaurant","features":{"animals":false,"adoption":false,"memories":false,"loyalty":true,"giftCards":true,"waivers":false,"blog":true,"pos":true,"cms":true,"partners":false,"franchise":true,"customerAccounts":true,"booking":true,"inventory":true,"analytics":true,"subscriptions":false,"support":false,"website":true},"theme":{"primary":"oklch(0.50 0.10 55)","bgBase":"oklch(0.97 0.01 60)","accent":"oklch(0.45 0.12 15)","textPrimary":"oklch(0.22 0.03 50)","displayFont":"Playfair Display","bodyFont":"Inter"},"experienceTypes":[{"slug":"dine-in","name":"Dine-In","description":"Full table service with your choice from the current menu. Reservations recommended for dinner service, walk-ins welcome subject to availability.","priceInCents":0,"durationMinutes":90,"minGuests":1,"maxGuests":8,"requiresWaiver":false,"isCombo":false,"sortOrder":0,"color":"oklch(0.65 0.10 55)","sessionAttributeDefinitions":[{"key":"tableNumber","label":"Table Number","type":"text","perGuest":false,"required":false},{"key":"serverName","label":"Server Name","type":"text","perGuest":false,"required":false},{"key":"dietaryNotes","label":"Dietary Notes","type":"text","perGuest":false,"required":false},{"key":"specialOccasion","label":"Special Occasion","type":"text","perGuest":false,"required":false}]},{"slug":"takeout-pickup","name":"Takeout / Pickup","description":"Order ahead for pickup at the counter. Full menu available with packaging optimized for transport.","priceInCents":0,"durationMinutes":20,"minGuests":1,"maxGuests":1,"requiresWaiver":false,"isCombo":false,"sortOrder":1,"color":"oklch(0.60 0.08 140)","sessionAttributeDefinitions":[{"key":"pickupTime","label":"Pickup Time","type":"text","perGuest":false,"required":true},{"key":"orderNotes","label":"Order Notes","type":"text","perGuest":false,"required":false}]},{"slug":"catering-event","name":"Catering Event","description":"Full-service or drop-off catering for corporate events, weddings, and private parties. Custom menus built with the chef, minimum 20 guests.","priceInCents":7500,"durationMinutes":240,"minGuests":20,"maxGuests":200,"requiresWaiver":false,"isCombo":false,"sortOrder":2,"color":"oklch(0.55 0.12 280)","sessionAttributeDefinitions":[{"key":"eventType","label":"Event Type","type":"text","perGuest":false,"required":true},{"key":"menuSelection","label":"Menu Selection","type":"text","perGuest":false,"required":false},{"key":"venueAddress","label":"Venue Address","type":"text","perGuest":false,"required":false},{"key":"dietaryRequirements","label":"Dietary Requirements","type":"text","perGuest":false,"required":false},{"key":"serviceNotes","label":"Service Notes","type":"text","perGuest":false,"required":false}]},{"slug":"private-dining","name":"Private Dining","description":"Exclusive use of the private dining room with a prix fixe or custom menu. Ideal for celebrations, business dinners, and tasting events.","priceInCents":12500,"durationMinutes":120,"minGuests":6,"maxGuests":24,"requiresWaiver":false,"isCombo":false,"sortOrder":3,"color":"oklch(0.45 0.10 15)","sessionAttributeDefinitions":[{"key":"serverName","label":"Server Name","type":"text","perGuest":false,"required":false},{"key":"menuSelection","label":"Menu Selection","type":"text","perGuest":false,"required":true},{"key":"specialOccasion","label":"Special Occasion","type":"text","perGuest":false,"required":false},{"key":"dietaryRequirements","label":"Dietary Requirements","type":"text","perGuest":false,"required":false},{"key":"serviceNotes","label":"Service Notes","type":"text","perGuest":false,"required":false}]}],"inventoryCategories":[{"id":"fresh-produce","label":"Fresh Produce","icon":"🥬"},{"id":"proteins-dairy","label":"Proteins & Dairy","icon":"🥩"},{"id":"dry-goods-pantry","label":"Dry Goods & Pantry","icon":"🫙"},{"id":"beverages","label":"Beverages","icon":"🍷"},{"id":"supplies-packaging","label":"Supplies & Packaging","icon":"📦"}],"staffRoles":[{"id":"head-chef","label":"Head Chef","defaultCapabilities":["session-log","inventory-view","inventory-edit"]},{"id":"line-cook","label":"Line Cook","defaultCapabilities":["session-log","inventory-view"]},{"id":"server","label":"Server","defaultCapabilities":["checkin","pos","session-log"]},{"id":"host-hostess","label":"Host / Hostess","defaultCapabilities":["checkin","bookings-view","session-log"]},{"id":"bartender","label":"Bartender","defaultCapabilities":["pos","session-log","inventory-view"]},{"id":"barista","label":"Barista","defaultCapabilities":["pos","session-log"]},{"id":"manager","label":"Manager","defaultCapabilities":["checkin","pos","session-log","bookings-view","inventory-view","inventory-edit"]}],"chatSuggestions":[{"label":"Make a reservation","message":"I'd like to make a reservation. What times are available?","emoji":"📅"},{"label":"See the menu","message":"Can I see your current menu? I have some dietary restrictions I'd like to ask about.","emoji":"📋"},{"label":"Private dining","message":"I'm interested in booking your private dining room for a special event. What are the options?","emoji":"🥂"},{"label":"Gift cards","message":"I'd like to purchase a gift card. What denominations do you offer?","emoji":"🎁"}],"inventoryLevelDetection":"manual","stations":[{"id":"pos","label":"Point of Sale","route":"/api/manage/pos","icon":"💳","roles":["staff","manager","owner"],"scope":"platform","context":"physical"},{"id":"checkin","label":"Check-in","route":"/api/manage/checkin","icon":"✅","roles":["staff","manager","owner"],"scope":"platform","context":"physical"},{"id":"bookings","label":"Bookings","route":"/api/manage/bookings","icon":"📅","roles":["manager","owner"],"scope":"platform","context":"both"},{"id":"schedule","label":"Schedule","route":"/api/manage/schedule","icon":"🗓️","roles":["manager","owner"],"scope":"platform","context":"both"},{"id":"customers","label":"Customers","route":"/api/manage/customers","icon":"👥","roles":["manager","owner"],"scope":"platform","context":"both"},{"id":"inventory","label":"Inventory","route":"/api/manage/inventory","icon":"📦","roles":["manager","owner"],"scope":"platform","context":"both"},{"id":"financials","label":"Financials","route":"/api/manage/financials","icon":"💰","roles":["owner"],"scope":"platform","context":"both"},{"id":"staff","label":"Staff","route":"/api/manage/staff","icon":"👤","roles":["owner"],"scope":"platform","context":"both"},{"id":"analytics","label":"Analytics","route":"/api/manage/analytics","icon":"📊","roles":["manager","owner"],"scope":"platform","context":"both"},{"id":"settings","label":"Settings","route":"/api/manage/settings","icon":"⚙️","roles":["owner"],"scope":"platform","context":"both"},{"id":"kitchen-display","label":"Kitchen Display","route":"/api/manage/kitchen-display","icon":"🖥️","roles":["staff","manager","owner"],"scope":"kit","context":"physical"}],"fees":{"billingModel":"per-transaction","feeMode":"all-channels"}}}