MLC gives me something building my own mod never can - the ability to test changes without restarting the whole game.
You don't need to, just save/load and factorio will load up all the new scripts as well.
It's only the prototypes and graphics that it loads with the game. Iirc there was a good article on the wiki about how/when it all works.
But yeah, you just edit control.lua, press load, enter-enter and play with new stuff.
Given the CC-By-SA license
I think that's the one that was on the predecessor mods, which this one is loosely based on.
Myself I just think all copyright/IP is nonsense, not how culture actually works, and should be abolished, so fork away! :)
I could imagine a mini in-game IDE with "file" support to let you organize and reuse your code across multiple controllers
Don't think you can use actual files in factorio, so that'd probably be a virtual filesystem for storing code in globals.
with the stated purpose of the mod
all the _api stuff being directly in the environment, etc.
It's kinda interesting that these exact two things are what I explicitly didn't want to have in the mod.
That's why I picked SandboxedLuaCombinator as a base over vanilla LuaCombinator2/3, despite it being a bit more broken and hacky.
But it played within the rules of the game and was intended for signals-in/signals-out operation, and not some kind of powerful modding API, just combinator stuff.
Iirc LuaCombinator3 goes way more into "modding tool" territory actually.
And LuaCombinator2/3 have syntax highlighting and IDE features, but I really disliked these, given how much input lag they tacked-on (making textbox nigh-unusable for me), for how terribly they worked, how much code and complexity they added.
So removed all those, but people actually brought up wanting more IDE-ish stuff couple times, which I can't imagine using myself, maybe I'm weird in that :)
Dunno if you actually need combinators there, as adding a general modding console might make the mod a 10-100x simplier, to make/edit abstract code that runs on whatever hooks or LuaRemote calls, and then MLCs with actual combinator code can be used to call into that, load/run code from there, query db, etc.