using OpenTK.Mathematics; using VoxelEngine.World.Chunk; namespace VoxelEngine.World.Streaming; // Job dispatched to an IJobExecutor for a fresh chunk load. The worker // generates the chunk, applies any modification diff, and meshes the result. // Remesh-only jobs are dispatched separately by DispatchRemesh and capture // their state via closures, so they do not use this record. internal sealed record ChunkJob( Vector3i Pos, NeighborSnapshots Neighbors, IReadOnlyDictionary? Diff); // Posted by the worker back to the main thread via a ConcurrentQueue. internal sealed record ChunkJobResult( Vector3i Pos, Chunk.Chunk? Chunk, float[]? Mesh, Exception? Error, bool IsRemeshOnly);