thiserror

Derive macro generating std::error::Error/Display impls for error enums. Required by CLAUDE.md for library crates (vs. anyhow in the binary/tests). Used for SubtitleError (crates/subtitle/src/error.rs): InvalidFormat, IoError (#[from] std::io::Error), InvalidTiming { index, start, end } — the standard low-boilerplate way to define typed, matchable error enums without hand-writing Display/Error impls.

Pitfall

#[from] generates a From impl — only one variant per source error type can use it, since the conversion must stay unambiguous.