diff --git a/specification/common/README.md b/specification/common/README.md index 0c1eb50c0be..3b39cacd039 100644 --- a/specification/common/README.md +++ b/specification/common/README.md @@ -27,12 +27,16 @@ aliases: [/docs/reference/specification/common/common] An `Attribute` is a key-value pair, which MUST have the following properties: - The attribute key MUST be a non-`null` and non-empty string. -- The attribute value is either: +- The attribute value can be of `any` type, where any is defined as one of the following: - A primitive type: string, boolean, double precision floating point (IEEE 754-1985) or signed 64 bit integer. - - A homogeneous array of values of primitive type. - - An array of any attribute values [since 1.15.0]. - - A key/value map, where key is string and value is any attribute value [since 1.15.0]. - + - A homogeneous array of values of primitive type [before 1.19.0]. + - An array of `any` values [since 1.19.0]. + - A key/value map, where key is string and value is `any` value [since 1.19.0]. + +Complex attribute types (such as homogenous arrays, arrays of any, and maps) SHOULD be +used sparingly, in situations where their use minimizes manipulation of the data’s +original structure. + When exporting to protocols that do not natively support a particular non-string value type the following conversion SHOULD be performed: