#  <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>

@tool
class_name Schema
extends RefCounted


enum AiEExecutor
{
    CLIENT = 0,
    SERVER = 1,
}


enum AiEKeyType
{
    BOOL = 1,
    INT = 2,
    FLOAT = 3,
    STRING = 4,
    VECTOR = 5,
    ROTATOR = 6,
    NAME = 7,
    CLASS = 8,
    ENUM = 9,
    OBJECT = 10,
}


enum AiEFlowAbortMode
{
    NONE = 0,
    LOWER_PRIORITY = 1,
    SELF = 2,
    BOTH = 3,
}


enum AiEFinishMode
{
    IMMEDIATE = 0,
    DELAYED = 1,
}


enum AiENotifyObserverMode
{
    ON_VALUE_CHANGE = 0,
    ON_RESULT_CHANGE = 1,
}


enum AiEOperator
{
    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,
}


enum AudioType
{
    UNKNOWN = 0,
    ACC = 1,
    AIFF = 2,
}


enum CommonEBoolOperator
{
    AND = 0,
    OR = 1,
}


## 道具品质
enum ItemEItemQuality
{
    ## 白
    WHITE = 0,
    ## 绿
    GREEN = 1,
    ## 蓝
    BLUE = 2,
    ## 紫
    PURPLE = 3,
    ## 金
    GOLDEN = 4,
}


enum ItemECurrencyType
{
    ## 钻石
    DIAMOND = 1,
    ## 金币
    GOLD = 2,
    ## 银币
    SILVER = 3,
    ## 经验
    EXP = 4,
    ## 能量点
    POWER_POINT = 5,
}


enum ItemEMajorType
{
    ## 货币
    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,
}


enum ItemEMinorType
{
    ## 钻石
    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,
}


enum ItemEClothersStarQualityType
{
    ## 一星
    ONE = 1,
    ## 二星
    TWO = 2,
    ## 三星
    THREE = 3,
    ## 四星
    FOUR = 4,
    ## 五星
    FIVE = 5,
    ## 六星
    SIX = 6,
    ## 七星
    SEVEN = 7,
    ## 八星
    EIGHT = 8,
    ## 九星
    NINE = 9,
    ## 十星
    TEN = 10,
}


enum ItemEClothersTag
{
    ## 防晒
    FANG_SHAI = 1,
    ## 舞者
    WU_ZHE = 2,
}


enum ItemEUseType
{
    ## 手动
    MANUAL = 0,
    ## 自动
    AUTO = 1,
}


enum ItemEClothesHidePartType
{
    ## 胸部
    CHEST = 0,
    ## 手
    HEAD = 1,
    ## 脊柱上
    SPINE_UPPER = 2,
    ## 脊柱下
    SPINE_LOWER = 3,
    ## 臀部
    HIP = 4,
    ## 腿上
    LEG_UPPER = 5,
    ## 腿中
    LEG_MIDDLE = 6,
    ## 腿下
    LEG_LOWER = 7,
}


enum ItemEClothesPropertyType
{
    ## 简约
    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,
}


enum TestDemoEnum
{
    NONE = 0,
    ## aa
    A = 1,
    ## bb
    B = 2,
    ## cc
    C = 4,
    ## dd
    D = 5,
    Any = 6,
}


enum TestDemoFlag
{
    A = 1,
    B = 2,
    C = 4,
    D = 8,
}


enum TestETestUeType
{
    ## 白
    WHITE = 0,
    BLACK = 1,
}


enum TestETestEmptyEnum
{
}


enum TestETestEmptyEnum2
{
    SMALL_THAN_256 = 255,
    X_256 = 256,
    X_257 = 257,
}


enum TestETestQuality
{
    ## 最高品质
    A = 1,
    ## 黑色的
    B = 2,
    ## 蓝色的
    C = 3,
    ## 最差品质
    D = 4,
}


enum TestAccessFlag
{
    WRITE = 1,
    READ = 2,
    TRUNCATE = 4,
    NEW = 8,
    READ_WRITE = WRITE|READ,
}


class Vec2:
    var x: float
    var y: float

    func _init(_json_) -> void:
        self.x = _json_["x"]
        self.y = _json_["y"]


class Vec3:
    var x: float
    var y: float
    var z: float

    func _init(_json_) -> void:
        self.x = _json_["x"]
        self.y = _json_["y"]
        self.z = _json_["z"]


class Vec4:
    var x: float
    var y: float
    var z: float
    var w: float

    func _init(_json_) -> void:
        self.x = _json_["x"]
        self.y = _json_["y"]
        self.z = _json_["z"]
        self.w = _json_["w"]


## 这是个测试excel结构
class TestTestExcelBean1:
    ## 最高品质
    var x1: int
    ## 黑色的
    var x2: String
    ## 蓝色的
    var x3: int
    ## 最差品质
    var x4: float

    func _init(_json_) -> void:
        self.x1 = _json_["x1"]
        self.x2 = _json_["x2"]
        self.x3 = _json_["x3"]
        self.x4 = _json_["x4"]


class AiBlackboard:
    var name: String
    var desc: String
    var parent_name: String
    var keys: Array[AiBlackboardKey]

    func _init(_json_) -> void:
        self.name = _json_["name"]
        self.desc = _json_["desc"]
        self.parent_name = _json_["parent_name"]
        self.keys = []
        for _ele in _json_["keys"]: var _e: AiBlackboardKey; _e = AiBlackboardKey.new(_ele); self.keys.append(_e)


class AiBlackboardKey:
    var name: String
    var desc: String
    var is_static: bool
    var type: int
    var type_class_name: String

    func _init(_json_) -> void:
        self.name = _json_["name"]
        self.desc = _json_["desc"]
        self.is_static = _json_["is_static"]
        self.type = _json_["type"]
        self.type_class_name = _json_["type_class_name"]


class AiBehaviorTree:
    var id: int
    var name: String
    var desc: String
    var blackboard_id: String
    var root: AiComposeNode

    func _init(_json_) -> void:
        self.id = _json_["id"]
        self.name = _json_["name"]
        self.desc = _json_["desc"]
        self.blackboard_id = _json_["blackboard_id"]
        self.root = AiComposeNode.fromJson(_json_["root"])


class AiNode:
    var id: int
    var node_name: String

    static func fromJson(_json_):
        var type = _json_['$type']
        match type:
            "UeSetDefaultFocus": return AiUeSetDefaultFocus.new(_json_)
            "ExecuteTimeStatistic": return AiExecuteTimeStatistic.new(_json_)
            "ChooseTarget": return AiChooseTarget.new(_json_)
            "KeepFaceTarget": return AiKeepFaceTarget.new(_json_)
            "GetOwnerPlayer": return AiGetOwnerPlayer.new(_json_)
            "UpdateDailyBehaviorProps": return AiUpdateDailyBehaviorProps.new(_json_)
            "UeLoop": return AiUeLoop.new(_json_)
            "UeCooldown": return AiUeCooldown.new(_json_)
            "UeTimeLimit": return AiUeTimeLimit.new(_json_)
            "UeBlackboard": return AiUeBlackboard.new(_json_)
            "UeForceSuccess": return AiUeForceSuccess.new(_json_)
            "IsAtLocation": return AiIsAtLocation.new(_json_)
            "DistanceLessThan": return AiDistanceLessThan.new(_json_)
            "Sequence": return AiSequence.new(_json_)
            "Selector": return AiSelector.new(_json_)
            "SimpleParallel": return AiSimpleParallel.new(_json_)
            "UeWait": return AiUeWait.new(_json_)
            "UeWaitBlackboardTime": return AiUeWaitBlackboardTime.new(_json_)
            "MoveToTarget": return AiMoveToTarget.new(_json_)
            "ChooseSkill": return AiChooseSkill.new(_json_)
            "MoveToRandomLocation": return AiMoveToRandomLocation.new(_json_)
            "MoveToLocation": return AiMoveToLocation.new(_json_)
            "DebugPrint": return AiDebugPrint.new(_json_)
            _: assert(false)

    func _init(_json_) -> void:
        self.id = _json_["id"]
        self.node_name = _json_["node_name"]


class AiService extends AiNode:

    static func fromJson(_json_):
        var type = _json_['$type']
        match type:
            "UeSetDefaultFocus": return AiUeSetDefaultFocus.new(_json_)
            "ExecuteTimeStatistic": return AiExecuteTimeStatistic.new(_json_)
            "ChooseTarget": return AiChooseTarget.new(_json_)
            "KeepFaceTarget": return AiKeepFaceTarget.new(_json_)
            "GetOwnerPlayer": return AiGetOwnerPlayer.new(_json_)
            "UpdateDailyBehaviorProps": return AiUpdateDailyBehaviorProps.new(_json_)
            _: assert(false)

    func _init(_json_) -> void:
        super(_json_)
        pass


class AiUeSetDefaultFocus extends AiService:
    var keyboard_key: String

    func _init(_json_) -> void:
        super(_json_)
        self.keyboard_key = _json_["keyboard_key"]


class AiExecuteTimeStatistic extends AiService:

    func _init(_json_) -> void:
        super(_json_)
        pass


class AiChooseTarget extends AiService:
    var result_target_key: String

    func _init(_json_) -> void:
        super(_json_)
        self.result_target_key = _json_["result_target_key"]


class AiKeepFaceTarget extends AiService:
    var target_actor_key: String

    func _init(_json_) -> void:
        super(_json_)
        self.target_actor_key = _json_["target_actor_key"]


class AiGetOwnerPlayer extends AiService:
    var player_actor_key: String

    func _init(_json_) -> void:
        super(_json_)
        self.player_actor_key = _json_["player_actor_key"]


