Use struct to bundle up request context.
Remove bulky request comments.
Make RequestContext-using functions methods.
Give responses a similar refactoring to requests.
Use vec![] instead of vec!().
Simplify feature list creation.
Extract common option pattern.
Break up and refactor resolve_index.