@alpaca-software/40kdc-data
    Preparing search index...

    Interface UnitComposition

    Describes the internal model-type breakdown of a unit.

    This interface was referenced by 0KdcBundledSchemas's JSON-Schema via the definition "unit-composition".

    interface UnitComposition {
        unit_id: string;
        faction_id: string;
        models: [
            {
                name: string;
                profile_name?: string
                | null;
                min: number;
                max: number;
                default_weapon_ids?: string[];
                is_leader_model?: boolean;
                base_size_mm?: BaseSize1;
                hull_shape_id?: string | null;
            },
            ...{
                name: string;
                profile_name?: string
                | null;
                min: number;
                max: number;
                default_weapon_ids?: string[];
                is_leader_model?: boolean;
                base_size_mm?: BaseSize1;
                hull_shape_id?: string | null;
            }[],
        ];
        tiers?: [
            {
                models: [
                    { name: string; min: number; max: number },
                    ...{ name: string; min: number; max: number }[],
                ];
            },
            ...{
                models: [
                    { name: string; min: number; max: number },
                    ...{ name: string; min: number; max: number }[],
                ];
            }[],
        ];
        game_version: GameVersionReference;
        game_modes?: GameModes4;
    }
    Index

    Properties

    unit_id: string
    faction_id: string

    Kebab-case identifier

    models: [
        {
            name: string;
            profile_name?: string
            | null;
            min: number;
            max: number;
            default_weapon_ids?: string[];
            is_leader_model?: boolean;
            base_size_mm?: BaseSize1;
            hull_shape_id?: string | null;
        },
        ...{
            name: string;
            profile_name?: string
            | null;
            min: number;
            max: number;
            default_weapon_ids?: string[];
            is_leader_model?: boolean;
            base_size_mm?: BaseSize1;
            hull_shape_id?: string | null;
        }[],
    ]

    1

    tiers?: [
        {
            models: [
                { name: string; min: number; max: number },
                ...{ name: string; min: number; max: number }[],
            ];
        },
        ...{
            models: [
                { name: string; min: number; max: number },
                ...{ name: string; min: number; max: number }[],
            ];
        }[],
    ]

    The discrete buildable squad sizes (GW's per-datasheet unit-composition rows). Each tier gives a per-model count range; a legal squad must match exactly one tier. When absent, the squad is treated as a single implicit tier equal to models[]. The top-level models[] min/max are the aggregate envelope (min-of-mins / max-of-maxes) across the tiers, so consumers that read only models[] still see the full range.

    1

    game_version: GameVersionReference
    game_modes?: GameModes4