IronPython maybe. I’d never subject authors to F#. Of course with dotnet, I could make it so any variant is allowed and authors could do whatever they want, as long as the syntax has a dotnot compiler.
Keep data and custom code separate; this will keep the data clean, and leave your options open.
Try to use an existing markup language for the data, such as XML, JSON or YAML; try not to reinvent any wheels.
Likewise, avoid custom sourcecode file types or VMs. Games should be built using the .NET compiler.
That way it will be possible for an author to use any CLR language they like to hook onto the engine and provide custom functionality.
Eventually, if you settle on the hybrid data/code approach, you could consider automatically translating the data file(s) into C# to provide type safety and intellisense support.
If you have to pick one language, you have to consider that C# is by far the most portable.
F# works with Xamarin, and JSIL provides partial support for it.
With DLR languages you’re stuck with desktop operating systems as far as I know.
Good luck with your project.
Very interesting read. I will have to read this thread more, but I really am impressed with your thinking. I have recently gotten back into this game as well, and am thinking of making a C# IF engine too. Maybe we could work together.