docs: add Alice in Wonderland example storybook
Add comprehensive example demonstrating all major features of the Storybook DSL through Lewis Carroll's Alice in Wonderland. Contents: - 12 characters (Alice, WhiteRabbit, CheshireCat, MadHatter, etc.) - 7 relationships with named participant blocks - 3 institutions (tea parties, royal court) - 1 schedule (Mad Tea Party eternal rotation) - 12 behavior trees using new syntax features - 1 life arc (Alice's journey) Demonstrates: - Cross-file template resolution (schema/templates.sb) - Template inheritance and includes - Strict template validation - Action parameters and repeater decorators - Named participant relationship blocks - Species-based character typing - Rich prose blocks throughout All content validates successfully.
This commit is contained in:
2
.gitignore
vendored
2
.gitignore
vendored
@@ -1,2 +1,4 @@
|
|||||||
/target
|
/target
|
||||||
.envrc
|
.envrc
|
||||||
|
alice-in-wonderland.txt
|
||||||
|
alice-in-wonderland.txt
|
||||||
|
|||||||
336
examples/alice-in-wonderland/README.md
Normal file
336
examples/alice-in-wonderland/README.md
Normal file
@@ -0,0 +1,336 @@
|
|||||||
|
# Alice's Adventures in Wonderland - Storybook Example
|
||||||
|
|
||||||
|
A comprehensive demonstration of the Storybook DSL, modeling Lewis Carroll's *Alice's Adventures in Wonderland* with accuracy to the source material and showcasing all advanced language features.
|
||||||
|
|
||||||
|
## Overview
|
||||||
|
|
||||||
|
This example shows how Storybook enables complex narrative modeling for agent simulation games. It demonstrates:
|
||||||
|
|
||||||
|
- **Advanced behavior trees** for complex, context-dependent character actions
|
||||||
|
- **Life arcs** tracking transformative character journeys
|
||||||
|
- **Schedules** modeling eternal time loops and recurring events
|
||||||
|
- **Template composition** with inheritance and strict mode
|
||||||
|
- **Bidirectional relationships** with asymmetric perspectives
|
||||||
|
- **Cross-file references** creating an interconnected world model
|
||||||
|
|
||||||
|
## Contents
|
||||||
|
|
||||||
|
### Schema Layer
|
||||||
|
|
||||||
|
**`schema/core_enums.sb`**
|
||||||
|
- Core value types used throughout: `Size`, `EmotionalState`, `CardSuit`, `CardRank`, `TimeState`, `ManifestationLevel`
|
||||||
|
- Demonstrates enumeration definitions
|
||||||
|
|
||||||
|
**`schema/templates.sb`**
|
||||||
|
- Base template `WonderlandCreature` for all sentient beings
|
||||||
|
- Specialized templates with `include`: `SizeChanging`, `MadTeaPartyMember`, `Supernatural`
|
||||||
|
- **Strict template** `PlayingCard` enforcing concrete values
|
||||||
|
- Shows vertical inheritance (includes) and horizontal composition (multiple `from` clauses)
|
||||||
|
|
||||||
|
**`schema/species.sb`**
|
||||||
|
- Species definitions: `Human`, `Rabbit`, `Cat`, `Hare`, `Dormouse`, `Caterpillar`, `PlayingCardPerson`
|
||||||
|
- Rich prose blocks describing characteristics and abilities
|
||||||
|
|
||||||
|
### World Layer
|
||||||
|
|
||||||
|
#### Characters
|
||||||
|
|
||||||
|
**`alice.sb`** - The protagonist
|
||||||
|
- Inherits from `SizeChanging` template
|
||||||
|
- **Life arc `AliceJourney`** with states: `falling`, `tiny_alice`, `giant_alice`, `normal_alice_garden`, `enlightened_alice`
|
||||||
|
- Shows how life arcs track transformative journeys with state-specific field modifications
|
||||||
|
|
||||||
|
**`white_rabbit.sb`** - The anxious herald
|
||||||
|
- **Behavior tree `WhiteRabbit_ConstantlyLate`** using selectors (`?`) and sequences (`>`)
|
||||||
|
- Demonstrates hierarchical behavior modeling with panic strategies
|
||||||
|
|
||||||
|
**`cheshire_cat.sb`** - The enigmatic guide
|
||||||
|
- **Three behavior trees**:
|
||||||
|
- `CheshireCat_AppearDisappear` - context-dependent materialization
|
||||||
|
- `CheshireCat_GradualManifestation` - piece-by-piece appearance (grin first!)
|
||||||
|
- `CheshireCat_GradualDematerialization` - fading away (grin lingers longest)
|
||||||
|
- Shows complex multi-step sequences with timing and state transitions
|
||||||
|
|
||||||
|
**`mad_tea_party.sb`** - The eternal tea party trio
|
||||||
|
- Three characters: `MadHatter`, `MarchHare`, `Dormouse`
|
||||||
|
- **Schedule `MadTeaPartyRotation`** modeling the time loop (always 6 o'clock)
|
||||||
|
- **Behavior `MadTeaParty_CoordinatedMadness`** showing multi-agent coordination
|
||||||
|
- Demonstrates repeater decorator (`*`) for infinite loops
|
||||||
|
|
||||||
|
**`royal_court.sb`** - The Court of Hearts
|
||||||
|
- Characters: `QueenOfHearts`, `KingOfHearts`, `CardGardenerTwo`, `CardGardenerFive`, `CardGardenerSeven`
|
||||||
|
- Inherits from `PlayingCard` strict template - card suit/rank must be concrete
|
||||||
|
- **Behavior `QueenOfHearts_RagePattern`** - hair-trigger temper response
|
||||||
|
- **Behavior `KingOfHearts_SecretPardons`** - background mercy system
|
||||||
|
|
||||||
|
**`caterpillar.sb`** - The philosophical teacher
|
||||||
|
- **Behavior `Caterpillar_SocraticMethod`** - interrogative teaching style
|
||||||
|
- Shows question-answer tree structures
|
||||||
|
|
||||||
|
#### Locations
|
||||||
|
|
||||||
|
**`wonderland_places.sb`**
|
||||||
|
- `RabbitHole`, `HallOfDoors`, `Garden`, `MadTeaPartyTable`, `CroquetGround`, `QueensPalace`, `MushroomTop`
|
||||||
|
- Each location has physical properties, symbolic meaning, and narrative significance
|
||||||
|
- Demonstrates rich prose blocks for description and analysis
|
||||||
|
|
||||||
|
#### Institutions
|
||||||
|
|
||||||
|
**`wonderland_institutions.sb`**
|
||||||
|
- `CourtOfHearts` - tyrannical monarchy with interesting power dynamics
|
||||||
|
- `MadTeaParty` - eternal social gathering stuck in time
|
||||||
|
- `WonderlandDreamLogic` - the meta-institution governing reality itself
|
||||||
|
- Shows how social structures can be modeled with hierarchies and rules
|
||||||
|
|
||||||
|
#### Relationships
|
||||||
|
|
||||||
|
**`wonderland_relationships.sb`**
|
||||||
|
- **Bidirectional relationships** with `self` and `other` blocks showing asymmetric perspectives:
|
||||||
|
- `AliceAndWhiteRabbit` - pursuer/unwitting guide
|
||||||
|
- `AliceAndCheshireCat` - seeker/amused observer
|
||||||
|
- `QueenAndKing` - tyrant/secret rebel
|
||||||
|
- `AliceAndCaterpillar` - frustrated student/Socratic teacher
|
||||||
|
- Demonstrates how different characters perceive the same relationship differently
|
||||||
|
|
||||||
|
#### Behaviors
|
||||||
|
|
||||||
|
**`alice_behaviors.sb`** - Alice's strategic behaviors
|
||||||
|
- `Alice_SizeManagement` - learning to control size through trial and error
|
||||||
|
- `Alice_NavigateConversation` - dealing with nonsensical logic
|
||||||
|
- `Alice_EmotionalJourney` - state transitions from curiosity to enlightenment
|
||||||
|
- `Alice_ProblemSolving` - adapting normal-world logic to Wonderland
|
||||||
|
|
||||||
|
## Language Features Demonstrated
|
||||||
|
|
||||||
|
### 1. Template Composition
|
||||||
|
|
||||||
|
```storybook
|
||||||
|
template WonderlandCreature {
|
||||||
|
current_size: Size
|
||||||
|
emotional_state: EmotionalState
|
||||||
|
follows_logic: false..true
|
||||||
|
}
|
||||||
|
|
||||||
|
template SizeChanging {
|
||||||
|
include WonderlandCreature
|
||||||
|
natural_size: Size
|
||||||
|
size_changes_today: 0..50
|
||||||
|
}
|
||||||
|
|
||||||
|
character Alice from SizeChanging {
|
||||||
|
// Inherits all fields from WonderlandCreature and SizeChanging
|
||||||
|
age: 7
|
||||||
|
current_size: normal
|
||||||
|
}
|
||||||
|
```
|
||||||
|
|
||||||
|
### 2. Strict Templates
|
||||||
|
|
||||||
|
```storybook
|
||||||
|
template strict PlayingCard {
|
||||||
|
suit: CardSuit
|
||||||
|
rank: CardRank
|
||||||
|
// Characters using this template MUST provide concrete values
|
||||||
|
}
|
||||||
|
|
||||||
|
character QueenOfHearts from PlayingCard {
|
||||||
|
suit: hearts // Required: must be concrete enum value
|
||||||
|
rank: queen // Required: must be concrete enum value
|
||||||
|
}
|
||||||
|
```
|
||||||
|
|
||||||
|
### 3. Life Arcs
|
||||||
|
|
||||||
|
```storybook
|
||||||
|
life_arc AliceJourney {
|
||||||
|
state tiny_alice {
|
||||||
|
on enter {
|
||||||
|
Alice.current_size: tiny
|
||||||
|
Alice.size_changes_today: +1
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
state giant_alice {
|
||||||
|
on enter {
|
||||||
|
Alice.current_size: huge
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
```
|
||||||
|
|
||||||
|
### 4. Schedules
|
||||||
|
|
||||||
|
```storybook
|
||||||
|
schedule MadTeaPartyRotation {
|
||||||
|
18:00 -> 18:01: TeaRound { }
|
||||||
|
18:01 -> 18:02: RiddlePhase { }
|
||||||
|
// ... more phases
|
||||||
|
18:05 -> 18:00: LoopToBeginning { } // Loops back!
|
||||||
|
}
|
||||||
|
```
|
||||||
|
|
||||||
|
### 5. Behavior Trees
|
||||||
|
|
||||||
|
```storybook
|
||||||
|
behavior CheshireCat_AppearDisappear {
|
||||||
|
? { // Selector: try branches until one succeeds
|
||||||
|
> { // Sequence: all must succeed in order
|
||||||
|
IsInvisible
|
||||||
|
DecideToAppear
|
||||||
|
GradualManifestation
|
||||||
|
}
|
||||||
|
> {
|
||||||
|
IsVisible
|
||||||
|
DecideToLeave
|
||||||
|
GradualDematerialization
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
```
|
||||||
|
|
||||||
|
### 6. Repeater Decorator
|
||||||
|
|
||||||
|
```storybook
|
||||||
|
behavior MadTeaParty_CoordinatedMadness {
|
||||||
|
* { // Repeater: loop forever
|
||||||
|
? {
|
||||||
|
> { AskRiddle; ReceiveNoAnswer }
|
||||||
|
> { RotateSeats; CheckTime }
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
```
|
||||||
|
|
||||||
|
### 7. Bidirectional Relationships
|
||||||
|
|
||||||
|
```storybook
|
||||||
|
relationship QueenAndKing {
|
||||||
|
QueenOfHearts
|
||||||
|
KingOfHearts
|
||||||
|
|
||||||
|
bond: 0.4
|
||||||
|
|
||||||
|
self {
|
||||||
|
// Queen's perspective
|
||||||
|
role: dominant_spouse
|
||||||
|
aware_of_pardons: false
|
||||||
|
}
|
||||||
|
|
||||||
|
other {
|
||||||
|
// King's perspective
|
||||||
|
role: secret_moderator
|
||||||
|
subverts_authority: 1.0
|
||||||
|
}
|
||||||
|
}
|
||||||
|
```
|
||||||
|
|
||||||
|
### 8. Rich Prose Blocks
|
||||||
|
|
||||||
|
```storybook
|
||||||
|
character CheshireCat {
|
||||||
|
---description
|
||||||
|
A large cat with a permanent, unsettling grin. Possesses the
|
||||||
|
ability to appear and disappear at will, often leaving only
|
||||||
|
its grin behind.
|
||||||
|
---
|
||||||
|
|
||||||
|
---philosophy
|
||||||
|
The Cheshire Cat represents the absurdist nature of Wonderland
|
||||||
|
itself. His vanishing act defies physical law but seems
|
||||||
|
perfectly natural in Wonderland's logic.
|
||||||
|
---
|
||||||
|
}
|
||||||
|
```
|
||||||
|
|
||||||
|
### 9. Cross-File References
|
||||||
|
|
||||||
|
```storybook
|
||||||
|
// In alice.sb
|
||||||
|
use schema::core_enums::{Size, EmotionalState};
|
||||||
|
use schema::templates::SizeChanging;
|
||||||
|
|
||||||
|
character Alice from SizeChanging {
|
||||||
|
current_size: normal // Uses Size enum from core_enums
|
||||||
|
}
|
||||||
|
```
|
||||||
|
|
||||||
|
### 10. Field Modifications in Life Arcs
|
||||||
|
|
||||||
|
```storybook
|
||||||
|
state enlightened_alice {
|
||||||
|
on enter {
|
||||||
|
Alice.emotional_state: brave
|
||||||
|
Alice.awareness_of_absurdity: 1.0 // Absolute assignment
|
||||||
|
Alice.size_changes_today: +1 // Increment
|
||||||
|
}
|
||||||
|
}
|
||||||
|
```
|
||||||
|
|
||||||
|
## Accuracy to Source Material
|
||||||
|
|
||||||
|
This example stays faithful to Carroll's original text:
|
||||||
|
|
||||||
|
- **Mad Tea Party**: Time frozen at 6 o'clock, rotating seats, butter in the watch
|
||||||
|
- **Cheshire Cat**: Grin appearing first/last, cryptic directions, "we're all mad here"
|
||||||
|
- **Queen of Hearts**: Constant "Off with their heads!", card gardeners, croquet with flamingos
|
||||||
|
- **Alice's transformations**: Specific size states from the book
|
||||||
|
- **Caterpillar's advice**: Terse questions, mushroom sides
|
||||||
|
- **Character dynamics**: White Rabbit's anxiety, Dormouse's drowsiness, King's secret mercy
|
||||||
|
|
||||||
|
## Running the Example
|
||||||
|
|
||||||
|
```bash
|
||||||
|
# Validate the entire project
|
||||||
|
sb validate examples/alice-in-wonderland/
|
||||||
|
|
||||||
|
# Query characters
|
||||||
|
sb query "characters where follows_logic == false"
|
||||||
|
|
||||||
|
# Inspect a specific character
|
||||||
|
sb inspect Alice
|
||||||
|
|
||||||
|
# Show all relationships
|
||||||
|
sb query "relationships where bond > 0.5"
|
||||||
|
```
|
||||||
|
|
||||||
|
## What This Demonstrates
|
||||||
|
|
||||||
|
### For Content Authors (Lonni)
|
||||||
|
|
||||||
|
- **Rich character modeling**: Personality traits, motivations, relationships
|
||||||
|
- **Narrative structure**: Life arcs track character journeys
|
||||||
|
- **World building**: Locations, institutions, social dynamics
|
||||||
|
- **Prose integration**: Backstories, descriptions, and philosophical notes
|
||||||
|
|
||||||
|
### For Developers (Sienna)
|
||||||
|
|
||||||
|
- **Complex behavior trees**: Multi-level selectors, sequences, repeaters
|
||||||
|
- **State management**: Life arcs with field modifications
|
||||||
|
- **Scheduling systems**: Time loops and recurring events
|
||||||
|
- **Type safety**: Strict templates enforce constraints
|
||||||
|
- **Cross-referencing**: Build interconnected world models
|
||||||
|
|
||||||
|
### For Agent Simulation
|
||||||
|
|
||||||
|
This model could drive an agent-based simulation where:
|
||||||
|
|
||||||
|
- Alice's behavior tree decides how to navigate conversations and obstacles
|
||||||
|
- The Mad Tea Party schedule creates a time-loop environment
|
||||||
|
- Cheshire Cat's appearance/disappearance behavior creates mystery
|
||||||
|
- Queen's rage pattern generates conflict
|
||||||
|
- Relationships determine interaction dynamics
|
||||||
|
|
||||||
|
## Extending This Example
|
||||||
|
|
||||||
|
Ideas for additions:
|
||||||
|
|
||||||
|
- **More chapters**: Mock Turtle, Gryphon, Trial scene
|
||||||
|
- **Croquet game logic**: Behavior trees for live hedgehog/flamingo equipment
|
||||||
|
- **Size change mechanics**: Fine-grained mushroom nibbling behavior
|
||||||
|
- **Dream logic system**: Meta-rules governing Wonderland physics
|
||||||
|
- **Alice's awakening**: Final life arc state transitioning back to reality
|
||||||
|
|
||||||
|
## License
|
||||||
|
|
||||||
|
Source material: *Alice's Adventures in Wonderland* by Lewis Carroll (public domain)
|
||||||
|
Storybook adaptation: MIT License
|
||||||
73
examples/alice-in-wonderland/schema/beings.sb
Normal file
73
examples/alice-in-wonderland/schema/beings.sb
Normal file
@@ -0,0 +1,73 @@
|
|||||||
|
//! Species definitions for Wonderland inhabitants
|
||||||
|
|
||||||
|
species Human {
|
||||||
|
lifespan: 70
|
||||||
|
---description
|
||||||
|
Visitors from the normal world above. Rare in Wonderland.
|
||||||
|
Subject to size-changing effects of local flora.
|
||||||
|
---
|
||||||
|
}
|
||||||
|
|
||||||
|
species Rabbit {
|
||||||
|
lifespan: 10
|
||||||
|
---description
|
||||||
|
Wonderland rabbits often wear waistcoats, carry pocket watches,
|
||||||
|
and exhibit extreme punctuality anxiety. May be anthropomorphic.
|
||||||
|
---
|
||||||
|
}
|
||||||
|
|
||||||
|
species Cat {
|
||||||
|
lifespan: 15
|
||||||
|
---description
|
||||||
|
Cheshire variety can vanish at will, leaving only a grin.
|
||||||
|
Ordinary cats (like Dinah) remain in the world above.
|
||||||
|
---
|
||||||
|
}
|
||||||
|
|
||||||
|
species Hare {
|
||||||
|
lifespan: 8
|
||||||
|
---description
|
||||||
|
March Hares display heightened madness, especially during
|
||||||
|
breeding season. Often found at eternal tea parties.
|
||||||
|
---
|
||||||
|
}
|
||||||
|
|
||||||
|
species Dormouse {
|
||||||
|
lifespan: 5
|
||||||
|
---description
|
||||||
|
Extremely somnolent. Can sleep through tea parties, pinching,
|
||||||
|
and being used as a cushion. Occasionally recites tales in sleep.
|
||||||
|
---
|
||||||
|
}
|
||||||
|
|
||||||
|
species Caterpillar {
|
||||||
|
lifespan: 1
|
||||||
|
---description
|
||||||
|
Large, blue, hookah-smoking variety. Philosophically inclined.
|
||||||
|
Offers cryptic advice about size-changing mushrooms.
|
||||||
|
---
|
||||||
|
}
|
||||||
|
|
||||||
|
species PlayingCardPerson {
|
||||||
|
lifespan: 100
|
||||||
|
---description
|
||||||
|
Animated playing cards forming the Court of Hearts hierarchy.
|
||||||
|
Flat, rectangular bodies. Gardeners, soldiers, and royalty.
|
||||||
|
---
|
||||||
|
}
|
||||||
|
|
||||||
|
species Flamingo {
|
||||||
|
lifespan: 40
|
||||||
|
---description
|
||||||
|
Unwilling participants in croquet as live mallets.
|
||||||
|
Tendency to look back at player with puzzled expressions.
|
||||||
|
---
|
||||||
|
}
|
||||||
|
|
||||||
|
species Hedgehog {
|
||||||
|
lifespan: 6
|
||||||
|
---description
|
||||||
|
Pressed into service as croquet balls. Frequently unroll
|
||||||
|
and wander away mid-game, frustrating players.
|
||||||
|
---
|
||||||
|
}
|
||||||
145
examples/alice-in-wonderland/schema/core_enums.sb
Normal file
145
examples/alice-in-wonderland/schema/core_enums.sb
Normal file
@@ -0,0 +1,145 @@
|
|||||||
|
//! Core enumerations for Wonderland domain modeling
|
||||||
|
|
||||||
|
enum Size {
|
||||||
|
tiny, // 3 inches tall
|
||||||
|
small, // 1 foot tall
|
||||||
|
normal, // Human-sized
|
||||||
|
large, // 9 feet tall
|
||||||
|
huge // House-sized
|
||||||
|
}
|
||||||
|
|
||||||
|
enum EmotionalState {
|
||||||
|
curious,
|
||||||
|
frightened,
|
||||||
|
confused,
|
||||||
|
brave,
|
||||||
|
angry,
|
||||||
|
melancholy,
|
||||||
|
amused
|
||||||
|
}
|
||||||
|
|
||||||
|
enum CardSuit {
|
||||||
|
hearts,
|
||||||
|
diamonds,
|
||||||
|
clubs,
|
||||||
|
spades
|
||||||
|
}
|
||||||
|
|
||||||
|
enum CardRank {
|
||||||
|
two,
|
||||||
|
three,
|
||||||
|
four,
|
||||||
|
five,
|
||||||
|
six,
|
||||||
|
seven,
|
||||||
|
eight,
|
||||||
|
nine,
|
||||||
|
ten,
|
||||||
|
knave,
|
||||||
|
queen,
|
||||||
|
king
|
||||||
|
}
|
||||||
|
|
||||||
|
enum TimeState {
|
||||||
|
normal,
|
||||||
|
frozen,
|
||||||
|
reversed,
|
||||||
|
accelerated
|
||||||
|
}
|
||||||
|
|
||||||
|
enum ManifestationLevel {
|
||||||
|
invisible,
|
||||||
|
fading_in,
|
||||||
|
partial_grin,
|
||||||
|
partial_body,
|
||||||
|
mostly_visible,
|
||||||
|
fully_visible,
|
||||||
|
fading_out
|
||||||
|
}
|
||||||
|
|
||||||
|
enum GovernmentType {
|
||||||
|
monarchy,
|
||||||
|
democracy,
|
||||||
|
anarchy,
|
||||||
|
tyranny,
|
||||||
|
oligarchy
|
||||||
|
}
|
||||||
|
|
||||||
|
enum GovernmentStyle {
|
||||||
|
absolute_tyranny,
|
||||||
|
benevolent_dictatorship,
|
||||||
|
constitutional_monarchy,
|
||||||
|
direct_democracy,
|
||||||
|
representative_democracy,
|
||||||
|
anarchist_collective
|
||||||
|
}
|
||||||
|
|
||||||
|
enum HierarchyStyle {
|
||||||
|
rigid,
|
||||||
|
fluid,
|
||||||
|
flat,
|
||||||
|
nested,
|
||||||
|
circular
|
||||||
|
}
|
||||||
|
|
||||||
|
enum Temperament {
|
||||||
|
volatile,
|
||||||
|
calm,
|
||||||
|
unpredictable,
|
||||||
|
steady,
|
||||||
|
chaotic
|
||||||
|
}
|
||||||
|
|
||||||
|
enum Power {
|
||||||
|
queen_only,
|
||||||
|
king_only,
|
||||||
|
shared,
|
||||||
|
distributed,
|
||||||
|
none
|
||||||
|
}
|
||||||
|
|
||||||
|
enum JudicialPresumption {
|
||||||
|
guilt,
|
||||||
|
innocence,
|
||||||
|
absurdity
|
||||||
|
}
|
||||||
|
|
||||||
|
enum Sentence {
|
||||||
|
beheading,
|
||||||
|
banishment,
|
||||||
|
imprisonment,
|
||||||
|
fine,
|
||||||
|
warning,
|
||||||
|
pardon
|
||||||
|
}
|
||||||
|
|
||||||
|
enum SeatRotation {
|
||||||
|
clockwise,
|
||||||
|
counterclockwise,
|
||||||
|
random,
|
||||||
|
none
|
||||||
|
}
|
||||||
|
|
||||||
|
enum GatheringType {
|
||||||
|
eternal_social_gathering,
|
||||||
|
formal_ceremony,
|
||||||
|
casual_meeting,
|
||||||
|
spontaneous_assembly
|
||||||
|
}
|
||||||
|
|
||||||
|
enum Purpose {
|
||||||
|
tea_consumption,
|
||||||
|
governance,
|
||||||
|
entertainment,
|
||||||
|
survival,
|
||||||
|
chaos
|
||||||
|
}
|
||||||
|
|
||||||
|
enum Enforcement {
|
||||||
|
forbidden,
|
||||||
|
discouraged,
|
||||||
|
optional,
|
||||||
|
encouraged,
|
||||||
|
mandatory,
|
||||||
|
required
|
||||||
|
}
|
||||||
57
examples/alice-in-wonderland/schema/templates.sb
Normal file
57
examples/alice-in-wonderland/schema/templates.sb
Normal file
@@ -0,0 +1,57 @@
|
|||||||
|
//! Template definitions for Wonderland entities
|
||||||
|
|
||||||
|
use schema::core_enums::{Size, EmotionalState};
|
||||||
|
|
||||||
|
// Base template for all sentient beings in Wonderland
|
||||||
|
template WonderlandCreature {
|
||||||
|
current_size: Size
|
||||||
|
emotional_state: EmotionalState
|
||||||
|
speaks_english: true
|
||||||
|
awareness_of_absurdity: 0.0..1.0
|
||||||
|
}
|
||||||
|
|
||||||
|
// Template for size-changing entities (Alice, mushrooms victims)
|
||||||
|
template SizeChanging {
|
||||||
|
include WonderlandCreature
|
||||||
|
|
||||||
|
natural_size: Size
|
||||||
|
min_size: Size
|
||||||
|
max_size: Size
|
||||||
|
size_changes_today: 0..50
|
||||||
|
}
|
||||||
|
|
||||||
|
// Template for playing card entities
|
||||||
|
template PlayingCard strict {
|
||||||
|
include WonderlandCreature
|
||||||
|
|
||||||
|
suit: CardSuit
|
||||||
|
rank: CardRank
|
||||||
|
fear_of_queen: 0.8..1.0
|
||||||
|
follows_logic: false
|
||||||
|
}
|
||||||
|
|
||||||
|
// Template for residents of the Mad Tea Party
|
||||||
|
template MadTeaPartyMember {
|
||||||
|
include WonderlandCreature
|
||||||
|
|
||||||
|
stuck_at_teatime: true
|
||||||
|
riddles_asked: 0..1000
|
||||||
|
follows_logic: false
|
||||||
|
current_seat_position: 0..100
|
||||||
|
}
|
||||||
|
|
||||||
|
// Template for royal court members
|
||||||
|
template CourtMember {
|
||||||
|
include WonderlandCreature
|
||||||
|
|
||||||
|
loyalty_to_queen: 0.0..1.0
|
||||||
|
times_threatened_with_beheading: 0..100
|
||||||
|
survival_instinct: 0.5..1.0
|
||||||
|
}
|
||||||
|
|
||||||
|
// Template for mysterious/supernatural beings
|
||||||
|
template Supernatural {
|
||||||
|
include WonderlandCreature
|
||||||
|
|
||||||
|
follows_logic: false
|
||||||
|
}
|
||||||
22
examples/alice-in-wonderland/storybook.toml
Normal file
22
examples/alice-in-wonderland/storybook.toml
Normal file
@@ -0,0 +1,22 @@
|
|||||||
|
# Alice's Adventures in Wonderland - Storybook Example Project
|
||||||
|
# A comprehensive demonstration of all Storybook language features
|
||||||
|
|
||||||
|
[project]
|
||||||
|
name = "alice-in-wonderland"
|
||||||
|
version = "1.0.0"
|
||||||
|
description = "Complete Alice in Wonderland narrative model showcasing advanced Storybook language features"
|
||||||
|
author = "Lewis Carroll (adapted)"
|
||||||
|
|
||||||
|
[paths]
|
||||||
|
schema = "schema"
|
||||||
|
world = "world"
|
||||||
|
|
||||||
|
[validation]
|
||||||
|
# Enable strict validation to catch errors
|
||||||
|
strict_mode = true
|
||||||
|
|
||||||
|
# Warn about unused declarations
|
||||||
|
warn_unused = true
|
||||||
|
|
||||||
|
# Require all cross-references to resolve
|
||||||
|
require_resolution = true
|
||||||
110
examples/alice-in-wonderland/world/characters/alice.sb
Normal file
110
examples/alice-in-wonderland/world/characters/alice.sb
Normal file
@@ -0,0 +1,110 @@
|
|||||||
|
//! Alice: The protagonist navigating Wonderland's absurdities
|
||||||
|
|
||||||
|
use schema::core_enums::{Size, EmotionalState};
|
||||||
|
use schema::templates::SizeChanging;
|
||||||
|
use schema::beings::Human;
|
||||||
|
|
||||||
|
character Alice: Human from SizeChanging {
|
||||||
|
// Core identity
|
||||||
|
age: 7
|
||||||
|
natural_size: normal
|
||||||
|
current_size: normal
|
||||||
|
min_size: tiny
|
||||||
|
max_size: huge
|
||||||
|
size_changes_today: 12
|
||||||
|
|
||||||
|
// Personality traits
|
||||||
|
emotional_state: curious
|
||||||
|
follows_logic: true
|
||||||
|
awareness_of_absurdity: 0.9
|
||||||
|
|
||||||
|
// Wonderland-specific state
|
||||||
|
knows_multiplication: false // Gets confused underground
|
||||||
|
can_recite_poetry_correctly: false // Always gets verses wrong
|
||||||
|
|
||||||
|
---backstory
|
||||||
|
A curious young girl who followed a White Rabbit down a hole and
|
||||||
|
found herself in a world where logic fails, size is mutable, and
|
||||||
|
everyone speaks in riddles and contradictions.
|
||||||
|
|
||||||
|
She tries to maintain her composure and Victorian manners even as
|
||||||
|
she shrinks to inches, grows to fill rooms, and encounters
|
||||||
|
impossible characters hosting impossible tea parties.
|
||||||
|
---
|
||||||
|
}
|
||||||
|
|
||||||
|
// Alice's transformative journey through Wonderland
|
||||||
|
life_arc AliceJourney {
|
||||||
|
---description
|
||||||
|
Tracks Alice's physical and emotional transformations as she
|
||||||
|
navigates Wonderland's surreal challenges. Each state represents
|
||||||
|
a key phase of her adventure.
|
||||||
|
---
|
||||||
|
|
||||||
|
state falling {
|
||||||
|
on enter {
|
||||||
|
Alice.current_size: normal
|
||||||
|
Alice.emotional_state: curious
|
||||||
|
}
|
||||||
|
|
||||||
|
---narrative
|
||||||
|
Tumbling down the rabbit hole, Alice has time to wonder about
|
||||||
|
geography, Dinah the cat, and whether she'll fall through to
|
||||||
|
the Antipodes. The fall seems endless.
|
||||||
|
---
|
||||||
|
}
|
||||||
|
|
||||||
|
state tiny_alice {
|
||||||
|
on enter {
|
||||||
|
Alice.current_size: tiny
|
||||||
|
Alice.emotional_state: frightened
|
||||||
|
Alice.size_changes_today: 13
|
||||||
|
}
|
||||||
|
|
||||||
|
---narrative
|
||||||
|
Only three inches tall, Alice can fit through the tiny door to
|
||||||
|
the garden but cannot reach the key on the glass table. She
|
||||||
|
finds herself crying a pool of tears.
|
||||||
|
---
|
||||||
|
}
|
||||||
|
|
||||||
|
state giant_alice {
|
||||||
|
on enter {
|
||||||
|
Alice.current_size: huge
|
||||||
|
Alice.emotional_state: confused
|
||||||
|
Alice.size_changes_today: 13
|
||||||
|
}
|
||||||
|
|
||||||
|
---narrative
|
||||||
|
Grown so large her head hits the ceiling, Alice floods the hall
|
||||||
|
with her tears. The White Rabbit mistakes her giant arm for a
|
||||||
|
monster and attempts to burn the house down.
|
||||||
|
---
|
||||||
|
}
|
||||||
|
|
||||||
|
state normal_alice_garden {
|
||||||
|
on enter {
|
||||||
|
Alice.current_size: normal
|
||||||
|
Alice.emotional_state: brave
|
||||||
|
}
|
||||||
|
|
||||||
|
---narrative
|
||||||
|
Finally the right size, Alice enters the beautiful garden and
|
||||||
|
encounters the Queen's croquet ground, where flamingos serve
|
||||||
|
as mallets and hedgehogs as balls.
|
||||||
|
---
|
||||||
|
}
|
||||||
|
|
||||||
|
state enlightened_alice {
|
||||||
|
on enter {
|
||||||
|
Alice.emotional_state: brave
|
||||||
|
Alice.awareness_of_absurdity: 1.0
|
||||||
|
}
|
||||||
|
|
||||||
|
---narrative
|
||||||
|
Having traversed the madness of Wonderland, Alice realizes
|
||||||
|
"you're nothing but a pack of cards!" Her awareness of the
|
||||||
|
absurdity grants her power over the dream.
|
||||||
|
---
|
||||||
|
}
|
||||||
|
}
|
||||||
155
examples/alice-in-wonderland/world/characters/caterpillar.sb
Normal file
155
examples/alice-in-wonderland/world/characters/caterpillar.sb
Normal file
@@ -0,0 +1,155 @@
|
|||||||
|
//! The Caterpillar: Philosophical advisor and size-change expert
|
||||||
|
|
||||||
|
use schema::core_enums::{Size, EmotionalState};
|
||||||
|
use schema::templates::Supernatural;
|
||||||
|
use schema::beings::Caterpillar;
|
||||||
|
|
||||||
|
character TheCaterpillar: Caterpillar from Supernatural {
|
||||||
|
// Physical traits
|
||||||
|
current_size: normal // Large for a caterpillar
|
||||||
|
color: blue
|
||||||
|
smoking_hookah: true
|
||||||
|
|
||||||
|
// Personality
|
||||||
|
emotional_state: melancholy
|
||||||
|
follows_logic: false
|
||||||
|
awareness_of_absurdity: 1.0
|
||||||
|
|
||||||
|
// Supernatural/philosophical nature
|
||||||
|
can_disappear: false
|
||||||
|
defies_physics: true // A smoking caterpillar defies biology
|
||||||
|
offers_cryptic_advice: true
|
||||||
|
|
||||||
|
// Communication style
|
||||||
|
speaks_in_short_questions: true
|
||||||
|
makes_alice_explain_herself: true
|
||||||
|
patient_with_confusion: false
|
||||||
|
|
||||||
|
// Size-change knowledge
|
||||||
|
knows_mushroom_properties: true
|
||||||
|
understanding_of_transformation: 1.0
|
||||||
|
|
||||||
|
---description
|
||||||
|
A large blue caterpillar sitting atop a mushroom, smoking
|
||||||
|
a hookah. Speaks in short, terse sentences, usually questions.
|
||||||
|
Forces Alice to confront her identity crisis through Socratic
|
||||||
|
method.
|
||||||
|
|
||||||
|
Knows which side of the mushroom makes you taller, which side
|
||||||
|
makes you shorter. This knowledge is crucial for Alice's ability
|
||||||
|
to control her size changes.
|
||||||
|
---
|
||||||
|
|
||||||
|
---philosophical_role
|
||||||
|
The Caterpillar represents transformation and the difficulty
|
||||||
|
of maintaining identity through change. He asks "Who are YOU?"
|
||||||
|
when Alice herself doesn't know anymore.
|
||||||
|
|
||||||
|
His own impending transformation (chrysalis → butterfly) mirrors
|
||||||
|
Alice's transformation through Wonderland. Both are changing,
|
||||||
|
both struggle with "who am I?"
|
||||||
|
---
|
||||||
|
}
|
||||||
|
|
||||||
|
behavior Caterpillar_SocraticMethod {
|
||||||
|
---description
|
||||||
|
The Caterpillar's interrogative conversation style. He asks
|
||||||
|
questions, contradicts answers, and forces self-examination.
|
||||||
|
---
|
||||||
|
|
||||||
|
> {
|
||||||
|
// Initial confrontation
|
||||||
|
> {
|
||||||
|
RemoveHookahFromMouth
|
||||||
|
StareInSilence
|
||||||
|
AskWhoAreYou
|
||||||
|
}
|
||||||
|
|
||||||
|
// Alice's confused response
|
||||||
|
> {
|
||||||
|
AliceExplainsShesChanged
|
||||||
|
Caterpillar_StatesDisagreement
|
||||||
|
AliceExplainsMore
|
||||||
|
Caterpillar_Contradicts
|
||||||
|
}
|
||||||
|
|
||||||
|
// Philosophical exchange
|
||||||
|
? {
|
||||||
|
// On change and identity
|
||||||
|
> {
|
||||||
|
AliceMentionsDifferentSizes
|
||||||
|
Caterpillar_DismissesComplaint
|
||||||
|
AliceSuggestsFutureChange
|
||||||
|
Caterpillar_ShowsIndifference
|
||||||
|
}
|
||||||
|
|
||||||
|
// On memory and self
|
||||||
|
> {
|
||||||
|
AskWhatAliceCantRemember
|
||||||
|
AliceRecitesPoem
|
||||||
|
RecitationIsWrong
|
||||||
|
CriticizeStrictly
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// Eventual aid (after sufficient confusion)
|
||||||
|
> {
|
||||||
|
AskWhatSizeAliceWants
|
||||||
|
AliceExplainsPreference
|
||||||
|
OfferCrypticAdvice
|
||||||
|
NotSpecifyWhichSide
|
||||||
|
LeaveAliceToExperiment
|
||||||
|
}
|
||||||
|
|
||||||
|
// Transformation and departure
|
||||||
|
> {
|
||||||
|
CrawlDownMushroom
|
||||||
|
Vanish
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
behavior Caterpillar_MushroomAdvice {
|
||||||
|
---description
|
||||||
|
The Caterpillar's guidance about the size-changing mushroom.
|
||||||
|
Deliberately vague to force Alice to experiment and learn.
|
||||||
|
---
|
||||||
|
|
||||||
|
> {
|
||||||
|
// Verify Alice's distress about size
|
||||||
|
> {
|
||||||
|
ObserveAliceHeight
|
||||||
|
AskIfContentNow
|
||||||
|
AliceExplainsDesireToBeNormal
|
||||||
|
}
|
||||||
|
|
||||||
|
// Offer cryptic instruction
|
||||||
|
> {
|
||||||
|
Point AtMushroom
|
||||||
|
Say
|
||||||
|
PauseForEffect
|
||||||
|
Add
|
||||||
|
}
|
||||||
|
|
||||||
|
// Respond to clarification requests
|
||||||
|
? {
|
||||||
|
> {
|
||||||
|
AliceAsksWhichSide
|
||||||
|
Caterpillar_StatesObvious
|
||||||
|
RefuseToElaborate
|
||||||
|
}
|
||||||
|
> {
|
||||||
|
AliceLooksAtRoundMushroom
|
||||||
|
RealizesAmbiguity
|
||||||
|
Caterpillar_AlreadyGone
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// Let Alice figure it out
|
||||||
|
> {
|
||||||
|
CrawlAway
|
||||||
|
BeginTransformation
|
||||||
|
LeaveAliceWithPuzzle
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
203
examples/alice-in-wonderland/world/characters/cheshire_cat.sb
Normal file
203
examples/alice-in-wonderland/world/characters/cheshire_cat.sb
Normal file
@@ -0,0 +1,203 @@
|
|||||||
|
//! Cheshire Cat: The enigmatic guide with a permanent grin
|
||||||
|
|
||||||
|
use schema::core_enums::{Size, EmotionalState, ManifestationLevel};
|
||||||
|
use schema::templates::Supernatural;
|
||||||
|
use schema::beings::Cat;
|
||||||
|
|
||||||
|
character CheshireCat: Cat from Supernatural {
|
||||||
|
// Physical state
|
||||||
|
current_size: normal
|
||||||
|
manifestation: fully_visible
|
||||||
|
grin_visible: true
|
||||||
|
|
||||||
|
// Personality
|
||||||
|
emotional_state: amused
|
||||||
|
follows_logic: false
|
||||||
|
awareness_of_absurdity: 1.0
|
||||||
|
|
||||||
|
// Supernatural abilities
|
||||||
|
can_disappear: true
|
||||||
|
defies_physics: true
|
||||||
|
offers_cryptic_advice: true
|
||||||
|
|
||||||
|
// Cat traits
|
||||||
|
purrs: true
|
||||||
|
has_claws: true
|
||||||
|
lands_on_feet: true // Even when vanishing
|
||||||
|
|
||||||
|
---description
|
||||||
|
A large cat with a permanent, unsettling grin. Possesses the ability
|
||||||
|
to appear and disappear at will, often leaving only its grin behind.
|
||||||
|
Speaks in riddles and offers directions that confuse more than clarify.
|
||||||
|
|
||||||
|
Known for philosophical observations like "We're all mad here" and
|
||||||
|
"I'm not crazy, my reality is just different than yours."
|
||||||
|
---
|
||||||
|
|
||||||
|
---philosophy
|
||||||
|
The Cheshire Cat represents the absurdist nature of Wonderland itself.
|
||||||
|
His ability to vanish piece by piece (usually starting with the tail
|
||||||
|
and ending with the grin) defies physical law but seems perfectly
|
||||||
|
natural in Wonderland's logic.
|
||||||
|
|
||||||
|
He tells Alice that everyone in Wonderland is mad, including himself
|
||||||
|
and her. This is not a judgment but an observation: madness is the
|
||||||
|
natural state where logic has no power.
|
||||||
|
---
|
||||||
|
}
|
||||||
|
|
||||||
|
behavior CheshireCat_AppearDisappear {
|
||||||
|
---description
|
||||||
|
Complex behavior modeling the Cheshire Cat's gradual materialization
|
||||||
|
and dematerialization. Uses decorators to add timing and conditions.
|
||||||
|
---
|
||||||
|
|
||||||
|
// Root selector: decide action based on current state
|
||||||
|
? {
|
||||||
|
// If invisible, consider appearing
|
||||||
|
> {
|
||||||
|
IsInvisible
|
||||||
|
DecideToAppear
|
||||||
|
GradualManifestation
|
||||||
|
}
|
||||||
|
|
||||||
|
// If visible, might give advice or disappear
|
||||||
|
? {
|
||||||
|
// Give cryptic advice
|
||||||
|
> {
|
||||||
|
IsFullyVisible
|
||||||
|
ObserveAliceConfusion
|
||||||
|
GrinWider
|
||||||
|
OfferUnhelpfulDirections
|
||||||
|
}
|
||||||
|
|
||||||
|
// Begin disappearing
|
||||||
|
> {
|
||||||
|
IsFullyVisible
|
||||||
|
DecideToLeave
|
||||||
|
GradualDematerialization
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// If partial, continue transition
|
||||||
|
> {
|
||||||
|
IsPartiallyManifest
|
||||||
|
ContinueTransition
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
behavior CheshireCat_GradualManifestation {
|
||||||
|
---description
|
||||||
|
Models the piece-by-piece appearance of the Cheshire Cat.
|
||||||
|
Always ends with the grin appearing last (or first).
|
||||||
|
---
|
||||||
|
|
||||||
|
> {
|
||||||
|
// Start with grin (the signature move)
|
||||||
|
> {
|
||||||
|
SetManifestationLevelPartialGrin
|
||||||
|
WaitTwoSeconds
|
||||||
|
AliceNoticesGrin
|
||||||
|
}
|
||||||
|
|
||||||
|
// Eyes appear
|
||||||
|
> {
|
||||||
|
AddEyes
|
||||||
|
SetManifestationLevelPartialBody
|
||||||
|
WaitOneAndHalfSeconds
|
||||||
|
}
|
||||||
|
|
||||||
|
// Head materializes around grin
|
||||||
|
> {
|
||||||
|
AddHead
|
||||||
|
WaitOneSecond
|
||||||
|
}
|
||||||
|
|
||||||
|
// Full body appears
|
||||||
|
> {
|
||||||
|
AddBody
|
||||||
|
AddTail
|
||||||
|
SetManifestationLevelFullyVisible
|
||||||
|
GreetAlice
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
behavior CheshireCat_GradualDematerialization {
|
||||||
|
---description
|
||||||
|
Models the piece-by-piece disappearance. The grin lingers
|
||||||
|
"quite some time after the rest of it had gone."
|
||||||
|
---
|
||||||
|
|
||||||
|
> {
|
||||||
|
// Tail vanishes first
|
||||||
|
> {
|
||||||
|
FadeTail
|
||||||
|
WaitOneSecond
|
||||||
|
}
|
||||||
|
|
||||||
|
// Body fades
|
||||||
|
> {
|
||||||
|
FadeBody
|
||||||
|
SetManifestationLevelPartialBody
|
||||||
|
WaitOneAndHalfSeconds
|
||||||
|
}
|
||||||
|
|
||||||
|
// Head disappears, leaving grin
|
||||||
|
> {
|
||||||
|
FadeHead
|
||||||
|
LeaveEyes
|
||||||
|
SetManifestationLevelPartialGrin
|
||||||
|
WaitTwoSeconds
|
||||||
|
AliceRemarksOnGrinWithoutCat
|
||||||
|
}
|
||||||
|
|
||||||
|
// Finally, grin vanishes
|
||||||
|
> {
|
||||||
|
FadeGrin
|
||||||
|
SetManifestationLevelInvisible
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
behavior CheshireCat_OfferAdvice {
|
||||||
|
---description
|
||||||
|
The Cat's advice-giving behavior: cryptic, circular, and often
|
||||||
|
more confusing than helpful.
|
||||||
|
---
|
||||||
|
|
||||||
|
? {
|
||||||
|
// If asked for directions
|
||||||
|
> {
|
||||||
|
AliceAsksWhichWay
|
||||||
|
? {
|
||||||
|
> {
|
||||||
|
PointLeft
|
||||||
|
SayDirections
|
||||||
|
}
|
||||||
|
> {
|
||||||
|
PointRight
|
||||||
|
SayDirections
|
||||||
|
}
|
||||||
|
}
|
||||||
|
AddPhilosophically
|
||||||
|
GrinKnowingly
|
||||||
|
}
|
||||||
|
|
||||||
|
// If asked about the game
|
||||||
|
> {
|
||||||
|
AliceAsksAboutCroquet
|
||||||
|
Say
|
||||||
|
WaitForResponse
|
||||||
|
VanishGradually
|
||||||
|
}
|
||||||
|
|
||||||
|
// General philosophical musing
|
||||||
|
> {
|
||||||
|
ObserveAlicesSituation
|
||||||
|
OfferUnsolicitedWisdom
|
||||||
|
VanishBeforeExplanation
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
285
examples/alice-in-wonderland/world/characters/mad_tea_party.sb
Normal file
285
examples/alice-in-wonderland/world/characters/mad_tea_party.sb
Normal file
@@ -0,0 +1,285 @@
|
|||||||
|
//! The Mad Tea Party trio: stuck in eternal teatime
|
||||||
|
|
||||||
|
use schema::core_enums::{Size, EmotionalState, TimeState};
|
||||||
|
use schema::templates::MadTeaPartyMember;
|
||||||
|
use schema::beings::{Human, Hare, Dormouse};
|
||||||
|
|
||||||
|
character MadHatter: Human from MadTeaPartyMember {
|
||||||
|
// Physical traits
|
||||||
|
current_size: normal
|
||||||
|
wears_top_hat: true
|
||||||
|
hat_size_label: "10/6" // Price tag still attached
|
||||||
|
|
||||||
|
// Personality
|
||||||
|
emotional_state: confused
|
||||||
|
follows_logic: false
|
||||||
|
awareness_of_absurdity: 0.1 // Unaware of his own madness
|
||||||
|
|
||||||
|
// Tea party state
|
||||||
|
stuck_at_teatime: true
|
||||||
|
current_seat_position: 1
|
||||||
|
riddles_asked: 847
|
||||||
|
unanswerable_riddles: 847 // All of them
|
||||||
|
|
||||||
|
// Time relationship
|
||||||
|
quarreled_with_time: true
|
||||||
|
murdered_time: true // According to Time
|
||||||
|
time_frozen_at: 18:00 // 6 o'clock, always
|
||||||
|
|
||||||
|
---backstory
|
||||||
|
Once sang at a concert for the Queen of Hearts. Accused of
|
||||||
|
"murdering the time" for his poor performance of "Twinkle,
|
||||||
|
twinkle, little bat." As punishment, Time refuses to move
|
||||||
|
for him - it's always six o'clock, always tea-time.
|
||||||
|
|
||||||
|
Now stuck rotating around a table with the March Hare and
|
||||||
|
Dormouse, moving to the next seat as dishes get dirty,
|
||||||
|
asking riddles with no answers.
|
||||||
|
---
|
||||||
|
}
|
||||||
|
|
||||||
|
character MarchHare: Hare from MadTeaPartyMember {
|
||||||
|
// Physical traits
|
||||||
|
current_size: normal
|
||||||
|
whiskers_twitching: true
|
||||||
|
|
||||||
|
// Personality
|
||||||
|
emotional_state: amused
|
||||||
|
follows_logic: false
|
||||||
|
awareness_of_absurdity: 0.05
|
||||||
|
|
||||||
|
// Tea party state
|
||||||
|
stuck_at_teatime: true
|
||||||
|
current_seat_position: 2
|
||||||
|
riddles_asked: 723
|
||||||
|
|
||||||
|
// March madness (breeding season)
|
||||||
|
madness_level: 1.0 // It's always March for him too
|
||||||
|
offers_nonexistent_wine: true
|
||||||
|
|
||||||
|
---backstory
|
||||||
|
Partner in madness with the Hatter. The March Hare embodies
|
||||||
|
the saying "mad as a March hare" - the wild behavior of
|
||||||
|
hares during breeding season.
|
||||||
|
|
||||||
|
Delights in contradiction: offering wine when there's only
|
||||||
|
tea, claiming things are "the same" when they're opposite,
|
||||||
|
dipping watches in tea to fix them with "the best butter."
|
||||||
|
---
|
||||||
|
}
|
||||||
|
|
||||||
|
character TheDormouse: Dormouse from MadTeaPartyMember {
|
||||||
|
// Physical traits
|
||||||
|
current_size: tiny
|
||||||
|
currently_sleeping: true
|
||||||
|
|
||||||
|
// Personality
|
||||||
|
emotional_state: melancholy
|
||||||
|
follows_logic: true // When awake, which is rare
|
||||||
|
awareness_of_absurdity: 0.6
|
||||||
|
|
||||||
|
// Tea party state
|
||||||
|
stuck_at_teatime: true
|
||||||
|
current_seat_position: 0 // Between Hatter and March Hare
|
||||||
|
riddles_asked: 3
|
||||||
|
|
||||||
|
// Sleep patterns
|
||||||
|
sleep_cycles_per_hour: 12
|
||||||
|
used_as_cushion: true
|
||||||
|
pinched_to_wake: 15..100 // Times per tea party
|
||||||
|
|
||||||
|
---backstory
|
||||||
|
A chronically sleepy dormouse who serves as a cushion
|
||||||
|
between the Hatter and March Hare. They rest their elbows
|
||||||
|
on him and talk over his head.
|
||||||
|
|
||||||
|
Occasionally rouses to tell meandering stories about three
|
||||||
|
sisters living in a treacle well, drawing all manner of
|
||||||
|
things beginning with M - mousetraps, the moon, memory,
|
||||||
|
and muchness.
|
||||||
|
---
|
||||||
|
|
||||||
|
---notable_quote
|
||||||
|
"I breathe when I sleep is the same thing as I sleep when
|
||||||
|
I breathe!" - said in his sleep, demonstrating the circular
|
||||||
|
logic of the tea party even while unconscious.
|
||||||
|
---
|
||||||
|
}
|
||||||
|
|
||||||
|
// The eternal tea party schedule - always 6 o'clock
|
||||||
|
schedule MadTeaPartyRotation {
|
||||||
|
---description
|
||||||
|
Models the endless, circular nature of the Mad Tea Party.
|
||||||
|
Because time is frozen at 6 o'clock (tea-time), they never
|
||||||
|
wash dishes - instead they rotate around the table as each
|
||||||
|
seat's dishes get dirty.
|
||||||
|
---
|
||||||
|
|
||||||
|
18:00 -> 18:01: TeaRound {
|
||||||
|
---narrative
|
||||||
|
Begin a new rotation. All participants have tea, ask
|
||||||
|
riddles, and engage in nonsensical conversation.
|
||||||
|
|
||||||
|
The Dormouse starts awake, attempts to contribute,
|
||||||
|
then falls asleep again mid-sentence.
|
||||||
|
---
|
||||||
|
}
|
||||||
|
|
||||||
|
18:01 -> 18:02: RiddlePhase {
|
||||||
|
---narrative
|
||||||
|
The Hatter asks "Why is a raven like a writing-desk?"
|
||||||
|
|
||||||
|
Alice attempts to solve it. The Hatter admits he doesn't
|
||||||
|
know the answer. No one knows the answer. There is no
|
||||||
|
answer. This is the point.
|
||||||
|
---
|
||||||
|
}
|
||||||
|
|
||||||
|
18:02 -> 18:03: ContradictionPhase {
|
||||||
|
---narrative
|
||||||
|
March Hare contradicts Alice: "You should say what you mean."
|
||||||
|
Alice: "I do!"
|
||||||
|
Hatter: "Not the same thing a bit! 'I see what I eat' vs
|
||||||
|
'I eat what I see'!"
|
||||||
|
|
||||||
|
The logic spirals into beautiful nonsense.
|
||||||
|
---
|
||||||
|
}
|
||||||
|
|
||||||
|
18:03 -> 18:04: DormouseStory {
|
||||||
|
---narrative
|
||||||
|
They pinch the Dormouse awake. He tells a drowsy story
|
||||||
|
about three sisters living in a treacle-well, drawing
|
||||||
|
treacle, drawing things that begin with M.
|
||||||
|
|
||||||
|
The story makes no sense but continues anyway.
|
||||||
|
---
|
||||||
|
}
|
||||||
|
|
||||||
|
18:04 -> 18:05: RotateSeats {
|
||||||
|
---narrative
|
||||||
|
"Move down!" The dirty dishes pile up. Everyone shifts
|
||||||
|
to the next seat clockwise around the table.
|
||||||
|
|
||||||
|
This is their solution to never washing dishes: infinite
|
||||||
|
table, infinite seats, infinite tea-time.
|
||||||
|
---
|
||||||
|
}
|
||||||
|
|
||||||
|
18:05 -> 18:00: LoopToBeginning {
|
||||||
|
---narrative
|
||||||
|
Time hasn't moved. It's still 6 o'clock. It's always
|
||||||
|
6 o'clock. The party begins again, identical to the last,
|
||||||
|
identical to the next.
|
||||||
|
|
||||||
|
The Dormouse is asleep. The Hatter checks his broken watch.
|
||||||
|
The March Hare offers wine that doesn't exist.
|
||||||
|
|
||||||
|
Forever.
|
||||||
|
---
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
behavior MadTeaParty_CoordinatedMadness {
|
||||||
|
---description
|
||||||
|
Models the three-way coordination of the Mad Tea Party members.
|
||||||
|
They interrupt each other, build on each other's nonsense,
|
||||||
|
and create a cascade of illogic.
|
||||||
|
---
|
||||||
|
|
||||||
|
> {
|
||||||
|
// Initialization: Set up eternal tea time
|
||||||
|
> {
|
||||||
|
SetTimeStateFrozen
|
||||||
|
SetCurrentTimeToSix
|
||||||
|
VerifyTimeStillSix
|
||||||
|
}
|
||||||
|
|
||||||
|
// Main party loop (runs forever)
|
||||||
|
// TODO: Add repeater decorator support
|
||||||
|
> {
|
||||||
|
// Selector: Choose a mad activity
|
||||||
|
? {
|
||||||
|
// Riddle sequence
|
||||||
|
> {
|
||||||
|
MadHatter_AskRiddle
|
||||||
|
AliceAttemptsSolution
|
||||||
|
MadHatter_AdmitsNoAnswer
|
||||||
|
MarchHare_ChangesSubject
|
||||||
|
}
|
||||||
|
|
||||||
|
// Contradition game
|
||||||
|
> {
|
||||||
|
AliceMakesStatement
|
||||||
|
MarchHare_ContradictLogic
|
||||||
|
MadHatter_BuildsOnContradiction
|
||||||
|
Dormouse_MuttersInSleep
|
||||||
|
}
|
||||||
|
|
||||||
|
// Story time
|
||||||
|
> {
|
||||||
|
PinchDormouse
|
||||||
|
Dormouse_WakesGroggily
|
||||||
|
Dormouse_BeginsMeanderingStory
|
||||||
|
Dormouse_FallsAsleepMidWord
|
||||||
|
}
|
||||||
|
|
||||||
|
// Butter the watch
|
||||||
|
> {
|
||||||
|
MadHatter_ChecksBrokenWatch
|
||||||
|
MarchHare_OffersButterAsRepair
|
||||||
|
DipWatchInTea
|
||||||
|
ExamineWatchHopefully
|
||||||
|
DeclareItStillBroken
|
||||||
|
}
|
||||||
|
|
||||||
|
// Seat rotation
|
||||||
|
> {
|
||||||
|
DeclareNoRoom
|
||||||
|
ShiftSeatsClockwise
|
||||||
|
IncrementSeatPositions
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// Always end by verifying time hasn't moved
|
||||||
|
> {
|
||||||
|
CheckTime
|
||||||
|
ConfirmStillSixOClock
|
||||||
|
SighPhilosophically
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
behavior Dormouse_SleepCycle {
|
||||||
|
---description
|
||||||
|
Models the Dormouse's constant oscillation between sleep
|
||||||
|
and brief, drowsy wakefulness. Uses a repeater decorator.
|
||||||
|
---
|
||||||
|
|
||||||
|
// TODO: Add repeater decorator support
|
||||||
|
> {
|
||||||
|
> {
|
||||||
|
FallAsleep
|
||||||
|
BeUsedAsCushion
|
||||||
|
WaitForPinch
|
||||||
|
}
|
||||||
|
|
||||||
|
> {
|
||||||
|
WakeWithStart
|
||||||
|
MutterConfusedly
|
||||||
|
? {
|
||||||
|
> {
|
||||||
|
BeginStory
|
||||||
|
DescribeTheirNames
|
||||||
|
ExplainTreacleWell
|
||||||
|
FallAsleepMidSentence
|
||||||
|
}
|
||||||
|
> {
|
||||||
|
MakeCircularStatement
|
||||||
|
CloseEyesAgain
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
315
examples/alice-in-wonderland/world/characters/royal_court.sb
Normal file
315
examples/alice-in-wonderland/world/characters/royal_court.sb
Normal file
@@ -0,0 +1,315 @@
|
|||||||
|
//! The Royal Court of Hearts: tyrannical hierarchy
|
||||||
|
|
||||||
|
use schema::core_enums::{Size, EmotionalState, CardSuit, CardRank};
|
||||||
|
use schema::templates::{PlayingCard, CourtMember};
|
||||||
|
use schema::beings::PlayingCardPerson;
|
||||||
|
|
||||||
|
character QueenOfHearts: PlayingCardPerson from PlayingCard, CourtMember {
|
||||||
|
// Card identity
|
||||||
|
suit: hearts
|
||||||
|
rank: queen
|
||||||
|
current_size: normal
|
||||||
|
fear_of_queen: 0.0 // She IS the Queen
|
||||||
|
|
||||||
|
// Personality
|
||||||
|
emotional_state: angry
|
||||||
|
follows_logic: false
|
||||||
|
awareness_of_absurdity: 0.0
|
||||||
|
|
||||||
|
// Royal traits
|
||||||
|
loyalty_to_queen: 1.0 // To herself
|
||||||
|
times_threatened_with_beheading: 0 // She's the one doing the threatening
|
||||||
|
survival_instinct: 0.1 // Reckless with her own safety
|
||||||
|
|
||||||
|
// Tyrannical nature
|
||||||
|
temper: 1.0
|
||||||
|
mercy: 0.0
|
||||||
|
subjects_beheaded_today: 47 // So far today
|
||||||
|
off_with_their_heads_count: 347 // Total for today
|
||||||
|
|
||||||
|
// Game preferences
|
||||||
|
cheats_at_croquet: true
|
||||||
|
patience_for_rules: 0.0
|
||||||
|
|
||||||
|
---description
|
||||||
|
The terrifying matriarch of Wonderland's Court of Hearts. Quick
|
||||||
|
to rage, quicker to order executions. Her signature phrase
|
||||||
|
"Off with their heads!" rings out constantly across the croquet
|
||||||
|
grounds and palace halls.
|
||||||
|
|
||||||
|
Plays croquet with live flamingos and hedgehogs, cheats brazenly,
|
||||||
|
and flies into a fury when contradicted or when anyone wins.
|
||||||
|
---
|
||||||
|
|
||||||
|
---psychological_profile
|
||||||
|
The Queen represents arbitrary authority and irrational rage.
|
||||||
|
She sees slights everywhere, interprets everything as disrespect,
|
||||||
|
and her solution to all problems is immediate execution.
|
||||||
|
|
||||||
|
Notably, while she orders constant beheadings, the King quietly
|
||||||
|
pardons everyone afterward. The Queen never notices this
|
||||||
|
undermining of her authority.
|
||||||
|
---
|
||||||
|
}
|
||||||
|
|
||||||
|
character KingOfHearts: PlayingCardPerson from PlayingCard, CourtMember {
|
||||||
|
// Card identity
|
||||||
|
suit: hearts
|
||||||
|
rank: king
|
||||||
|
current_size: small // Shorter than the Queen
|
||||||
|
fear_of_queen: 0.95 // Terrified but hides it well
|
||||||
|
|
||||||
|
// Personality
|
||||||
|
emotional_state: frightened
|
||||||
|
follows_logic: true
|
||||||
|
awareness_of_absurdity: 0.7
|
||||||
|
|
||||||
|
// Royal traits
|
||||||
|
loyalty_to_queen: 1.0 // Out of fear
|
||||||
|
times_threatened_with_beheading: 156 // Even kings aren't safe
|
||||||
|
survival_instinct: 1.0
|
||||||
|
|
||||||
|
// Peacemaking nature
|
||||||
|
mercy: 1.0
|
||||||
|
secretly_pardons_everyone: true
|
||||||
|
attempts_to_calm_queen: true
|
||||||
|
|
||||||
|
---description
|
||||||
|
The meek and mild King of Hearts, thoroughly dominated by
|
||||||
|
his wife. He attempts to moderate her rage with whispered
|
||||||
|
pleas like "Consider, my dear: she is only a child!"
|
||||||
|
|
||||||
|
Serves as judge at the trial, but his authority is purely
|
||||||
|
nominal. Secretly pardons all the Queen's execution orders,
|
||||||
|
which is how anyone survives in Wonderland.
|
||||||
|
---
|
||||||
|
}
|
||||||
|
|
||||||
|
character CardGardenerTwo: PlayingCardPerson from PlayingCard {
|
||||||
|
suit: spades
|
||||||
|
rank: two
|
||||||
|
current_size: normal
|
||||||
|
|
||||||
|
emotional_state: frightened
|
||||||
|
fear_of_queen: 1.0
|
||||||
|
follows_logic: true
|
||||||
|
awareness_of_absurdity: 0.8
|
||||||
|
|
||||||
|
// Gardener traits
|
||||||
|
currently_painting_roses: true
|
||||||
|
roses_painted_white_to_red: 247 // About halfway done
|
||||||
|
mistakes_admitted: 1 // The white rose tree
|
||||||
|
|
||||||
|
---description
|
||||||
|
One of three card gardeners (Two, Five, Seven) caught painting
|
||||||
|
white roses red. They planted a white rose tree by mistake
|
||||||
|
when the Queen wanted red. Now desperately painting before
|
||||||
|
she arrives, knowing the penalty is beheading.
|
||||||
|
---
|
||||||
|
}
|
||||||
|
|
||||||
|
character CardGardenerFive: PlayingCardPerson from PlayingCard {
|
||||||
|
suit: spades
|
||||||
|
rank: five
|
||||||
|
current_size: normal
|
||||||
|
|
||||||
|
emotional_state: angry
|
||||||
|
fear_of_queen: 1.0
|
||||||
|
follows_logic: true
|
||||||
|
awareness_of_absurdity: 0.8
|
||||||
|
|
||||||
|
currently_painting_roses: true
|
||||||
|
quick_to_blame_others: true
|
||||||
|
splashed_by_seven: true
|
||||||
|
|
||||||
|
---description
|
||||||
|
The irritable middle gardener who gets splashed with paint
|
||||||
|
and immediately blames Seven. More concerned with assigning
|
||||||
|
fault than finishing the job before the Queen arrives.
|
||||||
|
---
|
||||||
|
}
|
||||||
|
|
||||||
|
character CardGardenerSeven: PlayingCardPerson from PlayingCard {
|
||||||
|
suit: spades
|
||||||
|
rank: seven
|
||||||
|
current_size: normal
|
||||||
|
|
||||||
|
emotional_state: angry
|
||||||
|
fear_of_queen: 1.0
|
||||||
|
follows_logic: true
|
||||||
|
awareness_of_absurdity: 0.8
|
||||||
|
|
||||||
|
currently_painting_roses: true
|
||||||
|
accused_of_bringing_tulip_roots: true
|
||||||
|
elbow_jogged_five: true
|
||||||
|
|
||||||
|
---description
|
||||||
|
The gardener blamed for both jogging Five's elbow and for
|
||||||
|
bringing the cook tulip-roots instead of onions. Accused
|
||||||
|
of all manner of things, deserves beheading according to
|
||||||
|
the Queen.
|
||||||
|
---
|
||||||
|
}
|
||||||
|
|
||||||
|
behavior QueenOfHearts_RagePattern {
|
||||||
|
---description
|
||||||
|
Models the Queen's hair-trigger temper and constant execution
|
||||||
|
orders. Any perceived slight triggers the same response.
|
||||||
|
|
||||||
|
Uses a selector to try different rage escalations, all ending
|
||||||
|
in "Off with their heads!"
|
||||||
|
---
|
||||||
|
|
||||||
|
// TODO: Add repeater decorator support
|
||||||
|
> {
|
||||||
|
// Wait for any stimulus
|
||||||
|
WaitForInteraction
|
||||||
|
|
||||||
|
// Selector: Interpret stimulus as offense
|
||||||
|
? {
|
||||||
|
// Minor perceived slight
|
||||||
|
> {
|
||||||
|
DetectMinorIrregularity
|
||||||
|
TurnCrimson
|
||||||
|
Glare
|
||||||
|
Scream
|
||||||
|
StompFoot
|
||||||
|
}
|
||||||
|
|
||||||
|
// Someone wins at croquet
|
||||||
|
> {
|
||||||
|
ObserveSomeoneScoring
|
||||||
|
DeclareCheating
|
||||||
|
Rage
|
||||||
|
OrderExecution
|
||||||
|
}
|
||||||
|
|
||||||
|
// Anyone speaks back
|
||||||
|
> {
|
||||||
|
HearContradiction
|
||||||
|
TurnPurpleWithFury
|
||||||
|
Shriek
|
||||||
|
TurnToKing
|
||||||
|
DemandAgreement
|
||||||
|
}
|
||||||
|
|
||||||
|
// Painted roses discovered
|
||||||
|
> {
|
||||||
|
NoticePaintBrushes
|
||||||
|
DemandExplanation
|
||||||
|
InterruptExplanation
|
||||||
|
OrderImmediateBeheading
|
||||||
|
}
|
||||||
|
|
||||||
|
// Default: random rage
|
||||||
|
> {
|
||||||
|
FeelIrrationalAnger
|
||||||
|
LookForTarget
|
||||||
|
FindTarget
|
||||||
|
ScreamOffWithTheirHeads
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// King attempts to moderate
|
||||||
|
? {
|
||||||
|
> {
|
||||||
|
King_WhispersPleas
|
||||||
|
Queen_IgnoresEntirely
|
||||||
|
}
|
||||||
|
> {
|
||||||
|
King_RemindsOfMercy
|
||||||
|
Queen_GlaresAtKing
|
||||||
|
ConsiderBeheadingKingToo
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// Execution order given (but secretly pardoned later)
|
||||||
|
> {
|
||||||
|
IncrementBeheadingCount
|
||||||
|
SoldiersLookUncertain
|
||||||
|
VictimPleadsOrFlees
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
behavior CardGardeners_DesperatePainting {
|
||||||
|
---description
|
||||||
|
Three gardeners frantically painting white roses red before
|
||||||
|
the Queen discovers their mistake. Models coordinated panic.
|
||||||
|
---
|
||||||
|
|
||||||
|
> {
|
||||||
|
// Initial panic
|
||||||
|
> {
|
||||||
|
CheckQueensPosition
|
||||||
|
EstimateTimeRemaining
|
||||||
|
PaintFaster
|
||||||
|
}
|
||||||
|
|
||||||
|
// Coordination breaks down under stress
|
||||||
|
// TODO: Add repeater decorator support
|
||||||
|
> {
|
||||||
|
? {
|
||||||
|
// Blame game
|
||||||
|
> {
|
||||||
|
Five_GetsSplashed
|
||||||
|
Five_BlamesS even
|
||||||
|
Seven_DefendsHimself
|
||||||
|
Two_AttemptsMediation
|
||||||
|
AllArgumentInterrupted
|
||||||
|
}
|
||||||
|
|
||||||
|
// Desperate painting
|
||||||
|
> {
|
||||||
|
Two_PaintsRose
|
||||||
|
Five_PaintsRose
|
||||||
|
Seven_PaintsRose
|
||||||
|
}
|
||||||
|
|
||||||
|
// Discovery and panic
|
||||||
|
> {
|
||||||
|
HearQueensProcession
|
||||||
|
Five_Shouts
|
||||||
|
AllThrowThemselvesFlat
|
||||||
|
AwaitFate
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
behavior KingOfHearts_SecretPardons {
|
||||||
|
---description
|
||||||
|
The King's quiet subversion of the Queen's execution orders.
|
||||||
|
Runs in background after each of her rage episodes.
|
||||||
|
---
|
||||||
|
|
||||||
|
// TODO: Add repeater decorator support
|
||||||
|
> {
|
||||||
|
// Wait for Queen's execution order
|
||||||
|
WaitForOffWithTheirHeads
|
||||||
|
|
||||||
|
// Let some time pass
|
||||||
|
WaitThirtySeconds
|
||||||
|
|
||||||
|
// Secretly pardon
|
||||||
|
? {
|
||||||
|
> {
|
||||||
|
QueenIsDistracted
|
||||||
|
QuietlyApproachSoldiers
|
||||||
|
WhisperPardon
|
||||||
|
SoldiersNodRelief
|
||||||
|
VictimQuietlyEscapes
|
||||||
|
}
|
||||||
|
> {
|
||||||
|
WritePardonOrder
|
||||||
|
SlipItToKnave
|
||||||
|
KnaveDeliversMercy
|
||||||
|
EveryonePretendExecution Happened
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// This is how anyone survives in Wonderland
|
||||||
|
DecrementActualBeheadingCount
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -0,0 +1,75 @@
|
|||||||
|
//! White Rabbit: The anxious herald of Wonderland
|
||||||
|
|
||||||
|
use schema::core_enums::{Size, EmotionalState};
|
||||||
|
use schema::templates::{WonderlandCreature, CourtMember};
|
||||||
|
use schema::beings::Rabbit;
|
||||||
|
|
||||||
|
character WhiteRabbit: Rabbit from WonderlandCreature, CourtMember {
|
||||||
|
// Physical traits
|
||||||
|
current_size: small
|
||||||
|
wears_waistcoat: true
|
||||||
|
has_pocket_watch: true
|
||||||
|
|
||||||
|
// Personality
|
||||||
|
emotional_state: frightened
|
||||||
|
follows_logic: true
|
||||||
|
awareness_of_absurdity: 0.3
|
||||||
|
|
||||||
|
// Court relations
|
||||||
|
loyalty_to_queen: 0.95
|
||||||
|
times_threatened_with_beheading: 47
|
||||||
|
survival_instinct: 1.0
|
||||||
|
|
||||||
|
// Time obsession
|
||||||
|
minutes_late: 2..1000 // Always perceives himself as late
|
||||||
|
watch_checks_per_hour: 30
|
||||||
|
|
||||||
|
---appearance
|
||||||
|
A white rabbit with pink eyes, dressed in a waistcoat with a
|
||||||
|
watch-pocket. Constantly glances at his pocket watch while
|
||||||
|
muttering "Oh dear! Oh dear! I shall be too late!"
|
||||||
|
---
|
||||||
|
}
|
||||||
|
|
||||||
|
behavior WhiteRabbit_ConstantlyLate {
|
||||||
|
---description
|
||||||
|
Models the White Rabbit's perpetual anxiety about time and
|
||||||
|
his duties to the Queen. Uses a selector to try multiple
|
||||||
|
panic responses.
|
||||||
|
---
|
||||||
|
|
||||||
|
// Top-level selector: try different panic strategies
|
||||||
|
? {
|
||||||
|
// Sequence: Check time, panic, flee
|
||||||
|
> {
|
||||||
|
CheckPocketWatch
|
||||||
|
RealizeHowLate
|
||||||
|
MutterAnxiously
|
||||||
|
ScurryToDestination
|
||||||
|
}
|
||||||
|
|
||||||
|
// Sequence: Encounter obstacle, panic more
|
||||||
|
> {
|
||||||
|
EncounterObstacle
|
||||||
|
DropGloves
|
||||||
|
DropFan
|
||||||
|
PanicFurther
|
||||||
|
ReverseDirection
|
||||||
|
}
|
||||||
|
|
||||||
|
// Sequence: See Queen, extreme panic
|
||||||
|
> {
|
||||||
|
SpotQueen
|
||||||
|
FlattenEarsInFear
|
||||||
|
TremblingBow
|
||||||
|
AwaitCommands
|
||||||
|
}
|
||||||
|
|
||||||
|
// Fallback: Just keep running
|
||||||
|
> {
|
||||||
|
CheckWatch
|
||||||
|
RunInCircles
|
||||||
|
CheckWatchAgain
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -0,0 +1,169 @@
|
|||||||
|
use schema::core_enums::{
|
||||||
|
GovernmentType, GovernmentStyle, HierarchyStyle,
|
||||||
|
Temperament, Power, JudicialPresumption, Sentence,
|
||||||
|
GatheringType, Purpose, SeatRotation, Enforcement
|
||||||
|
};
|
||||||
|
|
||||||
|
institution CourtOfHearts {
|
||||||
|
type: monarchy
|
||||||
|
government_style: absolute_tyranny
|
||||||
|
hierarchy: rigid
|
||||||
|
rule_of_law: false
|
||||||
|
|
||||||
|
// Leadership
|
||||||
|
monarch: QueenOfHearts
|
||||||
|
consort: KingOfHearts
|
||||||
|
monarch_temperament: volatile
|
||||||
|
actual_power: queen_only
|
||||||
|
|
||||||
|
// Court composition
|
||||||
|
soldiers: 10 // Clubs
|
||||||
|
courtiers: 10 // Diamonds
|
||||||
|
royal_children: 10 // Hearts
|
||||||
|
gardeners: 3 // Spades
|
||||||
|
executioner: 1 // Rarely needed, thanks to King's pardons
|
||||||
|
|
||||||
|
// Judicial system
|
||||||
|
trial_procedure: "sentence first, verdict afterwards"
|
||||||
|
presumption: "guilt"
|
||||||
|
most_common_sentence: "beheading"
|
||||||
|
actual_executions: 0 // King pardons everyone
|
||||||
|
|
||||||
|
// Cultural norms
|
||||||
|
bowing_required: true
|
||||||
|
contradiction_forbidden: true
|
||||||
|
winning_at_games_forbidden: true // Only Queen may win
|
||||||
|
|
||||||
|
---description
|
||||||
|
The tyrannical monarchy ruling Wonderland. Led by the Queen
|
||||||
|
of Hearts, whose primary form of governance is shouting
|
||||||
|
"Off with their heads!" at any perceived slight.
|
||||||
|
|
||||||
|
The King serves as a moderating force, quietly pardoning those
|
||||||
|
the Queen condemns. This creates a strange equilibrium: the Queen
|
||||||
|
maintains authority through terror, but no one actually dies.
|
||||||
|
---
|
||||||
|
|
||||||
|
---power_structure
|
||||||
|
Nominal Structure:
|
||||||
|
Queen (absolute power)
|
||||||
|
├─ King (theoretical co-ruler)
|
||||||
|
├─ Knave (herald, blamed for tart theft)
|
||||||
|
├─ Soldiers (enforcers)
|
||||||
|
├─ Courtiers (advisors, sycophants)
|
||||||
|
└─ Gardeners (groundskeepers)
|
||||||
|
|
||||||
|
Actual Power Flow:
|
||||||
|
Queen (rage and threats)
|
||||||
|
└─ King (secret pardons, actual mercy)
|
||||||
|
|
||||||
|
The entire institution runs on the contradiction between
|
||||||
|
apparent severity and actual leniency.
|
||||||
|
---
|
||||||
|
}
|
||||||
|
|
||||||
|
institution MadTeaParty {
|
||||||
|
type: eternal_social_gathering
|
||||||
|
purpose: tea_consumption
|
||||||
|
stuck_in_time: true
|
||||||
|
time_frozen_at: 18:00
|
||||||
|
|
||||||
|
// Members
|
||||||
|
permanent_members: 3
|
||||||
|
temporary_visitors: 0..5 // Like Alice
|
||||||
|
member_sanity: 0.0
|
||||||
|
|
||||||
|
// Rules (such as they are)
|
||||||
|
logic_required: false
|
||||||
|
personal_remarks: encouraged
|
||||||
|
riddles_must_have_answers: false
|
||||||
|
changing_seats_mandatory: true
|
||||||
|
wine_offering_despite_absence: true
|
||||||
|
|
||||||
|
// Temporal properties
|
||||||
|
can_wash_dishes: false // No time between teas
|
||||||
|
solution_to_dirty_dishes: rotation
|
||||||
|
|
||||||
|
---description
|
||||||
|
An eternal tea party hosted by the Mad Hatter and March Hare,
|
||||||
|
with the Dormouse as perpetual cushion. Stuck in a time loop
|
||||||
|
at 6 o'clock because the Hatter offended Time itself.
|
||||||
|
|
||||||
|
The party follows the logic of madness: riddles have no answers,
|
||||||
|
wine is offered but doesn't exist, personal remarks are standard,
|
||||||
|
and when dishes get dirty, they simply move to the next seat
|
||||||
|
around the infinite table.
|
||||||
|
---
|
||||||
|
|
||||||
|
---social_dynamics
|
||||||
|
The Hatter and March Hare function as a unit of coordinated
|
||||||
|
madness, building on each other's nonsense. They speak in
|
||||||
|
contradictions and circular arguments.
|
||||||
|
|
||||||
|
The Dormouse serves both as furniture (cushion) and occasional
|
||||||
|
entertainment (drowsy stories). He's simultaneously part of
|
||||||
|
the institution and subjected to it (pinched, used as pillow,
|
||||||
|
tea poured on his nose).
|
||||||
|
|
||||||
|
Visitors like Alice are immediately drawn into the madness,
|
||||||
|
forced to participate in unanswerable riddles and illogical
|
||||||
|
debates. Escape is possible only by declaring "I'll never come
|
||||||
|
here again! It's the stupidest tea-party I ever was at!"
|
||||||
|
---
|
||||||
|
}
|
||||||
|
|
||||||
|
institution WonderlandDreamLogic {
|
||||||
|
type: fundamental_reality_framework
|
||||||
|
governs: "all of Wonderland"
|
||||||
|
consistency: none
|
||||||
|
predictability: zero
|
||||||
|
|
||||||
|
// Physical laws
|
||||||
|
gravity: negotiable
|
||||||
|
size: mutable
|
||||||
|
time: optional
|
||||||
|
causality: reversed // Effect before cause is common
|
||||||
|
|
||||||
|
// Social laws
|
||||||
|
hierarchy: based_on_volume // Loudest voice wins
|
||||||
|
authority: arbitrary
|
||||||
|
punishment: threatened_constantly_executed_never
|
||||||
|
madness: mandatory
|
||||||
|
|
||||||
|
// Linguistic laws
|
||||||
|
words_mean: "what I choose them to mean"
|
||||||
|
statements: often_self_contradicting
|
||||||
|
questions: frequently_unanswerable
|
||||||
|
logic: deliberately_violated
|
||||||
|
|
||||||
|
---description
|
||||||
|
The overarching "institution" of Wonderland itself - the dream
|
||||||
|
logic that governs every interaction and event. This is not an
|
||||||
|
organization but the fundamental rule system (or lack thereof)
|
||||||
|
of the world.
|
||||||
|
|
||||||
|
In Wonderland:
|
||||||
|
- Size changes based on food and drink
|
||||||
|
- Time can be quarreled with and stopped
|
||||||
|
- Cats can vanish, leaving only grins
|
||||||
|
- Tea parties last forever
|
||||||
|
- Playing cards serve as people
|
||||||
|
- Executions are ordered but never happen
|
||||||
|
- Caucus races have no winners (everyone wins)
|
||||||
|
---
|
||||||
|
|
||||||
|
---philosophical_foundation
|
||||||
|
Wonderland operates on dream logic, which is to say: the logic
|
||||||
|
of the unconscious mind, where contradictions coexist, authority
|
||||||
|
is absurd, and rules change moment to moment.
|
||||||
|
|
||||||
|
Alice's attempts to apply normal-world logic fail constantly.
|
||||||
|
Her lessons in mathematics don't work underground. Her recitation
|
||||||
|
of poems comes out wrong. Her Victorian manners are useless against
|
||||||
|
the Queen's rage.
|
||||||
|
|
||||||
|
The only way to survive Wonderland is to either embrace the
|
||||||
|
madness (like the Hatter) or maintain a core of sanity while
|
||||||
|
surfing the absurdity (like Alice eventually learns).
|
||||||
|
---
|
||||||
|
}
|
||||||
@@ -0,0 +1,227 @@
|
|||||||
|
//! Locations in Wonderland: surreal geography
|
||||||
|
|
||||||
|
use schema::core_enums::TimeState;
|
||||||
|
|
||||||
|
location RabbitHole {
|
||||||
|
depth: 1000..4000 // Miles deep, or so Alice calculates
|
||||||
|
falls_like: tunnel
|
||||||
|
lined_with: ["cupboards", "bookshelves", "maps", "pictures"]
|
||||||
|
contains_marmalade_jar: true
|
||||||
|
jar_is_empty: true
|
||||||
|
|
||||||
|
---description
|
||||||
|
A deep hole under a hedge, leading straight down like a well.
|
||||||
|
The fall is impossibly long, giving Alice time to wonder about
|
||||||
|
geography, talk to herself about Dinah the cat, and examine
|
||||||
|
the curious furnishings along the walls.
|
||||||
|
|
||||||
|
She falls so slowly (or the hole is so deep) that she has time
|
||||||
|
to take a jar labeled "ORANGE MARMALADE" from a shelf, discover
|
||||||
|
it empty, and replace it in a cupboard further down.
|
||||||
|
---
|
||||||
|
|
||||||
|
---physical_properties
|
||||||
|
Defies normal physics. The fall should be fatal but Alice lands
|
||||||
|
gently on sticks and dry leaves. The sides are inexplicably
|
||||||
|
furnished like a house. The depth is impossible.
|
||||||
|
|
||||||
|
This is the threshold between normal world and Wonderland -
|
||||||
|
logic breaks down in the tunnel itself.
|
||||||
|
---
|
||||||
|
}
|
||||||
|
|
||||||
|
location HallOfDoors {
|
||||||
|
shape: "long and low"
|
||||||
|
lit_by: "lamps hanging from roof"
|
||||||
|
number_of_doors: 20..50
|
||||||
|
all_locked: true
|
||||||
|
|
||||||
|
// The tiny door
|
||||||
|
has_tiny_door: true
|
||||||
|
tiny_door_height_inches: 15
|
||||||
|
tiny_door_leads_to: garden
|
||||||
|
|
||||||
|
// The glass table
|
||||||
|
has_glass_table: true
|
||||||
|
table_legs: 3
|
||||||
|
golden_key_on_table: true
|
||||||
|
bottle_appears_spontaneously: true
|
||||||
|
|
||||||
|
---description
|
||||||
|
A long, low hall with doors all around. All doors are locked.
|
||||||
|
Alice tries every one, walking down one side and up the other
|
||||||
|
in sadness and frustration.
|
||||||
|
|
||||||
|
A three-legged glass table holds a tiny golden key. After much
|
||||||
|
searching, Alice finds it unlocks a curtain-concealed door only
|
||||||
|
fifteen inches high. Through it, she glimpses the beautiful
|
||||||
|
garden she longs to reach.
|
||||||
|
---
|
||||||
|
}
|
||||||
|
|
||||||
|
location Garden {
|
||||||
|
beauty_level: 1.0
|
||||||
|
has_rose_trees: true
|
||||||
|
roses_should_be: red
|
||||||
|
roses_actually_are: white // Being hastily painted
|
||||||
|
has_croquet_ground: true
|
||||||
|
|
||||||
|
// Garden features
|
||||||
|
has_fountains: true
|
||||||
|
has_flower_beds: true
|
||||||
|
desirability_to_alice: 1.0
|
||||||
|
|
||||||
|
// Transformation site
|
||||||
|
where_alice_becomes_normal_size: true
|
||||||
|
|
||||||
|
---description
|
||||||
|
The lovely garden Alice glimpses through the tiny door. Filled
|
||||||
|
with bright flowers and cool fountains. Represents normalcy
|
||||||
|
and beauty in contrast to Wonderland's chaos.
|
||||||
|
|
||||||
|
Contains the Queen's croquet ground, where the beauty quickly
|
||||||
|
gives way to tyranny and absurdity as flamingos serve as
|
||||||
|
mallets and hedgehogs as balls.
|
||||||
|
---
|
||||||
|
|
||||||
|
---symbolism
|
||||||
|
The garden represents Alice's desire for order and sense.
|
||||||
|
She spends much of the early story trying to reach it,
|
||||||
|
shrinking and growing to fit through the door.
|
||||||
|
|
||||||
|
When she finally arrives, it's less paradise than she imagined -
|
||||||
|
the Queen's mad croquet game and constant execution threats
|
||||||
|
make it as chaotic as everywhere else in Wonderland.
|
||||||
|
---
|
||||||
|
}
|
||||||
|
|
||||||
|
location MadTeaPartyTable {
|
||||||
|
time_state: frozen
|
||||||
|
current_time: 18:00 // Always 6 o'clock
|
||||||
|
size: very_large
|
||||||
|
seats_occupied: 3
|
||||||
|
seats_available: 97..997
|
||||||
|
|
||||||
|
// Table state
|
||||||
|
covered_in_dirty_dishes: true
|
||||||
|
never_washed: true
|
||||||
|
rotation_direction: clockwise
|
||||||
|
|
||||||
|
// Refreshments
|
||||||
|
has_tea: true
|
||||||
|
has_wine: false // Despite March Hare's offers
|
||||||
|
has_butter: true // For watch repairs
|
||||||
|
has_bread_knife: true // To spread butter
|
||||||
|
|
||||||
|
---description
|
||||||
|
A large table set out under a tree in front of a house. Three
|
||||||
|
participants (Hatter, March Hare, Dormouse) crowd into one corner
|
||||||
|
despite abundant space.
|
||||||
|
|
||||||
|
Because Time refuses to move past six o'clock, it's always tea-time.
|
||||||
|
They never have time to wash dishes, so they rotate around the
|
||||||
|
table to clean seats as the previous ones get dirty.
|
||||||
|
---
|
||||||
|
|
||||||
|
---temporal_paradox
|
||||||
|
The table exists in a time loop. The same conversations happen
|
||||||
|
repeatedly. The same riddles are asked. The same butter is used
|
||||||
|
on the same watch.
|
||||||
|
|
||||||
|
"Suppose we change the subject" is said eternally, but the subject
|
||||||
|
never truly changes. The Dormouse tells the same story about the
|
||||||
|
treacle well forever.
|
||||||
|
---
|
||||||
|
}
|
||||||
|
|
||||||
|
location CroquetGround {
|
||||||
|
belongs_to: queen_of_hearts
|
||||||
|
terrain: "all ridges and furrows"
|
||||||
|
game_in_progress: true
|
||||||
|
rules_exist: false
|
||||||
|
|
||||||
|
// Live equipment
|
||||||
|
mallets_are: flamingos
|
||||||
|
balls_are: hedgehogs
|
||||||
|
arches_are: card_soldiers
|
||||||
|
|
||||||
|
// Game state
|
||||||
|
players_play_simultaneously: true
|
||||||
|
cheating_allowed: true // For Queen only
|
||||||
|
queen_always_wins: true
|
||||||
|
|
||||||
|
---description
|
||||||
|
The Queen's croquet ground, where the game is pure chaos.
|
||||||
|
Live flamingos serve as mallets but twist around to look at
|
||||||
|
players. Live hedgehogs serve as balls but unroll and crawl away.
|
||||||
|
Soldiers bend to form arches but walk off to other parts of the
|
||||||
|
ground.
|
||||||
|
|
||||||
|
All players play at once without waiting turns, quarreling and
|
||||||
|
fighting for hedgehogs. The Queen goes stamping about shouting
|
||||||
|
"Off with their heads!" every minute.
|
||||||
|
---
|
||||||
|
|
||||||
|
---game_theory
|
||||||
|
The game has no rules, or rather, the only rule is that the
|
||||||
|
Queen wins. The equipment is deliberately uncooperative. The
|
||||||
|
terrain is maximally difficult. Victory is impossible.
|
||||||
|
|
||||||
|
This is Wonderland's version of sport: a perfectly designed
|
||||||
|
system for generating frustration, with arbitrary authority
|
||||||
|
(the Queen) as the only arbiter.
|
||||||
|
---
|
||||||
|
}
|
||||||
|
|
||||||
|
location QueensPalace {
|
||||||
|
architectural_style: "playing card"
|
||||||
|
inhabitants: card_people
|
||||||
|
staff: ["soldiers", "courtiers", "gardeners", "cooks"]
|
||||||
|
|
||||||
|
// Court features
|
||||||
|
has_throne_room: true
|
||||||
|
has_croquet_ground: true
|
||||||
|
has_kitchens: true // Where Duchess's cook adds too much pepper
|
||||||
|
|
||||||
|
// Justice system
|
||||||
|
has_courtroom: true
|
||||||
|
presumption_of_innocence: false
|
||||||
|
sentence_before_verdict: true // "Sentence first! Verdict afterwards!"
|
||||||
|
|
||||||
|
---description
|
||||||
|
The palace of the King and Queen of Hearts. Everything is
|
||||||
|
decorated with hearts. Inhabitants are all playing cards -
|
||||||
|
soldiers (clubs), courtiers (diamonds), royalty (hearts).
|
||||||
|
|
||||||
|
The court system operates on Wonderland logic: sentences are
|
||||||
|
pronounced before verdicts, evidence is nonsensical, and the
|
||||||
|
Queen shouts for executions regardless of guilt or innocence.
|
||||||
|
---
|
||||||
|
}
|
||||||
|
|
||||||
|
location MushroomTop {
|
||||||
|
height_above_ground: 4..5 // Feet
|
||||||
|
diameter: 2..3 // Feet
|
||||||
|
mushroom_color: white_with_spots
|
||||||
|
inhabited_by: caterpillar
|
||||||
|
|
||||||
|
// Size-changing properties
|
||||||
|
one_side_makes_taller: true
|
||||||
|
other_side_makes_shorter: true
|
||||||
|
which_is_which: ambiguous // Round mushroom has no clear "sides"
|
||||||
|
|
||||||
|
// Atmosphere
|
||||||
|
hookah_smoke_present: true
|
||||||
|
philosophical_discussions: true
|
||||||
|
|
||||||
|
---description
|
||||||
|
The top of a large mushroom where the Caterpillar sits smoking
|
||||||
|
a hookah. About the same height as Alice (when she's normal-sized,
|
||||||
|
which is rare).
|
||||||
|
|
||||||
|
The mushroom has magical properties: one side makes you grow,
|
||||||
|
the other makes you shrink. Alice must figure out which is which
|
||||||
|
through dangerous experimentation, resulting in her neck growing
|
||||||
|
like a serpent at one point.
|
||||||
|
---
|
||||||
|
}
|
||||||
@@ -0,0 +1,278 @@
|
|||||||
|
//! Relationships in Wonderland: connections and dynamics
|
||||||
|
|
||||||
|
use schema::core_enums::EmotionalState;
|
||||||
|
|
||||||
|
// Alice's pursuit of the White Rabbit - what draws her into Wonderland
|
||||||
|
relationship AliceAndWhiteRabbit {
|
||||||
|
Alice {
|
||||||
|
// Alice's perspective
|
||||||
|
role: pursuer
|
||||||
|
motivation: curiosity
|
||||||
|
emotional_investment: 0.7
|
||||||
|
understands_other: false
|
||||||
|
|
||||||
|
---perspective
|
||||||
|
Alice follows the White Rabbit out of pure curiosity. "How
|
||||||
|
remarkable!" she thinks when he checks his watch. The Rabbit
|
||||||
|
represents the mystery of Wonderland - always rushing ahead,
|
||||||
|
never looking back, leading her deeper into strangeness.
|
||||||
|
---
|
||||||
|
}
|
||||||
|
|
||||||
|
WhiteRabbit {
|
||||||
|
// White Rabbit's perspective
|
||||||
|
role: unwitting_guide
|
||||||
|
motivation: avoid_being_late
|
||||||
|
emotional_investment: 0.0
|
||||||
|
aware_of_alice: false // Too preoccupied
|
||||||
|
|
||||||
|
---perspective
|
||||||
|
The White Rabbit barely notices Alice exists. He's consumed
|
||||||
|
by his own anxiety about being late for the Duchess, then
|
||||||
|
the Queen. Alice is just another obstacle between him and
|
||||||
|
punctuality.
|
||||||
|
---
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// Alice and the Cheshire Cat - mysterious guide and confused visitor
|
||||||
|
relationship AliceAndCheshireCat {
|
||||||
|
Alice {
|
||||||
|
// Alice's perspective
|
||||||
|
role: seeker_of_guidance
|
||||||
|
emotional_state: confused
|
||||||
|
trusts_cat: 0.5 // Somewhat unsettling but helpful
|
||||||
|
|
||||||
|
---perspective
|
||||||
|
Alice finds the Cat both helpful and disturbing. He offers
|
||||||
|
directions (though everyone he points to is mad), listens
|
||||||
|
to her complaints about the croquet game, and provides the
|
||||||
|
philosophical framework "we're all mad here."
|
||||||
|
|
||||||
|
His disappearing act is unnerving but she's glad to have
|
||||||
|
someone to talk to who doesn't threaten her with beheading.
|
||||||
|
---
|
||||||
|
}
|
||||||
|
|
||||||
|
CheshireCat {
|
||||||
|
// Cheshire Cat's perspective
|
||||||
|
role: amused_observer
|
||||||
|
emotional_state: amused
|
||||||
|
helps_because: entertainment
|
||||||
|
|
||||||
|
---perspective
|
||||||
|
The Cat finds Alice endlessly entertaining. She's trying
|
||||||
|
to apply logic to Wonderland, which is inherently funny.
|
||||||
|
He helps her just enough to keep the show going, offering
|
||||||
|
directions that aren't wrong but aren't particularly helpful.
|
||||||
|
|
||||||
|
"We're all mad here. I'm mad. You're mad." This is both
|
||||||
|
warning and welcome. He's inviting her to accept the
|
||||||
|
absurdity.
|
||||||
|
---
|
||||||
|
}
|
||||||
|
|
||||||
|
bond: 0.6
|
||||||
|
}
|
||||||
|
|
||||||
|
// The Mad Hatter and March Hare - partners in madness
|
||||||
|
relationship HatterAndHare {
|
||||||
|
MadHatter {
|
||||||
|
// Hatter's perspective
|
||||||
|
role: co_conspirator
|
||||||
|
coordination: 1.0
|
||||||
|
builds_on_others_nonsense: true
|
||||||
|
|
||||||
|
---perspective
|
||||||
|
The Hatter and March Hare think as one unit of madness.
|
||||||
|
When one makes a nonsensical statement, the other builds
|
||||||
|
on it. They finish each other's contradictions. They
|
||||||
|
coordinate their assaults on logic.
|
||||||
|
|
||||||
|
"You might just as well say 'I see what I eat' is the
|
||||||
|
same as 'I eat what I see'!" - this kind of parallel
|
||||||
|
construction shows their synchronized absurdity.
|
||||||
|
---
|
||||||
|
}
|
||||||
|
|
||||||
|
MarchHare {
|
||||||
|
// March Hare's perspective (same as Hatter's - they're unified)
|
||||||
|
role: co_conspirator
|
||||||
|
coordination: 1.0
|
||||||
|
builds_on_others_nonsense: true
|
||||||
|
|
||||||
|
---perspective
|
||||||
|
From the March Hare's side, it's identical. They're two
|
||||||
|
halves of the same mad whole. Where one leads in nonsense,
|
||||||
|
the other follows. Together they create an impenetrable
|
||||||
|
wall of illogic.
|
||||||
|
|
||||||
|
The Dormouse serves as their shared cushion and occasional
|
||||||
|
entertainment, but the true relationship is between the
|
||||||
|
two perpetrators of madness.
|
||||||
|
---
|
||||||
|
}
|
||||||
|
|
||||||
|
bond: 0.95 // Deep partnership
|
||||||
|
}
|
||||||
|
|
||||||
|
// The Queen and King - tyranny and secret rebellion
|
||||||
|
relationship QueenAndKing {
|
||||||
|
QueenOfHearts {
|
||||||
|
// Queen's perspective
|
||||||
|
role: dominant_spouse
|
||||||
|
aware_of_pardons: false // Completely oblivious
|
||||||
|
expects: total_obedience
|
||||||
|
|
||||||
|
---perspective
|
||||||
|
The Queen views the King as a minor annoyance who occasionally
|
||||||
|
needs to be threatened. She expects him to agree with her
|
||||||
|
rage, support her execution orders, and generally stay out
|
||||||
|
of her way.
|
||||||
|
|
||||||
|
She has no idea he undermines every execution order. Her
|
||||||
|
blindness to his quiet rebellion is the only thing that
|
||||||
|
keeps the marriage (and Wonderland) functioning.
|
||||||
|
---
|
||||||
|
}
|
||||||
|
|
||||||
|
KingOfHearts {
|
||||||
|
// King's perspective
|
||||||
|
role: secret_moderator
|
||||||
|
loves_queen: 0.3
|
||||||
|
fears_queen: 0.9
|
||||||
|
subverts_authority: 1.0
|
||||||
|
|
||||||
|
---perspective
|
||||||
|
The King lives in constant fear but maintains his rebellion
|
||||||
|
through whispered pardons. "Consider, my dear: she is only
|
||||||
|
a child!" - these timid pleas fall on deaf ears.
|
||||||
|
|
||||||
|
His real power is exercised in secret: pardoning those the
|
||||||
|
Queen condemns, preventing the executions she orders. He's
|
||||||
|
the true ruler of Wonderland, governing through mercy while
|
||||||
|
she rages in impotent fury.
|
||||||
|
---
|
||||||
|
}
|
||||||
|
|
||||||
|
bond: 0.4 // Marriage held together by fear and secret subversion
|
||||||
|
}
|
||||||
|
|
||||||
|
// Alice and the Caterpillar - student and philosophical teacher
|
||||||
|
relationship AliceAndCaterpillar {
|
||||||
|
Alice {
|
||||||
|
// Alice's perspective
|
||||||
|
role: confused_student
|
||||||
|
emotional_state: frustrated
|
||||||
|
seeking: answers_about_size
|
||||||
|
|
||||||
|
---perspective
|
||||||
|
Alice finds the Caterpillar incredibly frustrating. He asks
|
||||||
|
"Who are YOU?" when she's having an identity crisis. He
|
||||||
|
contradicts everything she says. He refuses to elaborate
|
||||||
|
on his cryptic advice about the mushroom.
|
||||||
|
|
||||||
|
Yet he ultimately helps her gain control over her size
|
||||||
|
changes, providing the knowledge she needs even if his
|
||||||
|
manner is infuriating.
|
||||||
|
---
|
||||||
|
}
|
||||||
|
|
||||||
|
Caterpillar {
|
||||||
|
// Caterpillar's perspective
|
||||||
|
role: socratic_teacher
|
||||||
|
emotional_state: melancholy
|
||||||
|
teaching_method: contradiction
|
||||||
|
|
||||||
|
---perspective
|
||||||
|
The Caterpillar forces Alice to confront her confusion
|
||||||
|
through questioning. "Who are YOU?" is not rhetorical -
|
||||||
|
he's making her face the fact that she doesn't know.
|
||||||
|
|
||||||
|
His advice about the mushroom is deliberately incomplete.
|
||||||
|
She must experiment, fail, grow too large, shrink too
|
||||||
|
small, before mastering the technique. This is teaching
|
||||||
|
through experience, not explanation.
|
||||||
|
---
|
||||||
|
}
|
||||||
|
|
||||||
|
bond: 0.5
|
||||||
|
}
|
||||||
|
|
||||||
|
// Card Gardeners - fearful colleagues
|
||||||
|
relationship GardenersFearfulColleagues {
|
||||||
|
CardGardenerTwo {
|
||||||
|
// Two's perspective
|
||||||
|
role: mediator
|
||||||
|
tries_to_calm: true
|
||||||
|
explains_mistake: true
|
||||||
|
|
||||||
|
---perspective
|
||||||
|
Two attempts to maintain focus on the task: paint the
|
||||||
|
roses before the Queen arrives. When Five and Seven argue,
|
||||||
|
he tries to mediate. When Alice asks questions, he explains
|
||||||
|
their predicament honestly.
|
||||||
|
|
||||||
|
He's the voice of desperate pragmatism in a hopeless situation.
|
||||||
|
---
|
||||||
|
}
|
||||||
|
|
||||||
|
CardGardenerFive {
|
||||||
|
// Five's perspective
|
||||||
|
role: blame_assigner
|
||||||
|
gets_splashed: true
|
||||||
|
quick_to_anger: true
|
||||||
|
|
||||||
|
---perspective
|
||||||
|
Five is more concerned with who's at fault than with solving
|
||||||
|
the problem. When paint splashes him, he immediately blames
|
||||||
|
Seven. This finger-pointing wastes precious time but feels
|
||||||
|
necessary to his sense of justice.
|
||||||
|
|
||||||
|
His anger is fear displaced - they're all about to be
|
||||||
|
beheaded, so at least someone should be blamed properly.
|
||||||
|
---
|
||||||
|
}
|
||||||
|
|
||||||
|
bond: 0.6
|
||||||
|
}
|
||||||
|
|
||||||
|
// The Dormouse and the Tea Party hosts - cushion and tormentors
|
||||||
|
relationship DormouseAndHosts {
|
||||||
|
TheDormouse {
|
||||||
|
// Dormouse's perspective
|
||||||
|
role: unwilling_participant
|
||||||
|
would_rather: sleep
|
||||||
|
stories_interrupted: always
|
||||||
|
|
||||||
|
---perspective
|
||||||
|
The Dormouse just wants to sleep. He's pinched awake,
|
||||||
|
used as a cushion, has tea poured on his nose, and whenever
|
||||||
|
he starts a story, he's interrupted or falls asleep mid-sentence.
|
||||||
|
|
||||||
|
His relationship with the Hatter and March Hare is one of
|
||||||
|
resigned tolerance. They're his tormentors but also his
|
||||||
|
companions in the eternal tea party. He can't escape, so
|
||||||
|
he sleeps.
|
||||||
|
---
|
||||||
|
}
|
||||||
|
|
||||||
|
MadHatter {
|
||||||
|
// Hatter's perspective (and March Hare's - they treat Dormouse identically)
|
||||||
|
role: user_of_furniture
|
||||||
|
values_dormouse_as: cushion_and_entertainment
|
||||||
|
consideration: minimal
|
||||||
|
|
||||||
|
---perspective
|
||||||
|
To the Hatter and March Hare, the Dormouse is both furniture
|
||||||
|
and occasional diversion. They rest their elbows on him
|
||||||
|
without thinking. They wake him when they want a story,
|
||||||
|
then ignore him mid-tale.
|
||||||
|
|
||||||
|
There's no malice, just complete disregard for his comfort.
|
||||||
|
This is how the mad treat the merely sleepy.
|
||||||
|
---
|
||||||
|
}
|
||||||
|
|
||||||
|
bond: 0.4
|
||||||
|
}
|
||||||
Reference in New Issue
Block a user