--[[------------------------------------------------------------------------------
-- <auto-generated>
--     This code was generated by a tool.
--     Changes to this file may cause incorrect behavior and will be lost if
--     the code is regenerated.
-- </auto-generated>
--]]------------------------------------------------------------------------------


local enums =
{
    ---@class ai.EExecutor
     ---@field public CLIENT integer
     ---@field public SERVER integer
    ['ai.EExecutor'] = {   CLIENT=0,  SERVER=1,  };
    ---@class ai.EKeyType
     ---@field public BOOL integer
     ---@field public INT integer
     ---@field public FLOAT integer
     ---@field public STRING integer
     ---@field public VECTOR integer
     ---@field public ROTATOR integer
     ---@field public NAME integer
     ---@field public CLASS integer
     ---@field public ENUM integer
     ---@field public OBJECT integer
    ['ai.EKeyType'] = {   BOOL=1,  INT=2,  FLOAT=3,  STRING=4,  VECTOR=5,  ROTATOR=6,  NAME=7,  CLASS=8,  ENUM=9,  OBJECT=10,  };
    ---@class ai.EFlowAbortMode
     ---@field public NONE integer
     ---@field public LOWER_PRIORITY integer
     ---@field public SELF integer
     ---@field public BOTH integer
    ['ai.EFlowAbortMode'] = {   NONE=0,  LOWER_PRIORITY=1,  SELF=2,  BOTH=3,  };
    ---@class ai.EFinishMode
     ---@field public IMMEDIATE integer
     ---@field public DELAYED integer
    ['ai.EFinishMode'] = {   IMMEDIATE=0,  DELAYED=1,  };
    ---@class ai.ENotifyObserverMode
     ---@field public ON_VALUE_CHANGE integer
     ---@field public ON_RESULT_CHANGE integer
    ['ai.ENotifyObserverMode'] = {   ON_VALUE_CHANGE=0,  ON_RESULT_CHANGE=1,  };
    ---@class ai.EOperator
     ---@field public IS_EQUAL_TO integer
     ---@field public IS_NOT_EQUAL_TO integer
     ---@field public IS_LESS_THAN integer
     ---@field public IS_LESS_THAN_OR_EQUAL_TO integer
     ---@field public IS_GREAT_THAN integer
     ---@field public IS_GREAT_THAN_OR_EQUAL_TO integer
     ---@field public CONTAINS integer
     ---@field public NOT_CONTAINS integer
    ['ai.EOperator'] = {   IS_EQUAL_TO=0,  IS_NOT_EQUAL_TO=1,  IS_LESS_THAN=2,  IS_LESS_THAN_OR_EQUAL_TO=3,  IS_GREAT_THAN=4,  IS_GREAT_THAN_OR_EQUAL_TO=5,  CONTAINS=6,  NOT_CONTAINS=7,  };
    ---@class AudioType
     ---@field public UNKNOWN integer
     ---@field public ACC integer
     ---@field public AIFF integer
    ['AudioType'] = {   UNKNOWN=0,  ACC=1,  AIFF=2,  };
    ---@class common.EBoolOperator
     ---@field public AND integer
     ---@field public OR integer
    ['common.EBoolOperator'] = {   AND=0,  OR=1,  };
    ---@class item.EItemQuality @道具品质
     ---@field public WHITE integer @白
     ---@field public GREEN integer @绿
     ---@field public BLUE integer @蓝
     ---@field public PURPLE integer @紫
     ---@field public GOLDEN integer @金
    ['item.EItemQuality'] = {   WHITE=0,  GREEN=1,  BLUE=2,  PURPLE=3,  GOLDEN=4,  };
    ---@class item.ECurrencyType
     ---@field public DIAMOND integer @钻石
     ---@field public GOLD integer @金币
     ---@field public SILVER integer @银币
     ---@field public EXP integer @经验
     ---@field public POWER_POINT integer @能量点
    ['item.ECurrencyType'] = {   DIAMOND=1,  GOLD=2,  SILVER=3,  EXP=4,  POWER_POINT=5,  };
    ---@class item.EMajorType
     ---@field public CURRENCY integer @货币
     ---@field public CLOTH integer @服装
     ---@field public QUEST integer @任务
     ---@field public CONSUMABLES integer @消耗品
     ---@field public TREASURE_BOX integer @宝箱
     ---@field public ACHIEVEMENT_AND_TITLE integer @成就和称谓
     ---@field public HEAD_FRAME integer @头像框
     ---@field public VOICE integer @语音
     ---@field public ACTION integer @动作
     ---@field public EXPANSION integer @扩容道具
     ---@field public MATERIAL integer @制作材料
    ['item.EMajorType'] = {   CURRENCY=1,  CLOTH=2,  QUEST=3,  CONSUMABLES=4,  TREASURE_BOX=5,  ACHIEVEMENT_AND_TITLE=6,  HEAD_FRAME=7,  VOICE=8,  ACTION=9,  EXPANSION=10,  MATERIAL=11,  };
    ---@class item.EMinorType
     ---@field public DIAMOND integer @钻石
     ---@field public GOLD integer @金币
     ---@field public SILVER integer @银币
     ---@field public EXP integer @经验
     ---@field public POWER_POINT integer @能量点
     ---@field public HAIR_STYLE integer @发型
     ---@field public COAT integer @外套
     ---@field public UPPER_JACKET integer @上衣
     ---@field public TROUSERS integer @裤子
     ---@field public SKIRT integer @裙子
     ---@field public SOCKS integer @袜子
     ---@field public SHOES integer @鞋子
     ---@field public HAIR_ACCESSORY integer @发饰
     ---@field public HAT integer @帽子
     ---@field public EARRING integer @耳饰
     ---@field public NECKLACE integer @颈饰
     ---@field public BRACELET integer @腕饰
     ---@field public HAIR_CLASP integer @发箍
     ---@field public GLOVE integer @手套
     ---@field public HANDHELD_OBJECT integer @手持物
     ---@field public SPECIAL integer @特殊
     ---@field public BASE_COSMETIC integer @底妆
     ---@field public EYEBROW_COSMETIC integer @眉妆
     ---@field public EYELASH integer @睫毛
     ---@field public COSMETIC_CONTACT_LENSES integer @美瞳
     ---@field public LIP_COSMETIC integer @唇妆
     ---@field public SKIN_COLOR integer @肤色
     ---@field public ONE_PIECE_DRESS integer @连衣裙
     ---@field public SWITCH_CLOTHES_SCENE integer @换装场景
     ---@field public QUEST integer @任务道具
     ---@field public CAST integer @投掷物
     ---@field public SWORD integer @刀剑
     ---@field public BOW_ARROW integer @弓箭
     ---@field public WANDS integer @法杖
     ---@field public SPECIAL_TOOL integer @特殊工具
     ---@field public FOOD integer @食物
     ---@field public TREASURE_BOX integer @宝箱
     ---@field public KEY integer @钥匙
     ---@field public MULTI_CHOOSE_TREASURE_BOX integer @多选一宝箱
     ---@field public ACHIEVEMENT integer @成就相关
     ---@field public TITLE integer @称谓相关
     ---@field public AVATAR_FRAME integer @头像框
     ---@field public VOICE integer @语音
     ---@field public IDLE_POSE integer @特殊待机动作
     ---@field public PHOTO_POSE integer @拍照动作
     ---@field public BAG integer @背包
     ---@field public FRIEND_CAPACITY integer @好友数量
     ---@field public CONSTRUCTION_MATERIAL integer @制作材料
     ---@field public DESIGN_DRAWING integer @设计图纸
    ['item.EMinorType'] = {   DIAMOND=101,  GOLD=102,  SILVER=103,  EXP=104,  POWER_POINT=105,  HAIR_STYLE=210,  COAT=220,  UPPER_JACKET=230,  TROUSERS=241,  SKIRT=242,  SOCKS=250,  SHOES=260,  HAIR_ACCESSORY=271,  HAT=272,  EARRING=273,  NECKLACE=274,  BRACELET=275,  HAIR_CLASP=276,  GLOVE=277,  HANDHELD_OBJECT=278,  SPECIAL=279,  BASE_COSMETIC=281,  EYEBROW_COSMETIC=282,  EYELASH=283,  COSMETIC_CONTACT_LENSES=284,  LIP_COSMETIC=285,  SKIN_COLOR=286,  ONE_PIECE_DRESS=290,  SWITCH_CLOTHES_SCENE=291,  QUEST=301,  CAST=401,  SWORD=421,  BOW_ARROW=422,  WANDS=423,  SPECIAL_TOOL=424,  FOOD=403,  TREASURE_BOX=501,  KEY=502,  MULTI_CHOOSE_TREASURE_BOX=503,  ACHIEVEMENT=601,  TITLE=602,  AVATAR_FRAME=701,  VOICE=801,  IDLE_POSE=901,  PHOTO_POSE=902,  BAG=1001,  FRIEND_CAPACITY=1002,  CONSTRUCTION_MATERIAL=1101,  DESIGN_DRAWING=1102,  };
    ---@class item.EClothersStarQualityType
     ---@field public ONE integer @一星
     ---@field public TWO integer @二星
     ---@field public THREE integer @三星
     ---@field public FOUR integer @四星
     ---@field public FIVE integer @五星
     ---@field public SIX integer @六星
     ---@field public SEVEN integer @七星
     ---@field public EIGHT integer @八星
     ---@field public NINE integer @九星
     ---@field public TEN integer @十星
    ['item.EClothersStarQualityType'] = {   ONE=1,  TWO=2,  THREE=3,  FOUR=4,  FIVE=5,  SIX=6,  SEVEN=7,  EIGHT=8,  NINE=9,  TEN=10,  };
    ---@class item.EClothersTag
     ---@field public FANG_SHAI integer @防晒
     ---@field public WU_ZHE integer @舞者
    ['item.EClothersTag'] = {   FANG_SHAI=1,  WU_ZHE=2,  };
    ---@class item.EUseType
     ---@field public MANUAL integer @手动
     ---@field public AUTO integer @自动
    ['item.EUseType'] = {   MANUAL=0,  AUTO=1,  };
    ---@class item.EClothesHidePartType
     ---@field public CHEST integer @胸部
     ---@field public HEAD integer @手
     ---@field public SPINE_UPPER integer @脊柱上
     ---@field public SPINE_LOWER integer @脊柱下
     ---@field public HIP integer @臀部
     ---@field public LEG_UPPER integer @腿上
     ---@field public LEG_MIDDLE integer @腿中
     ---@field public LEG_LOWER integer @腿下
    ['item.EClothesHidePartType'] = {   CHEST=0,  HEAD=1,  SPINE_UPPER=2,  SPINE_LOWER=3,  HIP=4,  LEG_UPPER=5,  LEG_MIDDLE=6,  LEG_LOWER=7,  };
    ---@class item.EClothesPropertyType
     ---@field public JIAN_YUE integer @简约
     ---@field public HUA_LI integer @华丽
     ---@field public KE_AI integer @可爱
     ---@field public CHENG_SHU integer @成熟
     ---@field public HUO_PO integer @活泼
     ---@field public YOU_YA integer @优雅
     ---@field public QING_CHUN integer @清纯
     ---@field public XING_GAN integer @性感
     ---@field public QING_LIANG integer @清凉
     ---@field public BAO_NUAN integer @保暖
    ['item.EClothesPropertyType'] = {   JIAN_YUE=1,  HUA_LI=2,  KE_AI=3,  CHENG_SHU=4,  HUO_PO=5,  YOU_YA=6,  QING_CHUN=7,  XING_GAN=8,  QING_LIANG=9,  BAO_NUAN=10,  };
    ---@class test.DemoEnum
     ---@field public NONE integer
     ---@field public A integer @aa
     ---@field public B integer @bb
     ---@field public C integer @cc
     ---@field public D integer @dd
    ['test.DemoEnum'] = {   NONE=0,  A=1,  B=2,  C=4,  D=5,  };
    ---@class test.DemoFlag
     ---@field public A integer
     ---@field public B integer
     ---@field public C integer
     ---@field public D integer
    ['test.DemoFlag'] = {   A=1,  B=2,  C=4,  D=8,  };
    ---@class test.ETestUeType
     ---@field public WHITE integer @白
     ---@field public BLACK integer
    ['test.ETestUeType'] = {   WHITE=0,  BLACK=1,  };
    ---@class test.ETestEmptyEnum
    ['test.ETestEmptyEnum'] = {   };
    ---@class test.ETestEmptyEnum2
     ---@field public SMALL_THAN_256 integer
     ---@field public X_256 integer
     ---@field public X_257 integer
    ['test.ETestEmptyEnum2'] = {   SMALL_THAN_256=255,  X_256=256,  X_257=257,  };
    ---@class test.ETestQuality
     ---@field public A integer @最高品质
     ---@field public B integer @黑色的
     ---@field public C integer @蓝色的
     ---@field public D integer @最差品质
    ['test.ETestQuality'] = {   A=1,  B=2,  C=3,  D=4,  };
    ---@class test.AccessFlag
     ---@field public WRITE integer
     ---@field public READ integer
     ---@field public TRUNCATE integer
     ---@field public NEW integer
     ---@field public READ_WRITE integer
    ['test.AccessFlag'] = {   WRITE=1,  READ=2,  TRUNCATE=4,  NEW=8,  READ_WRITE=3,  };
}

