docs: private static List<CardinalitySpec> createChildren( Map<String, Object> rawSpec ) {
  
          List<CardinalitySpec> children = new ArrayList<>();
          Set<String> actualKeys = new HashSet<>();
  
          for ( String keyString : rawSpec.keySet() ) {
  
              Object rawRhs = rawSpec.get( keyString );
  
              CardinalitySpec childSpec;
              if ( rawRhs instanceof Map ) {
                  childSpec = new CardinalityCompositeSpec( keyString, (Map<String, Object>) rawRhs );
              } else {
                  childSpec = new CardinalityLeafSpec( keyString, rawRhs );
              }
  
              String childCanonicalString = childSpec.pathElement.getCanonicalForm();
  
              if ( actualKeys.contains( childCanonicalString ) ) {
                  throw new IllegalArgumentException( "Duplicate canonical CardinalityTransform key found : " + childCanonicalString );
              }
  
              actualKeys.add( childCanonicalString );
  
              children.add( childSpec );
          }
  
          return children;
      }