Files
gridpilot.gg/apps/website/lib/contracts/formatters/DisplayObject.ts
2026-01-24 00:52:27 +01:00

29 lines
618 B
TypeScript

/**
* DisplayObject contract
*
* Deterministic, reusable, UI-only formatting/mapping logic.
*
* Based on DISPLAY_OBJECTS.md:
* - Class-based
* - Immutable
* - Deterministic
* - Side-effect free
* - No Intl.* or toLocale*
* - No business rules
*/
export interface DisplayObject {
/**
* Format or map the display object
*
* @returns Primitive values only (strings, numbers, booleans)
*/
format(): unknown;
/**
* Optional: Get multiple display variants
*
* Allows a single DisplayObject to expose multiple presentation formats
*/
variants?(): Record<string, unknown>;
}