Registries
breeds.txt, objects.txt, stashes, piles, memory, journal, and every registered name.
Names the parser hears. Spaces in stories map to underscores (cookie jar → cookie_jar).
| Registry | File | Story example | Script name |
|---|---|---|---|
| Breeds | breeds.txt | labrador, golden retriever | same (spaces become _) |
| Objects | objects.txt | ball, 5 balls | ball |
| Stashes | stashes.txt | her cookie jar | cookie_jar |
| Piles | piles.txt | the laundry basket | laundry_basket |
| Memory | (built-in) | memory | whole number |
| Journal | (built-in) | journal | text |
Use bark --list-breeds and bark --list-objects to print names from the CLI. Lists below match the shipped resource files.
Why names are registry-bound
Bark is a dog-themed story language, not a general-purpose scripting language. Breeds, objects, stashes, and piles must appear in the resource files before the parser treats them as real names.
| If you write… | What happens |
|---|---|
I have a labrador. | Works: labrador is in breeds.txt |
I have a poodle mix. | Fails or warns: poodle_mix is not registered unless you add it |
her cookie jar holds "biscuit" | Works: cookie_jar is in stashes.txt |
her snack tin holds "bit" | Fails: invent a stash in stashes.txt first |
This is intentional. The registry keeps stories grounded in a shared dog world. For quick experiments use script mode with registry names.
Adding names: edit the .txt files (and optionally traits.json for breeds), rebuild, run.
Not planned: user-defined variables for breed/object names, import, or runtime registration.
Story variables
Two program-wide variables for story authors. Not a general variable system:
- memory: whole number. Grammar: Story variables.
- journal: text. Same assign/print glue as
memory.
Breeds (breeds.txt)
In stories, spaces become underscores (golden retriever → golden_retriever). Only breeds in this list can appear in scripts.
affenpinscher, afghan_hound, airedale_terrier, akita, alaskan_malamute,
american_bulldog, american_eskimo_dog, american_foxhound, american_pit_bull_terrier,
american_staffordshire_terrier, anatolian_shepherd, australian_cattle_dog, australian_shepherd,
australian_terrier, basenji, basset_hound, beagle, bearded_collie, bedlington_terrier,
belgian_malinois, belgian_sheepdog, belgian_tervuren, bernese_mountain_dog, bichon_frise,
bloodhound, bluetick_coonhound, border_collie, border_terrier, borzoi, boston_terrier,
bouvier_des_flandres, boxer, briard, brittany, brussels_griffon, bull_terrier, bulldog,
bullmastiff, cairn_terrier, canaan_dog, cane_corso, cavalier_king_charles_spaniel,
chesapeake_bay_retriever, chihuahua, chinese_crested, chinese_shar_pei, chow_chow,
clumber_spaniel, cockapoo, cocker_spaniel, collie, coonhound, corgi, dachshund, dalmatian,
dandie_dinmont_terrier, doberman_pinscher, dogo_argentino, dogue_de_bordeaux,
english_cocker_spaniel, english_foxhound, english_setter, english_springer_spaniel,
english_toy_spaniel, entlebucher_mountain_dog, eurasier, field_spaniel, finnish_lapphund,
finnish_spitz, flat_coated_retriever, fox_terrier, french_bulldog, german_pinscher,
german_shepherd, german_shorthaired_pointer, german_wirehaired_pointer, giant_schnauzer,
glen_of_imaal_terrier, golden_retriever, gordon_setter, great_dane, great_pyrenees,
greater_swiss_mountain_dog, greyhound, harrier, havanese, husky, ibizan_hound,
icelandic_sheepdog, irish_setter, irish_terrier, irish_water_spaniel, irish_wolfhound,
italian_greyhound, jack_russell_terrier, japanese_chin, keeshond, kerry_blue_terrier,
komondor, kuvasz, labrador, labrador_retriever, lagotto_romagnolo, lakeland_terrier,
leonberger, lhasa_apso, lowchen, maltese, manchester_terrier, mastiff,
miniature_bull_terrier, miniature_pinscher, miniature_schnauzer, neapolitan_mastiff,
newfoundland, norfolk_terrier, norwegian_buhund, norwegian_elkhound, norwegian_lundehund,
norwich_terrier, nova_scotia_duck_tolling_retriever, old_english_sheepdog, otterhound,
papillon, parson_russell_terrier, pekingese, pembroke_welsh_corgi,
petite_basset_griffon_vendeen, pharaoh_hound, plott_hound, pointer,
polish_lowland_sheepdog, pomeranian, poodle, portuguese_water_dog, pug, puli, pumi,
pyrenean_shepherd, rat_terrier, redbone_coonhound, rhodesian_ridgeback, rottweiler,
russell_terrier, saint_bernard, saluki, samoyed, schipperke, scottish_deerhound,
scottish_terrier, sealyham_terrier, shetland_sheepdog, shiba_inu, shih_tzu,
siberian_husky, silky_terrier, skye_terrier, sloughi, smooth_fox_terrier,
soft_coated_wheaten_terrier, spanish_water_dog, spinone_italiano,
staffordshire_bull_terrier, standard_schnauzer, sussex_spaniel, swedish_vallhund,
tibetan_mastiff, tibetan_spaniel, tibetan_terrier, toy_fox_terrier,
treeing_walker_coonhound, vizsla, weimaraner, welsh_springer_spaniel, welsh_terrier,
west_highland_white_terrier, whippet, wire_fox_terrier, wirehaired_pointing_griffon,
wirehaired_vizsla, xoloitzcuintli, yorkshire_terrier
182 breeds total.
Objects (objects.txt)
World counters like ball 5 and I bark ball only work for names in this file.
Use feed/eat verbs for food (treat, snack, cookie, …) and find/lose verbs for items (toy, ball, …). They update separate counters on the dog.
ball, bone, bowl, biscuit, cookie, frisbee, orange, leash, snack, squeaky_toy,
stick, tennis_ball, sweets, sweet, slippers, toy_box
Object aliases include balls → ball, cookies → cookie, biscuits → biscuit, snacks → snack.
Print a global object count: bark ball → Variable(ball).
Stashes (stashes.txt)
Story phrases like her cookie jar map to registry names (cookie_jar).
cookie_jar, toy_basket, toy_box, treat_jar, treat_pouch, treat_bag, walk_bag,
snack_drawer, biscuit_tin, chew_toy_bin, under_the_couch, dog_crate, scraps
Piles (piles.txt)
Story phrases like the laundry basket map to registry names (laundry_basket).
laundry_basket, plate_stack, pillow_heap, shoe_pile, newspaper_stack
Default traits (traits.json)
Breeds listed here get default traits at registration. Other breeds in breeds.txt work fine but start with no traits until you assign them in the story (my corgi is loud) or add an entry. Full table: Traits.
Traits should reflect real breed tendencies in a playful, stereotype-y way. I didn't add it for all dogs and I might expand upon this further in a later version if people like it.
