It's probably best not to mention `undefined`. `kernel.createProperty` can initialize a property to `undefined`, but components can't.

JSON can't represent it:

    {
      "properties": {
        "p": {
          value: undefined   <= error
        }
      }
    }

YAML can't either. An empty field becomes `null`:

    properties:
      p:
        value: undefined  # => the string `"undefined"`
      q:
        value:            # => `null`

When `undefined` is really intended, a special construction may be used:

    {
      "properties": {
        "p": {
          undefined: true
        }
      }
    }

&

    properties:
      p:
        undefined: true