I imagine you could make a Unity game that for example had c# code that compiled python code that the user typed to make a game. You might want to do such a thing to take advantage of some of the Unity features such as skinned meshes etc. rather than building a game engine from scratch. Or you could make a game like Roblox which allows users to make their own mini-games. But (I would assume) you couldn't make a near enough clone of Unity using Unity, and some kind of reflection in c# so the user would be able to access all the Unity API. And then call it Boonity.... or could you? For example consider these cases: 1) Allow user to write simple python code that moves spheres and cubes around in a game loop. 2) Allow user to write c# code that accesses the MonoBehaviour class using reflection. 3) Allow the user to upload 3d models to their mini-game which uses the SkinnedMesh class and allow the user to access the SkinnedMesh API using c# reflection. 4) You bundled MonoDevelop with your game and you game looked like an IDE which makes games. 5) You replicate the entire UnityEngine API but changed the names of all the methods and class names. At what point are you stepping beyond the bounds of just allowing your user to make mods/mini-games and actually just allowing the user to use Unity functionality by circumventing the license? Just curious about this meta problem.