using System.Collections.Generic;

namespace AdvChkSys.Interfaces
{
    /// <summary>
    /// Represents a generic chunk in the world.
    /// Provides basic properties for position, size, and metadata.
    /// </summary>
    public interface IChunk
    {
        /// <summary>
        /// The chunk's X position in chunk-space coordinates.
        /// </summary>
        int X { get; }

        /// <summary>
        /// The chunk's Y position in chunk-space coordinates.
        /// </summary>
        int Y { get; }

        /// <summary>
        /// The width of the chunk (in cells/tiles/units).
        /// </summary>
        int Width { get; }

        /// <summary>
        /// The height of the chunk (in cells/tiles/units).
        /// </summary>
        int Height { get; }

        /// <summary>
        /// Metadata dictionary for arbitrary chunk information (e.g., biome, tags).
        /// </summary>
        Dictionary<string, object> Metadata { get; }
    }
}