Different blobs can be affected by terrain in different ways. Even the types of terrain that are available in a scenario are completely configurable. The data structure terrain-i , short for terrain information, stores all of the information about terrain and terrain layout. A friction profile defines the relationship between a specific blob type and all the types of terrain on the board. This stores all of the terrain features of a board.
Terrain features are objects that define different pieces of terrain on the board.
They have a geom which defines their shape and placement on the board. They have a type which simply defines the type of terrain they represent. The level allows the capability to do sophisticated overlapping of terrain features. For example, you could layout a river using line segments and then define a short line segment that is a bridge over the water, by giving it a higher level. Another nice detail about terrain features is that they separate the definition of the terrain from the actual implementation.