Simple Ruby DSL to generate use cases restricted by sets of rules