I think dogs are a little underloved in Dwarf Fortress. They're kind of just emotionless robotic constructs. So I think they could bear to be spiced up a bit.
- Breeding dogs: Not the current caste and descriptor system. Basically you could buy different types of dogs (small dog, large dog, long dog etc.) Dogs could also have different types of fur, so you could breed a bunch of small and furry dogs for cuteness or really big dogs to assign for war.
-Improved training: Newly born puppies would be (tame), but could not be adopted. They would have to be trained in a kennel (house trained [see house training], manners, etc.). they would then be (trained) and able to be put up for adoption.
- Personalities through training: Would be determined by the trainer who trains the dog (dogs would have to be trained before being adopted as pets). A trainer who is strict would cause the dog to be obedient, a trainer who has a happy outlook on life would train the dog as happy and loving all your dwarves. A trainer who hates animals would make the dog hate all dwarves and bite and snap at them (though not do more than bruise a limb).
- Personalities through owner: If a strict dwarf adopts a carefree dog, then he/she will slowly start to get it towards a median between carefree and obedient. A mean military dwarf who hates dogs who is assigned an incredibly loyal war dog will slowly start to alienate the dog until it is rebellious.
- Combined descriptors: This is XXXXXXXX, pet of YYYYYYYYY. He is very tiny. His brown fur is incredibly fluffy and soft and has small white patches. His large floppy ears perk up when he is curious. He is very carefree and loving.
This is XXXXXXXX, pet of YYYYYYYY. He is typically sized. His tan fur is coarse and has thin brown stripes. His small rounded ears don't move much. He is very nervous and snappy around dwarves, but is becoming more trusting.
This is XXXXXXXX, a guard dog assigned to a chain. She is incredibly large. Her solid black fur is coarse and thick. Her pointed ears flatten when she is angry. She is hostile towards strangers.
Different uses for animals: A small fluffy dog would improve the happiness of a dwarf who likes animals that adopts it (unless it is snappy due to a mean trainer, in which it then frustrates the dwarf until it is trained and friendly, when it then gives a large happiness boost). That dog would also have a high value when being traded as a pet (trading away a dwarf's pet would give a large happiness loss, but un-adopted dogs would be fine) A strong, agile dog would be good for training as a hunting dog. A large and muscular dog who is incredibly loyal would be a good war dog. A large dog who is distrustful of strangers would be a good guard dog.
Improve dog behavior: Carefree dogs should enjoy going outside with their owners, chase large vermin and small animals (like birds) around, etc. They would be bad at protecting their owners, however. Loyal dogs should bark at strangers going near their dwarf and follow their dwarves around religiously. If they're large, they would be OK in fights with enemies. Obedient dogs should always follow their owners around as well and only get in fights if their owner does first. Snappy dogs should stay away from dwarves and other humans/goblins/kobolds/elves, attack (for minor damage, like bruising) when cornered and scrounge small wildlife and refuse piles. Persistent, animal loving dwarves with animal training enabled would be the only dwarves to try and tame the dog.
Dog happiness: It would be nice if dogs had some sort of a simplified happiness meter. If it was really low (if they were hungry, had to go to the bathroom [see house training], thirsty, owner gone for awhile), they would whine and/or bark, somewhat annoying other dwarves. Their owners would cheer them up when not doing a job by playing with them. When the dog is really happy and is carefree, it would improve the mood of it's owner and the dwarves woudl walk by it a bit.
Housetraining: Basically, a dog would have to go outside every now and then. This is fine normally, but during sieges/Fun outside, can be a problem. If the owner is busy for a very long time and can't take the dog out, or the dog can't go out for a while for some other reason, it would 'go' inside, not creating anything (until everybody agrees on feces, lets keep that stuff minimal) but lowering it's happiness a fair bit and the poor sap who has to clean that tile's happiness a bit too.
All the happiness/bathroom/etc. meters would be confined to pet dogs only, so the game won't slow down a ton from tracking the hapiness of 10,000 un-adopted food dogs or dogs about to be traded as pets. I don't think descriptors would take up too much memory. This should probably be an init option as well, for those who want simple animals.
Also, I'm thinking this could be applied to other animals too, like cats.
This is Cat XXXXX, pet of YYYYYYY. He is large for a cat and somewhat fat. His short furry orange fur has darker stripes going through it. His pointy ears are immobile. His long tail constantly bats around. He is very friendly and enjoys meeting strangers.