class AiUpdateDailyBehaviorProps extends AiService:
    var satiety_key: String
    var energy_key: String
    var mood_key: String
    var satiety_lower_threshold_key: String
    var satiety_upper_threshold_key: String
    var energy_lower_threshold_key: String
    var energy_upper_threshold_key: String
    var mood_lower_threshold_key: String
    var mood_upper_threshold_key: String

    func _init(_json_) -> void:
        super(_json_)
        self.satiety_key = _json_["satiety_key"]
        self.energy_key = _json_["energy_key"]
        self.mood_key = _json_["mood_key"]
        self.satiety_lower_threshold_key = _json_["satiety_lower_threshold_key"]
        self.satiety_upper_threshold_key = _json_["satiety_upper_threshold_key"]
        self.energy_lower_threshold_key = _json_["energy_lower_threshold_key"]
        self.energy_upper_threshold_key = _json_["energy_upper_threshold_key"]
        self.mood_lower_threshold_key = _json_["mood_lower_threshold_key"]
        self.mood_upper_threshold_key = _json_["mood_upper_threshold_key"]


class AiDecorator extends AiNode:
    var flow_abort_mode: int

    static func fromJson(_json_):
        var type = _json_['$type']
        match type:
            "UeLoop": return AiUeLoop.new(_json_)
            "UeCooldown": return AiUeCooldown.new(_json_)
            "UeTimeLimit": return AiUeTimeLimit.new(_json_)
            "UeBlackboard": return AiUeBlackboard.new(_json_)
            "UeForceSuccess": return AiUeForceSuccess.new(_json_)
            "IsAtLocation": return AiIsAtLocation.new(_json_)
            "DistanceLessThan": return AiDistanceLessThan.new(_json_)
            _: assert(false)

    func _init(_json_) -> void:
        super(_json_)
        self.flow_abort_mode = _json_["flow_abort_mode"]


class AiUeLoop extends AiDecorator:
    var num_loops: int
    var infinite_loop: bool
    var infinite_loop_timeout_time: float

    func _init(_json_) -> void:
        super(_json_)
        self.num_loops = _json_["num_loops"]
        self.infinite_loop = _json_["infinite_loop"]
        self.infinite_loop_timeout_time = _json_["infinite_loop_timeout_time"]


class AiUeCooldown extends AiDecorator:
    var cooldown_time: float

    func _init(_json_) -> void:
        super(_json_)
        self.cooldown_time = _json_["cooldown_time"]


class AiUeTimeLimit extends AiDecorator:
    var limit_time: float

    func _init(_json_) -> void:
        super(_json_)
        self.limit_time = _json_["limit_time"]


class AiUeBlackboard extends AiDecorator:
    var notify_observer: int
    var blackboard_key: String
    var key_query: AiKeyQueryOperator

    func _init(_json_) -> void:
        super(_json_)
        self.notify_observer = _json_["notify_observer"]
        self.blackboard_key = _json_["blackboard_key"]
        self.key_query = AiKeyQueryOperator.fromJson(_json_["key_query"])


class AiKeyQueryOperator:

    static func fromJson(_json_):
        var type = _json_['$type']
        match type:
            "IsSet": return AiIsSet.new(_json_)
            "IsNotSet": return AiIsNotSet.new(_json_)
            "BinaryOperator": return AiBinaryOperator.new(_json_)
            _: assert(false)

    func _init(_json_) -> void:
        pass


class AiIsSet extends AiKeyQueryOperator:

    func _init(_json_) -> void:
        super(_json_)
        pass


class AiIsNotSet extends AiKeyQueryOperator:

    func _init(_json_) -> void:
        super(_json_)
        pass


class AiBinaryOperator extends AiKeyQueryOperator:
    var oper: int
    var data: AiKeyData

    func _init(_json_) -> void:
        super(_json_)
        self.oper = _json_["oper"]
        self.data = AiKeyData.fromJson(_json_["data"])


class AiKeyData:

    static func fromJson(_json_):
        var type = _json_['$type']
        match type:
            "FloatKeyData": return AiFloatKeyData.new(_json_)
            "IntKeyData": return AiIntKeyData.new(_json_)
            "StringKeyData": return AiStringKeyData.new(_json_)
            "BlackboardKeyData": return AiBlackboardKeyData.new(_json_)
            _: assert(false)

    func _init(_json_) -> void:
        pass


class AiFloatKeyData extends AiKeyData:
    var value: float

    func _init(_json_) -> void:
        super(_json_)
        self.value = _json_["value"]


class AiIntKeyData extends AiKeyData:
    var value: int

    func _init(_json_) -> void:
        super(_json_)
        self.value = _json_["value"]


class AiStringKeyData extends AiKeyData:
    var value: String

    func _init(_json_) -> void:
        super(_json_)
        self.value = _json_["value"]


class AiBlackboardKeyData extends AiKeyData:
    var value: String

    func _init(_json_) -> void:
        super(_json_)
        self.value = _json_["value"]


class AiUeForceSuccess extends AiDecorator:

    func _init(_json_) -> void:
        super(_json_)
        pass


class AiIsAtLocation extends AiDecorator:
    var acceptable_radius: float
    var keyboard_key: String
    var inverse_condition: bool

    func _init(_json_) -> void:
        super(_json_)
        self.acceptable_radius = _json_["acceptable_radius"]
        self.keyboard_key = _json_["keyboard_key"]
        self.inverse_condition = _json_["inverse_condition"]


class AiDistanceLessThan extends AiDecorator:
    var actor1_key: String
    var actor2_key: String
    var distance: float
    var reverse_result: bool

    func _init(_json_) -> void:
        super(_json_)
        self.actor1_key = _json_["actor1_key"]
        self.actor2_key = _json_["actor2_key"]
        self.distance = _json_["distance"]
        self.reverse_result = _json_["reverse_result"]


class AiFlowNode extends AiNode:
    var decorators: Array[AiDecorator]
    var services: Array[AiService]

    static func fromJson(_json_):
        var type = _json_['$type']
        match type:
            "Sequence": return AiSequence.new(_json_)
            "Selector": return AiSelector.new(_json_)
            "SimpleParallel": return AiSimpleParallel.new(_json_)
            "UeWait": return AiUeWait.new(_json_)
            "UeWaitBlackboardTime": return AiUeWaitBlackboardTime.new(_json_)
            "MoveToTarget": return AiMoveToTarget.new(_json_)
            "ChooseSkill": return AiChooseSkill.new(_json_)
            "MoveToRandomLocation": return AiMoveToRandomLocation.new(_json_)
            "MoveToLocation": return AiMoveToLocation.new(_json_)
            "DebugPrint": return AiDebugPrint.new(_json_)
            _: assert(false)

    func _init(_json_) -> void:
        super(_json_)
        self.decorators = []
        for _ele in _json_["decorators"]: var _e: AiDecorator; _e = AiDecorator.fromJson(_ele); self.decorators.append(_e)
        self.services = []
        for _ele in _json_["services"]: var _e: AiService; _e = AiService.fromJson(_ele); self.services.append(_e)


class AiComposeNode extends AiFlowNode:

    static func fromJson(_json_):
        var type = _json_['$type']
        match type:
            "Sequence": return AiSequence.new(_json_)
            "Selector": return AiSelector.new(_json_)
            "SimpleParallel": return AiSimpleParallel.new(_json_)
            _: assert(false)

    func _init(_json_) -> void:
        super(_json_)
        pass


class AiSequence extends AiComposeNode:
    var children: Array[AiFlowNode]

    func _init(_json_) -> void:
        super(_json_)
        self.children = []
        for _ele in _json_["children"]: var _e: AiFlowNode; _e = AiFlowNode.fromJson(_ele); self.children.append(_e)


class AiSelector extends AiComposeNode:
    var children: Array[AiFlowNode]

    func _init(_json_) -> void:
        super(_json_)
        self.children = []
        for _ele in _json_["children"]: var _e: AiFlowNode; _e = AiFlowNode.fromJson(_ele); self.children.append(_e)


class AiSimpleParallel extends AiComposeNode:
    var finish_mode: int
    var main_task: AiTask
    var background_node: AiFlowNode

    func _init(_json_) -> void:
        super(_json_)
        self.finish_mode = _json_["finish_mode"]
        self.main_task = AiTask.fromJson(_json_["main_task"])
        self.background_node = AiFlowNode.fromJson(_json_["background_node"])


class AiTask extends AiFlowNode:
    var ignore_restart_self: bool

    static func fromJson(_json_):
        var type = _json_['$type']
        match type:
            "UeWait": return AiUeWait.new(_json_)
            "UeWaitBlackboardTime": return AiUeWaitBlackboardTime.new(_json_)
            "MoveToTarget": return AiMoveToTarget.new(_json_)
            "ChooseSkill": return AiChooseSkill.new(_json_)
            "MoveToRandomLocation": return AiMoveToRandomLocation.new(_json_)
            "MoveToLocation": return AiMoveToLocation.new(_json_)
            "DebugPrint": return AiDebugPrint.new(_json_)
            _: assert(false)

    func _init(_json_) -> void:
        super(_json_)
        self.ignore_restart_self = _json_["ignore_restart_self"]


class AiUeWait extends AiTask:
    var wait_time: float
    var random_deviation: float

    func _init(_json_) -> void:
        super(_json_)
        self.wait_time = _json_["wait_time"]
        self.random_deviation = _json_["random_deviation"]


class AiUeWaitBlackboardTime extends AiTask:
    var blackboard_key: String

    func _init(_json_) -> void:
        super(_json_)
        self.blackboard_key = _json_["blackboard_key"]


class AiMoveToTarget extends AiTask:
    var target_actor_key: String
    var acceptable_radius: float

    func _init(_json_) -> void:
        super(_json_)
        self.target_actor_key = _json_["target_actor_key"]
        self.acceptable_radius = _json_["acceptable_radius"]


class AiChooseSkill extends AiTask:
    var target_actor_key: String
    var result_skill_id_key: String

    func _init(_json_) -> void:
        super(_json_)
        self.target_actor_key = _json_["target_actor_key"]
        self.result_skill_id_key = _json_["result_skill_id_key"]


class AiMoveToRandomLocation extends AiTask:
    var origin_position_key: String
    var radius: float

    func _init(_json_) -> void:
        super(_json_)
        self.origin_position_key = _json_["origin_position_key"]
        self.radius = _json_["radius"]


