1---2name: scala-kindlings-derivation3description: Scala auto-derivation with Kindlings for Circe and PureConfig. Use when replacing circe-generic/circe-generic-extras or PureConfig generic derivation with Kindlings while keeping normal Circe JSON APIs and PureConfig loading/writing APIs.4---56# Scala Kindlings Derivation78## Quick start910- Use Kindlings to derive type class instances; keep using library APIs for actual work.11 - Circe: derive `Encoder`, `Decoder`, or `Codec.AsObject`; keep using `asJson`, `decode`, parsers, printers.12 - PureConfig: derive `ConfigReader`, `ConfigWriter`, or `ConfigConvert`; keep using `ConfigSource.load` and PureConfig writers.13- Prefer companion-object instances for root types used at call sites; nested product types are derived as needed.14- Configure derivation with Kindlings config values/hints, not with Circe/PureConfig generic imports.15- Do not import `io.circe.generic.auto._`, `io.circe.generic.semiauto._`, `pureconfig.generic.auto._`, or `pureconfig.generic.semiauto._` when using Kindlings.1617## APIs to reach for1819- Circe JSON:20 - Use `KindlingsEncoder.derived[A]`, `KindlingsDecoder.derived[A]`, or `KindlingsCodecAsObject.derived[A]`.21 - For one-off operations, use `KindlingsEncoder.encode(value)` or `KindlingsDecoder.decode[A](json)`.22 - Cross-platform.23 - Default field names are unchanged.24 - ADTs are wrapped unless a discriminator is configured.25- PureConfig HOCON:26 - Use `KindlingsConfigReader.derived[A]`, `KindlingsConfigWriter.derived[A]`, or `KindlingsConfigConvert.derived[A]`.27 - JVM-only.28 - Defaults match PureConfig: kebab-case keys, `type` discriminator, defaults enabled, unknown keys allowed.2930## References3132- Load `references/circe-derivation.md` for Circe derivation, annotations, discriminators, and migration notes.33- Load `references/pureconfig-derivation.md` for PureConfig derivation, default conventions, discriminator configuration, and supported `PureConfig` knobs.34- Load `references/best-practices.md` for organization, call-site hygiene, and validation guidance.