Many, but not necessarily all, consonants belong to various chains of gradations. Since this isn't going to be a fully constructed idea, I'll just present some possibilities inspired by Finnish:
k: > k > g > w, y, ɣThe various gradation patterns come in three basic forms: initial, middle and final. Prefixes and suffixes also introduce a new set of patterns: the exfinal and exinitial gradations, i.e. patterns for how a formerly final or formerly initial consonant behaves when forced into a new environment. These patterns are very similar to middle patterns, but differ in some subtle ways.
ŋk > ŋg > ŋw, ŋy, ŋɣ
p: > p > b > w
w > w
y > y
ɣ > ε (empty string)
The w > w and y > y examples illustrate changes that just don't happen: a root where such a change would be expected remains invariant with regards to that consonant.
A special situation may occur in monosyllabic words if 'penultimate' consonants rather than medial consonants are the actual class that this operates on. However, consonants that are both initial and penultimate may behave in unique ways that partially pattern with medial, partially with initial consonants. (The complement way around could also be conceivable: final consonants in monosyllables behaving in a way that merges final and medial traits; having both occur seems to stretch credulity though, and this would simply mean that in monosyllables, both ends of the word behave wonkily.)
Sometimes, the surrounding vowels may affect how a consonant behaves, giving us many possible outcomes:
g > w (before back, close vowels), y (before front vowels), ɣ (before open back vowels)These patterns may differ depending on position, due to various historical changes.
Now, a root is a string of the form
(C)V((C)CV)(C)Thus yaktub, ka, tak:, bastu or aŋɣa are all permissible. The morphology then operates in two ways: affixes and gradations. We may have, for instance, rules that derive the following inflected forms (on the right) from the roots tak and tak:. Notice that these roots also have homonyms appearing among the inflectional forms of each other:
tak > dakIt is conceivable that root-k behaves different from k-derived-from-k: one can then imagine that the roots tak: and tak differ down the line:
tak: > tak
tak: > tag
tak > tag
tak > taɣ
tak: > dak:
Of course, I am not just talking about k vs k: here, any pair whose lines have shared elements could imaginably behave differently down the line of changes, due to whatever underlying historical changes hide behind the analogies that created this morphology.
tak: > tak > tax tak > tag > taɣ
Medial clusters can muddy the picture a bit, mostly with a variety of assimilations or dissimilations:
yaktub > yagrub (< *yagdub)Morphological forms could then be described as
yaktub > yaktuw
yaktub > yaxsuw
pastu > bastu
pastu > wastu
pastu > baru (< *bardu < *bazdu < *basdu)
CaVCbVCdwhere a, b and d are numbers indicating how far down the chain of gradation the sound is to be shifted; a number that probably never is larger than 3; this gives, for three-consonant roots 27 possible forms; with affixes added, this permits for quite a sufficient amount of morphology. Some roots will have fewer on account of having consonants from which there is nowhere to go: they either vanish at the first stage or get stuck at some point just mutating into themselves but this is not unusual for real-life languages either.