// Package jdenticon provides a Go library for generating highly recognizable identicons -
// geometric avatar images generated deterministically from any input string.
//
// This package wraps the internal/engine functionality to provide a clean, thread-safe
// public API that follows Go idioms and conventions.
//
// Basic usage:
//
//	// Generate with default configuration
//	icon, err := jdenticon.Generate("user@example.com", 200)
//	if err != nil {
//		log.Fatal(err)
//	}
//
//	// Render as SVG
//	svgData, err := icon.ToSVG()
//	if err != nil {
//		log.Fatal(err)
//	}
//
//	// Render as PNG
//	pngData, err := icon.ToPNG()
//	if err != nil {
//		log.Fatal(err)
//	}
//
// Advanced usage with custom configuration:
//
//	// Create custom configuration
//	config := jdenticon.DefaultConfig()
//	config.ColorSaturation = 0.7
//	config.Padding = 0.1
//	config.BackgroundColor = "#ffffff"
//
//	// Create generator with caching
//	generator, err := jdenticon.NewGeneratorWithConfig(config, 100)
//	if err != nil {
//		log.Fatal(err)
//	}
//
//	// Generate multiple icons efficiently
//	icon1, err := generator.Generate("user1@example.com", 64)
//	icon2, err := generator.Generate("user2@example.com", 64)
//
// The library is designed to be thread-safe and performant, with LRU caching
// and singleflight to prevent duplicate work.
package jdenticon
