.. This work is licensed under a Creative Commons Attribution 4.0 International License.
.. http://creativecommons.org/licenses/by/4.0

Design
======

.. note::
   * This section is used to describe the internal design structure of a software component.

   * This section is typically provided: for a platform-component and sdk; and
     referenced in developer guides.

   * This note must be removed after content has been added.