class AiMoveToLocation extends AiTask:
    var acceptable_radius: float

    func _init(_json_) -> void:
        super(_json_)
        self.acceptable_radius = _json_["acceptable_radius"]


class AiDebugPrint extends AiTask:
    var text: String

    func _init(_json_) -> void:
        super(_json_)
        self.text = _json_["text"]


class CommonGlobalConfig:
    ## 背包容量
    var x1: int
    var x2: int
    var x3: int
    var x4: int
    var x5: int
    var x6: int
    var x7: Array[int]

    func _init(_json_) -> void:
        self.x1 = _json_["x1"]
        self.x2 = _json_["x2"]
        self.x3 = _json_["x3"]
        self.x4 = _json_["x4"]
        self.x5 = _json_["x5"]
        self.x6 = _json_["x6"]
        self.x7 = []
        for _ele in _json_["x7"]: var _e: int; _e = _ele; self.x7.append(_e)


## 道具
class ItemItem:
    ## 道具id
    var id: int
    var name: String
    var major_type: int
    var minor_type: int
    var max_pile_num: int
    var quality: int
    var icon: String
    var icon_backgroud: String
    var icon_mask: String
    var desc: String
    var show_order: int

    func _init(_json_) -> void:
        self.id = _json_["id"]
        self.name = _json_["name"]
        self.major_type = _json_["major_type"]
        self.minor_type = _json_["minor_type"]
        self.max_pile_num = _json_["max_pile_num"]
        self.quality = _json_["quality"]
        self.icon = _json_["icon"]
        self.icon_backgroud = _json_["icon_backgroud"]
        self.icon_mask = _json_["icon_mask"]
        self.desc = _json_["desc"]
        self.show_order = _json_["show_order"]


class L10nL10NDemo:
    var id: int
    var text: String

    func _init(_json_) -> void:
        self.id = _json_["id"]
        self.text = _json_["text"]


class L10nPatchDemo:
    var id: int
    var value: int

    func _init(_json_) -> void:
        self.id = _json_["id"]
        self.value = _json_["value"]


class TagTestTag:
    var id: int
    var value: String

    func _init(_json_) -> void:
        self.id = _json_["id"]
        self.value = _json_["value"]


class TestDemoType2:
    var x4: int
    var x1: bool
    var x2: int
    var x3: int
    var x5: int
    var x6: float
    var x7: float
    var x8_0: int
    var x8: int
    var x9: int
    var x10: String
    var x12: TestDemoType1
    var x13: int
    var x14: TestDemoDynamic
    var s1: String
    var t1: int
    var k1: Array[int]
    var k2: Array[int]
    var k5: Array[int]
    var k8: Dictionary
    var k9: Array[TestDemoE2]
    var k15: Array[TestDemoDynamic]

    func _init(_json_) -> void:
        self.x4 = _json_["x4"]
        self.x1 = _json_["x1"]
        self.x2 = _json_["x2"]
        self.x3 = _json_["x3"]
        self.x5 = _json_["x5"]
        self.x6 = _json_["x6"]
        self.x7 = _json_["x7"]
        self.x8_0 = _json_["x8_0"]
        self.x8 = _json_["x8"]
        self.x9 = _json_["x9"]
        self.x10 = _json_["x10"]
        self.x12 = TestDemoType1.new(_json_["x12"])
        self.x13 = _json_["x13"]
        self.x14 = TestDemoDynamic.fromJson(_json_["x14"])
        self.s1 = _json_["s1"]
        self.t1 = _json_["t1"]
        self.k1 = []
        for _ele in _json_["k1"]: var _e: int; _e = _ele; self.k1.append(_e)
        self.k2 = []
        for _ele in _json_["k2"]: var _e: int; _e = _ele; self.k2.append(_e)
        self.k5 = []
        for _ele in _json_["k5"]: var _e: int; _e = _ele; self.k5.append(_e)
        self.k8 = {}
        for _e in _json_["k8"]: var _k: int; _k = _e[0]; var _v: int; _v = _e[1]; self.k8[_k] = _v
        self.k9 = []
        for _ele in _json_["k9"]: var _e: TestDemoE2; _e = TestDemoE2.new(_ele); self.k9.append(_e)
        self.k15 = []
        for _ele in _json_["k15"]: var _e: TestDemoDynamic; _e = TestDemoDynamic.fromJson(_ele); self.k15.append(_e)


class TestDemoType1:
    var x1: int

    func _init(_json_) -> void:
        self.x1 = _json_["x1"]


class TestDemoDynamic:
    var x1: int

    static func fromJson(_json_):
        var type = _json_['$type']
        match type:
            "DemoD2": return TestDemoD2.new(_json_)
            "DemoE1": return TestDemoE1.new(_json_)
            "test.login.RoleInfo": return Test_loginRoleInfo.new(_json_)
            "DemoD5": return TestDemoD5.new(_json_)
            _: assert(false)

    func _init(_json_) -> void:
        self.x1 = _json_["x1"]


class TestDemoD2 extends TestDemoDynamic:
    var x2: int

    func _init(_json_) -> void:
        super(_json_)
        self.x2 = _json_["x2"]


class TestDemoD3 extends TestDemoDynamic:
    var x3: int

    static func fromJson(_json_):
        var type = _json_['$type']
        match type:
            "DemoE1": return TestDemoE1.new(_json_)
            "test.login.RoleInfo": return Test_loginRoleInfo.new(_json_)
            _: assert(false)

    func _init(_json_) -> void:
        super(_json_)
        self.x3 = _json_["x3"]


class TestDemoE1 extends TestDemoD3:
    var x4: int

    func _init(_json_) -> void:
        super(_json_)
        self.x4 = _json_["x4"]


class Test_loginRoleInfo extends TestDemoD3:
    var role_id: int

    func _init(_json_) -> void:
        super(_json_)
        self.role_id = _json_["role_id"]


class TestDemoD5 extends TestDemoDynamic:
    var time: TestDateTimeRange

    func _init(_json_) -> void:
        super(_json_)
        self.time = TestDateTimeRange.new(_json_["time"])


class TestDateTimeRange:
    var start_time: int
    var end_time: int

    func _init(_json_) -> void:
        self.start_time = _json_["start_time"]
        self.end_time = _json_["end_time"]


class TestDemoE2:
    var y1: int
    var y2: bool

    func _init(_json_) -> void:
        if _json_.get('y1') != null: self.y1 = _json_["y1"]
        self.y2 = _json_["y2"]


class TestDemoSingletonType:
    var id: int
    var name: String
    var date: TestDemoDynamic

    func _init(_json_) -> void:
        self.id = _json_["id"]
        self.name = _json_["name"]
        self.date = TestDemoDynamic.fromJson(_json_["date"])


class TestNotIndexList:
    var x: int
    var y: int

    func _init(_json_) -> void:
        self.x = _json_["x"]
        self.y = _json_["y"]


class TestMultiUnionIndexList:
    var id1: int
    var id2: int
    var id3: String
    var num: int
    var desc: String

    func _init(_json_) -> void:
        self.id1 = _json_["id1"]
        self.id2 = _json_["id2"]
        self.id3 = _json_["id3"]
        self.num = _json_["num"]
        self.desc = _json_["desc"]


class TestMultiIndexList:
    var id1: int
    var id2: int
    var id3: String
    var num: int
    var desc: String

    func _init(_json_) -> void:
        self.id1 = _json_["id1"]
        self.id2 = _json_["id2"]
        self.id3 = _json_["id3"]
        self.num = _json_["num"]
        self.desc = _json_["desc"]


class TestMultiRowRecord:
    var id: int
    var name: String
    var one_rows: Array[TestMultiRowType1]
    var multi_rows1: Array[TestMultiRowType1]
    var multi_rows2: Array[TestMultiRowType1]
    var multi_rows4: Dictionary
    var multi_rows5: Array[TestMultiRowType3]
    var multi_rows6: Dictionary
    var multi_rows7: Dictionary

    func _init(_json_) -> void:
        self.id = _json_["id"]
        self.name = _json_["name"]
        self.one_rows = []
        for _ele in _json_["one_rows"]: var _e: TestMultiRowType1; _e = TestMultiRowType1.new(_ele); self.one_rows.append(_e)
        self.multi_rows1 = []
        for _ele in _json_["multi_rows1"]: var _e: TestMultiRowType1; _e = TestMultiRowType1.new(_ele); self.multi_rows1.append(_e)
        self.multi_rows2 = []
        for _ele in _json_["multi_rows2"]: var _e: TestMultiRowType1; _e = TestMultiRowType1.new(_ele); self.multi_rows2.append(_e)
        self.multi_rows4 = {}
        for _e in _json_["multi_rows4"]: var _k: int; _k = _e[0]; var _v: TestMultiRowType2; _v = TestMultiRowType2.new(_e[1]); self.multi_rows4[_k] = _v
        self.multi_rows5 = []
        for _ele in _json_["multi_rows5"]: var _e: TestMultiRowType3; _e = TestMultiRowType3.new(_ele); self.multi_rows5.append(_e)
        self.multi_rows6 = {}
        for _e in _json_["multi_rows6"]: var _k: int; _k = _e[0]; var _v: TestMultiRowType2; _v = TestMultiRowType2.new(_e[1]); self.multi_rows6[_k] = _v
        self.multi_rows7 = {}
        for _e in _json_["multi_rows7"]: var _k: int; _k = _e[0]; var _v: int; _v = _e[1]; self.multi_rows7[_k] = _v


class TestMultiRowType1:
    var id: int
    var x: int

    func _init(_json_) -> void:
        self.id = _json_["id"]
        self.x = _json_["x"]


class TestMultiRowType2:
    var id: int
    var x: int
    var y: float

    func _init(_json_) -> void:
        self.id = _json_["id"]
        self.x = _json_["x"]
        self.y = _json_["y"]


