1.6.1
- removed: migration support for versions < 1.2.0 (May 2017)
- added: hr graphics
- added: yellow depot lamp color indicating a train with assigned delivery still being parked
- changed: stop timeout description no longer mentions inactivity #83
- changed: train references from MainLocomotive.unit_number to train.id
- changed: deliveries will be removed instantly if the assigned train changes composition e.g a wagon is removed
- changed: lamp colors update faster
- fixed: mining a single locomotive parked at an ltn stop would not update the stop

1.6.0
- updated to Factorio 0.16
- added train composition signal for artillery wagon

1.5.5
- changed Mod Description to include LTN
- added depot inactivity setting

1.5.4
- added option to reset delivery and schedule when trains leave requester

1.5.3
- fixed active deliveries to/from a stop sometimes isn't properly updated
- lamp outputs number of active deliveries as value of yellow signal (green wire only)
- lamp outputs error code as values of red/pink signal (green wire only)
- depots, short circuited and disabled stops reset stops active deliveries count completely (use to reset stops showing wrong counts)

1.5.2
- changed station time out from inactivity to time passed
- reduced overhead in on_train_changed_state
- pushed base to 0.15.37 (stable)

1.5.1
- Chinese translation
- stops deactivated by circuit condition or other scripts are not updated
- short circuited stops are skipped without reading circuit signals
- short circuit and deactivated error state take priority over duplicate name

1.5.0
- fixed request threshold icon to show ≤ instead of ≥
- added request priority control signal #22
- changed provider priority icon to be in line with request priority
- changed provider prioritization to provider priority > #existing deliveries from provider > amount #69
- fixed locked slots where subtracted from total train slots instead of per wagon

1.4.14
- added mod setting "Dispatcher Enabled"

1.4.13
- reverted base dependency to 0.15.34 (stable)

1.4.12
- allowed negative provider priority again #64
- pushed base to 0.15.35

1.4.11
- thresholds are read as absolute values
- ignore negative control signals except thresholds

1.4.10
- improved circuit signal read performance
- pushed base to 0.15.34

1.4.9
- added localized mod title and mod description
- fixed possible integer overflow from mod settings
  - limit max values on stop and delivery timeout to 1 hour
  - limit other int settings to 2^32 -1

1.4.8
- added more details to debug log messages
- "no provider found" warning message changed from message level 2 to 1
- message level dropdown texts better reflect their behaviour

1.4.7
- fixed: distance check could prevent better matching trains from being picked
- fixed: error encoding train composition for trains longer than 31 carriages #55

1.4.6
- bumped required Factorio version to current stable
- fixed: Dispatcher picked trains closest to request stop instead of providing stop
- fixed: local wagon capacity lookup table could potentially cause desync

1.4.5
- removed left over debug message

1.4.4
- fixed: deliveries where not properly reserved
- performance optimizations

1.4.3
- fixed nil reference when no providers are available

1.4.2
- internally store train capacity for faster access when searching available trains
- rewritten Dispatcher logic

1.4.1
- fixed: Items where not removed from providers after being added to an order
- fixed: orders where merged between different requester

1.4.0
- Dispatcher goes through requests by age of requests/item instead of requests/stop
- Dispatcher is no longer limited to 1 train/s
- spread dispatcher update over 3 ticks

