DF fortress mostly is a simulation, and the depth of combat simulation comes from the many details lain out in the raws such as body parts, body layers, armor layers, weapon skills, armor and weapon materials and quality. Then add procedurally generated FBs with many combinations of attacks and composition as one enemy. Or even better, simulate fights between groups of individual dwarves versus groups of individual goblins on mounts versus undead minions versus HFS and you can have a 4-way battle royale.
But in order to get this simulation of epic battle, players only have limited means to only manipulate the factors through each dwarf via armor uniforms, weapons selection, training up their skills, and when to engage the fight.
The direct functions to command these dwarves are limited to move to an area or attack an individual target or defend an area. But even when attack designations are set, the dwarf is still not directly controlled because the dwarf is still stimulated on whether it will go directly attack, or take time to gather equipment, or eat first or sleep first, or flee in the fight, or fight to the point on unconsciousness only to wake up and continue fighting.
So the current game hardship is through the UI on how to provide changes to the limited functions in tweaking the simulation.
Armor uniforms, is tedious because it does not allow copying and loading uniforms between fortresses. Functionally, it's simple as picking which ones to wear, and who will wear the uniform. It can be Ok once setup initially, but if a player wants more uniform combinations, it becomes tedious.
Uniform is further complicated by the other features such as replace clothing, wear or not wear as civilians, hidden uniform for certain labors, material choices and availability, and even material colors. So a player can want to have many uniform combination which makes the details so mind blowing, but how to assign those uniforms are tedious after the first set because I have to start from scratch of naming the uniform, selecting the armor pieces once again, and then choosing the material for each armor piece.
Knowledge of how armor layering applies, so when a dwarf "simulates" wearing the uniform, sometimes the dwarf ends up naked and the player confused.
Training is fairly simple as assigning a barracks and setting the squad to train in that barracks.
The complications come with the many ways to set up a barracks. On whether to sleep there, store equipment there. Training melee differs from range.
Again, training is simulated as the dwarves can either self-drill, watch demonstrations, or spar.
Squad assignment is fairly simple in function. Pick a squad leader. Add members to a squad. Select uniform for the squad.
It's easy at first, but becomes tedious when you start having more than 30 military units. Selecting a squad leader, then moving the cursor to find which dwarf belongs to that squad from a population list of 100+ is a lot of keyboard scrolling.
Now for the Squad Training Function -- that is a simple function by itself. Select a squad and set when they will train.
The complication in the UI tries to fit this info in a grid matrix via ASCII display. The functions to create an Schedule order (be it training or patrol or defend), for a set number of squad members, applied to which month of the year --- these functions are there.
But even when these functions are learned, managing complicated scheduling for 4+ squads gets very tedious indeed.
edit typos from first draft, there's probably more typos and grammar errors but I need to go to lunch. :p