feat(examples): rewrite baker-family as coherent Competition Week narrative

Rewrote the baker-family example around a unified story: the annual Harvest
Baking Competition is Saturday. Martha's sourdough starter Old Maggie is
sluggish from a cold snap, Jane is secretly entering the FreeStyle category,
Emma's science fair project is "The Chemistry of Fermentation", Henry is
judging for the first time and worried about impartiality, and Roland is
defending last year's title.

The week's schedules (Mon guild meeting → Tue test bakes → Wed sourcing →
Thu dough prep → Fri science fair → Sat competition → Sun recovery) are
now fully populated with narrative-specific actions.

Files split for composability:
- behaviors/baker_behaviors.sb → 5 focused files by character/domain
- schema/types.sb → 4 files (core, baking, world, social)
- schedules/work_schedules.sb → 4 files (one per schedule)
- relationships/baker_family_relationships.sb → family + bakery

Strong typing: replaced all enumerable string fields with concepts
(BakerSpecialty, Occupation, LocationType, InstitutionType, ParentingStyle,
Intensity, BakeryDomain, BakingDiscipline, ManagementDomain,
CompetitiveAdvantage).

Remove new-syntax-demo.sb (superseded by baker-family example).
This commit is contained in:
2026-02-23 21:51:01 +00:00
parent 1fa90aff0e
commit abd54e4c33
29 changed files with 820 additions and 587 deletions

View File

@@ -0,0 +1,98 @@
//! Competition week behaviors — the Harvest Baking Competition
//!
//! These behaviors drive the narrative arc from Monday's guild meeting
//! through Saturday's competition and Sunday's recovery.
// Tuesday: Martha tests her competition sourdough, adjusting for Old Maggie's sluggishness
behavior TestCompetitionRecipe {
then {
check_starter_health
choose {
adjust_hydration
adjust_temperature
extend_fermentation
}
mix_test_batch
monitor_rise
assess_result
}
}
// Thursday: 24-hour competition dough prep — rise begins before Saturday
behavior PrepCompetitionDough {
then {
feed_starter_extra
wait_for_activity
mix_competition_dough
initial_fold
bulk_fermentation
shape_loaves
begin_cold_retard
}
}
// Saturday: full competition routine for the baker
behavior CompetitionRoutine {
then {
load_supplies
transport_to_venue
setup_competition_station
final_proof_check
bake_under_pressure
present_to_judges
wait_for_results
}
}
// Monday evening: guild meeting — competition rules announced, tension with Roland
behavior AttendGuildMeeting {
then {
travel_to_town_hall
review_competition_rules
choose {
discuss_with_peers
argue_with_rival
}
vote_on_motions
travel_home
}
}
// Wednesday: source premium flour and imported butter for the competition
behavior SourceIngredients {
then {
visit_flour_mill
select_premium_flour
choose {
source_imported_butter
source_local_butter
}
check_specialty_items
transport_ingredients
}
}
// Friday evening: parents and Henry attend Emma's science fair
behavior AttendScienceFair {
then {
travel_to_school
find_emma_display
listen_to_presentation
congratulate_emma
talk_with_teachers
}
}
// Saturday evening: post-competition gathering at the bakery
behavior Celebration {
then {
gather_at_bakery
share_stories
choose {
toast_the_winner
console_the_losers
}
eat_leftover_competition_bread
family_time
}
}