- Create fsedsl/ as embedded library with generic types:
- FsNodeDecl[Ctx], Binding[Ctx], NodeOption[Ctx]
- BuildTree[Ctx], GenerateHelp[Ctx]
- Tree, File, FileConfig, SyntheticFileInfo
- Update ollie/fs to use fsedsl via type aliases:
- type FsNodeDecl = fsedsl.FsNodeDecl[HandlerCtx]
- Wrapper functions for constructors and options
- Migrate binding functions to Applier pattern:
- Binding.Applier replaces direct field assignment
- Cleanly separates EDSL mechanics from domain types
- Add replace directive in go.mod for local module
The library can be extracted to a separate repo later by
changing the module path and removing the replace directive.