+TrackHoverInfoPopup now displays switch ID and model if the hovered track is part of a switch
*Fixed typo: renamed the "Switches names" layer to "Switch names"
*Updated ElectrificationResolver to use the new tracks connections logic
*Improved ElectrificationResolver status propagation for switches
*Fixed an issue where ElectrificationResolver would sometimes overwrite tracks having the CONFLICT status
+Added connectTracks scenery parsing function that links Track objects together in the scenery model, including support for one‑to‑many connections (for switches)
+Added an option to include additional aliases indexes in switches definitions
+Added additional aliases indexes for switches Rz 60E1-300-1_9 R / L and Rz 60E1-190-1_9 R / L
*Fixed mechanical distant signals not having the W1 sign
*Fixed useless ";" appearing in the SVG code of signal signs
*Fixed signal signs overlapping with mechanical signals' arms
+Extended signal renderering: Signs mounted on signals can now have displayed text over them (i.e. W21 sign). During the parsing, the text string is extracted from the sign name using regex from the sign's def
*Signal signs can now have custom height and will still be rendered with proper spacing
*Order of signs rendered on signal's pole is now defined by the order in the DefinedSignalSigns dictionary
+Added rendering of signs attached to signals. If a sign is attached to a signal, attachedAs is set in the sign's def and signal has SignalElements, the sign is no longer rendered on the Signs layer but appears on the signal pole (ifextended signal rendering is enabled)
+Added definitions and icons for signal signs W1 and W18
*Extracted sign attaching logic into attachSign function
+Added signs support in the extended signals parser
+Added signal signs rendering in SignalExtendedRenderer
+Added definitions and icons for W19, W20 and W24 signal signs
*Replaced getPoleLength function of SignalExtendedRenderer with getPolePoints which gives y offsets for all major points of the pole
+Added overhead extended signals parsing and rendering
*Cleaned up SignalExtendedRenderer
*Dwarf signals now use SignalElementEnums.HeadPosition.DWARF instead of NO_POLE
*Minor bugfixes and tweaks related to extended signals
+Added an attachSigns function that will attach signs near signals to these signals so in the future their icons can be rendered without overlapping
+Added Vector3.distanceSqExcludeY, .toLocal and .negate
*Fixed SceneryObject not returning valid render bounds
+Added basic SignalExtendedRenderer. It doesnt support TOPs, signs and overhead signals yet
+Added SignalElementsEnums.HeadPosition.NO_POLE (used by dwarf signals) and .OVERHEAD
*Empty extended signals signs entries are no more being stored in the array
+Added new SignalType.DWARF_DOUBLE
+Added extended parsing support for dwarf signals eha_ps_k and eri_ps_k
+Added simple extended parsing support for signals' signs
*Cutting off empty units at the end in SignalElementsParserCommon.getUnits now can be disabled with a param
+Added SignalElements class parsing and storing extended information about signals
+Added support for standard and dwarf EHA/ERI signals extended parsing (excluding eha_top_l, eha_top_r, eha_ps_k and eri_ps_k prefabs) (signs are not being parsed yet)
+Added SignalElementsEnums const that will help to translate different signal types into one unified structure
+Added definitions for switches Rld 60E1-650_450-1_15 R / L
+Added a definition and an icon for the W31 sign
*Moved signs in the rendering queue to be after nevps and signals
+Added SpawnPoint object parser, layer and icon
*Renamed Scenery.addSpawnSignal to .addSpawnPoint
*Renamed Scenery.spawnSignals to .spawnPoints
*Minor name changes