docs: function () {
        var doUniqueArtifactIdsCheck = function (artifactsIds) {
          var duplicateArtifactIds = [];
          artifactsIds.forEach(function (artifactId) {
            var artifactIdUnderTest = artifactId;
  
            function filterById (id) {
              return id === artifactIdUnderTest;
            }
  
            var arrayByUniqueArtifactIds = artifactsIds.filter(filterById);
            if (arrayByUniqueArtifactIds.length > 1 && duplicateArtifactIds.indexOf(artifactIdUnderTest) < 0) {
              duplicateArtifactIds.push(artifactIdUnderTest);
            }
          });
          duplicateArtifactIds.forEach(function (artifactId) {
            errors.push(
              'RuleViolation identified: WebPackage contains multiple artifacts with \'artifactId\'=\'' +
              artifactId + '\'');
          });
        };
        //
        var collectArtifactIds = function (next) {
          var artifactsIds = [];
          if (doc.artifacts) {
            Object.keys(doc.artifacts).forEach(function (artifactType) {
              doc.artifacts[ artifactType ].forEach(function (artifact) {
                artifactsIds.push(artifact.artifactId);
              });
            });
          }
          next(artifactsIds);
        };
        collectArtifactIds(doUniqueArtifactIdsCheck);
      }