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

    Interface AlliedRule

    A community-authored model of an allied-detachment / 'soup' rule: the named exception by which units lacking the army's chosen Faction keyword may still be included (e.g. Daemonic Pact, Brood Brothers, Iconoclast Fiefdom's Damned access). One rule = one allied source pool; a faction that allies in several pools (the Chaos cult pattern: a Chaos Knights pool plus a matching-god Daemons pool) carries one rule per pool. The rule is gated by two optional, AND-combined conditions: an army-wide keyword condition (army_keywords_any) and/or a selected detachment (detachment_ids).

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

    interface AlliedRule {
        id: string;
        name: string;
        label?: string;
        army_keywords_any?: KeywordList1;
        detachment_ids?: string[];
        source_faction_id?: string | null;
        source_keywords?: KeywordList2;
        source_datasheet_ids?: string[];
        required_keywords?: KeywordList3;
        excluded_keywords?: KeywordList4;
        roles?: string[];
        points_limits?: AlliedPointsLimit[];
        keyword_limits?: AlliedKeywordLimit[];
        max_units?: number | null;
        cannot_be_warlord?: boolean;
        cannot_take_enhancements?: boolean;
        warlord_required_keyword?: string | null;
        warlord_datasheet_ids?: string[];
        removes_ability_ids?: string[];
        battleline_ratio_keywords?: KeywordList5;
        game_version: GameVersionReference;
        notes?: string;
    }
    Index

    Properties

    id: string
    name: string
    label?: string

    Short panel/category heading a list builder groups this pool under (e.g. 'Daemons', 'Imperial Agents', 'Titanic Allies'). Defaults to name when omitted.

    army_keywords_any?: KeywordList1
    detachment_ids?: string[]

    Detachment gate: the rule applies only when at least one listed detachment is selected. Empty/absent = no detachment gate. Replaces the former single detachment_id (GW pools may gate on several detachments).

    source_faction_id?: string | null

    Faction the ally pool is drawn from, when scoping by faction is needed to disambiguate units whose id is shared across factions. Optional hint; source_keywords is the primary filter.

    source_keywords?: KeywordList2
    source_datasheet_ids?: string[]

    Explicit datasheet allowlist: when non-empty, a unit qualifies only if its id is listed (AND-combined with source_keywords/required_keywords/excluded_keywords/roles). GW soup pools enumerate by datasheet; this is the primary unit selector for generated rules. Empty/absent = no datasheet-level restriction.

    required_keywords?: KeywordList3
    excluded_keywords?: KeywordList4
    roles?: string[]

    Optional battlefield-role filter (matched against a unit's role). Empty = no role restriction.

    points_limits?: AlliedPointsLimit[]

    Absolute points cap on the combined cost of units included via this rule, per battle size. Empty = no points cap. A rule lists at most one entry per battle size.

    keyword_limits?: AlliedKeywordLimit[]

    Per-keyword, per-battle-size cap on how many units carrying keyword may be included via this rule (e.g. Imperial Knights' Titanic 1 / Armiger 3; Agents of the Imperium's Character/Retinue/Requisitioned counts). Advisory construction cap.

    max_units?: number | null

    Optional cap on the number of units included via this rule, independent of points. null = no unit-count cap.

    cannot_be_warlord?: boolean

    True when units included via this rule cannot be the army's Warlord (e.g. Daemonic Pact, Star Children's Blessings).

    cannot_take_enhancements?: boolean

    True when units included via this rule cannot be given Enhancements (e.g. Daemonic Pact).

    warlord_required_keyword?: string | null

    Host-Warlord requirement: a model carrying this keyword must be the army's Warlord (e.g. Brood Brothers requires a 'Genestealer Cults' Warlord). null = no such requirement.

    warlord_datasheet_ids?: string[]

    Datasheet allowlist for which units included via this rule may be the army Warlord (the specific characters GW permits). Non-empty = only these may be Warlord among the pool's units; pair with cannot_be_warlord:false. Empty/absent = no per-datasheet warlord allowlist.

    removes_ability_ids?: string[]

    Abilities that included units lose under this rule (e.g. Astra Militarum units lose 'voice-of-command' under Brood Brothers). A display/effect hint, not a construction constraint.

    battleline_ratio_keywords?: KeywordList5
    game_version: GameVersionReference
    notes?: string