code: public static String ceylonModuleName(final String groupId, final String artifactId, final String version, 
              final String classifier, final String extension) {
          
          if (version == null || "".equals(version) || version.contains("-")) {
           // TODO fix the '-' based on the new Herd rules
              throw new IllegalArgumentException(" Null, empty, or '-' is not allowed in version");
          }
          
          StringBuilder name = new StringBuilder(STRING_BUILDER_SIZE);
          
          name.append(ceylonModuleBaseName(groupId, artifactId))
              .append(ARTIFACT_SEPARATOR).append(version);
      
          if (extension != null) {
              name.append(GROUP_SEPARATOR).append(extension);
          } else {
              name.append(GROUP_SEPARATOR).append("car");
          }
          
          return name.toString();
      }
docs: Comes up with a Ceylon module name based on Maven coordinates.
  
  @param groupId Maven group id
  @param artifactId Maven artifact id
  @param version Version
  @param classifier Sources, javadoc etc.
  @param extension The extension or packaging of the artifact
  @return String The module name