An optional preferred provider to use. Can be one of several types:
* An explicit instance of {org.openhab.core.common.registry.ManagedProvider ManagedProvider}
* A Proc, which can calculate the preferred provider based on whatever conditions it wants,
and then is further processed as this parameter.
* `:persistent`, meaning the default {org.openhab.core.common.registry.ManagedProvider ManagedProvider}
for this registry. Managed providers persist their objects to JSON, and will survive after the
Ruby script is unloaded. This is where objects you configure with MainUI are stored. You should
use this provider when you're creating something in response to a one-time event.
* `:transient`, meaning a {org.openhab.core.common.registry.ManagedProvider ManagedProvider} that
will remove all of its contents when the Ruby script is unloaded. You should use this if you're
generating objects dynamically, either based on some sort of other configuration, or simply
hard coded and you're using Ruby as a more expressive way to define things than a `.items` or
`.things` file. If you _don't_ use this provider for something such as metadata, then you
may have issues such as metadata still showing up even though you're no longer creating items
with it anymore.
* `nil`, meaning to fall back to the current thread setting. See {OpenHAB::DSL.provider}.
If there is no thread setting (or the thread setting was Proc that returned `nil`),
it defaults to `:transient`.