@adcp/sdk API Reference - v10.0.1
    Preparing search index...

    Interface BrandReference

    Brand reference for product discovery context. Resolved to full brand identity at execution time.

    interface BrandReference {
        domain: string;
        brand_id?: string;
        industries?: string[];
        data_subject_contestation?: {
            url?: string;
            email?: string;
            languages?: string[];
        };
        brand_kit_override?: {
            logo?: ImageAsset;
            colors?: { primary?: string; secondary?: string; accent?: string };
            voice?: string;
            tagline?: string;
        };
    }
    Index

    Properties

    domain: string

    Domain where /.well-known/brand.json is hosted, or the brand's operating domain

    ^a-z0-9?(.a-z0-9?)*$

    brand_id?: string
    industries?: string[]

    Inline override for the brand's industries. Useful when the caller cannot modify the brand's canonical brand.json but needs to declare industries for governance (e.g., Annex III vertical detection). brand.json remains the canonical source; when omitted here, governance agents SHOULD resolve from brand.json.

    data_subject_contestation?: {
        url?: string;
        email?: string;
        languages?: string[];
    }

    Inline override for the brand's contestation contact point. Useful when the operator does not control brand.json but needs to discharge Art 22(3) for this plan. brand.json is canonical; when omitted, governance agents resolve brand → house → missing.

    Type Declaration

    • Optionalurl?: string

      ^https://

    • Optionalemail?: string

      email

    • Optionallanguages?: string[]
    brand_kit_override?: {
        logo?: ImageAsset;
        colors?: { primary?: string; secondary?: string; accent?: string };
        voice?: string;
        tagline?: string;
    }

    Inline override for brand-kit fields normally resolved from /.well-known/brand.json on domain (logo, colors, voice, tagline). Use when brand.json is missing, stale, or inappropriate for this specific call — e.g., a campaign-scoped tagline, a co-branded creative, a freshly-rebranded color palette the brand.json hasn't shipped yet. Same inline-override pattern as industries and data_subject_contestation above: brand.json is canonical, the override is per-call. Adopters needing to override fields outside this subset (voice_attributes, prohibited_terms, etc.) MUST publish a different brand.json and reference it via a different domain — the inline override is intentionally narrow to a small high-traffic subset.

    Merge semantics (normative). The merge is field-level, not whole-object replacement. Each field within brand_kit_override (logo, colors, voice, tagline) is evaluated independently — when a field is present on the override the override value applies; when a field is absent the brand.json value applies (or is absent if brand.json doesn't carry one either). For composite fields (colors.primary, colors.secondary, colors.accent), the merge is one level deeper: each color slot is evaluated independently — a producer can override colors.primary while still inheriting colors.secondary from brand.json. SDKs MUST NOT treat a present brand_kit_override.colors as wiping the brand.json colors block entirely; only the per-slot fields present in the override take precedence. Without this rule, a partial-override semantics would diverge across SDKs and produce inconsistent rendering for the same payload.

    Type Declaration

    • Optionallogo?: ImageAsset
    • Optionalcolors?: { primary?: string; secondary?: string; accent?: string }

      Override brand colors (hex strings).

      • Optionalprimary?: string

        ^#[0-9a-fA-F]{6}$

      • Optionalsecondary?: string

        ^#[0-9a-fA-F]{6}$

      • Optionalaccent?: string

        ^#[0-9a-fA-F]{6}$

    • Optionalvoice?: string

      Override brand-voice description for surface-composed text/audio output.

    • Optionaltagline?: string

      Override tagline.