BART has launched a new API which provides access to their real-time arrival estimates, route and schedule information, and more. Yesterday I did a little work to add BART as a special case to ProximoBus, but the data model is just different enough from NextBus that it's not a straightforward mapping.
For example, NextBus models different platforms at the same station and different stops at the same intersection as separate stops, while BART models a station as a single object with one to four platforms. For the moment I've modeled this as a separate "stop" for each platform at a station, which works okay when you drill down through a route as you do in most NextBus-backed UIs, but doesn't make a great deal of sense when you want to just present the full list of stations as is more common in BART UI.
It seems that some adjustments to the ProximoBus data model will need to be made to support BART. This may mean that the BART part of the API has endpoints that the NextBus-powered parts don't and vice-versa. This is unfortunate, but having some overlap is better than no overlap especially if I can make it so that a generic client can detect what kind of agency it's dealing with and adapt its UI accordingly.