Source identity
| Field | Recorded value |
|---|---|
| Source type | GitHub source |
| Original record | Janady13/thatdeveloperguy-website / src/contracts/scene.ts |
| Date | Not specified in source |
| Repository | Janady13/thatdeveloperguy-website |
| Revision | 2bea2ebdff0e34494bff597d4fa9c8422a0c3a94 |
| Branch | main |
| Path or archive member | src/contracts/scene.ts |
| Original SHA-256 | 689f33d11ebb699a44d8a4aa468f24dde813c9060239f83474bf6d37bca82e09 |
| Git blob SHA | b263c5e0950bc7991bb55261222e0da1b02a098d |
| Reading-copy SHA-256 | 689f33d11ebb699a44d8a4aa468f24dde813c9060239f83474bf6d37bca82e09 |
Recovered source transcript
Download complete source text ↓20 lines · 1.8 KB
/** A room scene: poster + optional native Rive layer + hotspots resolved to real destinations. Generated by scripts/stage-approved-assets.ts. */
export const ROOM = { width: 1648, height: 928 } as const;
export interface Hitbox { x: number; y: number; width: number; height: number }
export type HotspotTarget = { kind: 'page'; pageId: string; project?: string } | { kind: 'anchor'; anchor: string; pageId?: string };
export interface SceneHotspot { id: string; label: string; hit: Hitbox; target: HotspotTarget; focusValue: string; trigger?: string }
export type SceneRiveDensity = '2x' | '4x';
export interface SceneRiveVariant { file: string; sha256: string }
export interface SceneRive { file: string; artboard: string; stateMachine: string; viewModel: string; sha256: string; variants?: Partial<Record<SceneRiveDensity, SceneRiveVariant>>; viewModelOptional?: boolean; nativeInputs?: string }
export interface SceneEnvironmentAsset { production_name: string; file: string; x: number; y: number; width: number; height: number; draw_order: number; z?: number; roles: string[]; compositeSafe?: boolean; alphaAudit?: { nontransparent_pct: number; opaque_pct: number; edge_nontransparent_pct: number; suspicious_full_rect: boolean } }
export interface SceneEnvironment {
staticBase: string;
vector: string;
sourceHash: string;
manifest?: string;
assets?: SceneEnvironmentAsset[];
referenceMetrics?: { width: number; height: number; rgb_mae: number; max_diff: number; pixels_differing: number };
}
export interface SceneCanvas { width: number; height: number }
export interface SceneRecord { id: string; canvas: SceneCanvas; poster: string; posterAlt: string; rive: SceneRive | null; hotspots: SceneHotspot[]; captionRest: string; captions: Record<string, string>; environment?: SceneEnvironment }