1.3.5
- removed "log level" and "log output" settings
- added "message level" for console messages only (no level 4: debug)
- added "write debug logfile" checkbox for debug log generation into Factorio-current.log
- changed provider prioritization making deliveries merge more reliably (#trains > provider priority > #existing deliveries from provider > amount)
- fixed potential nil reference during stop update

1.3.4
- code cleanup
- train state change and train created events are only if LTN stops exist

1.3.3
- automatically set output combinator limit
- exceeding output slot size results in some signals being not generated by the output and a console message

1.3.2
- Chinese translation
- fixed error with no longer existing items #43

1.3.1
- added force to deliveries
- added support for force merging

1.3.0
- added Request Threshold and Provide Threshold
- removed Minimum Delivery Size and Ignore Minimum Delivery Size
- removed Best Effort, Provide Threshold = 1 does the same now
- added Disable Warnings Messages control signal #34
- limit messages to force where possible #40
- added workaround for fluid wagon residue #31
- removed toggle to loading list, stops only show expected inventory after loading

1.2.8
- added German locale
- fixed bug in Chinese locale
- switched to 128x128 tech icon
- overloaded trains no longer cause requesters to flip to providers during delivery #33
- set expected train inventory to default to active

1.2.7
- fixed potential nil references in first_signal and stop ghost entities

1.2.6
- fixed error when schedule is referencing non existing items

1.2.5
- replaced workaround with get_fluid_count and get_fluid_contents

1.2.4
- added toggle between output of positive load, negative unload amount and expected train inventory after (un-)loading
- added Chinese locale by 745275633
- formated setting descriptions, should be less wall of text
- fixed a crash when adding carriages to trains parked at provider or requester

1.2.3
- fixed desync https://forums.factorio.com/viewtopic.php?f=23&t=46873
- fixed dispatcher picks providers with incompatible train length
- duplicate names are checked across all train-stops instead of only LTN Stops
- improved performance of checking duplicate names by using events introduced with 0.15

1.2.2
- overloading trains updates delivery size once per update interval (before update was only done once train leaves provider)
- fixed overloading trains reserved too much of an item/fluid in provider
- fixed fluid deliveries where accidentally deleted at departure from provider

1.2.1
- updated mod setting descriptions
- replaced floating-text hack to get inventory sizes with 0.15 functions
- added support of icons{} to signal generation

1.2.0
- moved config.lua to mod settings
- added support for any Fluid Wagon for fluid transport
- removed support of RailTanker (RailTankers will be ignored, removed fake item conversions)
- short circuit detection uses network id
  - removed grey detection signal from output


1.1.3
- fixed error when schedule is referencing non existing items
- fixed potential nil references in first_signal and stop ghost entities

1.1.1
- deconstruction of broken stops properly removes stop and surrounding I/O entities
- automatically remove orphaned lamp control entities
- speed up loading by skipping parts of initialization according to old_version
- messages differing only in item count are treated as the same message by the message filter
- decreased delivery-removed-timeout and delivery-removed-train-invalid from log level 2 to 1

1.1.0
- added finish_loading to config: prevents trains from leaving while inserters are working by adding 2s inactivity

1.0.1
- fixed possible errors with mods changing the base train stop recipe

1.0.0
- Dispatcher uses linear distance between depot and provider when choosing between equally valid trains
- localized console Messages for log levels 1, 2 and 3
- localized Items & Fluids in Messages (thanks to MagmaMcFry)
- added signal "Locked Slots per Wagon"

0.10.2
- train composition signals factor in train direction, so the lowest bit always represents the entity next to the stop
- changed "(UpdateStopParkedTrain): couldn't assign train id" to debug level

0.10.1
- increased performance by reading wagons inventory size from data.raw (thanks to folk)

0.10.0
- added Limit Trains signal to Provider & Requester

0.9.13
- fixed: ignore min delivery size signal being ignored
- fixed: error when disabling RailTanker Mod

0.9.12
- fixed possible variable conflicts https://forums.factorio.com/viewtopic.php?f=23&t=43392

0.9.11
- message filter uses message age instead of message count to suppress messages
- increased detailed messages about order generation from log level 3 to 4

0.9.10
- adapted to creative mode 0.2.8
- fixed invalid entity in on_robot_built_entity

0.9.9
- fixed: attempt to get length of field 'activeDeliveries' (a number value) on log level >= 3

0.9.8
- fixed: error on schedules with circuit wait conditions containing virtual signals

0.9.7
- fixed: all stops constantly being set to Ignore Minimum Delivery Size
- sorted signal order
- reduced default stop_timeout to 2min

0.9.6
- added Ignore Minimum Delivery Size signal for providers

0.9.5
- lamp shows status "active delivery" (yellow) reliable after changing stop name or removing train during delivery
- stacker depots no longer trigger delivery time out warnings

0.9.4
- fixed MP desync from message filter
- added warning when changing log settings in game (only use config.lua for MP games)

0.9.3
- changed license
- fixed possible error when removing mods adding items

0.9.2
- disabled left over debug messages
- certain messages ignore message filter to keep logfile consistent

0.9.1
- fixed: Stops might link with wrong I/O entities in sandbox mode
- config: message_filter_size takes 0 as valid option to disable message filtering

0.9.0
- added message_filter_size, suppress message if among the last n messages
- added delivery count into provider ranking to prevent trains from queuing up in front of providers with Provider Priority set

0.8.1
- fixed: stopsPerTick, stopIdStartIndex not initialized in new games

0.8.0
- added Minimum Train Size signal
- removed blue science pack from technology, increased red/green cost
- fixed: Creating schedules trying to load huge number of items

0.7.2
- fixed: threshold for finding provider was > instead of >=
- changed default: use_Best_Effort = false (replies I got suggest most players want it off)

0.7.1
- fixed: setting no max train length on requester results in provider max train length being ignored

0.7.0
- spread stop updates over dispatcher_update_interval
- fixed possible error when removing stops between updating stops and processing requests
- removed left over debug messages

0.6.3
- fixed: trying to concatenate field 'from' (a nil value)

0.6.2
- fixed: reserved items remain reserved after trains finished loading them

0.6.1
- fixed a typo in lamp control
- corrected item calculation during loading at a provider

0.6.0
- changed dispatcher to use pure round robin (currently only 1 delivery/update is created)
- blueprinting stops creates circuit connections at first stamp (also works with instant blueprint from Creative Mode), Thanks to Mooncat for the Tip
- added log_level and log_output to config.lua (in game command overrides for current session)
- replaced misleading < and > in minimum delivery size and maximum train length icons with ≤ and ≥
- changed train composition signal names

0.5.6
- added rudimentary sanity checks for different forces: Requester, Provider and delivering Train have to be in the same force
- can not fix: Trains of different forces will still try going to stops with the same name in other forces, including depots

0.5.5
- fix rail tanker displaying incorrect cargo-wagon icon

0.5.4
- changed Depot detection from name "Depot" to virtual signal "Stop is Depot"
- made input and output blueprintable again / circuit connections are maintained by blueprints
- removed circuit wait condition from depots in schedule / remove need to connect output with train stop
- fixed bugs in entity and item prototypes
- fixed 0.5.3 Error: __LogisticTrainNetwork__/control.lua:493: attempt to index field 'station' (a nil value)

0.5.3
- added stop_timeout to config parameters

0.5.2
- fixed adding/removing carriages of parked trains does not update composition signals

0.5.1
- train composition output is now binary encoded

0.5.0
- provided items are split evenly among requesters with Best Effort enabled
- added round robin handling, sending a train moves the request to the bottom of order list

0.4.6
- fixed Error when adding LTN to existing game (on_init: __LogisticTrainNetwork__/control.lua:32: attempt to concatenate field '?' (a nil value)")
- fixed order cleanup removed valid order data
- added inactivity timeout to schedule (patch for misbehaving Yuoki Tender Locomotives)

0.4.5
- tweaks to order cleanup
- changed log_output to accept 'console', 'log', 'both'(new default) as parameters

0.4.4
- fixed: circuit/signal error detection sometimes failed
- fixed: changing station name between order creation and schedule generation can produce invalid stations in schedule
- changed lamp error status pink: duplicate station name, no deliveries to/from this station will be created
- added priority signal to provider stations, higher priority is picked as provider first, default priority = 0

0.4.3
- requested/provided items are calculated from parked train inventory instead of delivery size

0.4.2
- improved update of requested/provided items, partial fulfilled requests are correctly updated
- changed log level description

0.4.1
- fixed multiple trains claim the same resources
- fixed creating multiple deliveries to satisfy the same request
- suppressed spam of identical messages
- added use_Best_Effort switch to config

0.4.0
- added merged deliveries
- requests are handled in the order they come up
- fixed possible bug where a too small train would be picked

0.3.12
- removed schedule inactivity rule from providing and requesting stations

0.3.11
- moved "no station supplying item" warning to log level 3
- fixed Error on starting a fresh map
- migrating from older versions should work better now
- fixed "attempt to index field 'Deliveries' (a nil value)"
- fixed built stops not setting their outputs immediately
- code cleanup

0.3.10
- added additional check for removed trains to on_tick
- reduced default update intervals

0.3.9
- changed messages for trains leaving/arriving at stops to use backer name instead of ID
- reworked signalling of deliveries
- delivery size now gets updated after leaving provider station
- added grey signal as short circuit test signal to output
- added lamp error status pink: could not read from parked train schedule

0.3.8
- added color coded status to lamps

0.3.7
- removed debug message

0.3.6
- moved recipe to it's own technology dependent on automated rail
- new sprite color and icons
- rearranged input/output
- automatically connect output to stop when creating the stop
- added data cleanup on config change
- fixed error when destroying depot while assigning schedule
- fixed blueprints

0.3.5
- fixed: Error while running the on_load: LuaTrain API call when LuaTrain was invalid.

0.3.4
- removed maximum delivery size control signal
- added maximum train length control signal

0.3.3
- fixed RequestHandler skipping out of request handling
- fixed Trains below request size but above min delivery size would not be used
- added 1s inactivity rule to all generated stops (allow trains to refuel anywhere)

0.3.2
- detect inventory size of modded cargo wagons (non fluid)
- fixed, stops not sending train composition when loading a game

0.3.1
- added remote calls to change log level and log output by ssilk

0.3.0
- re-release under new name

0.2.0
- multiple bugfixes
- code cleanup
- more hopefully useful log messages
- min-delivery-size now takes priority, no delivery will be made if stations min-delivery-size > train inventory

0.1.1
- added min-delivery-size signal
- fixed rail tanker not triggering correctly on loading game
- added loglevel setting

0.1.0
- Dispatcher checks inventory size of trains, (trains no longer wait to have more than their inventory size)
- added fluid support with RailTanker
- added virtual signals showing number of each locomotive and wagon type of parked trains, including those added by other mods
- added en localisation

0.0.3
- initial alpha release