export interface RuneWakerBossObjectiveSource { readonly id: string; readonly sourceSpawnId: number; readonly position: readonly [number, number, number]; readonly [key: string]: unknown; } export interface RuneWakerSourceAuthoredObjectiveOrder { readonly kind: "source-authored"; readonly spawnIds: readonly number[]; readonly evidence: readonly string[]; } export interface RuneWakerObjectiveOrderProvenance { readonly authoritative: boolean; readonly kind: "source-authored" | "healerMan-distance-derived"; readonly evidence: readonly string[]; readonly sourceSpawnIds?: readonly number[]; } export function orderBossObjectives( rawBosses: readonly T[], entrance: readonly [number, number, number], configuredOrder?: RuneWakerSourceAuthoredObjectiveOrder, ): { readonly ordered: readonly T[]; readonly provenance: RuneWakerObjectiveOrderProvenance; };