# Character Relationships Characters exist in a web of connections -- friendships, rivalries, parent-child bonds, and complex power dynamics. In Storybook, relationships are first-class declarations that capture these connections with nuance and perspective. ## Basic Relationships The simplest relationship connects two characters with shared fields: ```storybook relationship MarthaAndEmma { Martha as parent {} Emma as child {} bond: 0.95 type: "parent_child" } ``` This says Martha and Emma share a relationship with a bond strength of 0.95 (very close). The `bond` field is shared -- it applies equally to both participants. ## Adding Roles Roles label each participant's function in the relationship: ```storybook relationship ParentChild { Martha as parent Emma as child bond: 0.95 guardianship: true } ``` The `as parent` and `as child` labels clarify who plays which role. Roles are descriptive -- you can use any name that makes sense. ## Perspectives: Self and Other Real relationships are not symmetric. How one person sees the relationship may differ from how the other sees it. Storybook handles this with `self` and `other` blocks: ```storybook relationship MentorApprentice { Martha as mentor self { patience: 0.8 investment_in_student: 0.9 } other { sees_potential: 0.85 frustration_level: 0.2 } Elena as apprentice self { dedication: 0.9 overwhelmed: 0.4 } other { admiration: 0.95 desire_to_impress: 0.9 } bond: 0.85 } ``` Reading this: - **Martha's self view**: She feels patient (80%), highly invested in her student - **Martha's view of Elena (other)**: Sees high potential (85%) with low frustration (20%) - **Elena's self view**: Dedicated (90%) but sometimes overwhelmed (40%) - **Elena's view of Martha (other)**: Deep admiration (95%), strong desire to impress (90%) - **Shared**: Their bond strength is 0.85 ## Prose in Relationships Relationships can include narrative descriptions for each participant: ```storybook 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. He worries about what would happen if she ever retired. --- } bond: 0.7 } ``` ## Multi-Party Relationships Relationships can involve more than two participants: ```storybook relationship BakerFamily { Martha as parent Jane as parent Emma as child household: "Baker Residence" family_bond: 0.95 dinner_time: 18:00 ---dynamics A loving family running a bakery together. Martha handles the bread, Jane manages pastries, and Emma helps out on weekends while learning the craft. --- } ``` ## Asymmetric Awareness Relationships can model situations where one party does not know the relationship exists: ```storybook relationship BossAndNewHire { Martha { role: boss aware_of_struggles: false expects: high_quality_work ---perspective Martha sees the new hire as competent and expects them to learn the bakery routines quickly. She has no idea they are struggling with the early morning schedule. --- } NewHire { role: employee intimidated: 0.8 hides_struggles: true ---perspective The new hire is in awe of Martha's skill but terrified of disappointing her. They arrive thirty minutes early every day to practice techniques before she gets in. --- } bond: 0.4 } ``` ## Institutional Relationships Institutions can participate in relationships too: ```storybook relationship GuildMembership { Martha as member BakersGuild as organization membership_since: "2015-01-01" standing: "good" dues_paid: true } ``` ## Building a Relationship Web Multiple relationships create a rich social network: ```storybook relationship Marriage { Martha as spouse Jane as spouse bond: 0.9 } relationship MentorApprentice { Martha as mentor Elena as apprentice bond: 0.85 } relationship RegularCustomer { Martha as shopkeeper Gregory as customer bond: 0.7 } relationship Colleagues { Martha as peer NeighborBaker as peer bond: 0.5 competitive: true } ``` ## Next Steps Characters have traits, behaviors, and relationships. In [Schedules and Time](./07-schedules.md), you will give them daily routines and time-based activities. --- **Reference**: For complete relationship syntax, see the [Relationships Reference](../reference/15-relationships.md).