Conforming implementations are required to support the following features:
Version number
All e-NON streams must begin with the e-NON version number.
Single top-level element
The primary use case for e-NON is single (possibly compond) elements wrapped in a higher level container that provides features such as authentication, flow control, etc. This is analogous to the use of JSON whcih only supports a single root element.
Implementations may reject (fail) any e-NON stream containing unsupported features.
Implementations may arbitrarily set limits on sizes and/or durations for data that can be read or written. These may be fixed values or user configurable.
Errors may be reported in anyway that makes sense for the implementation language and/or environment. Exceptions, logging, and event notifications are all viable options.
Implementations should emit top level entities using a subscribable stream.
There is no undefined type or value in e-NON. A field with an undefined value will not appear in the e-NON stream.