I found a major bug: the bounding box that checks for out-of-bound wheels is rotating in the opposite direction to the actual car. It can be fixed simply with angle *= -1.0 in l2r.envs.utils.py: Geolocation.getCorners().
It changes nothing for corners in the cardinal directions (North, East, etc.), but when going across corners oriented diagonally (South-East, North-West, etc.) the bounding box is completely sideways relative to the car and effectively 0.66 meter too wide on each side.
The yaw/angle/steering have conflicting orientations. I figured out the yaw returned in the engine observation is the angle to the right of the y-axis (clockwise) by looking at the car displacement. But the steering we give to the engine as input is positive for turning left (counter-clockwise). And the displayed “Steer” on the game GUI is positive to the right (clockwise).
Also I think the Anglesey json file should be included, but is not. The main page says:
Aside from Thruxton Circuit, additional race tracks are available in the Learn-to-Race environment for development.