class TestMultiRowType3:
    var id: int
    var items: Array[TestMultiRowType1]

    func _init(_json_) -> void:
        self.id = _json_["id"]
        self.items = []
        for _ele in _json_["items"]: var _e: TestMultiRowType1; _e = TestMultiRowType1.new(_ele); self.items.append(_e)


class TestTestMultiColumn:
    var id: int
    var a: TestFoo
    var b: TestFoo
    var c: TestFoo

    func _init(_json_) -> void:
        self.id = _json_["id"]
        self.a = TestFoo.new(_json_["a"])
        self.b = TestFoo.new(_json_["b"])
        self.c = TestFoo.new(_json_["c"])


class TestFoo:
    var y1: int
    var y2: int
    var y3: int

    func _init(_json_) -> void:
        self.y1 = _json_["y1"]
        self.y2 = _json_["y2"]
        self.y3 = _json_["y3"]


class TestMultiRowTitle:
    var id: int
    var name: String
    var x1: TestH1
    var x2_0: TestH2
    var x2: Array[TestH2]
    var x3: Array[TestH2]
    var x4: Array[TestH2]

    func _init(_json_) -> void:
        self.id = _json_["id"]
        self.name = _json_["name"]
        self.x1 = TestH1.new(_json_["x1"])
        if _json_.get('x2_0') != null: self.x2_0 = TestH2.new(_json_["x2_0"])
        self.x2 = []
        for _ele in _json_["x2"]: var _e: TestH2; _e = TestH2.new(_ele); self.x2.append(_e)
        self.x3 = []
        for _ele in _json_["x3"]: var _e: TestH2; _e = TestH2.new(_ele); self.x3.append(_e)
        self.x4 = []
        for _ele in _json_["x4"]: var _e: TestH2; _e = TestH2.new(_ele); self.x4.append(_e)


class TestH1:
    var y2: TestH2
    var y3: int

    func _init(_json_) -> void:
        self.y2 = TestH2.new(_json_["y2"])
        self.y3 = _json_["y3"]


class TestH2:
    var z2: int
    var z3: int

    func _init(_json_) -> void:
        self.z2 = _json_["z2"]
        self.z3 = _json_["z3"]


class TestTestNull:
    var id: int
    var x1: int
    var x2: int
    var x3: TestDemoType1
    var x4: TestDemoDynamic
    var s1: String
    var s2: String

    func _init(_json_) -> void:
        self.id = _json_["id"]
        if _json_.get('x1') != null: self.x1 = _json_["x1"]
        if _json_.get('x2') != null: self.x2 = _json_["x2"]
        if _json_.get('x3') != null: self.x3 = TestDemoType1.new(_json_["x3"])
        if _json_.get('x4') != null: self.x4 = TestDemoDynamic.fromJson(_json_["x4"])
        if _json_.get('s1') != null: self.s1 = _json_["s1"]
        if _json_.get('s2') != null: self.s2 = _json_["s2"]


class TestDemoPrimitiveTypesTable:
    var x1: bool
    var x2: int
    var x3: int
    var x4: int
    var x5: int
    var x6: float
    var x7: float
    var s1: String
    var s2: String
    var v2: Vec2
    var v3: Vec3
    var v4: Vec4
    var t1: int

    func _init(_json_) -> void:
        self.x1 = _json_["x1"]
        self.x2 = _json_["x2"]
        self.x3 = _json_["x3"]
        self.x4 = _json_["x4"]
        self.x5 = _json_["x5"]
        self.x6 = _json_["x6"]
        self.x7 = _json_["x7"]
        self.s1 = _json_["s1"]
        self.s2 = _json_["s2"]
        self.v2 = Vec2.new(_json_["v2"])
        self.v3 = Vec3.new(_json_["v3"])
        self.v4 = Vec4.new(_json_["v4"])
        self.t1 = _json_["t1"]


class TestTestString:
    var id: String
    var s1: String
    var s2: String
    var cs1: TestCompactString
    var cs2: TestCompactString

    func _init(_json_) -> void:
        self.id = _json_["id"]
        self.s1 = _json_["s1"]
        self.s2 = _json_["s2"]
        self.cs1 = TestCompactString.new(_json_["cs1"])
        self.cs2 = TestCompactString.new(_json_["cs2"])


class TestCompactString:
    var id: int
    var s2: String
    var s3: String

    func _init(_json_) -> void:
        self.id = _json_["id"]
        self.s2 = _json_["s2"]
        self.s3 = _json_["s3"]


class TestDemoGroup:
    var id: int
    var x1: int
    var x2: int
    var x3: int
    var x4: int
    var x5: TestInnerGroup

    func _init(_json_) -> void:
        self.id = _json_["id"]
        self.x1 = _json_["x1"]
        self.x2 = _json_["x2"]
        self.x3 = _json_["x3"]
        self.x4 = _json_["x4"]
        self.x5 = TestInnerGroup.new(_json_["x5"])


class TestInnerGroup:
    var y1: int
    var y2: int
    var y3: int
    var y4: int

    func _init(_json_) -> void:
        self.y1 = _json_["y1"]
        self.y2 = _json_["y2"]
        self.y3 = _json_["y3"]
        self.y4 = _json_["y4"]


class TestTestGlobal:
    var unlock_equip: int
    var unlock_hero: int

    func _init(_json_) -> void:
        self.unlock_equip = _json_["unlock_equip"]
        self.unlock_hero = _json_["unlock_hero"]


class TestTestBeRef:
    var id: int
    var count: int

    func _init(_json_) -> void:
        self.id = _json_["id"]
        self.count = _json_["count"]


class TestTestRef:
    var id: int
    var x1: int
    var x1_2: int
    var x2: int
    var x3: int
    var x4: int
    var a1: Array[int]
    var a2: Array[int]
    var b1: Array[int]
    var b2: Array[int]
    var c1: Array[int]
    var c2: Array[int]
    var d1: Dictionary
    var d2: Dictionary
    var e1: int
    var e2: int
    var e3: String
    var f1: int
    var f2: int
    var f3: String
    var s1: TestRefDynamicBase

    func _init(_json_) -> void:
        self.id = _json_["id"]
        self.x1 = _json_["x1"]
        self.x1_2 = _json_["x1_2"]
        self.x2 = _json_["x2"]
        self.x3 = _json_["x3"]
        self.x4 = _json_["x4"]
        self.a1 = []
        for _ele in _json_["a1"]: var _e: int; _e = _ele; self.a1.append(_e)
        self.a2 = []
        for _ele in _json_["a2"]: var _e: int; _e = _ele; self.a2.append(_e)
        self.b1 = []
        for _ele in _json_["b1"]: var _e: int; _e = _ele; self.b1.append(_e)
        self.b2 = []
        for _ele in _json_["b2"]: var _e: int; _e = _ele; self.b2.append(_e)
        self.c1 = []
        for _ele in _json_["c1"]: var _e: int; _e = _ele; self.c1.append(_e)
        self.c2 = []
        for _ele in _json_["c2"]: var _e: int; _e = _ele; self.c2.append(_e)
        self.d1 = {}
        for _e in _json_["d1"]: var _k: int; _k = _e[0]; var _v: int; _v = _e[1]; self.d1[_k] = _v
        self.d2 = {}
        for _e in _json_["d2"]: var _k: int; _k = _e[0]; var _v: int; _v = _e[1]; self.d2[_k] = _v
        self.e1 = _json_["e1"]
        self.e2 = _json_["e2"]
        self.e3 = _json_["e3"]
        self.f1 = _json_["f1"]
        self.f2 = _json_["f2"]
        self.f3 = _json_["f3"]
        self.s1 = TestRefDynamicBase.fromJson(_json_["s1"])


class TestRefDynamicBase:
    var x: int

    static func fromJson(_json_):
        var type = _json_['$type']
        match type:
            "RefBean": return TestRefBean.new(_json_)
            _: assert(false)

    func _init(_json_) -> void:
        self.x = _json_["x"]


class TestRefBean extends TestRefDynamicBase:
    var arr: Array[int]

    func _init(_json_) -> void:
        super(_json_)
        self.arr = []
        for _ele in _json_["arr"]: var _e: int; _e = _ele; self.arr.append(_e)


class TestTestSize:
    var id: int
    var x1: Array[int]
    var x2: Array[int]
    var x3: Array[int]
    var x4: Dictionary

    func _init(_json_) -> void:
        self.id = _json_["id"]
        self.x1 = []
        for _ele in _json_["x1"]: var _e: int; _e = _ele; self.x1.append(_e)
        self.x2 = []
        for _ele in _json_["x2"]: var _e: int; _e = _ele; self.x2.append(_e)
        self.x3 = []
        for _ele in _json_["x3"]: var _e: int; _e = _ele; self.x3.append(_e)
        self.x4 = {}
        for _e in _json_["x4"]: var _k: int; _k = _e[0]; var _v: int; _v = _e[1]; self.x4[_k] = _v


class TestTestSet:
    var id: int
    var x0: String
    var x1: Array[int]
    var x2: Array[int]
    var x3: Array[String]
    var x4: Array[int]

    func _init(_json_) -> void:
        self.id = _json_["id"]
        self.x0 = _json_["x0"]
        self.x1 = []
        for _ele in _json_["x1"]: var _e: int; _e = _ele; self.x1.append(_e)
        self.x2 = []
        for _ele in _json_["x2"]: var _e: int; _e = _ele; self.x2.append(_e)
        self.x3 = []
        for _ele in _json_["x3"]: var _e: String; _e = _ele; self.x3.append(_e)
        self.x4 = []
        for _ele in _json_["x4"]: var _e: int; _e = _ele; self.x4.append(_e)


class TestDetectEncoding:
    var id: int
    var name: String

    func _init(_json_) -> void:
        self.id = _json_["id"]
        self.name = _json_["name"]


class TestItemBase:
    var id: int
    var name: String
    var desc: String

    static func fromJson(_json_):
        var type = _json_['$type']
        match type:
            "Item": return TestItem.new(_json_)
            "Equipment": return TestEquipment.new(_json_)
            "Decorator": return TestDecorator.new(_json_)
            _: assert(false)

    func _init(_json_) -> void:
        self.id = _json_["id"]
        self.name = _json_["name"]
        self.desc = _json_["desc"]


