Selfish Giant

Oscar Wilde

Selfish Giant
const beautifulGarden = new Garden({ name: "BeautifulGarden" }) .with( Grass.SOFT, Flowers.STARLIKE, Trees.PEACH.times(12)) .surroundedBy( Structure.WALL.HIGH); const childrenVillage = Group.of("VillageChildren").idle(); const selfishGiant = new Character("SelfishGiant"); selfishGiant .returnFrom( Years.AWAY(7)) .see(childrenVillage.playIn(beautifulGarden)) .jawTighten() .coldVoice().say("My garden is my own! Out!") .ban(childrenVillage); childrenVillage .react(Fear.TRUE) .gasp() .scream("Ah! The Giant!") .scatterOutside(beautifulGarden) .holdBreath() .exhaleSlow(); beautifulGarden.silence().fall(); // Giant builds the wall and fixes the sign selfishGiant .build(Structure.WALL.HIGH.around(beautifulGarden)) .sign(Notice.text("Let all keep away from my garden!")) .say("Now no one shall enter my garden!"); // the garden becomes closed and empty beautifulGarden .surroundedBy(Structure.WALL.HIGH) .lock( Season.SPRING, Season.SUMMER, Season.AUTUMN) .allow(Season.WINTER) .silence() .fall(); Season.WINTER .enable() .wind(Wind.NORTH) .bring( Weather.FROST, Weather.HAIL) .howl("Hooo…"); const hole = Structure.WALL.makeHole( beautifulGarden); childrenVillage .moveTo(Structure.WALL) .whisper("Shh… a hole!") .through(hole) .blinkRapid() .playUnder(Trees.ALL); beautifulGarden.allow(Season.SPRING).sigh(); // far corner stays winter — a small boy struggles const smallBoy = childrenVillage .filter(member => member.isYounger()); smallBoy .enter(beautifulGarden) .deepInto() .moveTo(tree) .browKnit() .lipQuiver() .try(Act.CLIMB) .fail() .slipHands() .clingTrunk() .inhaleSharp() .blinkRapid() .cry() .shakyVoice().say("Tree… please…").wordsTrail() .heart.race(); selfishGiant .wake() .blinkSlow() .browLift() .steadyVoice().mutter("Music? In my garden?") .look() .shouldersDrop() .softenHeart() .open(Gate.MAIN) .allow(childrenVillage) .set(Flag.SAFE, true); childrenVillage.peek().holdBreath(1); // help → lift → kiss selfishGiant .stepTo(smallBoy) .kneel() .softVoice().say("Little one, why did you not play with the others?"); smallBoy .wipeTear() .shakyVoice().say("The tree was tall, and I was small.") .eyesShine() .lookUp(); selfishGiant .feel(Emotion.PITY) .smile("gentle") .steadyVoice().say("Come, let me help you.") .inhaleSharp() .lift(Gently.TRUE) .exhaleSlow(); selfishGiant.hand.right.lift(smallBoy).to(branch); SmallBoy .hold(branch) .arm.left.stabilize() .hand.left.touch(tree.trunk) .feelWarm(branch) .eyesShine() .see(tree.nearby.bloom().rustleLight()); smallBoy .holdBranch() .leanIn() .kiss(selfishGiant.cheek) .say("Thank you, for letting me in.") .laughWide() .heart.steady(); selfishGiant .hand.right.touch(selfishGiant.cheekWith( kiss.from(smallBoy))) .eyesCloud() .tearWell() .wipeTear() .exhaleWarm() .smile() .tag(Disposition.KIND); childrenVillage .peek() .returnTo(beautifulGarden) .regroup() .playDaily(); beautifulGarden.setPriority( Priority.KIDS_FIRST); selfishGiant .stand() .straightenBack() .destroy(Structure.WALL) .steadyVoice().say("This garden belongs to all children!"); childrenVillage .browLift() .cheer("Hooray! The Giant is kind now!") .runSunlitPaths() .laughWide(); beautifulGarden.fillWith( Laughter, Light, Blossoms); Time.pass( Years.MANY); selfishGiant .growOld() .sit("sunny bench") .softVoice().say("Where are you, my dear little boy?"); beautifulGarden .morning(Season.WINTER) .whiten(Blossoms.WHITE); smallBoy .appearAt(beautifulGarden.corner("far")) .glowSoft() .showWounds({ hands: 2, feet: 2 }); smallBoy .pause() .steadyVoice() .say("These are the wounds of Love."); selfishGiant .stagger() .browKnit() .jawTighten() .voiceBreaks().say("Who dared hurt you?") .heart.sink(); smallBoy .steadyVoice() .say("These are the wounds of Love.") .pause() .softVoice() .say("You once let me play in your garden;") .say("today you shall come with me to my garden — Paradise.") .wordsTrail(); selfishGiant .blinkSlow() .shouldersDrop() .closeEyes() .smileSoftly() .exhaleSlow() .answer("Yes… I am ready."); beautifulGarden .setMode( GardenMode.SPRING_FOREVER) .bloom( Blossoms.WHITE_FOREVER) .birds( Sound.MORNING_CHOIR); selfishGiant.sleep().dreamOf(smallBoy); Heaven.open() .send("soft-light") .collect([ Token.LOVE, selfishGiant]) .routeTo(Place.PARADISE); childrenVillage .find(selfishGiant) .hush() .holdBreath(1) .softVoice().say("He is sleeping.") .exhaleSlow();