export const deadline = z.object({
id: z.string(),
title: z.string(),
targetAt: z.isoString(),
status: z.enum(['pending', 'met', 'missed']),
causalVectorId: z.string().nullable(),
});export const causalVector = z.object({
id: z.string(),
name: z.string(),
direction: z.enum(['up', 'down', 'sideways']),
weight: z.number().min(0).max(1),
metadata: z.record(z.unknown()),
});export const incidentWorkflow = z.discriminatedUnion('status', [
z.object({ status: z.literal('open'), openedAt: z.isoString() }),
z.object({ status: z.literal('investigating'), reason: z.string() }),
z.object({ status: z.literal('resolved'), resolvedAt: z.isoString() }),
]);