A "domain" of the world. Surfaces can only be created through the API and can not be
deleted. However, it is planned to allow deletion of a surface in the future. Surfaces
are uniquely identified by their name. Every game contains at least the surface "nauvis".

Count entities of given type or name in a given area. Works just like
LuaSurface::find_entities_filtered, except this only returns the count. As it doesn't
construct all the wrapper objects, this is more efficient if one is only interested in the
number of entities.

Parameters

Table with the following fields:

area :: BoundingBox (optional): Search area if not defined and position is not defined the entire surface is searched

position :: Position (optional): Search position if not defined and area is not defined the entire surface is searched

correct_tiles :: boolean (optional): If false, the correction logic is not done on the changed tiles.
Defaults to true.

Note: It is recommended to call this method once for all the tiles you want to change rather
than calling it individually for every tile. As the tile correction is used after every
step, calling it one by one could cause the tile correction logic to redo some of the
changes, and it is also much performance heavy.