Experimental features & elements

Feature layering

EXPERIMENTAL: API MAY CHANGE.

Polymer is currently layered into 3 sets of features provided as 3 discrete
HTML imports, such that an individual element developer can depend on a version
of Polymer whose feature set matches their tastes/needs. For authors who opt
out of the more opinionated local DOM or data-binding features, their element's
dependencies would not be payload- or runtime-burdened by these higher-level
features, to the extent that a user didn't depend on other elements using those
features on that page. That said, all features are designed to have low runtime
cost when unused by a given element.

Higher layers depend on lower layers, and elements requiring lower layers will
actually be imbued with features of the highest-level version of Polymer used on
the page (those elements would simply not use/take advantage of those features).
This provides a good tradeoff between element authors being able to avoid direct
dependencies on unused features when their element is used standalone, while
also allowing end users to mix-and-match elements created with different layers
on the same page.