local beans = {}
    do
    ---@class ai.Blackboard 
     ---@field public name string
     ---@field public desc string
     ---@field public parent_name string
     ---@field public keys ai.BlackboardKey[]
        local class = {
            { name='name', type='string'},
            { name='desc', type='string'},
            { name='parent_name', type='string'},
            { name='keys', type='ai.BlackboardKey[]'},
        }
        beans['ai.Blackboard'] = class
    end
    do
    ---@class ai.BlackboardKey 
     ---@field public name string
     ---@field public desc string
     ---@field public is_static boolean
     ---@field public type integer
     ---@field public type_class_name string
        local class = {
            { name='name', type='string'},
            { name='desc', type='string'},
            { name='is_static', type='boolean'},
            { name='type', type='integer'},
            { name='type_class_name', type='string'},
        }
        beans['ai.BlackboardKey'] = class
    end
    do
    ---@class ai.BehaviorTree 
     ---@field public id integer
     ---@field public name string
     ---@field public desc string
     ---@field public blackboard_id string
     ---@field public root ai.ComposeNode
        local class = {
            { name='id', type='integer'},
            { name='name', type='string'},
            { name='desc', type='string'},
            { name='blackboard_id', type='string'},
            { name='root', type='ai.ComposeNode'},
        }
        beans['ai.BehaviorTree'] = class
    end
    do
    ---@class ai.Node 
     ---@field public id integer
     ---@field public node_name string
        local class = {
            { name='id', type='integer'},
            { name='node_name', type='string'},
        }
        beans['ai.Node'] = class
    end
    do
    ---@class ai.Service :ai.Node 
        local class = {
        }
        beans['ai.Service'] = class
    end
    do
    ---@class ai.UeSetDefaultFocus :ai.Service 
     ---@field public keyboard_key string
        local class = {
            { name='keyboard_key', type='string'},
        }
        beans['ai.UeSetDefaultFocus'] = class
    end
    do
    ---@class ai.ExecuteTimeStatistic :ai.Service 
        local class = {
        }
        beans['ai.ExecuteTimeStatistic'] = class
    end
    do
    ---@class ai.ChooseTarget :ai.Service 
     ---@field public result_target_key string
        local class = {
            { name='result_target_key', type='string'},
        }
        beans['ai.ChooseTarget'] = class
    end
    do
    ---@class ai.KeepFaceTarget :ai.Service 
     ---@field public target_actor_key string
        local class = {
            { name='target_actor_key', type='string'},
        }
        beans['ai.KeepFaceTarget'] = class
    end
    do
    ---@class ai.GetOwnerPlayer :ai.Service 
     ---@field public player_actor_key string
        local class = {
            { name='player_actor_key', type='string'},
        }
        beans['ai.GetOwnerPlayer'] = class
    end
    do
    ---@class ai.UpdateDailyBehaviorProps :ai.Service 
     ---@field public satiety_key string
     ---@field public energy_key string
     ---@field public mood_key string
     ---@field public satiety_lower_threshold_key string
     ---@field public satiety_upper_threshold_key string
     ---@field public energy_lower_threshold_key string
     ---@field public energy_upper_threshold_key string
     ---@field public mood_lower_threshold_key string
     ---@field public mood_upper_threshold_key string
        local class = {
            { name='satiety_key', type='string'},
            { name='energy_key', type='string'},
            { name='mood_key', type='string'},
            { name='satiety_lower_threshold_key', type='string'},
            { name='satiety_upper_threshold_key', type='string'},
            { name='energy_lower_threshold_key', type='string'},
            { name='energy_upper_threshold_key', type='string'},
            { name='mood_lower_threshold_key', type='string'},
            { name='mood_upper_threshold_key', type='string'},
        }
        beans['ai.UpdateDailyBehaviorProps'] = class
    end
    do
    ---@class ai.Decorator :ai.Node 
     ---@field public flow_abort_mode integer
        local class = {
            { name='flow_abort_mode', type='integer'},
        }
        beans['ai.Decorator'] = class
    end
    do
    ---@class ai.UeLoop :ai.Decorator 
     ---@field public num_loops integer
     ---@field public infinite_loop boolean
     ---@field public infinite_loop_timeout_time number
        local class = {
            { name='num_loops', type='integer'},
            { name='infinite_loop', type='boolean'},
            { name='infinite_loop_timeout_time', type='number'},
        }
        beans['ai.UeLoop'] = class
    end
    do
    ---@class ai.UeCooldown :ai.Decorator 
     ---@field public cooldown_time number
        local class = {
            { name='cooldown_time', type='number'},
        }
        beans['ai.UeCooldown'] = class
    end
    do
    ---@class ai.UeTimeLimit :ai.Decorator 
     ---@field public limit_time number
        local class = {
            { name='limit_time', type='number'},
        }
        beans['ai.UeTimeLimit'] = class
    end
    do
    ---@class ai.UeBlackboard :ai.Decorator 
     ---@field public notify_observer integer
     ---@field public blackboard_key string
     ---@field public key_query ai.KeyQueryOperator
        local class = {
            { name='notify_observer', type='integer'},
            { name='blackboard_key', type='string'},
            { name='key_query', type='ai.KeyQueryOperator'},
        }
        beans['ai.UeBlackboard'] = class
    end
    do
    ---@class ai.KeyQueryOperator 
        local class = {
        }
        beans['ai.KeyQueryOperator'] = class
    end
    do
    ---@class ai.IsSet :ai.KeyQueryOperator 
        local class = {
        }
        beans['ai.IsSet'] = class
    end
    do
    ---@class ai.IsNotSet :ai.KeyQueryOperator 
        local class = {
        }
        beans['ai.IsNotSet'] = class
    end
    do
    ---@class ai.BinaryOperator :ai.KeyQueryOperator 
     ---@field public oper integer
     ---@field public data ai.KeyData
        local class = {
            { name='oper', type='integer'},
            { name='data', type='ai.KeyData'},
        }
        beans['ai.BinaryOperator'] = class
    end
    do
    ---@class ai.KeyData 
        local class = {
        }
        beans['ai.KeyData'] = class
    end
    do
    ---@class ai.FloatKeyData :ai.KeyData 
     ---@field public value number
        local class = {
            { name='value', type='number'},
        }
        beans['ai.FloatKeyData'] = class
    end
    do
    ---@class ai.IntKeyData :ai.KeyData 
     ---@field public value integer
        local class = {
            { name='value', type='integer'},
        }
        beans['ai.IntKeyData'] = class
    end
    do
    ---@class ai.StringKeyData :ai.KeyData 
     ---@field public value string
        local class = {
            { name='value', type='string'},
        }
        beans['ai.StringKeyData'] = class
    end
    do
    ---@class ai.BlackboardKeyData :ai.KeyData 
     ---@field public value string
        local class = {
            { name='value', type='string'},
        }
        beans['ai.BlackboardKeyData'] = class
    end
    do
    ---@class ai.UeForceSuccess :ai.Decorator 
        local class = {
        }
        beans['ai.UeForceSuccess'] = class
    end
    do
    ---@class ai.IsAtLocation :ai.Decorator 
     ---@field public acceptable_radius number
     ---@field public keyboard_key string
     ---@field public inverse_condition boolean
        local class = {
            { name='acceptable_radius', type='number'},
            { name='keyboard_key', type='string'},
            { name='inverse_condition', type='boolean'},
        }
        beans['ai.IsAtLocation'] = class
    end
    do
    ---@class ai.DistanceLessThan :ai.Decorator 
     ---@field public actor1_key string
     ---@field public actor2_key string
     ---@field public distance number
     ---@field public reverse_result boolean
        local class = {
            { name='actor1_key', type='string'},
            { name='actor2_key', type='string'},
            { name='distance', type='number'},
            { name='reverse_result', type='boolean'},
        }
        beans['ai.DistanceLessThan'] = class
    end
    do
    ---@class ai.FlowNode :ai.Node 
     ---@field public decorators ai.Decorator[]
     ---@field public services ai.Service[]
        local class = {
            { name='decorators', type='ai.Decorator[]'},
            { name='services', type='ai.Service[]'},
        }
        beans['ai.FlowNode'] = class
    end
    do
    ---@class ai.ComposeNode :ai.FlowNode 
        local class = {
        }
        beans['ai.ComposeNode'] = class
    end
    do
    ---@class ai.Sequence :ai.ComposeNode 
     ---@field public children ai.FlowNode[]
        local class = {
            { name='children', type='ai.FlowNode[]'},
        }
        beans['ai.Sequence'] = class
    end
    do
    ---@class ai.Selector :ai.ComposeNode 
     ---@field public children ai.FlowNode[]
        local class = {
            { name='children', type='ai.FlowNode[]'},
        }
        beans['ai.Selector'] = class
    end
    do
    ---@class ai.SimpleParallel :ai.ComposeNode 
     ---@field public finish_mode integer
     ---@field public main_task ai.Task
     ---@field public background_node ai.FlowNode
        local class = {
            { name='finish_mode', type='integer'},
            { name='main_task', type='ai.Task'},
            { name='background_node', type='ai.FlowNode'},
        }
        beans['ai.SimpleParallel'] = class
    end
    do
    ---@class ai.Task :ai.FlowNode 
     ---@field public ignore_restart_self boolean
        local class = {
            { name='ignore_restart_self', type='boolean'},
        }
        beans['ai.Task'] = class
    end
    do
    ---@class ai.UeWait :ai.Task 
     ---@field public wait_time number
     ---@field public random_deviation number
        local class = {
            { name='wait_time', type='number'},
            { name='random_deviation', type='number'},
        }
        beans['ai.UeWait'] = class
    end
    do
    ---@class ai.UeWaitBlackboardTime :ai.Task 
     ---@field public blackboard_key string
        local class = {
            { name='blackboard_key', type='string'},
        }
        beans['ai.UeWaitBlackboardTime'] = class
    end
    do
    ---@class ai.MoveToTarget :ai.Task 
     ---@field public target_actor_key string
     ---@field public acceptable_radius number
        local class = {
            { name='target_actor_key', type='string'},
            { name='acceptable_radius', type='number'},
        }
        beans['ai.MoveToTarget'] = class
    end
    do
    ---@class ai.ChooseSkill :ai.Task 
     ---@field public target_actor_key string
     ---@field public result_skill_id_key string
        local class = {
            { name='target_actor_key', type='string'},
            { name='result_skill_id_key', type='string'},
        }
        beans['ai.ChooseSkill'] = class
    end
    do
    ---@class ai.MoveToRandomLocation :ai.Task 
     ---@field public origin_position_key string
     ---@field public radius number
        local class = {
            { name='origin_position_key', type='string'},
            { name='radius', type='number'},
        }
        beans['ai.MoveToRandomLocation'] = class
    end
    do
    ---@class ai.MoveToLocation :ai.Task 
     ---@field public acceptable_radius number
        local class = {
            { name='acceptable_radius', type='number'},
        }
        beans['ai.MoveToLocation'] = class
    end
    do
    ---@class ai.DebugPrint :ai.Task 
     ---@field public text string
        local class = {
            { name='text', type='string'},
        }
        beans['ai.DebugPrint'] = class
    end
    do
    ---@class common.GlobalConfig 
     ---@field public x1 integer @背包容量
     ---@field public x2 integer
     ---@field public x3 integer
     ---@field public x4 integer
     ---@field public x5 integer
     ---@field public x6 integer
     ---@field public x7 integer[]
        local class = {
            { name='x1', type='integer'},
            { name='x2', type='integer'},
            { name='x3', type='integer'},
            { name='x4', type='integer'},
            { name='x5', type='integer'},
            { name='x6', type='integer'},
            { name='x7', type='integer[]'},
        }
        beans['common.GlobalConfig'] = class
    end
    do
    ---@class item.Item  @道具
     ---@field public id integer @道具id
     ---@field public name string
     ---@field public minor_type integer
     ---@field public quality integer
     ---@field public icon_backgroud string
     ---@field public icon_mask string
     ---@field public desc string
     ---@field public show_order integer
        local class = {
            { name='id', type='integer'},
            { name='name', type='string'},
            { name='minor_type', type='integer'},
            { name='quality', type='integer'},
            { name='icon_backgroud', type='string'},
            { name='icon_mask', type='string'},
            { name='desc', type='string'},
            { name='show_order', type='integer'},
        }
        beans['item.Item'] = class
    end
    do
    ---@class l10n.L10NDemo 
     ---@field public id integer
     ---@field public text string
        local class = {
            { name='id', type='integer'},
            { name='text', type='string'},
        }
        beans['l10n.L10NDemo'] = class
    end
    do
    ---@class l10n.PatchDemo 
     ---@field public id integer
     ---@field public value integer
        local class = {
            { name='id', type='integer'},
            { name='value', type='integer'},
        }
        beans['l10n.PatchDemo'] = class
    end
    do
    ---@class tag.TestTag 
     ---@field public id integer
     ---@field public value string
        local class = {
            { name='id', type='integer'},
            { name='value', type='string'},
        }
        beans['tag.TestTag'] = class
    end
    do
    ---@class test.DemoType2 
     ---@field public x4 integer
     ---@field public x1 boolean
     ---@field public x2 integer
     ---@field public x3 integer
     ---@field public x5 integer
     ---@field public x6 number
     ---@field public x7 number
     ---@field public x8_0 integer
     ---@field public x8 integer
     ---@field public x9 integer
     ---@field public x10 string
     ---@field public x12 test.DemoType1
     ---@field public x13 integer
     ---@field public x14 test.DemoDynamic
     ---@field public s1 string
     ---@field public t1 integer
     ---@field public k1 integer[]
     ---@field public k2 integer[]
     ---@field public k5 integer[]
     ---@field public k8 table<integer,integer>
     ---@field public k9 test.DemoE2[]
     ---@field public k15 test.DemoDynamic[]
        local class = {
            { name='x4', type='integer'},
            { name='x1', type='boolean'},
            { name='x2', type='integer'},
            { name='x3', type='integer'},
            { name='x5', type='integer'},
            { name='x6', type='number'},
            { name='x7', type='number'},
            { name='x8_0', type='integer'},
            { name='x8', type='integer'},
            { name='x9', type='integer'},
            { name='x10', type='string'},
            { name='x12', type='test.DemoType1'},
            { name='x13', type='integer'},
            { name='x14', type='test.DemoDynamic'},
            { name='s1', type='string'},
            { name='t1', type='integer'},
            { name='k1', type='integer[]'},
            { name='k2', type='integer[]'},
            { name='k5', type='integer[]'},
            { name='k8', type='table<integer,integer>'},
            { name='k9', type='test.DemoE2[]'},
            { name='k15', type='test.DemoDynamic[]'},
        }
        beans['test.DemoType2'] = class
    end
    do
    ---@class test.DemoType1 
     ---@field public x1 integer
        local class = {
            { name='x1', type='integer'},
        }
        beans['test.DemoType1'] = class
    end
    do
    ---@class test.DemoDynamic 
     ---@field public x1 integer
        local class = {
            { name='x1', type='integer'},
        }
        beans['test.DemoDynamic'] = class
    end
    do
    ---@class test.DemoD2 :test.DemoDynamic 
     ---@field public x2 integer
        local class = {
            { name='x2', type='integer'},
        }
        beans['test.DemoD2'] = class
    end
    do
    ---@class test.DemoD3 :test.DemoDynamic 
     ---@field public x3 integer
        local class = {
            { name='x3', type='integer'},
        }
        beans['test.DemoD3'] = class
    end
    do
    ---@class test.DemoE1 :test.DemoD3 
     ---@field public x4 integer
        local class = {
            { name='x4', type='integer'},
        }
        beans['test.DemoE1'] = class
    end
    do
    ---@class test.login.RoleInfo :test.DemoD3 
     ---@field public role_id integer
        local class = {
            { name='role_id', type='integer'},
        }
        beans['test.login.RoleInfo'] = class
    end
    do
    ---@class test.DemoD5 :test.DemoDynamic 
     ---@field public time test.DateTimeRange
        local class = {
            { name='time', type='test.DateTimeRange'},
        }
        beans['test.DemoD5'] = class
    end
    do
    ---@class test.DateTimeRange 
     ---@field public start_time integer
     ---@field public end_time integer
        local class = {
            { name='start_time', type='integer'},
            { name='end_time', type='integer'},
        }
        beans['test.DateTimeRange'] = class
    end
    do
    ---@class test.DemoE2 
     ---@field public y1 integer
     ---@field public y2 boolean
        local class = {
            { name='y1', type='integer'},
            { name='y2', type='boolean'},
        }
        beans['test.DemoE2'] = class
    end
    do
    ---@class test.DemoSingletonType 
     ---@field public id integer
     ---@field public name string
     ---@field public date test.DemoDynamic
        local class = {
            { name='id', type='integer'},
            { name='name', type='string'},
            { name='date', type='test.DemoDynamic'},
        }
        beans['test.DemoSingletonType'] = class
    end
    do
    ---@class test.NotIndexList 
     ---@field public x integer
     ---@field public y integer
        local class = {
            { name='x', type='integer'},
            { name='y', type='integer'},
        }
        beans['test.NotIndexList'] = class
    end
    do
    ---@class test.MultiUnionIndexList 
     ---@field public id1 integer
     ---@field public id2 integer
     ---@field public id3 string
     ---@field public num integer
     ---@field public desc string
        local class = {
            { name='id1', type='integer'},
            { name='id2', type='integer'},
            { name='id3', type='string'},
            { name='num', type='integer'},
            { name='desc', type='string'},
        }
        beans['test.MultiUnionIndexList'] = class
    end
    do
    ---@class test.MultiIndexList 
     ---@field public id1 integer
     ---@field public id2 integer
     ---@field public id3 string
     ---@field public num integer
     ---@field public desc string
        local class = {
            { name='id1', type='integer'},
            { name='id2', type='integer'},
            { name='id3', type='string'},
            { name='num', type='integer'},
            { name='desc', type='string'},
        }
        beans['test.MultiIndexList'] = class
    end
    do
    ---@class test.MultiRowRecord 
     ---@field public id integer
     ---@field public name string
     ---@field public one_rows test.MultiRowType1[]
     ---@field public multi_rows1 test.MultiRowType1[]
     ---@field public multi_rows2 test.MultiRowType1[]
     ---@field public multi_rows4 table<integer,test.MultiRowType2>
     ---@field public multi_rows5 test.MultiRowType3[]
     ---@field public multi_rows6 table<integer,test.MultiRowType2>
     ---@field public multi_rows7 table<integer,integer>
        local class = {
            { name='id', type='integer'},
            { name='name', type='string'},
            { name='one_rows', type='test.MultiRowType1[]'},
            { name='multi_rows1', type='test.MultiRowType1[]'},
            { name='multi_rows2', type='test.MultiRowType1[]'},
            { name='multi_rows4', type='table<integer,test.MultiRowType2>'},
            { name='multi_rows5', type='test.MultiRowType3[]'},
            { name='multi_rows6', type='table<integer,test.MultiRowType2>'},
            { name='multi_rows7', type='table<integer,integer>'},
        }
        beans['test.MultiRowRecord'] = class
    end
    do
    ---@class test.MultiRowType1 
     ---@field public id integer
     ---@field public x integer
        local class = {
            { name='id', type='integer'},
            { name='x', type='integer'},
        }
        beans['test.MultiRowType1'] = class
    end
    do
    ---@class test.MultiRowType2 
     ---@field public id integer
     ---@field public x integer
     ---@field public y number
        local class = {
            { name='id', type='integer'},
            { name='x', type='integer'},
            { name='y', type='number'},
        }
        beans['test.MultiRowType2'] = class
    end
    do
    ---@class test.MultiRowType3 
     ---@field public id integer
     ---@field public items test.MultiRowType1[]
        local class = {
            { name='id', type='integer'},
            { name='items', type='test.MultiRowType1[]'},
        }
        beans['test.MultiRowType3'] = class
    end
    do
    ---@class test.TestMultiColumn 
     ---@field public id integer
     ---@field public a test.Foo
     ---@field public b test.Foo
     ---@field public c test.Foo
        local class = {
            { name='id', type='integer'},
            { name='a', type='test.Foo'},
            { name='b', type='test.Foo'},
            { name='c', type='test.Foo'},
        }
        beans['test.TestMultiColumn'] = class
    end
    do
    ---@class test.Foo 
     ---@field public y1 integer
     ---@field public y2 integer
     ---@field public y3 integer
        local class = {
            { name='y1', type='integer'},
            { name='y2', type='integer'},
            { name='y3', type='integer'},
        }
        beans['test.Foo'] = class
    end
    do
    ---@class test.MultiRowTitle 
     ---@field public id integer
     ---@field public name string
     ---@field public x1 test.H1
     ---@field public x2_0 test.H2
     ---@field public x2 test.H2[]
     ---@field public x3 test.H2[]
     ---@field public x4 test.H2[]
        local class = {
            { name='id', type='integer'},
            { name='name', type='string'},
            { name='x1', type='test.H1'},
            { name='x2_0', type='test.H2'},
            { name='x2', type='test.H2[]'},
            { name='x3', type='test.H2[]'},
            { name='x4', type='test.H2[]'},
        }
        beans['test.MultiRowTitle'] = class
    end
    do
    ---@class test.H1 
     ---@field public y2 test.H2
     ---@field public y3 integer
        local class = {
            { name='y2', type='test.H2'},
            { name='y3', type='integer'},
        }
        beans['test.H1'] = class
    end
    do
    ---@class test.H2 
     ---@field public z2 integer
     ---@field public z3 integer
        local class = {
            { name='z2', type='integer'},
            { name='z3', type='integer'},
        }
        beans['test.H2'] = class
    end
    do
    ---@class test.TestNull 
     ---@field public id integer
     ---@field public x1 integer
     ---@field public x2 integer
     ---@field public x3 test.DemoType1
     ---@field public x4 test.DemoDynamic
     ---@field public s1 string
     ---@field public s2 string
        local class = {
            { name='id', type='integer'},
            { name='x1', type='integer'},
            { name='x2', type='integer'},
            { name='x3', type='test.DemoType1'},
            { name='x4', type='test.DemoDynamic'},
            { name='s1', type='string'},
            { name='s2', type='string'},
        }
        beans['test.TestNull'] = class
    end
    do
    ---@class test.DemoPrimitiveTypesTable 
     ---@field public x1 boolean
     ---@field public x2 integer
     ---@field public x3 integer
     ---@field public x4 integer
     ---@field public x5 integer
     ---@field public x6 number
     ---@field public x7 number
     ---@field public s1 string
     ---@field public s2 string
     ---@field public v2 vec2
     ---@field public v3 vec3
     ---@field public v4 vec4
     ---@field public t1 integer
        local class = {
            { name='x1', type='boolean'},
            { name='x2', type='integer'},
            { name='x3', type='integer'},
            { name='x4', type='integer'},
            { name='x5', type='integer'},
            { name='x6', type='number'},
            { name='x7', type='number'},
            { name='s1', type='string'},
            { name='s2', type='string'},
            { name='v2', type='vec2'},
            { name='v3', type='vec3'},
            { name='v4', type='vec4'},
            { name='t1', type='integer'},
        }
        beans['test.DemoPrimitiveTypesTable'] = class
    end
    do
    ---@class vec2 
     ---@field public x number
     ---@field public y number
        local class = {
            { name='x', type='number'},
            { name='y', type='number'},
        }
        beans['vec2'] = class
    end
    do
    ---@class vec3 
     ---@field public x number
     ---@field public y number
     ---@field public z number
        local class = {
            { name='x', type='number'},
            { name='y', type='number'},
            { name='z', type='number'},
        }
        beans['vec3'] = class
    end
    do
    ---@class vec4 
     ---@field public x number
     ---@field public y number
     ---@field public z number
     ---@field public w number
        local class = {
            { name='x', type='number'},
            { name='y', type='number'},
            { name='z', type='number'},
            { name='w', type='number'},
        }
        beans['vec4'] = class
    end
    do
    ---@class test.TestString 
     ---@field public id string
     ---@field public s1 string
     ---@field public s2 string
     ---@field public cs1 test.CompactString
     ---@field public cs2 test.CompactString
        local class = {
            { name='id', type='string'},
            { name='s1', type='string'},
            { name='s2', type='string'},
            { name='cs1', type='test.CompactString'},
            { name='cs2', type='test.CompactString'},
        }
        beans['test.TestString'] = class
    end
    do
    ---@class test.CompactString 
     ---@field public id integer
     ---@field public s2 string
     ---@field public s3 string
        local class = {
            { name='id', type='integer'},
            { name='s2', type='string'},
            { name='s3', type='string'},
        }
        beans['test.CompactString'] = class
    end
    do
    ---@class test.DemoGroup 
     ---@field public id integer
     ---@field public x5 test.InnerGroup
        local class = {
            { name='id', type='integer'},
            { name='x5', type='test.InnerGroup'},
        }
        beans['test.DemoGroup'] = class
    end
    do
    ---@class test.InnerGroup 
     ---@field public y1 integer
        local class = {
            { name='y1', type='integer'},
        }
        beans['test.InnerGroup'] = class
    end
    do
    ---@class test.TestGlobal 
     ---@field public unlock_equip integer
     ---@field public unlock_hero integer
        local class = {
            { name='unlock_equip', type='integer'},
            { name='unlock_hero', type='integer'},
        }
        beans['test.TestGlobal'] = class
    end
    do
    ---@class test.TestBeRef 
     ---@field public id integer
     ---@field public count integer
        local class = {
            { name='id', type='integer'},
            { name='count', type='integer'},
        }
        beans['test.TestBeRef'] = class
    end
    do
    ---@class test.TestRef 
     ---@field public id integer
     ---@field public x1 integer
     ---@field public x1_2 integer
     ---@field public x2 integer
     ---@field public x3 integer
     ---@field public x4 integer
     ---@field public a1 integer[]
     ---@field public a2 integer[]
     ---@field public b1 integer[]
     ---@field public b2 integer[]
     ---@field public c1 integer[]
     ---@field public c2 integer[]
     ---@field public d1 table<integer,integer>
     ---@field public d2 table<integer,integer>
     ---@field public e1 integer
     ---@field public e2 integer
     ---@field public e3 string
     ---@field public f1 integer
     ---@field public f2 integer
     ---@field public f3 string
     ---@field public s1 test.RefDynamicBase
        local class = {
            { name='id', type='integer'},
            { name='x1', type='integer'},
            { name='x1_2', type='integer'},
            { name='x2', type='integer'},
            { name='x3', type='integer'},
            { name='x4', type='integer'},
            { name='a1', type='integer[]'},
            { name='a2', type='integer[]'},
            { name='b1', type='integer[]'},
            { name='b2', type='integer[]'},
            { name='c1', type='integer[]'},
            { name='c2', type='integer[]'},
            { name='d1', type='table<integer,integer>'},
            { name='d2', type='table<integer,integer>'},
            { name='e1', type='integer'},
            { name='e2', type='integer'},
            { name='e3', type='string'},
            { name='f1', type='integer'},
            { name='f2', type='integer'},
            { name='f3', type='string'},
            { name='s1', type='test.RefDynamicBase'},
        }
        beans['test.TestRef'] = class
    end
    do
    ---@class test.RefDynamicBase 
     ---@field public x integer
        local class = {
            { name='x', type='integer'},
        }
        beans['test.RefDynamicBase'] = class
    end
    do
    ---@class test.RefBean :test.RefDynamicBase 
     ---@field public arr integer[]
        local class = {
            { name='arr', type='integer[]'},
        }
        beans['test.RefBean'] = class
    end
    do
    ---@class test.TestSize 
     ---@field public id integer
     ---@field public x1 integer[]
     ---@field public x2 integer[]
     ---@field public x3 integer[]
     ---@field public x4 table<integer,integer>
        local class = {
            { name='id', type='integer'},
            { name='x1', type='integer[]'},
            { name='x2', type='integer[]'},
            { name='x3', type='integer[]'},
            { name='x4', type='table<integer,integer>'},
        }
        beans['test.TestSize'] = class
    end
    do
    ---@class test.TestSet 
     ---@field public id integer
     ---@field public x0 string
     ---@field public x1 integer[]
     ---@field public x2 integer[]
     ---@field public x3 string[]
     ---@field public x4 integer[]
        local class = {
            { name='id', type='integer'},
            { name='x0', type='string'},
            { name='x1', type='integer[]'},
            { name='x2', type='integer[]'},
            { name='x3', type='string[]'},
            { name='x4', type='integer[]'},
        }
        beans['test.TestSet'] = class
    end
    do
    ---@class test.DetectEncoding 
     ---@field public id integer
     ---@field public name string
        local class = {
            { name='id', type='integer'},
            { name='name', type='string'},
        }
        beans['test.DetectEncoding'] = class
    end
    do
    ---@class test.ItemBase 
     ---@field public id integer
     ---@field public name string
     ---@field public desc string
        local class = {
            { name='id', type='integer'},
            { name='name', type='string'},
            { name='desc', type='string'},
        }
        beans['test.ItemBase'] = class
    end
    do
    ---@class test.Item :test.ItemBase 
     ---@field public num integer
     ---@field public price integer
        local class = {
            { name='num', type='integer'},
            { name='price', type='integer'},
        }
        beans['test.Item'] = class
    end
    do
    ---@class test.Equipment :test.ItemBase 
     ---@field public attr integer
     ---@field public value integer
        local class = {
            { name='attr', type='integer'},
            { name='value', type='integer'},
        }
        beans['test.Equipment'] = class
    end
    do
    ---@class test.Decorator :test.ItemBase 
     ---@field public duration integer
        local class = {
            { name='duration', type='integer'},
        }
        beans['test.Decorator'] = class
    end
    do
    ---@class test.TestIndex 
     ---@field public id integer
     ---@field public eles test.DemoType1[]
        local class = {
            { name='id', type='integer'},
            { name='eles', type='test.DemoType1[]'},
        }
        beans['test.TestIndex'] = class
    end
    do
    ---@class test.TestMap 
     ---@field public id integer
     ---@field public x1 table<integer,integer>
     ---@field public x2 table<integer,integer>
     ---@field public x3 table<string,integer>
     ---@field public x4 table<integer,integer>
        local class = {
            { name='id', type='integer'},
            { name='x1', type='table<integer,integer>'},
            { name='x2', type='table<integer,integer>'},
            { name='x3', type='table<string,integer>'},
            { name='x4', type='table<integer,integer>'},
        }
        beans['test.TestMap'] = class
    end
    do
    ---@class test.ExcelFromJson 
     ---@field public x4 integer
     ---@field public x1 boolean
     ---@field public x5 integer
     ---@field public x6 number
     ---@field public s1 string
     ---@field public s2 string
     ---@field public t1 integer
     ---@field public x12 test.DemoType1
     ---@field public x13 integer
     ---@field public x14 test.DemoDynamic
     ---@field public k1 integer[]
     ---@field public k8 table<integer,integer>
     ---@field public k9 test.DemoE2[]
     ---@field public k15 test.DemoDynamic[]
        local class = {
            { name='x4', type='integer'},
            { name='x1', type='boolean'},
            { name='x5', type='integer'},
            { name='x6', type='number'},
            { name='s1', type='string'},
            { name='s2', type='string'},
            { name='t1', type='integer'},
            { name='x12', type='test.DemoType1'},
            { name='x13', type='integer'},
            { name='x14', type='test.DemoDynamic'},
            { name='k1', type='integer[]'},
            { name='k8', type='table<integer,integer>'},
            { name='k9', type='test.DemoE2[]'},
            { name='k15', type='test.DemoDynamic[]'},
        }
        beans['test.ExcelFromJson'] = class
    end
    do
    ---@class test.CompositeJsonTable1 
     ---@field public id integer
     ---@field public x string
        local class = {
            { name='id', type='integer'},
            { name='x', type='string'},
        }
        beans['test.CompositeJsonTable1'] = class
    end
    do
    ---@class test.CompositeJsonTable2 
     ---@field public id integer
     ---@field public y integer
        local class = {
            { name='id', type='integer'},
            { name='y', type='integer'},
        }
        beans['test.CompositeJsonTable2'] = class
    end
    do
    ---@class test.CompositeJsonTable3 
     ---@field public a integer
     ---@field public b integer
        local class = {
            { name='a', type='integer'},
            { name='b', type='integer'},
        }
        beans['test.CompositeJsonTable3'] = class
    end
    do
    ---@class test.ExcelFromJsonMultiRow 
     ---@field public id integer
     ---@field public x integer
     ---@field public items test.TestRow[]
        local class = {
            { name='id', type='integer'},
            { name='x', type='integer'},
            { name='items', type='test.TestRow[]'},
        }
        beans['test.ExcelFromJsonMultiRow'] = class
    end
    do
    ---@class test.TestRow 
     ---@field public x integer
     ---@field public y boolean
     ---@field public z string
     ---@field public a test.Test3
     ---@field public b integer[]
        local class = {
            { name='x', type='integer'},
            { name='y', type='boolean'},
            { name='z', type='string'},
            { name='a', type='test.Test3'},
            { name='b', type='integer[]'},
        }
        beans['test.TestRow'] = class
    end
    do
    ---@class test.Test3 
     ---@field public x integer
     ---@field public y integer
        local class = {
            { name='x', type='integer'},
            { name='y', type='integer'},
        }
        beans['test.Test3'] = class
    end
    do
    ---@class test.TestScriptableObject 
     ---@field public id integer
     ---@field public desc string
     ---@field public rate number
     ---@field public num integer
     ---@field public v2 vec2
     ---@field public v3 vec3
     ---@field public v4 vec4
        local class = {
            { name='id', type='integer'},
            { name='desc', type='string'},
            { name='rate', type='number'},
            { name='num', type='integer'},
            { name='v2', type='vec2'},
            { name='v3', type='vec3'},
            { name='v4', type='vec4'},
        }
        beans['test.TestScriptableObject'] = class
    end
    do
    ---@class test.TestMapper 
     ---@field public id integer
     ---@field public audio_type integer
     ---@field public v2 vec2
        local class = {
            { name='id', type='integer'},
            { name='audio_type', type='integer'},
            { name='v2', type='vec2'},
        }
        beans['test.TestMapper'] = class
    end
    do
    ---@class DefineFromExcel2 
     ---@field public id integer @这是id
     ---@field public x1 boolean @字段x1
     ---@field public x5 integer
     ---@field public x6 number
     ---@field public x8 integer
     ---@field public x10 string
     ---@field public x13 integer
     ---@field public x13_2 integer
     ---@field public x14 test.DemoDynamic
     ---@field public x15 test.Shape
     ---@field public v2 vec2
     ---@field public t1 integer
     ---@field public k1 integer[]
     ---@field public k2 integer[]
     ---@field public k8 table<integer,integer>
     ---@field public k9 test.DemoE2[]
     ---@field public k10 vec3[]
     ---@field public k11 vec4[]
        local class = {
            { name='id', type='integer'},
            { name='x1', type='boolean'},
            { name='x5', type='integer'},
            { name='x6', type='number'},
            { name='x8', type='integer'},
            { name='x10', type='string'},
            { name='x13', type='integer'},
            { name='x13_2', type='integer'},
            { name='x14', type='test.DemoDynamic'},
            { name='x15', type='test.Shape'},
            { name='v2', type='vec2'},
            { name='t1', type='integer'},
            { name='k1', type='integer[]'},
            { name='k2', type='integer[]'},
            { name='k8', type='table<integer,integer>'},
            { name='k9', type='test.DemoE2[]'},
            { name='k10', type='vec3[]'},
            { name='k11', type='vec4[]'},
        }
        beans['DefineFromExcel2'] = class
    end
    do
    ---@class test.Shape 
        local class = {
        }
        beans['test.Shape'] = class
    end
    do
    ---@class test.Circle :Shape  @圆
     ---@field public radius number @半径
        local class = {
            { name='radius', type='number'},
        }
        beans['test.Circle'] = class
    end
    do
    ---@class test2.Rectangle :test.Shape  @矩形
     ---@field public width number @宽度
     ---@field public height number @高度
        local class = {
            { name='width', type='number'},
            { name='height', type='number'},
        }
        beans['test2.Rectangle'] = class
    end

