I am in the early stages of creating an open source C# library that will allow developers to drop in the open SRD (http://www.d20srd.org/) into an existing project. Abstracted it is a complex set of tightly coupled business rules. To reduce coding complexity and allow extension of the library I would like to create a DSL to represent the business rules. This would allow the user to define custom rule sets with the tools provided in the library. I have started reading about DSL implementation and am wondering if MPS would be something I could use to speed up implementation.