Most of our uses of source extent were cargo cult programming. The source extent was seldom and inconsistently used. Instead, layers can now be configured with an extent, and layer renderers limit rendering (and data requests) to the layer extent.
For vector sources, the `getExtent` method returns the extent of currently loaded features (this was the case before and after this change). For tile based sources, we will likely want to allow easy construction of tile grids based on an extent (this is not possible before or after this change, but could be added later).
This change adds a stability value to the api annotation, with
'experimental' as default value.
enum, typedef and event annotations are never exportable, but
api annotations are needed there to make them appear in the
docs.
Nested typedefs are no longer inlined recursively, because the
resulting tables get too wide with the current template.
This was unused before 03f7bb66374b162aab26289b761e7918b79c0ca7 as well. It would be interesting to see how many other unused requires there are (types that are only referenced in comments but not used in code).
I remain uncertain about when to use the @exportClass annotation and when to use the @exportSymbol. osmsource.exports seems to get away with simply @exportSymbol, but many other sources use @exportProperty.