# Day in the Life - Storybook Language Guide
Comprehensive documentation for the Storybook narrative simulation language

# Day in the Life

This example models a complete day for a baker character, showing how schedules, behaviors, and life arcs work together to create a rich daily simulation.

## The Baker

    use schema::core_enums::{Season, DayOfWeek};
    use schema::beings::Human;
    use schema::templates::SkilledWorker;

    character Martha: Human from SkilledWorker {
        age: 42
        occupation: "Master Baker"
        skill_level: 0.95
        energy: 1.0
        mood: 0.8

        uses schedule: MarthaDailySchedule
        uses behaviors: [
            { tree: BakerRoutine, priority: normal },
            { tree: HandleEmergency, when: emergency_detected, priority: critical }
        ]

        ---backstory
        Martha has been baking since she was twelve, learning from her
        grandmother. She now runs the most popular bakery in town and
        is known for her sourdough bread and apple pastries.
        ---
    }

## The Schedule

    schedule MarthaDailySchedule {
        block wake_up {
            04:00 - 04:30
            action: routines::morning_wake
        }

        block early_baking {
            04:30 - 07:00
            action: baking::prepare_morning_goods
        }

        block open_shop {
            07:00 - 07:15
            action: shop::open_for_business
        }

        block morning_rush {
            07:15 - 10:00
            action: shop::serve_morning_customers
        }

        block midday_baking {
            10:00 - 12:00
            action: baking::prepare_afternoon_goods
        }

        block lunch_break {
            12:00 - 13:00
            action: social::lunch_with_family
        }

        block afternoon_sales {
            13:00 - 16:00
            action: shop::serve_afternoon_customers
        }

        block close_shop {
            16:00 - 16:30
            action: shop::close_for_day
        }

        block evening_prep {
            16:30 - 17:30
            action: baking::prepare_dough_for_tomorrow
        }

        block family_time {
            18:00 - 21:00
            action: social::family_evening
        }

        block sleep {
            21:00 - 04:00
            action: routines::sleep
        }

        // Saturday: Market day
        recurs MarketDay on day saturday {
            block market_prep {
                03:00 - 05:00
                action: baking::market_batch
            }

            block market_sales {
                06:00 - 14:00
                action: market::sell_at_stall
            }

            block market_cleanup {
                14:00 - 15:00
                action: market::pack_up
            }
        }

        // Summer: Extended hours
        block summer_afternoon {
            13:00 - 18:00
            action: shop::extended_summer_hours
            on season summer
        }
    }

## Behaviors

### Morning Routine

    behavior BakerMorningRoutine {
        then morning_sequence {
            WakeUp
            WashFace
            DressInWorkClothes

            // Check the sourdough starter
            then check_starter {
                ExamineStarter
                if(starter_healthy) {
                    FeedStarter
                }
            }

            WalkToKitchen
            LightOven
        }
    }

### Baking Behavior

    behavior BakerRoutine {
        choose baking_priority {
            // Handle special orders first
            then special_orders {
                if(has_special_orders)
                then fill_order {
                    ReviewOrderDetails
                    GatherSpecialIngredients
                    PrepareSpecialItem
                    PackageForCustomer
                }
            }

            // Regular daily baking
            then daily_bread {
                then sourdough {
                    MixDough(recipe: "sourdough", quantity: 10)
                    KneadDough(duration: 15m)
                    FirstRise(duration: 2h)
                    ShapLoaves
                    SecondRise(duration: 1h)
                    BakeLoaves(temperature: 230, duration: 35m)
                }
            }

            // Pastries if time permits
            then pastries {
                succeed_always {
                    then apple_pastries {
                        PrepareFillingApple
                        RollPastryDough
                        AssemblePastries
                        BakePastries(temperature: 200, duration: 25m)
                    }
                }
            }
        }
    }

### Customer Service

    behavior ServeCustomer {
        then service_sequence {
            GreetCustomer
            if(customer_is_regular) {
                RecallPreferences
            }

            choose service_type {
                then take_order {
                    if(customer_knows_what_they_want)
                    AcceptOrder
                    PackageItem
                }

                then help_decide {
                    if(not customer_knows_what_they_want)
                    OfferRecommendation
                    ProvidesSample
                    AcceptOrder
                    PackageItem
                }
            }

            CollectPayment
            ThankCustomer
        }
    }

### Emergency Handling

    behavior HandleEmergency {
        choose emergency_type {
            then oven_fire {
                if(oven_overheating)
                TurnOffOven
                GrabFireExtinguisher
                ExtinguishFire
                AssessDamage
            }

            then ingredient_shortage {
                if(critical_ingredient_missing)
                CheckBackupSupply
                choose procurement {
                    SendApprenticeToMarket
                    SubstituteIngredient
                    AdjustMenu
                }
            }

            then equipment_failure {
                if(equipment_broken)
                StopProduction
                AttemptQuickFix
                choose fallback {
                    UseBackupEquipment
                    CallRepairPerson
                }
            }
        }
    }

## Life Arc: Career and Energy

    life_arc MarthaEnergyLevel {
        state rested {
            on enter {
                Martha.energy: 1.0
                Martha.mood: 0.8
            }
            on energy < 0.5 -> tired
        }

        state tired {
            on enter {
                Martha.mood: 0.6
            }
            on energy < 0.2 -> exhausted
            on energy > 0.7 -> rested
        }

        state exhausted {
            on enter {
                Martha.mood: 0.3
                Martha.quality_output: 0.7
            }
            on energy > 0.5 -> tired
        }
    }

## Relationships

    relationship MarthaAndApprentice {
        Martha as mentor self {
            patience: 0.8
            investment: 0.9
        } other {
            sees_potential: 0.85
        }

        Elena as apprentice self {
            dedication: 0.9
            learning_rate: 0.7
        } other {
            respect: 0.95
            admiration: 0.8
        }

        bond: 0.85
        years_together: 2
    }

    relationship MarthaAndRegularCustomer {
        Martha as shopkeeper
        OldManGregory as regular_customer

        bond: 0.7
        years_known: 15
        always_orders: "sourdough_loaf"

        ---dynamics
        Gregory has been buying Martha's bread every morning for
        fifteen years. They exchange brief pleasantries about the
        weather and local gossip. He is her most reliable customer.
        ---
    }

## Key Takeaways

This example demonstrates:

1. Schedule-driven daily flow: Precise time blocks govern Martha’s entire day
2. Seasonal and weekly variations: Summer hours and Saturday market
3. Layered behaviors: Emergency behavior preempts normal routine via priority
4. Realistic action sequences: Baking modeled step by step with parameters
5. Energy management: Life arc tracks fatigue affecting mood and output quality
6. Social connections: Relationships with apprentice and customers add depth

## Cross-References

- Schedules Reference - Schedule syntax
- Behavior Trees Reference - Behavior syntax
- Life Arcs Reference - Life arc syntax