Open Design Tokens
    Preparing search index...

    Interface IssueMeta

    The structured details (meta) each issue code carries, so clients can build their own messages or UI from the data rather than parsing the English sentence. Public API: keys are only added, never renamed or removed, without a major version.

    interface IssueMeta {
        "alias.cycle": { chain: readonly string[] };
        "alias.syntax.invalid": { actual: unknown };
        "alias.target.missing": { actual?: string; alias: string; path: string };
        "alias.target.not-token": { alias: string; path: string };
        "alias.type.mismatch": {
            actual: string;
            actualType?: string;
            alias: string;
            expected: string;
            target: string;
        };
        "color.alpha.not-number": ShapeMeta;
        "color.alpha.out-of-range": RangeMeta;
        "color.color-space.invalid": EnumMeta;
        "color.color-space.missing": EmptyMeta;
        "color.component.invalid": { actual: unknown; index: number };
        "color.component.out-of-range": RangeMeta & {
            colorSpace: string | undefined;
            index: number;
            name: string;
        };
        "color.components.missing": EmptyMeta;
        "color.components.not-array": ShapeMeta;
        "color.components.wrong-length": {
            actual: number;
            colorSpace: unknown;
            expected: number;
        };
        "color.hex.invalid": { actual: unknown; actualType?: string };
        "color.hex.mismatch": { expected: string; hex: string };
        "color.value.not-object": ShapeMeta;
        "composite.property.missing": {
            expectedType: string;
            property: string;
            type: string;
        };
        "composite.value.not-object": {
            actualType: string;
            properties: readonly string[];
            type: string;
        };
        "cubic-bezier.point.not-number": { actualType: string; index: number };
        "cubic-bezier.value.not-array": ShapeMeta;
        "cubic-bezier.value.wrong-length": { actual: number };
        "cubic-bezier.x.out-of-range": RangeMeta & { index: number };
        "dimension.unit.invalid": EnumMeta;
        "dimension.unit.missing": EmptyMeta;
        "dimension.value.missing": EmptyMeta;
        "dimension.value.not-number": ShapeMeta;
        "dimension.value.not-object": ShapeMeta;
        "document.circular": EmptyMeta;
        "document.invalid-json": { reason: string };
        "document.not-object": ShapeMeta;
        "document.too-deep": { depth: number };
        "document.unreadable-node": { reason: string };
        "duration.unit.invalid": EnumMeta;
        "duration.unit.missing": EmptyMeta;
        "duration.value.missing": EmptyMeta;
        "duration.value.not-number": ShapeMeta;
        "duration.value.not-object": ShapeMeta;
        "extends.cycle": { chain: readonly string[] };
        "extends.inherited-token.invalid": {
            effectiveType?: string;
            inheritedFrom: string;
            originType?: string;
            reason: string;
            token: string;
        };
        "extends.target.missing": { actual: unknown; path: string };
        "extends.target.not-group": { actual: unknown; path: string };
        "font-family.name.not-string": { actualType: string; index: number };
        "font-family.value.invalid": ShapeMeta;
        "font-weight.keyword.invalid": EnumMeta;
        "font-weight.number.out-of-range": RangeMeta;
        "font-weight.value.invalid": ShapeMeta;
        "gradient.position.out-of-range": { actual: number };
        "gradient.stop.invalid": { actualType: string; index: number };
        "gradient.value.not-array": ShapeMeta;
        "group.deprecated.invalid": ShapeMeta;
        "group.description.not-string": ShapeMeta;
        "group.extends.invalid": { actual: unknown };
        "group.extensions.key-not-namespaced": { key: string };
        "group.extensions.not-object": ShapeMeta;
        "group.member.invalid": { actualType: string; name: string };
        "group.name.case-collision": { names: readonly string[] };
        "group.property.unknown": { property: string };
        "group.ref.invalid": { actual: unknown };
        "group.root.not-token": EmptyMeta;
        "group.type.invalid": EnumMeta;
        "group.type.not-string": ShapeMeta;
        "name.empty": EmptyMeta;
        "name.forbidden-character": {
            character: string;
            characters: readonly string[];
            name: string;
        };
        "name.reserved-prefix": { name: string };
        "number.value.not-number": ShapeMeta;
        "ref.cycle": { chain: readonly string[] };
        "ref.not-local": { actual: unknown };
        "ref.syntax.invalid": { actual: unknown };
        "ref.target.missing": { actual: string; alias?: string; path: string };
        "ref.type.mismatch": {
            actual: string;
            actualType: string;
            alias?: string;
            expected: string;
            target: string;
        };
        "shadow.inset.not-boolean": ShapeMeta;
        "shadow.item.invalid": { actualType: string; index: number };
        "shadow.value.invalid": ShapeMeta;
        "stroke-style.dash-array.not-array": ShapeMeta;
        "stroke-style.keyword.invalid": EnumMeta;
        "stroke-style.line-cap.invalid": EnumMeta;
        "stroke-style.value.invalid": ShapeMeta;
        "token.deprecated.invalid": ShapeMeta;
        "token.description.not-string": ShapeMeta;
        "token.extensions.key-not-namespaced": { key: string };
        "token.extensions.not-object": ShapeMeta;
        "token.property.not-allowed": { property: string };
        "token.property.unknown": { property: string };
        "token.type.invalid": EnumMeta;
        "token.type.missing": {
            actualValueType?: string;
            target?: string;
            via?: "alias";
        };
        "token.type.not-string": ShapeMeta;
        "value.unknown-property": { known: readonly string[]; property: string };
    }
    Index
    alias.cycle alias.syntax.invalid alias.target.missing alias.target.not-token alias.type.mismatch color.alpha.not-number color.alpha.out-of-range color.color-space.invalid color.color-space.missing color.component.invalid color.component.out-of-range color.components.missing color.components.not-array color.components.wrong-length color.hex.invalid color.hex.mismatch color.value.not-object composite.property.missing composite.value.not-object cubic-bezier.point.not-number cubic-bezier.value.not-array cubic-bezier.value.wrong-length cubic-bezier.x.out-of-range dimension.unit.invalid dimension.unit.missing dimension.value.missing dimension.value.not-number dimension.value.not-object document.circular document.invalid-json document.not-object document.too-deep document.unreadable-node duration.unit.invalid duration.unit.missing duration.value.missing duration.value.not-number duration.value.not-object extends.cycle extends.inherited-token.invalid extends.target.missing extends.target.not-group font-family.name.not-string font-family.value.invalid font-weight.keyword.invalid font-weight.number.out-of-range font-weight.value.invalid gradient.position.out-of-range gradient.stop.invalid gradient.value.not-array group.deprecated.invalid group.description.not-string group.extends.invalid group.extensions.key-not-namespaced group.extensions.not-object group.member.invalid group.name.case-collision group.property.unknown group.ref.invalid group.root.not-token group.type.invalid group.type.not-string name.empty name.forbidden-character name.reserved-prefix number.value.not-number ref.cycle ref.not-local ref.syntax.invalid ref.target.missing ref.type.mismatch shadow.inset.not-boolean shadow.item.invalid shadow.value.invalid stroke-style.dash-array.not-array stroke-style.keyword.invalid stroke-style.line-cap.invalid stroke-style.value.invalid token.deprecated.invalid token.description.not-string token.extensions.key-not-namespaced token.extensions.not-object token.property.not-allowed token.property.unknown token.type.invalid token.type.missing token.type.not-string value.unknown-property
    "alias.cycle": { chain: readonly string[] }
    "alias.syntax.invalid": { actual: unknown }
    "alias.target.missing": { actual?: string; alias: string; path: string }
    "alias.target.not-token": { alias: string; path: string }
    "alias.type.mismatch": {
        actual: string;
        actualType?: string;
        alias: string;
        expected: string;
        target: string;
    }
    "color.alpha.not-number": ShapeMeta
    "color.alpha.out-of-range": RangeMeta
    "color.color-space.invalid": EnumMeta
    "color.color-space.missing": EmptyMeta
    "color.component.invalid": { actual: unknown; index: number }
    "color.component.out-of-range": RangeMeta & {
        colorSpace: string | undefined;
        index: number;
        name: string;
    }
    "color.components.missing": EmptyMeta
    "color.components.not-array": ShapeMeta
    "color.components.wrong-length": {
        actual: number;
        colorSpace: unknown;
        expected: number;
    }
    "color.hex.invalid": { actual: unknown; actualType?: string }
    "color.hex.mismatch": { expected: string; hex: string }
    "color.value.not-object": ShapeMeta
    "composite.property.missing": {
        expectedType: string;
        property: string;
        type: string;
    }
    "composite.value.not-object": {
        actualType: string;
        properties: readonly string[];
        type: string;
    }
    "cubic-bezier.point.not-number": { actualType: string; index: number }
    "cubic-bezier.value.not-array": ShapeMeta
    "cubic-bezier.value.wrong-length": { actual: number }
    "cubic-bezier.x.out-of-range": RangeMeta & { index: number }
    "dimension.unit.invalid": EnumMeta
    "dimension.unit.missing": EmptyMeta
    "dimension.value.missing": EmptyMeta
    "dimension.value.not-number": ShapeMeta
    "dimension.value.not-object": ShapeMeta
    "document.circular": EmptyMeta
    "document.invalid-json": { reason: string }
    "document.not-object": ShapeMeta
    "document.too-deep": { depth: number }
    "document.unreadable-node": { reason: string }
    "duration.unit.invalid": EnumMeta
    "duration.unit.missing": EmptyMeta
    "duration.value.missing": EmptyMeta
    "duration.value.not-number": ShapeMeta
    "duration.value.not-object": ShapeMeta
    "extends.cycle": { chain: readonly string[] }
    "extends.inherited-token.invalid": {
        effectiveType?: string;
        inheritedFrom: string;
        originType?: string;
        reason: string;
        token: string;
    }
    "extends.target.missing": { actual: unknown; path: string }
    "extends.target.not-group": { actual: unknown; path: string }
    "font-family.name.not-string": { actualType: string; index: number }
    "font-family.value.invalid": ShapeMeta
    "font-weight.keyword.invalid": EnumMeta
    "font-weight.number.out-of-range": RangeMeta
    "font-weight.value.invalid": ShapeMeta
    "gradient.position.out-of-range": { actual: number }
    "gradient.stop.invalid": { actualType: string; index: number }
    "gradient.value.not-array": ShapeMeta
    "group.deprecated.invalid": ShapeMeta
    "group.description.not-string": ShapeMeta
    "group.extends.invalid": { actual: unknown }
    "group.extensions.key-not-namespaced": { key: string }
    "group.extensions.not-object": ShapeMeta
    "group.member.invalid": { actualType: string; name: string }
    "group.name.case-collision": { names: readonly string[] }
    "group.property.unknown": { property: string }
    "group.ref.invalid": { actual: unknown }
    "group.root.not-token": EmptyMeta
    "group.type.invalid": EnumMeta
    "group.type.not-string": ShapeMeta
    "name.empty": EmptyMeta
    "name.forbidden-character": {
        character: string;
        characters: readonly string[];
        name: string;
    }

    characters lists every forbidden character in the name; character is the first, kept for readers of 0.3.

    "name.reserved-prefix": { name: string }
    "number.value.not-number": ShapeMeta
    "ref.cycle": { chain: readonly string[] }
    "ref.not-local": { actual: unknown }
    "ref.syntax.invalid": { actual: unknown }
    "ref.target.missing": { actual: string; alias?: string; path: string }
    "ref.type.mismatch": {
        actual: string;
        actualType: string;
        alias?: string;
        expected: string;
        target: string;
    }
    "shadow.inset.not-boolean": ShapeMeta
    "shadow.item.invalid": { actualType: string; index: number }
    "shadow.value.invalid": ShapeMeta
    "stroke-style.dash-array.not-array": ShapeMeta
    "stroke-style.keyword.invalid": EnumMeta
    "stroke-style.line-cap.invalid": EnumMeta
    "stroke-style.value.invalid": ShapeMeta
    "token.deprecated.invalid": ShapeMeta
    "token.description.not-string": ShapeMeta
    "token.extensions.key-not-namespaced": { key: string }
    "token.extensions.not-object": ShapeMeta
    "token.property.not-allowed": { property: string }
    "token.property.unknown": { property: string }
    "token.type.invalid": EnumMeta
    "token.type.missing": {
        actualValueType?: string;
        target?: string;
        via?: "alias";
    }
    "token.type.not-string": ShapeMeta
    "value.unknown-property": { known: readonly string[]; property: string }