{"id":"yoga-studio","type":"soulcraft","role":"primary","status":"draft","name":"Yoga Studio","description":"Boutique single-discipline yoga studio. Class-schedule bookings, private sessions, and class-pack or membership passes for a small, dedicated practice space.","longDescription":"A turnkey platform for boutique yoga studios: a named class schedule (Vinyasa Flow, Restorative Yin, Power Hour), private 1:1 sessions, class packs and monthly memberships, and a starter mat-and-prop inventory. Built for a single practice room, not a multi-modality gym — the schedule, terminology, and starter data all assume one discipline taught by a small teaching team.","version":"1.0.0","author":{"name":"Soulcraft Labs","email":"kits@soulcraft.com","url":"https://soulcraft.com"},"icon":"🧘","tags":["yoga","wellness","studio","classes","membership","mindfulness"],"previewImageUrl":"kits/yoga-studio/images/preview.svg","variables":[{"key":"businessName","label":"Business Name","description":"The name of your yoga studio (e.g. \"Still Water Yoga\")","type":"string","required":true,"example":"Still Water Yoga","default":"Still Water Yoga"},{"key":"tagline","label":"Tagline","description":"A short phrase describing your studio (shown under the logo)","type":"string","required":false,"example":"breathe. move. stay a while.","default":"breathe. move. stay a while."},{"key":"locationName","label":"Location Name","description":"The display name for this specific location (e.g. \"Still Water Yoga Uptown\")","type":"string","required":true,"example":"Still Water Yoga Uptown"},{"key":"locationSlug","label":"Location URL Slug","description":"URL-safe identifier for this location used in booking links (e.g. \"uptown\")","type":"string","required":true,"example":"uptown"},{"key":"address","label":"Street Address","description":"Street address of your studio","type":"address","required":true,"example":"212 Willow Street, 2nd Floor"},{"key":"city","label":"City","description":"City where your studio is located","type":"string","required":true,"example":"Boulder"},{"key":"state","label":"State / Province","description":"Two-letter state or province code","type":"string","required":true,"example":"CO"},{"key":"zip","label":"ZIP / Postal Code","type":"string","required":true,"example":"80302"},{"key":"timezone","label":"Timezone","description":"IANA timezone for this location (used for scheduling)","type":"timezone","required":true,"example":"America/Denver","default":"America/New_York"},{"key":"phone","label":"Phone Number","type":"phone","required":true,"example":"(303) 555-0119"},{"key":"email","label":"Contact Email","type":"email","required":true,"example":"hello@stillwateryoga.com"},{"key":"instagram","label":"Instagram Handle","description":"Instagram username without the @","type":"string","required":false,"example":"stillwateryoga"},{"key":"facebook","label":"Facebook Page","description":"Facebook page name or URL slug","type":"string","required":false,"example":"StillWaterYogaBoulder"},{"key":"maxMatCapacity","label":"Studio Room Capacity (mats)","description":"Maximum number of mats that fit in your practice room at one time","type":"number","required":false,"example":"20","default":"20"}],"shared":{"industry":"yoga-studio","category":"wellness","glossary":{"vinyasa":"A flowing yoga style linking breath to movement, moving continuously between poses","restorative":"A slow, prop-supported style where poses are held for several minutes to allow deep relaxation","savasana":"The final resting pose at the end of nearly every class — lying still, eyes closed, a few minutes of stillness","drop-in":"A single class attended without a membership or pack — pay per class","class pack":"A pre-paid bundle of classes (e.g. a 5-class pack) redeemed one class at a time","mat spot":"A single practitioner's space on the studio floor — the unit the room's capacity is counted in"},"aiExpertise":["yoga studio class scheduling and room capacity","class pack and membership sales coordination","private session scheduling","teacher assignment and studio-room utilization","member retention and attendance patterns"],"dataModelHints":["booking","experience","time_slot","staff","customer","inventory_item","gift_card","loyalty_account","transaction"],"dataModel":{"entities":[{"domain":"location","type":"Location","description":"A physical yoga studio with a single practice room, class schedule, and small retail counter.","products":{"workshop":{"view":"graph","icon":"📍"},"venue":{"mapsTo":"LocationMeta","pos":false}}},{"domain":"booking","type":"Event","description":"A class reservation, private session booking, or a class-pack / membership inquiry.","products":{"workshop":{"view":"board","icon":"📅"},"venue":{"mapsTo":"BookingMeta","pos":true},"academy":{"mapsTo":"practice-session","assessable":true}}},{"domain":"time_slot","type":"Event","description":"A scheduled class or private session with mat capacity and teacher assignment.","products":{"workshop":{"view":"timeline","icon":"🕐"},"venue":{"mapsTo":"TimeSlotMeta","pos":false}}},{"domain":"experience","type":"Product","description":"A class or session type such as Vinyasa Flow, Restorative Yin, Power Hour, Private Session, or a class pack / membership.","products":{"workshop":{"view":"gallery","icon":"🧘"},"venue":{"mapsTo":"ExperienceMeta","pos":true},"academy":{"mapsTo":"skill-unit","assessable":true}}},{"domain":"customer","type":"Person","description":"A student who attends classes, holds a pack or membership, and may return for private sessions.","products":{"workshop":{"view":"board","icon":"👤"},"venue":{"mapsTo":"CustomerMeta","pos":false},"academy":{"mapsTo":"learner","assessable":false}}},{"domain":"staff","type":"Person","description":"A lead teacher, guest teacher, or front-desk staff member.","products":{"workshop":{"view":"board","icon":"🧑‍🏫"},"venue":{"mapsTo":"StaffMeta","pos":false},"academy":{"mapsTo":"instructor","assessable":false}}},{"domain":"inventory_item","type":"Thing","description":"Mats, blocks, straps, bolsters, retail apparel, or wellness-bar items.","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 classes, private sessions, or a pack/membership.","products":{"workshop":{"view":"board","icon":"🎁"},"venue":{"mapsTo":"GiftCardMeta","pos":true}}},{"domain":"loyalty_account","type":"Person","description":"A student's loyalty account tracking attendance milestones and reward tier benefits.","products":{"workshop":{"view":"stats","icon":"⭐"},"venue":{"mapsTo":"LoyaltyAccountMeta","pos":false}}},{"domain":"transaction","type":"Measurement","description":"A revenue or refund record for a drop-in class, private session, pack, or membership, always in cents.","products":{"workshop":{"view":"timeline","icon":"💳"},"venue":{"mapsTo":"TransactionMeta","pos":false}}},{"domain":"content_page","type":"Document","description":"A CMS-managed page such as About the Studio, Class Descriptions, or Membership Options.","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 covering practice tips, teacher spotlights, or studio stories.","products":{"workshop":{"view":"board","icon":"✍️"},"venue":{"mapsTo":"BlogPostMeta","pos":false},"academy":{"mapsTo":"learning-resource","assessable":false}}}],"relationships":[{"from":"customer","to":"booking","verb":"Creates","description":"Student books a class, private session, or requests a pack/membership."},{"from":"booking","to":"experience","verb":"Contains","description":"Booking is for a specific class format, private session, or pack/membership."},{"from":"booking","to":"time_slot","verb":"ParticipatesIn","description":"Booking occupies a mat spot in a specific scheduled class."},{"from":"experience","to":"time_slot","verb":"OccursAt","description":"A class format is offered at scheduled session slots."},{"from":"staff","to":"time_slot","verb":"ParticipatesIn","description":"A teacher is assigned to lead a specific class or private session."},{"from":"transaction","to":"booking","verb":"References","description":"Payment or refund record links back to the class or session booking it covers."}]},"suggestions":[{"label":"Today's class schedule","prompt":"Show me today's classes and how full each one is"},{"label":"Teacher assignments this week","prompt":"Which teacher is leading each class this week, and does anyone have a heavy load?"},{"label":"Pack and membership inquiries","prompt":"Show me pending class-pack and membership inquiries that need a follow-up"},{"label":"Attendance by class format","prompt":"Compare attendance across Vinyasa Flow, Restorative Yin, and Power Hour for the last 90 days"}]},"workshop":{"aiPersona":{"role":"You are the AI assistant for a boutique yoga studio. You help the studio manager track class attendance, teacher assignments, pack and membership inquiries, and revenue across a single-discipline class schedule.","expertise":["yoga studio scheduling and mat-spot capacity","class pack and membership sales coordination","teacher assignment and studio-room utilization","student retention and attendance analytics","retail and wellness-bar inventory"],"tone":"collaborator"},"graphGuidance":{"conceptCreation":{"triggers":["class booking or private session mentioned","teacher introduced","class pack or membership referenced","class format discussed (vinyasa, restorative, power)","mat, prop, or retail inventory mentioned"],"typeMapping":{"booking":"event","class reservation":"event","private session":"event","time slot":"event","teacher":"person","student":"person","customer":"person","mat":"thing","prop":"thing","experience":"product","membership":"product","transaction":"measurement"}},"relationshipPatterns":[{"from":"customer","to":"booking","verb":"Creates","description":"Student books a class or private session"},{"from":"staff","to":"booking","verb":"ParticipatesIn","description":"Teacher leads the session"},{"from":"booking","to":"experience","verb":"Contains","description":"Booking is for a specific class format or session"}],"rules":["New students should sign a liability waiver before their first class","Class bookings should respect the mat-spot capacity of the room","Private sessions must be assigned to a specific teacher"]},"workspaceConfig":{"paradigm":"analyst","defaultTab":"explore","defaultView":"board"},"qualityGates":{"projectChecks":["All class formats have a waiver requirement set for first-time students","Teacher assignments are configured for all active class time slots","Pack and membership pricing is accurate in the Experiences station"]},"remoteWorkspace":{"connectedWorkbenches":[{"name":"Class Schedule","view":"board","entityTypes":["time_slot","booking"],"description":"Daily class grid with teacher assignments, mat capacity, and waitlist status"},{"name":"Student Overview","view":"gallery","entityTypes":["customer"],"description":"Active students with attendance streaks and last-visit date"},{"name":"Teacher Assignments","view":"board","entityTypes":["staff"],"description":"Teacher schedules with class counts and format specialties"},{"name":"Revenue by Class Format","view":"stats","entityTypes":["transaction"],"description":"Drop-in, private session, and pack/membership revenue broken down by format"}]}},"academy":{"skillPath":"yoga-teaching-fundamentals","level":"beginner","learningObjectives":["Reading a class schedule and picking the right format for your goals","Foundational breath work and its role in a vinyasa practice","Safe alignment cues for common standing and seated poses","The purpose of restorative practice and prop support","Studio etiquette and mat spacing norms"],"assessmentTypes":["hands-on"],"mode":"apprenticeship","tutorPersona":{"inheritsFrom":"workshop.aiPersona","method":"socratic","encouragementLevel":"warm","flashcardsEnabled":false},"certification":{"requiresHumanCertifier":true,"aiCertifierAllowed":false,"lineageEnabled":true,"certificationSlug":"studio-member"},"gamification":{"enabled":true,"achievements":["streak","connector"],"streaks":true,"leaderboard":false},"cohort":{"maxSize":20,"durationDays":30,"fixedStart":false}},"venue":{"bookingNumberPrefix":"YG","subdomainPrefix":"yoga","features":{"animals":false,"adoption":false,"memories":false,"loyalty":true,"giftCards":true,"waivers":true,"blog":true,"pos":true,"cms":true,"partners":false,"franchise":true,"customerAccounts":true},"theme":{"primary":"oklch(0.52 0.07 155)","bgBase":"oklch(0.97 0.012 90)","accent":"oklch(0.62 0.09 40)","textPrimary":"oklch(0.24 0.02 150)","displayFont":"Spectral","bodyFont":"Inter"},"experienceTypes":[{"slug":"vinyasa-flow","name":"Vinyasa Flow","description":"A flowing, breath-linked practice that moves continuously between poses. Builds heat, strength, and focus. Our most popular class — great for all levels, with options offered throughout.","priceInCents":2400,"durationMinutes":60,"minGuests":1,"maxGuests":20,"requiresWaiver":true,"isCombo":false,"sortOrder":0,"color":"oklch(0.58 0.09 155)","imageUrl":"kits/yoga-studio/images/vinyasa-flow.svg","sessionAttributeDefinitions":[{"key":"instructorName","label":"Teacher","type":"text","perGuest":false,"required":false},{"key":"level","label":"Level","type":"select","perGuest":true,"options":["all-levels","beginner","intermediate"],"required":false}]},{"slug":"restorative-yin","name":"Restorative Yin","description":"A slow, prop-supported practice where poses are held for several minutes. Deep stretching, nervous-system reset, no strength or flexibility required. Bolsters and blankets provided.","priceInCents":2600,"durationMinutes":75,"minGuests":1,"maxGuests":16,"requiresWaiver":true,"isCombo":false,"sortOrder":1,"color":"oklch(0.65 0.06 250)","imageUrl":"kits/yoga-studio/images/restorative-yin.svg","sessionAttributeDefinitions":[{"key":"instructorName","label":"Teacher","type":"text","perGuest":false,"required":false},{"key":"level","label":"Level","type":"select","perGuest":true,"options":["all-levels"],"required":false}]},{"slug":"power-hour","name":"Power Hour","description":"A faster-paced, strength-focused class set to music. Expect core work, arm balances, and a real sweat. The studio's most physically demanding format.","priceInCents":2200,"durationMinutes":45,"minGuests":1,"maxGuests":20,"requiresWaiver":true,"isCombo":false,"sortOrder":2,"color":"oklch(0.55 0.14 30)","imageUrl":"kits/yoga-studio/images/power-hour.svg","sessionAttributeDefinitions":[{"key":"instructorName","label":"Teacher","type":"text","perGuest":false,"required":false},{"key":"level","label":"Level","type":"select","perGuest":true,"options":["intermediate","advanced"],"required":false}]},{"slug":"private-session","name":"Private 1:1 Session","description":"One-on-one time with a teacher, built around your goals — alignment work, a specific pose, prenatal modifications, or just a quieter practice than the group room offers.","priceInCents":9000,"durationMinutes":60,"minGuests":1,"maxGuests":1,"requiresWaiver":true,"isCombo":false,"sortOrder":3,"color":"oklch(0.50 0.08 170)","imageUrl":"kits/yoga-studio/images/private-session.svg","sessionAttributeDefinitions":[{"key":"instructorName","label":"Teacher","type":"text","perGuest":false,"required":false},{"key":"focusArea","label":"Session Focus","type":"text","perGuest":false,"required":false}]},{"slug":"five-class-pack","name":"5-Class Pack","description":"Five classes, any format, no expiration pressure — use them at your own pace. The easiest way to try the studio regularly before committing to a membership.","priceInCents":9500,"durationMinutes":60,"minGuests":1,"maxGuests":1,"requiresWaiver":true,"isCombo":false,"bookingMode":"inquiry","sortOrder":4,"color":"oklch(0.60 0.07 100)","imageUrl":"kits/yoga-studio/images/five-class-pack.svg","sessionAttributeDefinitions":[]},{"slug":"monthly-unlimited","name":"Monthly Unlimited","description":"Unlimited classes for 30 days, any format. Best value if you're coming 3 or more times a week. Set up at the front desk — we'll walk you through it in a couple minutes.","priceInCents":13500,"durationMinutes":60,"minGuests":1,"maxGuests":1,"requiresWaiver":true,"isCombo":false,"bookingMode":"inquiry","sortOrder":5,"color":"oklch(0.55 0.09 150)","imageUrl":"kits/yoga-studio/images/monthly-unlimited.svg","sessionAttributeDefinitions":[]},{"slug":"private-studio-buyout","name":"Private Studio Buyout","description":"Reserve the whole room for a workshop, retreat day, teacher training, or corporate wellness event. We'll help plan the format around your group's goals.","priceInCents":3500,"durationMinutes":120,"minGuests":10,"maxGuests":25,"requiresWaiver":true,"isCombo":false,"bookingMode":"inquiry","blocksVenue":true,"sortOrder":6,"color":"oklch(0.48 0.07 40)","imageUrl":"kits/yoga-studio/images/private-studio-buyout.svg","pricingTiers":[{"minGuests":10,"maxGuests":16,"pricePerPersonInCents":3500},{"minGuests":17,"maxGuests":25,"pricePerPersonInCents":2800}],"sessionAttributeDefinitions":[{"key":"focusArea","label":"Event Focus","type":"text","perGuest":false,"required":false}]}],"inventoryCategories":[{"id":"mats-props","label":"Mats & Props","icon":"🧘"},{"id":"retail-apparel","label":"Retail Apparel","icon":"👕"},{"id":"wellness-bar","label":"Wellness Bar","icon":"🍵"},{"id":"cleaning-supplies","label":"Cleaning Supplies","icon":"🧹"},{"id":"office-supplies","label":"Office Supplies","icon":"📎"}],"staffRoles":[{"id":"lead-teacher","label":"Lead Teacher","defaultCapabilities":["checkin","pos","session-log","inventory-view","bookings-view"]},{"id":"guest-teacher","label":"Guest Teacher","defaultCapabilities":["checkin","session-log"]},{"id":"front-desk","label":"Front Desk","defaultCapabilities":["checkin","pos","bookings-view"]}],"chatSuggestions":[{"label":"Find a class","message":"I'd like to drop into a class today. What's on the schedule?","emoji":"🧘"},{"label":"Pack and membership options","message":"What class packs and memberships do you offer?","emoji":"💚"},{"label":"Book a private session","message":"I'm interested in a private 1:1 session. How do I get started?","emoji":"🤝"},{"label":"Gift cards","message":"I'd like to buy a gift card for someone. What options are available?","emoji":"🎁"}],"inventoryLevelDetection":"manual","fees":{"billingModel":"hybrid","feeMode":"all-channels"},"seedData":{"seed":true,"demo":true}}}