The Generic Setup base profile for creating the plone site.
This defaults to Products.CMFPlone:plone, the default plone base
profile without content creation.
Using Products.CMFPlone:plone-content will generate the default
example content.

standard (optional)

By using the standard flag (standard="True") you can define product bundles.
When registering custom bundles later without flagging them as standard, they
will appear above the standard bundles in the setup wizard and top is selected.

Full ZCML example:

<configurexmlns="http://namespaces.zope.org/zope"xmlns:inflator="http://namespaces.zope.org/inflator"i18n_domain="ftw.inflator"><includepackage="ftw.inflator"file="meta.zcml"/><inflator:bundletitle="MyProduct with sunburst"description="Installs MyProduct with the sunburst theme and plone default content"profiles="plonetheme.sunburst:default
my.product:default"base="Products.CMFPlone:plone-content"standard="True"/></configure>

When installing a Plone site with the default add-site view, the language
is set in the Products.CMFPlone:plone-content, which also creates example content.
This makes it hard to setup the language without creating the example content.

To solve this issue ftw.inflator provides a ftw.inflator:setup-language generic
setup profile, meant to be used while setting up a bundle.
You can add it to the list of bundle profiles. This sets the language of the Plone site
to the one selected in the setup wizard.
Using it as a dependency (in metadata.xml) is not recommended, since it is not meant
to be used on a existing plone site.

The content creation allows to define a content_creation folder in any
generic setup profile folder, containing JSON-files with definitions of the
content to create. The content is created when the generic setup profile is
applied.

Add a content_creation folder to your generic setup profile. All content
creation configurations are within this folder.
You can add as many *.json-files as you want - they will be read
and executed in order of the sorted filename
(use integer prefixes for sorting them easily).

For creating content create a JSON file (
e.g. profiles/default/content_creation/01-foo-folder.json) and insert a
JSON syntax list of hashes (dicts).
Each hash creates a new object.
Example creating a folder with title “Foo” at /Plone/foo:

Be sure that the root node has a _path and all nodes in a _children list
have either an _id or a _path. The _path of a child node is considered to be relative to the parent node. The paths will then be automatically concatenated.

Using the key:translate(domain) syntax in keys, the respective string value is
translated to the current default language of the Plone site.
When creating content while installing a bundle with inflator, be sure to install
the generic setup profile ftw.inflator:setup-language before creating the
content.
This will make sure the language is properly configured.

When plone.app.multilingual is installed
translated content can be generated for each language.
The translation is based on the key:translate(domain) syntax (see above) and can be translated
in regular .po-files.

With the _annotations it is possible to set simple annotations on the
object.
Values of type dict are converted to PersistentMapping, those of
type list are converted to PersistentList recursively.
Example:

Using the resolveUUID::path syntax the value is replaced with UUID of the
object which has the path.
You can prefix the value with a / for making it relative to the site root,
otherwise it is relative to the item it is defined in (“Foo” in the above
example).