Po przemyśleniu, moja propozycja jest taka, żeby zrobić to na 3 sposoby.
1. Wersja uproszczona do ogólnego stosowania. We wpisie toru dodajemy parametr fouling1 albo fouling2, w znaczeniu takim, jak event1/event2, tylko zamiast nazwy eventu podajemy nazwę modelu W17. Odpowiedni event PutValues utworzy się niejawnie i będzie widoczny podczas skanowania. Nazwa modelu musi być unikalna, aby AI mogło policzyć odległość.
2. Wersja standardowa. We wpisie toru używamy event1 albo event2 z nazwą eventu PutValues, zawierającego komendę FoulingPoint. Event powinien być tworzony przez plik INC i być ustawiony w tym samym miejscu, co model W17. Jest to bardziej kłopotliwa wersja niż poprzednia, bo raz, że trzeba tworzyć dodatkowe eventy, których mogą być tysiące, to jeszcze blokuje to możliwość odczytu semafora albo Tm na takim torze (trzeba by namnażać odcinki). Niemniej w niektórych sytuacjach może być przydatne, np. gdy samego modelu nie będzie.
3. Wersja specjalna. Zamiast wskazywać konkretny punkt można by też wskazać tor, z którym następuje konflikt. Można by użyć foulingtrack1 albo foulingtrack2, podając nazwę toru jako parametr. Było by to przydatne w szczególności na skrzyżowaniach torów, a także na przejazdach. Współrzędne ukresu były by wyliczane odpowiednim algorytmem, aczkolwiek nie przeszkadzało by to użyć jednej z wspomnianych wcześniej metod. Informacja o przecinanym torze/drodze była by przydatna dla AI przy jeździe na widoczność. Pozwalała by też uprościć konstrukcję przejazdów, zwłaszcza takich bez infrastruktury (nie potrzebne by były komórki pamięci zatrzymujące samochody oraz odcinki izolowane do ich sterowania).
W ramach rozbudowy jazdy na widoczność, zamierzam umieszczać w torach znacznik czasu, ustawiany na aktualny czas przez dokonujący skanowania jadący pojazd. Wszelkie inne AI, znajdując w odcinku znacznik czasu nie starszy niż 10 sekund, uważałyby odcinek za zajęty. Pojazdy stojące nie zapisywały by znacznika czasu podczas skanowania, aby nie rezerwować niepotrzebnie drogi, której nie potrzebują do hamowania. W przypadku połączenia przez foulingtrack1/foulingtrack2 AI musiało by również sprawdzać znacznik czasu na przecinającym odcinku.