# Technical draft to explore dev ## Choices - Find a good KeyValue DB to store things in disk - `seld` using `kv` - Authorization can be enabled via cli - bobosm oauth2 authorize - then it will store a file `~/.cache/bobosm/osm_session.json` - TOML Config file - `~/.config/bobosm/config.toml` - LSP - we need to make a MVP for using LSP - We can use LSP to provide auto_completions of tags and values in the editor - custom file extension `.osm.txt` or enabled on demand - we can use helix or nvim as it's compatible with LSP - Key sequence feature ## How projection need to work WGS84 (EPSG:4326) -> Web mercator (EPSG:3857) -> Screen coord The camera will be always represented using WebMercator coordinates. So the only thing is when we ingest the data elements, in layers, we will convert WGS to mercator. Lexique WGS => WGS84 EPSG:4326 WM (web mercator) => EPSG:3857 Convert from WGS84 to WM https://wiki.openstreetmap.org/wiki/Mercator#Rust https://wiki.openstreetmap.org/wiki/Slippy_map_tilenames ## Reorganize lib Separate UI from Canvas? Canvas: UI: