github-actions[bot]
Space-Deploy aus GitHub main
9de795a
Raw History Blame Contribute Delete
1.8 kB
/* AUTOGENERIERT aus packages/shared/schemas – nicht von Hand ändern (pnpm codegen). */
/**
* Vertrag 6: deklarative Norm-Regel (Daten statt Code, Norm-Regelsatz-v0). Beide Interpreter (TS @fp/shared · Python fp_engines) lesen exakt dieses Format. Parameter-Konventionen je type: siehe packages/shared/src/rules/README.md.
*/
export interface Regel {
id: string;
/**
* «alle» = Basis-Rahmen, gilt in jedem Raum. Im Grossraum gelten Regeln pro Zone.
*/
roomType: "alle" | "bad" | "kueche" | "wohnen" | "schlafen" | "essen" | "flur" | "sonstig";
/**
* funktionsTyp des Zielobjekts (z.B. wc, lavabo) oder «*» für alle Objekte bzw. raumbezogene Regeln.
*/
appliesTo: string;
kategorie: "rahmen" | "objekt-raum" | "objekt-objekt" | "sperrzone" | "anschluss" | "ergonomie";
type:
| "collision"
| "wall-distance"
| "object-distance"
| "clearance"
| "door-swing"
| "keep-clear"
| "host-binding"
| "connection"
| "circulation"
| "relation";
/**
* hard = Constraint (muss) · soft = Score (Ergonomie/Stil).
*/
severity: "hard" | "soft";
/**
* Parametrierung je type (z.B. minDist, depth, width, radius, anschluss, maxDist, measure).
*/
params?: {
[k: string]: number | string;
};
/**
* Regel gilt nur in diesem Normprofil; ohne Feld: in allen.
*/
normProfile?: "ch" | "eu";
/**
* Profil → params-Overrides (CH/EU-Werte über der Basis).
*/
profilOverrides?: {
[k: string]: {
[k: string]: number | string;
};
};
/**
* Strengere Werte, wenn Barrierefrei-Overlay aktiv (Mechanik vorgesehen, Werte post-POC).
*/
barrierefreiOverride?: {
[k: string]: number | string;
};
quelle: string;
status: "zu-verifizieren" | "verifiziert";
hinweis?: string;
}