It's a more intuitive order, since these are higher-level attributes.
Also remove the validation from the trait - it doesn't have to be part of the trait.
Validates:
- Proper sequence of input, output, and first/last swap tokens for wrap/unwrap cases
- All solutions contain at least one swap
- Only exact in solutions are inputted (since we don't yet support exact out)