local tables =
{
    { name='TbBlackboard', file='ai_tbblackboard', mode='map', index='name', value_type='ai.Blackboard' },
    { name='TbBehaviorTree', file='ai_tbbehaviortree', mode='map', index='id', value_type='ai.BehaviorTree' },
    { name='TbGlobalConfig', file='common_tbglobalconfig', mode='one', value_type='common.GlobalConfig'},
    { name='TbItem', file='item_tbitem', mode='map', index='id', value_type='item.Item' },
    { name='TbL10NDemo', file='l10n_tbl10ndemo', mode='map', index='id', value_type='l10n.L10NDemo' },
    { name='TbPatchDemo', file='l10n_tbpatchdemo', mode='map', index='id', value_type='l10n.PatchDemo' },
    { name='TbTestTag', file='tag_tbtesttag', mode='map', index='id', value_type='tag.TestTag' },
    { name='TbFullTypes', file='test_tbfulltypes', mode='map', index='x4', value_type='test.DemoType2' },
    { name='TbSingleton', file='test_tbsingleton', mode='one', value_type='test.DemoSingletonType'},
    { name='TbNotIndexList', file='test_tbnotindexlist', mode='list', index='', value_type='test.NotIndexList' },
    { name='TbMultiUnionIndexList', file='test_tbmultiunionindexlist', mode='list', index='id1+id2+id3', value_type='test.MultiUnionIndexList' },
    { name='TbMultiIndexList', file='test_tbmultiindexlist', mode='list', index='id1,id2,id3', value_type='test.MultiIndexList' },
    { name='TbDataFromMisc', file='test_tbdatafrommisc', mode='map', index='x4', value_type='test.DemoType2' },
    { name='TbMultiRowRecord', file='test_tbmultirowrecord', mode='map', index='id', value_type='test.MultiRowRecord' },
    { name='TbTestMultiColumn', file='test_tbtestmulticolumn', mode='map', index='id', value_type='test.TestMultiColumn' },
    { name='TbMultiRowTitle', file='test_tbmultirowtitle', mode='map', index='id', value_type='test.MultiRowTitle' },
    { name='TbTestNull', file='test_tbtestnull', mode='map', index='id', value_type='test.TestNull' },
    { name='TbDemoPrimitive', file='test_tbdemoprimitive', mode='map', index='x4', value_type='test.DemoPrimitiveTypesTable' },
    { name='TbTestString', file='test_tbteststring', mode='map', index='id', value_type='test.TestString' },
    { name='TbDemoGroup', file='test_tbdemogroup', mode='map', index='id', value_type='test.DemoGroup' },
    { name='TbTestGlobal', file='test_tbtestglobal', mode='one', value_type='test.TestGlobal'},
    { name='TbTestBeRef', file='test_tbtestberef', mode='map', index='id', value_type='test.TestBeRef' },
    { name='TbTestBeRef2', file='test_tbtestberef2', mode='map', index='id', value_type='test.TestBeRef' },
    { name='TbTestRef', file='test_tbtestref', mode='map', index='id', value_type='test.TestRef' },
    { name='TbTestSize', file='test_tbtestsize', mode='map', index='id', value_type='test.TestSize' },
    { name='TbTestSet', file='test_tbtestset', mode='map', index='id', value_type='test.TestSet' },
    { name='TbDetectCsvEncoding', file='test_tbdetectcsvencoding', mode='map', index='id', value_type='test.DetectEncoding' },
    { name='TbItem2', file='test_tbitem2', mode='map', index='id', value_type='test.ItemBase' },
    { name='TbTestIndex', file='test_tbtestindex', mode='map', index='id', value_type='test.TestIndex' },
    { name='TbTestMap', file='test_tbtestmap', mode='map', index='id', value_type='test.TestMap' },
    { name='TbExcelFromJson', file='test_tbexcelfromjson', mode='map', index='x4', value_type='test.ExcelFromJson' },
    { name='TbCompositeJsonTable1', file='test_tbcompositejsontable1', mode='map', index='id', value_type='test.CompositeJsonTable1' },
    { name='TbCompositeJsonTable2', file='test_tbcompositejsontable2', mode='map', index='id', value_type='test.CompositeJsonTable2' },
    { name='TbCompositeJsonTable3', file='test_tbcompositejsontable3', mode='one', value_type='test.CompositeJsonTable3'},
    { name='TbExcelFromJsonMultiRow', file='test_tbexcelfromjsonmultirow', mode='map', index='id', value_type='test.ExcelFromJsonMultiRow' },
    { name='TbTestScriptableObject', file='test_tbtestscriptableobject', mode='map', index='id', value_type='test.TestScriptableObject' },
    { name='TbTestMapper', file='test_tbtestmapper', mode='map', index='id', value_type='test.TestMapper' },
    { name='TbDefineFromExcel2', file='test_tbdefinefromexcel2', mode='map', index='id', value_type='DefineFromExcel2' },
}

return { enums = enums, beans = beans, tables = tables }