config diagnostics: report unknown keys

fixed one such key

removed @data, the initializer splits it all up into other
@attributes
config diagnostics: warn if no `moves` are defined

it is confusing to decipher the compilation errors only to realize that
the compiler uses the old structure with unusable paths
fail soon if some dependencies are not converted yet

note that we only check direct dependencies
refactored transitive_deps

and documented the subtle unused bonus
of producing topologically sorted output
diagnostics: report misspelled modules instead of producing nil