class TestItem extends TestItemBase:
    var num: int
    var price: int

    func _init(_json_) -> void:
        super(_json_)
        self.num = _json_["num"]
        self.price = _json_["price"]


class TestEquipment extends TestItemBase:
    var attr: int
    var value: int

    func _init(_json_) -> void:
        super(_json_)
        self.attr = _json_["attr"]
        self.value = _json_["value"]


class TestDecorator extends TestItemBase:
    var duration: int

    func _init(_json_) -> void:
        super(_json_)
        self.duration = _json_["duration"]


class TestTestIndex:
    var id: int
    var eles: Array[TestDemoType1]

    func _init(_json_) -> void:
        self.id = _json_["id"]
        self.eles = []
        for _ele in _json_["eles"]: var _e: TestDemoType1; _e = TestDemoType1.new(_ele); self.eles.append(_e)


class TestTestMap:
    var id: int
    var x1: Dictionary
    var x2: Dictionary
    var x3: Dictionary
    var x4: Dictionary

    func _init(_json_) -> void:
        self.id = _json_["id"]
        self.x1 = {}
        for _e in _json_["x1"]: var _k: int; _k = _e[0]; var _v: int; _v = _e[1]; self.x1[_k] = _v
        self.x2 = {}
        for _e in _json_["x2"]: var _k: int; _k = _e[0]; var _v: int; _v = _e[1]; self.x2[_k] = _v
        self.x3 = {}
        for _e in _json_["x3"]: var _k: String; _k = _e[0]; var _v: int; _v = _e[1]; self.x3[_k] = _v
        self.x4 = {}
        for _e in _json_["x4"]: var _k: int; _k = _e[0]; var _v: int; _v = _e[1]; self.x4[_k] = _v


class TestExcelFromJson:
    var x4: int
    var x1: bool
    var x5: int
    var x6: float
    var s1: String
    var s2: String
    var t1: int
    var x12: TestDemoType1
    var x13: int
    var x14: TestDemoDynamic
    var k1: Array[int]
    var k8: Dictionary
    var k9: Array[TestDemoE2]
    var k15: Array[TestDemoDynamic]

    func _init(_json_) -> void:
        self.x4 = _json_["x4"]
        self.x1 = _json_["x1"]
        self.x5 = _json_["x5"]
        self.x6 = _json_["x6"]
        self.s1 = _json_["s1"]
        self.s2 = _json_["s2"]
        self.t1 = _json_["t1"]
        self.x12 = TestDemoType1.new(_json_["x12"])
        self.x13 = _json_["x13"]
        self.x14 = TestDemoDynamic.fromJson(_json_["x14"])
        self.k1 = []
        for _ele in _json_["k1"]: var _e: int; _e = _ele; self.k1.append(_e)
        self.k8 = {}
        for _e in _json_["k8"]: var _k: int; _k = _e[0]; var _v: int; _v = _e[1]; self.k8[_k] = _v
        self.k9 = []
        for _ele in _json_["k9"]: var _e: TestDemoE2; _e = TestDemoE2.new(_ele); self.k9.append(_e)
        self.k15 = []
        for _ele in _json_["k15"]: var _e: TestDemoDynamic; _e = TestDemoDynamic.fromJson(_ele); self.k15.append(_e)


class TestCompositeJsonTable1:
    var id: int
    var x: String

    func _init(_json_) -> void:
        self.id = _json_["id"]
        self.x = _json_["x"]


class TestCompositeJsonTable2:
    var id: int
    var y: int

    func _init(_json_) -> void:
        self.id = _json_["id"]
        self.y = _json_["y"]


class TestCompositeJsonTable3:
    var a: int
    var b: int

    func _init(_json_) -> void:
        self.a = _json_["a"]
        self.b = _json_["b"]


class TestExcelFromJsonMultiRow:
    var id: int
    var x: int
    var items: Array[TestTestRow]

    func _init(_json_) -> void:
        self.id = _json_["id"]
        self.x = _json_["x"]
        self.items = []
        for _ele in _json_["items"]: var _e: TestTestRow; _e = TestTestRow.new(_ele); self.items.append(_e)


class TestTestRow:
    var x: int
    var y: bool
    var z: String
    var a: TestTest3
    var b: Array[int]

    func _init(_json_) -> void:
        self.x = _json_["x"]
        self.y = _json_["y"]
        self.z = _json_["z"]
        self.a = TestTest3.new(_json_["a"])
        self.b = []
        for _ele in _json_["b"]: var _e: int; _e = _ele; self.b.append(_e)


class TestTest3:
    var x: int
    var y: int

    func _init(_json_) -> void:
        self.x = _json_["x"]
        self.y = _json_["y"]


class TestTestScriptableObject:
    var id: int
    var desc: String
    var rate: float
    var num: int
    var v2: Vec2
    var v3: Vec3
    var v4: Vec4

    func _init(_json_) -> void:
        self.id = _json_["id"]
        self.desc = _json_["desc"]
        self.rate = _json_["rate"]
        self.num = _json_["num"]
        self.v2 = Vec2.new(_json_["v2"])
        self.v3 = Vec3.new(_json_["v3"])
        self.v4 = Vec4.new(_json_["v4"])


class TestPath:
    var id: int
    var res: String

    func _init(_json_) -> void:
        self.id = _json_["id"]
        self.res = _json_["res"]


class TestTestMapper:
    var id: int
    var audio_type: int
    var v2: Vec2

    func _init(_json_) -> void:
        self.id = _json_["id"]
        self.audio_type = _json_["audio_type"]
        self.v2 = Vec2.new(_json_["v2"])


class DefineFromExcel2:
    ## 这是id
    var id: int
    ## 字段x1
    var x1: bool
    var x5: int
    var x6: float
    var x8: int
    var x10: String
    var x13: int
    var x13_2: int
    var x14: TestDemoDynamic
    var x15: TestShape
    var v2: Vec2
    var t1: int
    var k1: Array[int]
    var k2: Array[int]
    var k8: Dictionary
    var k9: Array[TestDemoE2]
    var k10: Array[Vec3]
    var k11: Array[Vec4]

    func _init(_json_) -> void:
        self.id = _json_["id"]
        self.x1 = _json_["x1"]
        self.x5 = _json_["x5"]
        self.x6 = _json_["x6"]
        self.x8 = _json_["x8"]
        self.x10 = _json_["x10"]
        self.x13 = _json_["x13"]
        self.x13_2 = _json_["x13_2"]
        self.x14 = TestDemoDynamic.fromJson(_json_["x14"])
        self.x15 = TestShape.fromJson(_json_["x15"])
        self.v2 = Vec2.new(_json_["v2"])
        self.t1 = _json_["t1"]
        self.k1 = []
        for _ele in _json_["k1"]: var _e: int; _e = _ele; self.k1.append(_e)
        self.k2 = []
        for _ele in _json_["k2"]: var _e: int; _e = _ele; self.k2.append(_e)
        self.k8 = {}
        for _e in _json_["k8"]: var _k: int; _k = _e[0]; var _v: int; _v = _e[1]; self.k8[_k] = _v
        self.k9 = []
        for _ele in _json_["k9"]: var _e: TestDemoE2; _e = TestDemoE2.new(_ele); self.k9.append(_e)
        self.k10 = []
        for _ele in _json_["k10"]: var _e: Vec3; _e = Vec3.new(_ele); self.k10.append(_e)
        self.k11 = []
        for _ele in _json_["k11"]: var _e: Vec4; _e = Vec4.new(_ele); self.k11.append(_e)


class TestShape:

    static func fromJson(_json_):
        var type = _json_['$type']
        match type:
            "Circle": return TestCircle.new(_json_)
            "test2.Rectangle": return Test2Rectangle.new(_json_)
            _: assert(false)

    func _init(_json_) -> void:
        pass


## 圆
class TestCircle extends TestShape:
    ## 半径
    var radius: float

    func _init(_json_) -> void:
        super(_json_)
        self.radius = _json_["radius"]


## 矩形
class Test2Rectangle extends TestShape:
    ## 宽度
    var width: float
    ## 高度
    var height: float

    func _init(_json_) -> void:
        super(_json_)
        self.width = _json_["width"]
        self.height = _json_["height"]


class AiTbBlackboard:
    var _data_list: Array[AiBlackboard]
    var _data_map: Dictionary
    
    func _init(_json_) -> void:
        for _json2_ in _json_:
            var _v: AiBlackboard
            _v = AiBlackboard.new(_json2_)
            self._data_list.append(_v)
            self._data_map[_v.name] = _v

    func get_data_list() -> Array[AiBlackboard]:
        return self._data_list

    func get_data_map() -> Dictionary:
        return self._data_map

    func get_item(key) -> AiBlackboard:
        return self._data_map.get(key)


class AiTbBehaviorTree:
    var _data_list: Array[AiBehaviorTree]
    var _data_map: Dictionary
    
    func _init(_json_) -> void:
        for _json2_ in _json_:
            var _v: AiBehaviorTree
            _v = AiBehaviorTree.new(_json2_)
            self._data_list.append(_v)
            self._data_map[_v.id] = _v

    func get_data_list() -> Array[AiBehaviorTree]:
        return self._data_list

    func get_data_map() -> Dictionary:
        return self._data_map

    func get_item(key) -> AiBehaviorTree:
        return self._data_map.get(key)


class CommonTbGlobalConfig:
    var _data:CommonGlobalConfig
    
    func _init(_json_) -> void:
        assert(len(_json_) == 1, "table mode = one, but size != 1")
        self._data = CommonGlobalConfig.new(_json_[0])

    func get_data() -> CommonGlobalConfig:
        return self._data

    ## 背包容量
    var x1: int:
        get: return self._data.x1

    var x2: int:
        get: return self._data.x2

    var x3: int:
        get: return self._data.x3

    var x4: int:
        get: return self._data.x4

    var x5: int:
        get: return self._data.x5

    var x6: int:
        get: return self._data.x6

    var x7: Array[int]:
        get: return self._data.x7


