Inspired by Tridion Stack Exchange Question.
There is one more thing about list definition which is not used enough despite being flexible and powerful.
It is List Definition Path resolver.
If you are working on list extension, there is one little thing which you should know about.
This tiny thing is a list column translator.
Might sound simple, but in fact it is a very-very powerful tool when you want to change your list representation.