Traits

Assigning traits, runtime effects, and the full traits.json default table.

Trait words: loud, greedy, lazy, wet, fetchy, chaser, playful.

Assigning traits

LineParses asNeed to know
my corgi is loudSetTrait[corgi, loud, true]
my corgi is not loudSetTrait[corgi, loud, false]not / never before trait
husky is loud nopeSetTrait[husky, loud, false]Boolean after trait also works
husky is loud emptySetTrait[husky, loud, false]Null-clear words disable

Default traits per breed live in traits.json. Breeds without an entry start with no traits.

Printing bark my labrador is loud shows true/false. It does not set the trait.

Runtime trait effects

TraitEffect
loudDog-voiced bark/barks/woof print in ALL CAPS; narrator bark unchanged
greedyAfter 3 feeds/gulps/shares in a row, lose 1 treat (food only; counter resets)
lazywait sleeps twice as long
wetwhine / whimper output doubled
fetchySame print twice → tail THUMP THUMP — same stick, still the best stick on stdout, then the line again
chaserEach loop tick adds +1 toy to that dog's items (same field as squirrels in stories)
playfulDog speaks → output reversed before formatting; narrator bark unchanged. Defaults: bearded collie, border collie, flat-coated retriever, cockapoo, papillon, shetland sheepdog

Mood: Dog speaks (she barks, labrador woofs): 0 toys → lowercase even though the verb is bark; loud → uppercase. Narrator (bark "…", I bark "…"): as written.

traits.json defaults (60 breeds)

Breeds not listed start with no default traits.

BreedDefault traits
affenpinscherloud
afghan_houndchaser
akitachaser
alaskan_malamuteloud, chaser
australian_cattle_dogfetchy, chaser
australian_shepherdfetchy, chaser
basset_houndloud, lazy, greedy
bearded_colliefetchy, playful
beagleloud, greedy, chaser
bernese_mountain_doglazy, wet
bloodhoundlazy, chaser
border_colliefetchy, chaser, playful
boston_terrierloud
boxergreedy, fetchy
bulldoglazy, greedy
cavalier_king_charles_spaniellazy
chihuahualoud
chow_chowlazy
cocker_spanielfetchy, wet
colliefetchy, chaser
corgigreedy, lazy, loud
dachshundloud, greedy, chaser
dalmatianchaser
dobermanchaser
english_setterfetchy, wet
flat_coated_retrieverfetchy, playful, wet
french_bulldoglazy, greedy
german_shepherdchaser, fetchy
golden_retrievergreedy, fetchy, wet
great_danelazy
greyhoundchaser, lazy
huskyloud, chaser
irish_setterfetchy, wet
irish_water_spanielwet, fetchy
jack_russell_terrierloud, chaser, fetchy
labradorgreedy, fetchy, wet
labrador_retrievergreedy, fetchy, wet
malteseloud
miniature_schnauzerloud
newfoundlandwet, lazy
cockapoofetchy, playful
papillonplayful, loud
pekingeselazy, loud
pointerfetchy, chaser
pomeranianloud
poodlefetchy
puglazy, greedy, loud
rhodesian_ridgebackchaser
rottweilergreedy
saint_bernardlazy, wet
samoyedloud
shiba_inuloud, chaser
shetland_sheepdogfetchy, playful, chaser
shih_tzulazy
siberian_huskyloud, chaser
springer_spanielfetchy, wet
vizslafetchy, chaser
weimaranerfetchy, chaser
whippetchaser, lazy
yorkshire_terrierloud

Greedy penalty detail: Runtime semantics.