## 道具表
class ItemTbItem:
    var _data_list: Array[ItemItem]
    var _data_map: Dictionary
    
    func _init(_json_) -> void:
        for _json2_ in _json_:
            var _v: ItemItem
            _v = ItemItem.new(_json2_)
            self._data_list.append(_v)
            self._data_map[_v.id] = _v

    func get_data_list() -> Array[ItemItem]:
        return self._data_list

    func get_data_map() -> Dictionary:
        return self._data_map

    func get_item(key) -> ItemItem:
        return self._data_map.get(key)


class L10nTbL10NDemo:
    var _data_list: Array[L10nL10NDemo]
    var _data_map: Dictionary
    
    func _init(_json_) -> void:
        for _json2_ in _json_:
            var _v: L10nL10NDemo
            _v = L10nL10NDemo.new(_json2_)
            self._data_list.append(_v)
            self._data_map[_v.id] = _v

    func get_data_list() -> Array[L10nL10NDemo]:
        return self._data_list

    func get_data_map() -> Dictionary:
        return self._data_map

    func get_item(key) -> L10nL10NDemo:
        return self._data_map.get(key)


class L10nTbPatchDemo:
    var _data_list: Array[L10nPatchDemo]
    var _data_map: Dictionary
    
    func _init(_json_) -> void:
        for _json2_ in _json_:
            var _v: L10nPatchDemo
            _v = L10nPatchDemo.new(_json2_)
            self._data_list.append(_v)
            self._data_map[_v.id] = _v

    func get_data_list() -> Array[L10nPatchDemo]:
        return self._data_list

    func get_data_map() -> Dictionary:
        return self._data_map

    func get_item(key) -> L10nPatchDemo:
        return self._data_map.get(key)


class TagTbTestTag:
    var _data_list: Array[TagTestTag]
    var _data_map: Dictionary
    
    func _init(_json_) -> void:
        for _json2_ in _json_:
            var _v: TagTestTag
            _v = TagTestTag.new(_json2_)
            self._data_list.append(_v)
            self._data_map[_v.id] = _v

    func get_data_list() -> Array[TagTestTag]:
        return self._data_list

    func get_data_map() -> Dictionary:
        return self._data_map

    func get_item(key) -> TagTestTag:
        return self._data_map.get(key)


class TestTbFullTypes:
    var _data_list: Array[TestDemoType2]
    var _data_map: Dictionary
    
    func _init(_json_) -> void:
        for _json2_ in _json_:
            var _v: TestDemoType2
            _v = TestDemoType2.new(_json2_)
            self._data_list.append(_v)
            self._data_map[_v.x4] = _v

    func get_data_list() -> Array[TestDemoType2]:
        return self._data_list

    func get_data_map() -> Dictionary:
        return self._data_map

    func get_item(key) -> TestDemoType2:
        return self._data_map.get(key)


class TestTbSingleton:
    var _data:TestDemoSingletonType
    
    func _init(_json_) -> void:
        assert(len(_json_) == 1, "table mode = one, but size != 1")
        self._data = TestDemoSingletonType.new(_json_[0])

    func get_data() -> TestDemoSingletonType:
        return self._data

    var id: int:
        get: return self._data.id

    var name: String:
        get: return self._data.name

    var date: TestDemoDynamic:
        get: return self._data.date


class TestTbNotIndexList:
    var _data_list: Array[TestNotIndexList] ## 数据数组
    
    func _init(_json_) -> void:
        for _json2_ in _json_:
            var _v: TestNotIndexList
            _v = TestNotIndexList.new(_json2_)
            self._data_list.append(_v)

    func get_data_list() -> Array[TestNotIndexList]:
        return self._data_list
    
    func get_item(index) -> TestNotIndexList:
        return self._data_list[index]

class TestTbMultiUnionIndexList:
    var _data_list: Array[TestMultiUnionIndexList] ## 数据数组
    
    func _init(_json_) -> void:
        for _json2_ in _json_:
            var _v: TestMultiUnionIndexList
            _v = TestMultiUnionIndexList.new(_json2_)
            self._data_list.append(_v)

    func get_data_list() -> Array[TestMultiUnionIndexList]:
        return self._data_list
    
    func get_item(index) -> TestMultiUnionIndexList:
        return self._data_list[index]

class TestTbMultiIndexList:
    var _data_list: Array[TestMultiIndexList]
    var _data_map: Dictionary
    var _id1_data_map: Dictionary ## 以id1为key的数据字典
    var _id2_data_map: Dictionary ## 以id2为key的数据字典
    var _id3_data_map: Dictionary ## 以id3为key的数据字典

    func _init(_json_) -> void:
        self._id1_data_map = {}
        self._id2_data_map = {}
        self._id3_data_map = {}
    
        for _json2_ in _json_:
            var _v: TestMultiIndexList
            _v = TestMultiIndexList.new(_json2_)
            self._data_list.append(_v)
            self._data_map[_v.id1] = _v
            self._id1_data_map[_v.id1] = _v
            self._id2_data_map[_v.id2] = _v
            self._id3_data_map[_v.id3] = _v

    func get_data_list() -> Array[TestMultiIndexList]:
        return self._data_list

    func get_data_map() -> Dictionary:
        return self._data_map

    func get_id1_data_map() -> Dictionary:
        return self._id1_data_map

    func get_id2_data_map() -> Dictionary:
        return self._id2_data_map

    func get_id3_data_map() -> Dictionary:
        return self._id3_data_map

    func get_item(key) -> TestMultiIndexList:
        return self._data_map.get(key)

    func get_item_by_id1(id1) -> TestMultiIndexList:
        return self._id1_data_map.get(id1)

    func get_item_by_id2(id2) -> TestMultiIndexList:
        return self._id2_data_map.get(id2)

    func get_item_by_id3(id3) -> TestMultiIndexList:
        return self._id3_data_map.get(id3)


class TestTbDataFromMisc:
    var _data_list: Array[TestDemoType2]
    var _data_map: Dictionary
    
    func _init(_json_) -> void:
        for _json2_ in _json_:
            var _v: TestDemoType2
            _v = TestDemoType2.new(_json2_)
            self._data_list.append(_v)
            self._data_map[_v.x4] = _v

    func get_data_list() -> Array[TestDemoType2]:
        return self._data_list

    func get_data_map() -> Dictionary:
        return self._data_map

    func get_item(key) -> TestDemoType2:
        return self._data_map.get(key)


class TestTbMultiRowRecord:
    var _data_list: Array[TestMultiRowRecord]
    var _data_map: Dictionary
    
    func _init(_json_) -> void:
        for _json2_ in _json_:
            var _v: TestMultiRowRecord
            _v = TestMultiRowRecord.new(_json2_)
            self._data_list.append(_v)
            self._data_map[_v.id] = _v

    func get_data_list() -> Array[TestMultiRowRecord]:
        return self._data_list

    func get_data_map() -> Dictionary:
        return self._data_map

    func get_item(key) -> TestMultiRowRecord:
        return self._data_map.get(key)


class TestTbTestMultiColumn:
    var _data_list: Array[TestTestMultiColumn]
    var _data_map: Dictionary
    
    func _init(_json_) -> void:
        for _json2_ in _json_:
            var _v: TestTestMultiColumn
            _v = TestTestMultiColumn.new(_json2_)
            self._data_list.append(_v)
            self._data_map[_v.id] = _v

    func get_data_list() -> Array[TestTestMultiColumn]:
        return self._data_list

    func get_data_map() -> Dictionary:
        return self._data_map

    func get_item(key) -> TestTestMultiColumn:
        return self._data_map.get(key)


class TestTbMultiRowTitle:
    var _data_list: Array[TestMultiRowTitle]
    var _data_map: Dictionary
    
    func _init(_json_) -> void:
        for _json2_ in _json_:
            var _v: TestMultiRowTitle
            _v = TestMultiRowTitle.new(_json2_)
            self._data_list.append(_v)
            self._data_map[_v.id] = _v

    func get_data_list() -> Array[TestMultiRowTitle]:
        return self._data_list

    func get_data_map() -> Dictionary:
        return self._data_map

    func get_item(key) -> TestMultiRowTitle:
        return self._data_map.get(key)


class TestTbTestNull:
    var _data_list: Array[TestTestNull]
    var _data_map: Dictionary
    
    func _init(_json_) -> void:
        for _json2_ in _json_:
            var _v: TestTestNull
            _v = TestTestNull.new(_json2_)
            self._data_list.append(_v)
            self._data_map[_v.id] = _v

    func get_data_list() -> Array[TestTestNull]:
        return self._data_list

    func get_data_map() -> Dictionary:
        return self._data_map

    func get_item(key) -> TestTestNull:
        return self._data_map.get(key)


class TestTbDemoPrimitive:
    var _data_list: Array[TestDemoPrimitiveTypesTable]
    var _data_map: Dictionary
    
    func _init(_json_) -> void:
        for _json2_ in _json_:
            var _v: TestDemoPrimitiveTypesTable
            _v = TestDemoPrimitiveTypesTable.new(_json2_)
            self._data_list.append(_v)
            self._data_map[_v.x4] = _v

    func get_data_list() -> Array[TestDemoPrimitiveTypesTable]:
        return self._data_list

    func get_data_map() -> Dictionary:
        return self._data_map

    func get_item(key) -> TestDemoPrimitiveTypesTable:
        return self._data_map.get(key)


class TestTbTestString:
    var _data_list: Array[TestTestString]
    var _data_map: Dictionary
    
    func _init(_json_) -> void:
        for _json2_ in _json_:
            var _v: TestTestString
            _v = TestTestString.new(_json2_)
            self._data_list.append(_v)
            self._data_map[_v.id] = _v

    func get_data_list() -> Array[TestTestString]:
        return self._data_list

    func get_data_map() -> Dictionary:
        return self._data_map

    func get_item(key) -> TestTestString:
        return self._data_map.get(key)


