export interface Gradient {
  term_left: string
  term_left_description: string
  term_right: string
  term_right_description: string
  value: number | null
  notes: string | null
  shortform: boolean
}

export interface DiagnosticSet {
  set_name: string
  set_description: string
  gradients: Gradient[]
}

export interface AnalysisGradient {
  term_left: string
  term_left_description: string
  term_right: string
  term_right_description: string
  instructions: string
  automated: boolean
  value: number | null
  notes: string | null
}

export interface Metadata {
  protocol: string | null
  description: string | null
  analyst: string | null
  standpoint: string | null
  timestamp: string | null
  shortform: boolean
}

export interface BicorderData {
  name: string
  schema: string
  version: string
  description: string
  author: string
  date_modified: string
  metadata: Metadata
  diagnostic: DiagnosticSet[]
  analysis: AnalysisGradient[]
}

export interface BicorderState extends BicorderData {
  // Add any additional runtime state here
}
