Error types for Open Sesame
Uses thiserror for typed errors instead of anyhow for better error handling.