unit: rewrite to use lexer
unit: return list of options instead of map
unit: separate section from option searching
unit: simplify lexer channel management
unit: update Deserialize usage
unit: expand testing