public void Process(IClassBuilder builder, Type typeToParse)
        {
            if (builder == null)
                throw new ArgumentNullException(nameof(builder), "Class builder cannot be null.");

            if (typeToParse == null)
                throw new ArgumentNullException(nameof(typeToParse), "Type for the generic arg cannot be null.");

            #if DEBUG || DEBUGBUILD
            if (!typeof(EngineScriptComponent).IsAssignableFrom(typeToParse))
                throw new InvalidOperationException("Cannot parse Type: " + typeToParse + " for a " + typeof(TestityBehaviour<>) + " because it doesn't inherit from " + typeof(EngineScriptComponent));
            #endif

            builder.AddBaseClass(new DefaultTypeSyntaxBuilder(), typeof(TestityBehaviour<>).MakeGenericType(typeToParse));
        }
        public void Process(IClassBuilder builder, Type typeToParse)
        {
            if (builder == null)
            {
                throw new ArgumentNullException(nameof(builder), "Class builder cannot be null.");
            }

            if (typeToParse == null)
            {
                throw new ArgumentNullException(nameof(typeToParse), "Type for the generic arg cannot be null.");
            }

#if DEBUG || DEBUGBUILD
            if (!typeof(EngineScriptComponent).IsAssignableFrom(typeToParse))
            {
                throw new InvalidOperationException("Cannot parse Type: " + typeToParse + " for a " + typeof(TestityBehaviour <>) + " because it doesn't inherit from " + typeof(EngineScriptComponent));
            }
#endif

            builder.AddBaseClass(new DefaultTypeSyntaxBuilder(), typeof(TestityBehaviour <>).MakeGenericType(typeToParse));
        }