docs: public static VertexData buildMesh(Vector4i sizes, TFloatList positions, TFloatList normals, TFloatList textureCoords, TIntList indices) {
          final VertexData vertexData = new VertexData();
          int index = 0;
          // Positions
          if (positions != null && sizes.getX() > 0) {
              final VertexAttribute positionAttribute = new VertexAttribute("positions", DataType.FLOAT, sizes.getX());
              positionAttribute.setData(positions);
              vertexData.addAttribute(index++, positionAttribute);
          }
          // Normals
          if (sizes.getY() > 0) {
              if (normals != null) {
                  final VertexAttribute normalAttribute = new VertexAttribute("normals", DataType.FLOAT, sizes.getY());
                  normalAttribute.setData(normals);
                  vertexData.addAttribute(index++, normalAttribute);
              } else if (positions != null) {
                  final VertexAttribute normalAttribute = new VertexAttribute("normals", DataType.FLOAT, 3);
                  normals = new TFloatArrayList();
                  generateNormals(positions, indices, normals);
                  normalAttribute.setData(normals);
                  vertexData.addAttribute(index++, normalAttribute);
              }
          }
          // Texture coordinates
          if (textureCoords != null && sizes.getZ() > 0) {
              final VertexAttribute textureCoordAttribute = new VertexAttribute("textureCoords", DataType.FLOAT, sizes.getZ());
              textureCoordAttribute.setData(textureCoords);
              vertexData.addAttribute(index++, textureCoordAttribute);
          }
          // Tangents
          if (positions != null && textureCoords != null && normals != null && sizes.getW() > 0) {
              final VertexAttribute tangentAttribute = new VertexAttribute("tangents", DataType.FLOAT, 4);
              tangentAttribute.setData(generateTangents(positions, normals, textureCoords, indices));
              vertexData.addAttribute(index, tangentAttribute);
          }
          // Indices
          vertexData.getIndices().addAll(indices);
          return vertexData;
      }