package com.tiedup.remake.entities.skins;

import net.minecraft.resources.ResourceLocation;

/**
 * Common interface for skin variants (Damsel, Kidnapper, etc.).
 *
 * This interface allows for generic handling of skin variants
 * across different entity types while maintaining type safety.
 */
public interface SkinVariant {
    /**
     * Get the unique identifier for this variant.
     * @return The variant ID (e.g., "dam_mob_1", "blake")
     */
    String id();

    /**
     * Get the texture resource location for this variant.
     * @return The texture location
     */
    ResourceLocation texture();

    /**
     * Check if this variant uses slim arms (Alex model).
     * @return true for slim/Alex model, false for normal/Steve model
     */
    boolean hasSlimArms();

    /**
     * Get the gender of this variant.
     * @return The gender (MALE/FEMALE)
     */
    Gender gender();

    /**
     * Get the default display name for this variant.
     * @return The display name
     */
    String defaultName();
}
