
ALT What the comment posted to Lobsters said: This year I rewrote the foundations of EndBASIC from scratch and published those as AGPLv3 (thus "infecting" all other components of the project) instead of the Apache 2.0 I had been using for reasons similar to what's described in the article. But here comes the amusing part: I discovered a fully-vibecoded project about a week ago that bundled EndBASIC in it. I took a look a the repo and found no license for the project itself (no surprise here...), so I dug deeper to see what they had done with EndBASIC. And, for all I could tell, the AI itself had decided "oh, EndBASIC was relicensed in version X to AGPLv3, so I pinned the dependencies to X-1". No reason given other than "AGPLv3 scary". I suspect that the person behind the project didn't even notice the AI made this choice. So, the relicensing seems to work I guess?

ALT For historical reasons, I have written a lot of data types that contain private members and then trivial getters that return references or copies of them, like this: ```rust pub struct MyType { some_field: String, } impl MyType { pub fn some_field(&self) -> &str { &self.some_field } pub fn take_some_field(self) -> String { self.some_field } } ``` This is not idiomatic: ideally, `some_field` above would just be a pub field and then none of the getters would be required. I want you to evaluate all of the data types in this project that exist at the "model layer" and make a plan to fix the above. You do NOT have to worry about backwards compatibility. We should target one jj commit for type that needs fixing, given that this change is mechanical but very intrusive. Every such commit should have a simple description like this: ``` Make MyType fields public This removes unnecessary getters from the type to make call sites simpler ```










