Danger zone
Sharp edges when using open_fdd as a library.
1. Trust rule YAML like code
Only load rules from trusted paths. Expression rules run pd.eval / restricted eval over your DataFrame columns—do not merge untrusted YAML into production without review.
2. Column map mistakes look like “silent” skips
With skip_missing_columns=True (default), a bad column_map can cause a rule to be skipped with a warning instead of raising. Use input_validation='strict' and skip_missing_columns=False in CI when you want failures loud.
3. Units and scaling
Expressions use raw column values. 0–1 vs 0–100 command scaling is your responsibility unless you call normalize_cmd(...) in the expression (see Expression rule cookbook).
4. Operational data deletion
Deleting rows in your warehouse or database is outside this package. If you deploy a full platform, data-retention and CRUD delete semantics are documented in open-fdd-afdd-stack.