# Baker Family Complete This example demonstrates a complete Storybook project modeling Martha's bakery and the people around it. It showcases all major language features working together. ## Project Structure ``` baker-family/ schema/ core_enums.sb # Enum definitions templates.sb # Reusable templates beings.sb # Species definitions world/ characters/ martha.sb # Martha, master baker jane.sb # Jane, pastry specialist elena.sb # Elena, apprentice gregory.sb # Gregory, regular customer family.sb # David, Tommy, Emma behaviors/ bakery_behaviors.sb relationships/ bakery_relationships.sb locations/ bakery_places.sb institutions/ bakery_institutions.sb schedules/ bakery_schedules.sb ``` ## Schema Layer ### Enums ```storybook // schema/core_enums.sb enum SkillLevel { novice, beginner, intermediate, advanced, expert, master } enum Specialty { sourdough, pastries, cakes, general, bread } enum Confidence { timid, uncertain, growing, steady, confident, commanding } enum DayPart { early_morning, morning, midday, afternoon, evening, night } ``` ### Species ```storybook // schema/beings.sb species Human { lifespan: 80 ---description Bipedal mammals with complex language and tool use. --- } species Cat { lifespan: 15 ---description Domestic cats often found in bakeries for pest control and companionship. --- } ``` ### Templates ```storybook // schema/templates.sb template SkilledWorker { skill_level: SkillLevel confidence: Confidence years_experience: 0..50 can_work_independently: false } template Baker { include SkilledWorker specialty: Specialty recipes_mastered: 0..200 sourdough_starter_health: 0.0..1.0 } template BusinessOwner { include SkilledWorker revenue_monthly: 0..100000 employees: 0..20 years_in_business: 0..50 } template Apprentice { include SkilledWorker skill_level: novice confidence: timid mentor: string dedication: 0.0..1.0 } ``` ## Characters ### Martha ```storybook // world/characters/martha.sb use schema::core_enums::{SkillLevel, Specialty, Confidence}; use schema::templates::{Baker, BusinessOwner}; use schema::beings::Human; character Martha: Human from Baker, BusinessOwner { uses behaviors: [ { tree: BakerMorningRoutine }, { tree: HandleEmergency, when: emergency_detected, priority: critical } ] age: 34 specialty: sourdough skill_level: master confidence: commanding recipes_mastered: 85 years_experience: 22 sourdough_starter_health: 0.95 revenue_monthly: 12000 employees: 3 years_in_business: 8 ---backstory Martha learned to bake from her grandmother, starting at age twelve. By twenty she had won regional competitions. At twenty-six she opened her own bakery, which quickly became the most popular in town. Her sourdough is legendary -- she maintains a starter that is fifteen years old. --- } life_arc MarthaCareerArc { ---description Tracks Martha's evolution from established baker to community leader. --- state running_bakery { on enter { Martha.confidence: commanding Martha.skill_level: master } on employees > 5 -> expanding } state expanding { on enter { Martha.revenue_monthly: 20000 } on second_location_opened -> community_leader } state community_leader { on enter { Martha.can_teach: true Martha.mentors_count: 3 } ---narrative Martha's bakery has become a training ground for the next generation of bakers. She sits on the guild board and her sourdough recipe is studied at culinary schools. --- } } ``` ### Jane ```storybook // world/characters/jane.sb use schema::core_enums::{SkillLevel, Specialty, Confidence}; use schema::templates::Baker; use schema::beings::Human; character Jane: Human from Baker { age: 36 specialty: pastries skill_level: expert confidence: confident recipes_mastered: 120 years_experience: 18 can_work_independently: true ---backstory Jane trained at a prestigious culinary school before joining Martha's bakery as co-owner. Where Martha excels at bread, Jane is a pastry artist. Her croissants draw customers from three towns over. --- ---appearance A focused woman with flour-dusted apron and steady hands. Known for her intricate pastry decorations and precise temperature control. --- } ``` ### Elena ```storybook // world/characters/elena.sb use schema::core_enums::{SkillLevel, Confidence}; use schema::templates::Apprentice; use schema::beings::Human; character Elena: Human from Apprentice { age: 16 skill_level: novice confidence: timid mentor: "Martha" dedication: 0.9 natural_talent: 0.8 recipes_mastered: 2 ---backstory Elena comes from a family of farmers who could never afford to buy bread from the bakery. When Martha offered her an apprenticeship, she jumped at the chance to learn a trade. --- } life_arc ElenaCareer { ---description Tracks Elena's progression from nervous apprentice to confident master baker. Each state represents a key phase of her career. --- state early_apprentice { on enter { Elena.skill_level: novice Elena.confidence: timid } on recipes_mastered > 5 -> growing_apprentice ---narrative Elena's hands shake as she measures flour. She checks the recipe three times before adding each ingredient. Martha patiently corrects her technique. --- } state growing_apprentice { on enter { Elena.skill_level: beginner Elena.confidence: uncertain } on recipes_mastered > 15 -> journeyman ---narrative The shaking stops. Elena can make basic breads without looking at the recipe. She still doubts herself but Martha's encouragement is taking root. --- } state journeyman { on enter { Elena.skill_level: intermediate Elena.confidence: growing Elena.can_work_independently: true } on recipes_mastered > 30 -> senior_journeyman ---narrative Elena runs the morning shift alone while Martha handles special orders. Customers start asking for "Elena's rolls." She begins experimenting with her own recipes. --- } state senior_journeyman { on enter { Elena.skill_level: advanced Elena.confidence: steady } on recipes_mastered > 50 -> master ---narrative Elena develops her signature recipe: rosemary olive bread that becomes the bakery's bestseller. She handles difficult customers with grace and trains new helpers. --- } state master { on enter { Elena.skill_level: master Elena.confidence: commanding Elena.can_teach: true } ---narrative Master Baker Elena. She has earned it. The guild acknowledges her mastery, and Martha beams with pride. Elena begins mentoring her own apprentice. --- } } ``` ### Gregory ```storybook // world/characters/gregory.sb use schema::beings::Human; character Gregory: Human { age: 68 occupation: "retired_teacher" always_orders: "sourdough_loaf" visits_daily: true years_as_customer: 15 knows_everyone: true ---backstory Gregory has been buying Martha's bread every morning for fifteen years. Their brief daily exchanges about the weather and local gossip are a comforting routine for both of them. --- } ``` ## Behaviors ```storybook // world/behaviors/bakery_behaviors.sb behavior BakerMorningRoutine { ---description Martha's morning routine: prepare dough step by step, from mixing to shaping to baking. --- then morning_baking { // Start with sourdough then prepare_starter { CheckStarter FeedStarter WaitForActivity } // Mix the dough then mix_dough { MeasureFlour AddWater IncorporateStarter } // Knead and shape then shape_loaves { KneadDough FirstRise ShapeLoaves } // Bake then bake { PreHeatOven LoadLoaves MonitorBaking } } } behavior CustomerServiceLoop { ---description The bakery's continuous customer service loop. Uses infinite repeat decorator to serve customers throughout the day. --- repeat { then service_cycle { // Check for customers choose service_mode { then serve_waiting { if(customer_waiting) GreetCustomer TakeOrder } then restock_display { if(display_low) FetchFromKitchen ArrangeOnShelves } } // Process payment CollectPayment ThankCustomer // Brief pause between customers timeout(5s) { CleanCounter } PrepareForNextCustomer } } } ``` ## Relationships ```storybook // world/relationships/bakery_relationships.sb relationship MarthaAndGregory { Martha { role: shopkeeper values_loyalty: 0.9 ---perspective Martha appreciates Gregory's unwavering loyalty. He has been buying her sourdough loaf every morning for fifteen years. Their brief daily exchanges about the weather and local gossip are a comforting routine. --- } Gregory { role: regular_customer always_orders: "sourdough_loaf" ---perspective Gregory considers Martha's bakery a cornerstone of his daily routine. The bread is excellent, but it is the brief human connection that keeps him coming back. --- } } relationship MentorApprentice { Martha { role: mentor teaching_style: "patient" investment: 0.9 ---perspective Martha sees Elena as the daughter she might have had in the trade. She recognizes the same passion she felt at that age and pushes Elena harder because she knows the talent is there. Every correction comes from love. --- } Elena { role: apprentice dedication: 0.9 anxiety: 0.4 ---perspective Elena idolizes Martha's skill but fears disappointing her. Every morning she arrives thirty minutes early to practice techniques before Martha gets in. She keeps a notebook of every correction, reviewing them each night. --- } bond: 0.85 } relationship BakeryPartnership { Martha { role: co_owner specialty: "bread" handles_finances: true ---perspective Martha and Jane complement each other perfectly. Martha handles the bread and business side while Jane creates the pastries that draw customers in. Together they have built something neither could alone. --- } Jane { role: co_owner specialty: "pastries" handles_creativity: true ---perspective Jane considers Martha the steady foundation of their partnership. While Jane experiments and creates, Martha ensures the bakery runs like clockwork. Their different strengths make the bakery stronger. --- } bond: 0.9 } ``` ## Locations ```storybook // world/locations/bakery_places.sb location MarthasBakery { type: "commercial" established: "2018" square_feet: 1200 has_kitchen: true has_storefront: true seating_capacity: 12 ---description A warm, inviting bakery on Main Street. The aroma of fresh bread wafts out the door every morning at 4 AM. Exposed brick walls, a glass display case, and a view into the kitchen where customers can watch the bakers at work. --- } location FarmersMarket { type: "outdoor_market" operates_on: "saturday" stalls: 30 foot_traffic: "high" ---description The weekly Saturday market where Martha sells her bread directly to the community. Her stall is always the first to sell out. --- } location BakeryKitchen { type: "commercial_kitchen" ovens: 3 prep_stations: 4 walk_in_cooler: true ---description The heart of the bakery. Three professional ovens line the back wall, each at a different temperature for different breads. The sourdough starter sits on a shelf near the warmest oven, bubbling contentedly in its ceramic crock. --- } ``` ## Institutions ```storybook // world/institutions/bakery_institutions.sb institution BakersGuild { type: professional_guild members: 45 founded: "1952" meets_monthly: true ---description The local bakers' guild that sets quality standards, organizes competitions, and mentors apprentices. Martha has been a board member for three years. --- } ``` ## Key Takeaways This example demonstrates: 1. **Layered architecture**: Schema (types) separated from world (instances) 2. **Species + Templates**: `Human` species combined with `Baker` and `BusinessOwner` templates 3. **Rich behavior trees**: Morning routine and customer service with choose, then, and repeat 4. **Asymmetric relationships**: Martha and Elena see their mentorship differently 5. **Life arcs**: Elena's career journey modeled as a state machine 6. **Prose everywhere**: Every declaration includes narrative context ## Cross-References - [Tutorial](../tutorial/01-welcome.md) - Step-by-step learning - [Characters Reference](../reference/10-characters.md) - Character syntax - [Behavior Trees Reference](../reference/11-behavior-trees.md) - Behavior syntax