At the moment I am inclined to keep as much of the "logic" as possible out of TRS, and put it in a "helper application". One reason for this is that what I am proposing to develop is an additional means of controlling operations, so that there is a choice of operating schemes, just as one can choose between DCC and cab control mode when playing as driver / engineer. Another reason is that some of what I want to accomplish may require data structures that are not supported by TRS. For example, consider a modeled industry which has a dedicated car supply. Two cars of this supply are loaded, one to a destination which is three times as far away as the other. Both cars are delivered in interchange on the same day. Now, the car going three times as far away should not re-appear on the route for at least twice as long as the other car delivered the same day.
Another reason for keeping the logic out of TRS is allowing for the possibility of using the software with other platforms. If an individual on another platform, whether another simulator, or even with a tangible model railroad, finds out about the package, and begs eloquently enough ["I'll pay ..." might be eloquent in the right circumstances?] that I am persuaded to implement the software for that platform (tangible modeling, for example) if the logic is external to TRS, then I may have to change some read and write routines, and create some data structures, but this would be easier than duplicating logic.
I don't claim to have done an exhaustive survey of the available software programs for generating switchlists and waybills, but I every one I have looked at thus far seems hopelessly mired in the 1950's model railroad mindset. For tangible model railroaders, there is are limits that do not confront virtual modelers. For one thing, there is not much "freeware". In the arena of tangible modeling, this mostly involves two things: going to an auction, seeing a box of modeling equipment no one wanted, and buying a couple of hundred dollars worth of equipment for a token fee is one, and an idea I remember reading probably 25 years ago, taking an "ordinary" car and painting one side of it with one car number, and the other with another, was a second. So a tangible model railroader is has a need for an operating scheme that simulates realistic operation with a few dozens of models in a finite space. By contrast, virtual modelers do not have these constraints. 10 x 20 yards / meters would be a very generous layout space in tangible modeling; in virtual modeling it is two grid squares of a single board. In like manner, while there is no way for a tangible modeler to run a car he doesn't actually have possession of, this is a trivial matter for virtual modelers, where the physical space required for a fleet of Goodpasture, Inc. as listed in the January 1980 Official Railway Equipment Register--4 cars, two each of two types--takes the same physical space as the entire fleet for Conrail (120747 cars, in a number of classes and subclasses) reported in the same source.
Finally, the various waybill and switchlist operating schemes were state of the art when they were developed in the 1950's, but has remained more or less static and ignored advances in the state of the art of gaming control. The computational capabilities each of us has are not used as well as they could be when our hardware is used only for input, data maintenance, and output capabilities. What I want to do is to create a program (or suite of programs) which would allow interested parties to choose to model on a more prototypical basis, a wider range of the overall operations of a railroad, rather than just those bits related to the operation of trains and engines.
ns