Traits
Assigning traits, runtime effects, and the full traits.json default table.
Trait words: loud, greedy, lazy, wet, fetchy, chaser, playful.
Assigning traits
| Line | Parses as | Need to know |
|---|---|---|
my corgi is loud | SetTrait[corgi, loud, true] | |
my corgi is not loud | SetTrait[corgi, loud, false] | not / never before trait |
husky is loud nope | SetTrait[husky, loud, false] | Boolean after trait also works |
husky is loud empty | SetTrait[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
| Trait | Effect |
|---|---|
loud | Dog-voiced bark/barks/woof print in ALL CAPS; narrator bark unchanged |
greedy | After 3 feeds/gulps/shares in a row, lose 1 treat (food only; counter resets) |
lazy | wait sleeps twice as long |
wet | whine / whimper output doubled |
fetchy | Same print twice → tail THUMP THUMP — same stick, still the best stick on stdout, then the line again |
chaser | Each loop tick adds +1 toy to that dog's items (same field as squirrels in stories) |
playful | Dog 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.
| Breed | Default traits |
|---|---|
| affenpinscher | loud |
| afghan_hound | chaser |
| akita | chaser |
| alaskan_malamute | loud, chaser |
| australian_cattle_dog | fetchy, chaser |
| australian_shepherd | fetchy, chaser |
| basset_hound | loud, lazy, greedy |
| bearded_collie | fetchy, playful |
| beagle | loud, greedy, chaser |
| bernese_mountain_dog | lazy, wet |
| bloodhound | lazy, chaser |
| border_collie | fetchy, chaser, playful |
| boston_terrier | loud |
| boxer | greedy, fetchy |
| bulldog | lazy, greedy |
| cavalier_king_charles_spaniel | lazy |
| chihuahua | loud |
| chow_chow | lazy |
| cocker_spaniel | fetchy, wet |
| collie | fetchy, chaser |
| corgi | greedy, lazy, loud |
| dachshund | loud, greedy, chaser |
| dalmatian | chaser |
| doberman | chaser |
| english_setter | fetchy, wet |
| flat_coated_retriever | fetchy, playful, wet |
| french_bulldog | lazy, greedy |
| german_shepherd | chaser, fetchy |
| golden_retriever | greedy, fetchy, wet |
| great_dane | lazy |
| greyhound | chaser, lazy |
| husky | loud, chaser |
| irish_setter | fetchy, wet |
| irish_water_spaniel | wet, fetchy |
| jack_russell_terrier | loud, chaser, fetchy |
| labrador | greedy, fetchy, wet |
| labrador_retriever | greedy, fetchy, wet |
| maltese | loud |
| miniature_schnauzer | loud |
| newfoundland | wet, lazy |
| cockapoo | fetchy, playful |
| papillon | playful, loud |
| pekingese | lazy, loud |
| pointer | fetchy, chaser |
| pomeranian | loud |
| poodle | fetchy |
| pug | lazy, greedy, loud |
| rhodesian_ridgeback | chaser |
| rottweiler | greedy |
| saint_bernard | lazy, wet |
| samoyed | loud |
| shiba_inu | loud, chaser |
| shetland_sheepdog | fetchy, playful, chaser |
| shih_tzu | lazy |
| siberian_husky | loud, chaser |
| springer_spaniel | fetchy, wet |
| vizsla | fetchy, chaser |
| weimaraner | fetchy, chaser |
| whippet | chaser, lazy |
| yorkshire_terrier | loud |
Greedy penalty detail: Runtime semantics.
