You will find 2 collections in the .blend file: Train (2188 tris) and Blocks (96 tris).
The engine and 2 wagons are separate. Objects are parented: the engine moves everything and the first wagon moves the second wagon. Wheels have a driver that makes them rotate when the parent moves (this only works in the .blend file). The train is positioned - to achieve neutral pose, select each wagon and clear rotation.
There are two sets of 2k textures (train, blocks) - colour, roughness and normal. The .blend file has the textures packed, but they are also added as a separate archive. Additional formats are .fbx and .obj
The curvature has been baked into the normals, so the assets are not ideal for subdivision (the texture would be distorted). But if you only use the model and add bevel or holding edges, the assets can be subdivided easily because the topology is quad-based.
The models have real-world size and all objects are properly named.