/*block:serialization*/
    #region serialization
    public override int Serialize(FlatBuffers.FlatBufferBuilder builder)
    {
/*block:inheritanceSer*/ var baseData = base.Serialize(builder);
/*endblock:inheritanceSer*/
/*block:s_enum*/ var /*name|fu,pre#s:name*/ sState /*endname*/ = (byte)/*name:name*/ state /*endname*/;
/*endblock:s_enum*/
/*block:s_string*/ var /*name|fu,pre#s:name*/ sTestName /*endname*/ = (StringOffset)FlatbufferSerializer.GetOrCreateSerialize(builder, /*name:name*/ testName /*endname*/);
/*endblock:s_string*/
/*block:s_nonprim*/ var /*name|fu,pre#s:name*/ sTestUID /*endname*/ = new Offset <Serial./*name|pre#FB:type*/ FBUID /*endname*/>((int)FlatbufferSerializer.GetOrCreateSerialize(builder, /*name:name*/ testUID /*endname*/));
/*endblock:s_nonprim*/
/*block:s_list_primitive*/ var /*name|fu,pre#s:name*/ sTestListPrimitive /*endname*/ = FlatbufferSerializer.CreateList </*name:innertype*/ int /*endname*/>(builder, /*name:name*/ testListPrimitive /*endname*/, Serial./*name|pre#FB:ComponentName*/ FBGenTemplateComponent /*endname*/./*name|fu,pre#Create,post#Vector:name*/ CreateTestListPrimitiveVector /*endname*/);
/*endblock:s_list_primitive*/
/*block:s_list_nonprim*/ var /*name|fu,pre#s:name*/ sTestListUID /*endname*/ = FlatbufferSerializer.CreateList </*name:innertype*/ UID /*endname*/, Serial./*name|pre#FB:innertype*/ FBUID /*endname*/>(builder, /*name:name*/ testListUID /*endname*/, Serial./*name|pre#FB:ComponentName*/ FBGenTemplateComponent /*endname*/./*name|fu,pre#Create,post#Vector:name*/ CreateTestListUIDVector /*endname*/);

/*endblock:s_list_nonprim*/
        Serial./*name|pre#FB:ComponentName*/ FBGenTemplateComponent /*endname*/./*name|pre#StartFB:ComponentName*/ StartFBGenTemplateComponent/*endname*/ (builder);
/*block:s2_default*/ Serial./*name|pre#FB:ComponentName*/ FBGenTemplateComponent /*endname*/./*name|fu,pre#Add:name*/ AddState/*endname*/ (builder, /*name|fu,pre#s:name*/ sState /*endname*/);
/*endblock:s2_default*/
/*block:s2_primitive*/ Serial./*name|pre#FB:ComponentName*/ FBGenTemplateComponent /*endname*/./*name|fu,pre#Add:name*/ AddState/*endname*/ (builder, /*name:name*/ sState /*endname*/);
/*endblock:s2_primitive*/
/*block:s2_list*/ if (/*name:name*/ testListPrimitive /*endname*/ != null)
        {
            Serial./*name|pre#FB:ComponentName*/ FBGenTemplateComponent /*endname*/./*name|fu,pre#Add:name*/ AddTestListPrimitive/*endname*/ (builder, (VectorOffset)/*name|fu,pre#s:name*/ sTestListPrimitive /*endname*/);
        }
/*endblock:s2_list*/
/*block:inheritanceSer2*/ Serial./*name|pre#FB:ComponentName*/ FBGenTemplateComponent /*endname*/.AddBaseData(builder, new Offset <Serial./*name:basetype*/ FBComponent /*endname*/>(baseData));
/*endblock:inheritanceSer2*/
        return(Serial./*name|pre#FB:ComponentName*/ FBGenTemplateComponent /*endname*/./*name|pre#EndFB:ComponentName*/ EndFBGenTemplateComponent/*endname*/ (builder).Value);
    }