Half the battle is that the TOCs put junk into the industry reservation system for their trains and can't be bothered to set the attributes on their seats properly. If a window has a view it's supposed to be marked VIEW. If it doesn't, it should be NOWI.
Let's look at GR605000, it's a 9 coach Azuma service departing next Thursday at 06:15am
The Azuma coach map on LNER's website says that
A47 is a "Limited view" seat:
View attachment 152637
So, it will surely say this in the data, right?
XML:
<P u="A47 ">
<U c="SEAT"></U>
<A c="WIND"></A>
<A c="BACK"></A>
</P>
No, that would be far too easy.
I don't often praise Avanti, but they get this right and they get it right pretty consistently from what I've seen of their pendos:
XML:
<P u="A29 ">
<U c="SEAT"></U>
<A c="WIND"></A>
<A c="INFW"></A>
<A c="BACK"></A>
<A c="QUIE"></A>
<A c="NOWI"></A>
</P>
View attachment 152638
View attachment 152639
(Coach A on VT604000, departing 22/02/2024.)
Entirely up to the TIS. You can ask for NOWI or VIEW if you want it.
Anyone who offers that preference to customers is brave though, given how poor the data quality is! You're bound to get customers complaining that they asked explicitly not to get a no-view seat, and got one anyway. Good luck explaining that one.