class TestTbDemoGroup:
    var _data_list: Array[TestDemoGroup]
    var _data_map: Dictionary
    
    func _init(_json_) -> void:
        for _json2_ in _json_:
            var _v: TestDemoGroup
            _v = TestDemoGroup.new(_json2_)
            self._data_list.append(_v)
            self._data_map[_v.id] = _v

    func get_data_list() -> Array[TestDemoGroup]:
        return self._data_list

    func get_data_map() -> Dictionary:
        return self._data_map

    func get_item(key) -> TestDemoGroup:
        return self._data_map.get(key)


class TestTbDemoGroup_C:
    var _data_list: Array[TestDemoGroup]
    var _data_map: Dictionary
    
    func _init(_json_) -> void:
        for _json2_ in _json_:
            var _v: TestDemoGroup
            _v = TestDemoGroup.new(_json2_)
            self._data_list.append(_v)
            self._data_map[_v.id] = _v

    func get_data_list() -> Array[TestDemoGroup]:
        return self._data_list

    func get_data_map() -> Dictionary:
        return self._data_map

    func get_item(key) -> TestDemoGroup:
        return self._data_map.get(key)


class TestTbDemoGroup_S:
    var _data_list: Array[TestDemoGroup]
    var _data_map: Dictionary
    
    func _init(_json_) -> void:
        for _json2_ in _json_:
            var _v: TestDemoGroup
            _v = TestDemoGroup.new(_json2_)
            self._data_list.append(_v)
            self._data_map[_v.id] = _v

    func get_data_list() -> Array[TestDemoGroup]:
        return self._data_list

    func get_data_map() -> Dictionary:
        return self._data_map

    func get_item(key) -> TestDemoGroup:
        return self._data_map.get(key)


class TestTbDemoGroup_E:
    var _data_list: Array[TestDemoGroup]
    var _data_map: Dictionary
    
    func _init(_json_) -> void:
        for _json2_ in _json_:
            var _v: TestDemoGroup
            _v = TestDemoGroup.new(_json2_)
            self._data_list.append(_v)
            self._data_map[_v.id] = _v

    func get_data_list() -> Array[TestDemoGroup]:
        return self._data_list

    func get_data_map() -> Dictionary:
        return self._data_map

    func get_item(key) -> TestDemoGroup:
        return self._data_map.get(key)


class TestTbTestGlobal:
    var _data:TestTestGlobal
    
    func _init(_json_) -> void:
        assert(len(_json_) == 1, "table mode = one, but size != 1")
        self._data = TestTestGlobal.new(_json_[0])

    func get_data() -> TestTestGlobal:
        return self._data

    var unlock_equip: int:
        get: return self._data.unlock_equip

    var unlock_hero: int:
        get: return self._data.unlock_hero


class TestTbTestBeRef:
    var _data_list: Array[TestTestBeRef]
    var _data_map: Dictionary
    
    func _init(_json_) -> void:
        for _json2_ in _json_:
            var _v: TestTestBeRef
            _v = TestTestBeRef.new(_json2_)
            self._data_list.append(_v)
            self._data_map[_v.id] = _v

    func get_data_list() -> Array[TestTestBeRef]:
        return self._data_list

    func get_data_map() -> Dictionary:
        return self._data_map

    func get_item(key) -> TestTestBeRef:
        return self._data_map.get(key)


class TestTbTestBeRef2:
    var _data_list: Array[TestTestBeRef]
    var _data_map: Dictionary
    
    func _init(_json_) -> void:
        for _json2_ in _json_:
            var _v: TestTestBeRef
            _v = TestTestBeRef.new(_json2_)
            self._data_list.append(_v)
            self._data_map[_v.id] = _v

    func get_data_list() -> Array[TestTestBeRef]:
        return self._data_list

    func get_data_map() -> Dictionary:
        return self._data_map

    func get_item(key) -> TestTestBeRef:
        return self._data_map.get(key)


class TestTbTestRef:
    var _data_list: Array[TestTestRef]
    var _data_map: Dictionary
    
    func _init(_json_) -> void:
        for _json2_ in _json_:
            var _v: TestTestRef
            _v = TestTestRef.new(_json2_)
            self._data_list.append(_v)
            self._data_map[_v.id] = _v

    func get_data_list() -> Array[TestTestRef]:
        return self._data_list

    func get_data_map() -> Dictionary:
        return self._data_map

    func get_item(key) -> TestTestRef:
        return self._data_map.get(key)


class TestTbTestSize:
    var _data_list: Array[TestTestSize]
    var _data_map: Dictionary
    
    func _init(_json_) -> void:
        for _json2_ in _json_:
            var _v: TestTestSize
            _v = TestTestSize.new(_json2_)
            self._data_list.append(_v)
            self._data_map[_v.id] = _v

    func get_data_list() -> Array[TestTestSize]:
        return self._data_list

    func get_data_map() -> Dictionary:
        return self._data_map

    func get_item(key) -> TestTestSize:
        return self._data_map.get(key)


class TestTbTestSet:
    var _data_list: Array[TestTestSet]
    var _data_map: Dictionary
    
    func _init(_json_) -> void:
        for _json2_ in _json_:
            var _v: TestTestSet
            _v = TestTestSet.new(_json2_)
            self._data_list.append(_v)
            self._data_map[_v.id] = _v

    func get_data_list() -> Array[TestTestSet]:
        return self._data_list

    func get_data_map() -> Dictionary:
        return self._data_map

    func get_item(key) -> TestTestSet:
        return self._data_map.get(key)


class TestTbDetectCsvEncoding:
    var _data_list: Array[TestDetectEncoding]
    var _data_map: Dictionary
    
    func _init(_json_) -> void:
        for _json2_ in _json_:
            var _v: TestDetectEncoding
            _v = TestDetectEncoding.new(_json2_)
            self._data_list.append(_v)
            self._data_map[_v.id] = _v

    func get_data_list() -> Array[TestDetectEncoding]:
        return self._data_list

    func get_data_map() -> Dictionary:
        return self._data_map

    func get_item(key) -> TestDetectEncoding:
        return self._data_map.get(key)


class TestTbItem2:
    var _data_list: Array[TestItemBase]
    var _data_map: Dictionary
    
    func _init(_json_) -> void:
        for _json2_ in _json_:
            var _v: TestItemBase
            _v = TestItemBase.fromJson(_json2_)
            self._data_list.append(_v)
            self._data_map[_v.id] = _v

    func get_data_list() -> Array[TestItemBase]:
        return self._data_list

    func get_data_map() -> Dictionary:
        return self._data_map

    func get_item(key) -> TestItemBase:
        return self._data_map.get(key)


class TestTbTestIndex:
    var _data_list: Array[TestTestIndex]
    var _data_map: Dictionary
    
    func _init(_json_) -> void:
        for _json2_ in _json_:
            var _v: TestTestIndex
            _v = TestTestIndex.new(_json2_)
            self._data_list.append(_v)
            self._data_map[_v.id] = _v

    func get_data_list() -> Array[TestTestIndex]:
        return self._data_list

    func get_data_map() -> Dictionary:
        return self._data_map

    func get_item(key) -> TestTestIndex:
        return self._data_map.get(key)


class TestTbTestMap:
    var _data_list: Array[TestTestMap]
    var _data_map: Dictionary
    
    func _init(_json_) -> void:
        for _json2_ in _json_:
            var _v: TestTestMap
            _v = TestTestMap.new(_json2_)
            self._data_list.append(_v)
            self._data_map[_v.id] = _v

    func get_data_list() -> Array[TestTestMap]:
        return self._data_list

    func get_data_map() -> Dictionary:
        return self._data_map

    func get_item(key) -> TestTestMap:
        return self._data_map.get(key)


class TestTbExcelFromJson:
    var _data_list: Array[TestExcelFromJson]
    var _data_map: Dictionary
    
    func _init(_json_) -> void:
        for _json2_ in _json_:
            var _v: TestExcelFromJson
            _v = TestExcelFromJson.new(_json2_)
            self._data_list.append(_v)
            self._data_map[_v.x4] = _v

    func get_data_list() -> Array[TestExcelFromJson]:
        return self._data_list

    func get_data_map() -> Dictionary:
        return self._data_map

    func get_item(key) -> TestExcelFromJson:
        return self._data_map.get(key)


class TestTbCompositeJsonTable1:
    var _data_list: Array[TestCompositeJsonTable1]
    var _data_map: Dictionary
    
    func _init(_json_) -> void:
        for _json2_ in _json_:
            var _v: TestCompositeJsonTable1
            _v = TestCompositeJsonTable1.new(_json2_)
            self._data_list.append(_v)
            self._data_map[_v.id] = _v

    func get_data_list() -> Array[TestCompositeJsonTable1]:
        return self._data_list

    func get_data_map() -> Dictionary:
        return self._data_map

    func get_item(key) -> TestCompositeJsonTable1:
        return self._data_map.get(key)


class TestTbCompositeJsonTable2:
    var _data_list: Array[TestCompositeJsonTable2]
    var _data_map: Dictionary
    
    func _init(_json_) -> void:
        for _json2_ in _json_:
            var _v: TestCompositeJsonTable2
            _v = TestCompositeJsonTable2.new(_json2_)
            self._data_list.append(_v)
            self._data_map[_v.id] = _v

    func get_data_list() -> Array[TestCompositeJsonTable2]:
        return self._data_list

    func get_data_map() -> Dictionary:
        return self._data_map

    func get_item(key) -> TestCompositeJsonTable2:
        return self._data_map.get(key)


class TestTbCompositeJsonTable3:
    var _data:TestCompositeJsonTable3
    
    func _init(_json_) -> void:
        assert(len(_json_) == 1, "table mode = one, but size != 1")
        self._data = TestCompositeJsonTable3.new(_json_[0])

    func get_data() -> TestCompositeJsonTable3:
        return self._data

    var a: int:
        get: return self._data.a

    var b: int:
        get: return self._data.b


