27 lines
1.1 KiB
TypeScript
27 lines
1.1 KiB
TypeScript
/**
|
||
* Warning codes emitted by the genetics engine. The engine is language-neutral:
|
||
* it emits CODES only. German texts are mapped in de.ts (UI layer).
|
||
*
|
||
* Modelled as a const object (not a TS `enum`) because the project's tsconfig
|
||
* enables `erasableSyntaxOnly`.
|
||
*/
|
||
export const GeneticsWarningCode = {
|
||
/** Schecke × Schecke: SpSp embryos die in utero; ~25% fewer live young. */
|
||
ScheckeLethal: 'SCHECKE_LETHAL',
|
||
/** Rex × Rex: ReRe is semi-lethal; reduced viability of homozygous young. */
|
||
RexSemiLethal: 'REX_SEMI_LETHAL',
|
||
/** WP × WP: S(l)S(l) is prenatal-lethal (Rumpback/megacolon); fewer live young. */
|
||
SlsLethal: 'SLS_LETHAL',
|
||
/** Sp + Sls together -> Superschecke: very high white, deafness-prone (info). */
|
||
SuperscheckeDeaf: 'SUPERSCHECKE_DEAF',
|
||
} as const
|
||
|
||
export type GeneticsWarningCode =
|
||
(typeof GeneticsWarningCode)[keyof typeof GeneticsWarningCode]
|
||
|
||
export interface GeneticsWarning {
|
||
readonly code: GeneticsWarningCode
|
||
/** Optional structured detail for the UI (e.g. fraction of young lost). */
|
||
readonly detail?: Record<string, string | number>
|
||
}
|