palette_ y sub_palette_ son std::array de tamaño fijo, así que el check
en runtime nunca podía fallar. Movido a static_assert sobre tuple_size_v.
El throw asociado era código muerto.
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
Las dos líneas de clamp contra el destino estaban duplicadas. Fusionado
el comentario y dejado un único bloque que limita contra origen y destino.
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
loadSurface es static en declaración y definición, así que el
NOLINT(readability-convert-member-functions-to-static) era dead noise.
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>