public MutatorStepDescriptor(CodeModelBuilder modelBuilder, Type type)
        {
            this.Type = type;

            this.Provides = modelBuilder.GetProvidedResources(type);

            this.Needs = modelBuilder.GetNeededResources(type);

            this.OptionalNeeds = modelBuilder.GetOptionalNeeds(type);
        }
        public StepDescriptor(CodeModelBuilder modelBuilder, Type type)
        {
            this.Type = type;

            this.Provides = modelBuilder.GetProvidedResources(type);

            this.Needs = modelBuilder.GetNeededResources(type);

            this.OptionalNeeds = modelBuilder.GetOptionalNeeds(type);

            this.IsRule = typeof(IRule).IsAssignableFrom(this.Type);
            this.IsMutator = typeof(IMutator).IsAssignableFrom(this.Type);
        }