Steve,
thank you for your reply. To answer your question, the current version of the trackplan for one of the two layouts that I am planning to build (and the one that I am currently planning to build first) is . For reference, tracks in various shades of green are fiddle/staging yards; tracks in white are main line and tracks in red are yards/sidings in the scenic area, mainly carriage sidings.
The complexity that requires abstraction is not so much the pathfinding as the relationship between a timetable (existing as a dataset apart from any specific code anywhere) and actually selecting specific trains to run particular transits, etc. at specific times.
How did you set up AutoDispatcher - do you have any documentation for this? It would be very useful to know more about its capabilities.
Having spent some time just now considering the Traincontroller documentation, it does appear to have support for precisely what I want to achieve in terms of abstraction and automation (pick one train from a set of trains starting in one of a set of starting blocks, travel to an end block, and be able to select that set of things to occur at specific times and/or repeat at specific intervals by way of user interface entries), but at the cost of an awful user interface, being not open source and having to use Windows, as well as a non-trivial financial cost.
I am interested that somebody has written something in Jython to achieve something apparently similar to what I am after, although it would be a great shame if this were never to be made public, as it would be of great use. The reasons for not making something like this public are usually either: (1) it has lots of code that is only relevant to the specific user/coder and is not very portable; (2) the coder does not consider it of good enough quality to make public; or (3) the coder wishes to be able to sell it commercially one day.
In any event, I should be interested to learn more about this script.