// using System.Collections.Generic;
// using Flagrum.Gfxbin.Gmdl.Constructs;
//
// namespace Flagrum.Gfxbin.Gmdl.Components;
//
// public struct Color4
// {
//     public byte R;
//     public byte G;
//     public byte B;
//     public byte A;
// }
//
// public struct Vector4
// {
//     public sbyte X;
//     public sbyte Y;
//     public sbyte Z;
//     public sbyte W;
// }
//
// public struct ColorMap
// {
//     public Color4[] Colors;
// }
//
// // public struct WeightMap
// // {
// //     public VertexWeights[] VertexWeights;
// // }
//
// public struct VertexWeights
// {
//     public VertexWeight[] VertexWeight;
// }
//
// public struct VertexWeight
// {
//     public int VertexIndex;
//     public int BoneIndex;
//     public float Weight;
// }
//
// public struct Vector2
// {
//     public float X;
//     public float Y;
// }
//
// public struct UVMap
// {
//     public Vector2[] Coords;
// }
//
// // NOTE: Binormals0-1 not implemented
// // NOTE: Normal2Factors and Normal4Factors not implemented
// // NOTE: Tangent0-1 not implemented
// // NOTE: FogCoord0 not implemented
// // NOTE: PSize0 not implemented
//
// public class Gpubin
// {
//     public Dictionary<int, string> BoneTable { get; set; }
//     public List<MeshData> Meshes { get; set; } = new();
// }
//
// public class MeshData
// {
//     public ColorMap[] ColorMaps;
//     public int[,] Faces;
//     public string Name;
//     public Vector4[] Normals;
//     public UVMap[] UVMaps;
//     public Vector3[] VertexPositions;
//     public List<List<VertexWeight>> WeightMaps;
// }

