code: function Versionned(id, version, label) {
    /**
     * Globally unique UUID identifier for the resource.
     * @type {string}
     * @readonly
     */
    this.id = this.generateID(id);
    /**
     * String formatted PTP timestamp (&lt;<em>seconds</em>&gt;:&lt;<em>nanoseconds</em>&gt;)
     * indicating precisely when an attribute of the resource last changed.
     * @type {string}
     * @readonly
     */
    this.version = this.generateVersion(version);
    /**
     * Freeform string label for the resource.
     * @type {string}
     * @readonly
     */
    this.label = this.generateLabel(label);
    return immutable(this, {prototype: Versionned.prototype});
  }
docs: Supertype of every class that has UUID identity, version numbers and labels.
  Methods are designed to be mixed in piecemeal as required.
  @constructor
  @param {string} id      Globally unique UUID identifier for the resource.
  @param {string} version String formatted PTP timestamp
  (&lt;<em>seconds</em>&gt;:&lt;<em>nanoseconds<em>&gt;)
  indicating precisely when an attribute of the resource
  last changed.
  @param {string} label   Freeform string label for the resource.