class TestTbExcelFromJsonMultiRow:
    var _data_list: Array[TestExcelFromJsonMultiRow]
    var _data_map: Dictionary
    
    func _init(_json_) -> void:
        for _json2_ in _json_:
            var _v: TestExcelFromJsonMultiRow
            _v = TestExcelFromJsonMultiRow.new(_json2_)
            self._data_list.append(_v)
            self._data_map[_v.id] = _v

    func get_data_list() -> Array[TestExcelFromJsonMultiRow]:
        return self._data_list

    func get_data_map() -> Dictionary:
        return self._data_map

    func get_item(key) -> TestExcelFromJsonMultiRow:
        return self._data_map.get(key)


class TestTbTestScriptableObject:
    var _data_list: Array[TestTestScriptableObject]
    var _data_map: Dictionary
    
    func _init(_json_) -> void:
        for _json2_ in _json_:
            var _v: TestTestScriptableObject
            _v = TestTestScriptableObject.new(_json2_)
            self._data_list.append(_v)
            self._data_map[_v.id] = _v

    func get_data_list() -> Array[TestTestScriptableObject]:
        return self._data_list

    func get_data_map() -> Dictionary:
        return self._data_map

    func get_item(key) -> TestTestScriptableObject:
        return self._data_map.get(key)


class TestTbPath:
    var _data_list: Array[TestPath]
    var _data_map: Dictionary
    
    func _init(_json_) -> void:
        for _json2_ in _json_:
            var _v: TestPath
            _v = TestPath.new(_json2_)
            self._data_list.append(_v)
            self._data_map[_v.id] = _v

    func get_data_list() -> Array[TestPath]:
        return self._data_list

    func get_data_map() -> Dictionary:
        return self._data_map

    func get_item(key) -> TestPath:
        return self._data_map.get(key)


class TestTbTestMapper:
    var _data_list: Array[TestTestMapper]
    var _data_map: Dictionary
    
    func _init(_json_) -> void:
        for _json2_ in _json_:
            var _v: TestTestMapper
            _v = TestTestMapper.new(_json2_)
            self._data_list.append(_v)
            self._data_map[_v.id] = _v

    func get_data_list() -> Array[TestTestMapper]:
        return self._data_list

    func get_data_map() -> Dictionary:
        return self._data_map

    func get_item(key) -> TestTestMapper:
        return self._data_map.get(key)


class TestTbDefineFromExcel2:
    var _data_list: Array[DefineFromExcel2]
    var _data_map: Dictionary
    
    func _init(_json_) -> void:
        for _json2_ in _json_:
            var _v: DefineFromExcel2
            _v = DefineFromExcel2.new(_json2_)
            self._data_list.append(_v)
            self._data_map[_v.id] = _v

    func get_data_list() -> Array[DefineFromExcel2]:
        return self._data_list

    func get_data_map() -> Dictionary:
        return self._data_map

    func get_item(key) -> DefineFromExcel2:
        return self._data_map.get(key)


class CfgTables:
    var TbBlackboard: AiTbBlackboard
    var TbBehaviorTree: AiTbBehaviorTree
    var TbGlobalConfig: CommonTbGlobalConfig
    ## 道具表
    var TbItem: ItemTbItem
    var TbL10NDemo: L10nTbL10NDemo
    var TbPatchDemo: L10nTbPatchDemo
    var TbTestTag: TagTbTestTag
    var TbFullTypes: TestTbFullTypes
    var TbSingleton: TestTbSingleton
    var TbNotIndexList: TestTbNotIndexList
    var TbMultiUnionIndexList: TestTbMultiUnionIndexList
    var TbMultiIndexList: TestTbMultiIndexList
    var TbDataFromMisc: TestTbDataFromMisc
    var TbMultiRowRecord: TestTbMultiRowRecord
    var TbTestMultiColumn: TestTbTestMultiColumn
    var TbMultiRowTitle: TestTbMultiRowTitle
    var TbTestNull: TestTbTestNull
    var TbDemoPrimitive: TestTbDemoPrimitive
    var TbTestString: TestTbTestString
    var TbDemoGroup: TestTbDemoGroup
    var TbDemoGroup_C: TestTbDemoGroup_C
    var TbDemoGroup_S: TestTbDemoGroup_S
    var TbDemoGroup_E: TestTbDemoGroup_E
    var TbTestGlobal: TestTbTestGlobal
    var TbTestBeRef: TestTbTestBeRef
    var TbTestBeRef2: TestTbTestBeRef2
    var TbTestRef: TestTbTestRef
    var TbTestSize: TestTbTestSize
    var TbTestSet: TestTbTestSet
    var TbDetectCsvEncoding: TestTbDetectCsvEncoding
    var TbItem2: TestTbItem2
    var TbTestIndex: TestTbTestIndex
    var TbTestMap: TestTbTestMap
    var TbExcelFromJson: TestTbExcelFromJson
    var TbCompositeJsonTable1: TestTbCompositeJsonTable1
    var TbCompositeJsonTable2: TestTbCompositeJsonTable2
    var TbCompositeJsonTable3: TestTbCompositeJsonTable3
    var TbExcelFromJsonMultiRow: TestTbExcelFromJsonMultiRow
    var TbTestScriptableObject: TestTbTestScriptableObject
    var TbPath: TestTbPath
    var TbTestMapper: TestTbTestMapper
    var TbDefineFromExcel2: TestTbDefineFromExcel2
    
    func _init(loader: Callable) -> void:
        self.TbBlackboard = AiTbBlackboard.new(loader.call('ai_tbblackboard'))
        self.TbBehaviorTree = AiTbBehaviorTree.new(loader.call('ai_tbbehaviortree'))
        self.TbGlobalConfig = CommonTbGlobalConfig.new(loader.call('common_tbglobalconfig'))
        self.TbItem = ItemTbItem.new(loader.call('item_tbitem'))
        self.TbL10NDemo = L10nTbL10NDemo.new(loader.call('l10n_tbl10ndemo'))
        self.TbPatchDemo = L10nTbPatchDemo.new(loader.call('l10n_tbpatchdemo'))
        self.TbTestTag = TagTbTestTag.new(loader.call('tag_tbtesttag'))
        self.TbFullTypes = TestTbFullTypes.new(loader.call('test_tbfulltypes'))
        self.TbSingleton = TestTbSingleton.new(loader.call('test_tbsingleton'))
        self.TbNotIndexList = TestTbNotIndexList.new(loader.call('test_tbnotindexlist'))
        self.TbMultiUnionIndexList = TestTbMultiUnionIndexList.new(loader.call('test_tbmultiunionindexlist'))
        self.TbMultiIndexList = TestTbMultiIndexList.new(loader.call('test_tbmultiindexlist'))
        self.TbDataFromMisc = TestTbDataFromMisc.new(loader.call('test_tbdatafrommisc'))
        self.TbMultiRowRecord = TestTbMultiRowRecord.new(loader.call('test_tbmultirowrecord'))
        self.TbTestMultiColumn = TestTbTestMultiColumn.new(loader.call('test_tbtestmulticolumn'))
        self.TbMultiRowTitle = TestTbMultiRowTitle.new(loader.call('test_tbmultirowtitle'))
        self.TbTestNull = TestTbTestNull.new(loader.call('test_tbtestnull'))
        self.TbDemoPrimitive = TestTbDemoPrimitive.new(loader.call('test_tbdemoprimitive'))
        self.TbTestString = TestTbTestString.new(loader.call('test_tbteststring'))
        self.TbDemoGroup = TestTbDemoGroup.new(loader.call('test_tbdemogroup'))
        self.TbDemoGroup_C = TestTbDemoGroup_C.new(loader.call('test_tbdemogroup_c'))
        self.TbDemoGroup_S = TestTbDemoGroup_S.new(loader.call('test_tbdemogroup_s'))
        self.TbDemoGroup_E = TestTbDemoGroup_E.new(loader.call('test_tbdemogroup_e'))
        self.TbTestGlobal = TestTbTestGlobal.new(loader.call('test_tbtestglobal'))
        self.TbTestBeRef = TestTbTestBeRef.new(loader.call('test_tbtestberef'))
        self.TbTestBeRef2 = TestTbTestBeRef2.new(loader.call('test_tbtestberef2'))
        self.TbTestRef = TestTbTestRef.new(loader.call('test_tbtestref'))
        self.TbTestSize = TestTbTestSize.new(loader.call('test_tbtestsize'))
        self.TbTestSet = TestTbTestSet.new(loader.call('test_tbtestset'))
        self.TbDetectCsvEncoding = TestTbDetectCsvEncoding.new(loader.call('test_tbdetectcsvencoding'))
        self.TbItem2 = TestTbItem2.new(loader.call('test_tbitem2'))
        self.TbTestIndex = TestTbTestIndex.new(loader.call('test_tbtestindex'))
        self.TbTestMap = TestTbTestMap.new(loader.call('test_tbtestmap'))
        self.TbExcelFromJson = TestTbExcelFromJson.new(loader.call('test_tbexcelfromjson'))
        self.TbCompositeJsonTable1 = TestTbCompositeJsonTable1.new(loader.call('test_tbcompositejsontable1'))
        self.TbCompositeJsonTable2 = TestTbCompositeJsonTable2.new(loader.call('test_tbcompositejsontable2'))
        self.TbCompositeJsonTable3 = TestTbCompositeJsonTable3.new(loader.call('test_tbcompositejsontable3'))
        self.TbExcelFromJsonMultiRow = TestTbExcelFromJsonMultiRow.new(loader.call('test_tbexcelfromjsonmultirow'))
        self.TbTestScriptableObject = TestTbTestScriptableObject.new(loader.call('test_tbtestscriptableobject'))
        self.TbPath = TestTbPath.new(loader.call('test_tbpath'))
        self.TbTestMapper = TestTbTestMapper.new(loader.call('test_tbtestmapper'))
        self.TbDefineFromExcel2 = TestTbDefineFromExcel2.new(loader.call('test_tbdefinefromexcel2'))