Include sequences in data source definition.
Include basic description of the error and the steps to resolve them.
Include tests for emplace, modify fallback content negotiation logic.
Add tests related to error handling.
Filter middleware instead of adding them progressively.
Organize code into certain file structure.