Skip to content

Document does not satisfy the requested level floor

Type URI: https://modeled-information-format.github.io/mif-rs/references/errors/level-floor-violation/v1 HTTP status: 422 Exit code: 5 Emitted by: mif-schema (MifSchemaError::LevelFloorViolation); also surfaced verbatim through mif-cli’s and mif-mcp’s Schema wrapper variant

document does not satisfy the {level} level floor: missing {joined field names}

({level} renders via Level’s own Display, e.g. L1/L2/L3 — it is not prefixed with an additional L.)

The instance passed to validate_level conformed to the canonical core MIF JSON Schema, but is missing one or more fields the requested level floor (L1, L2, or L3) additionally requires. Level floors are additive: L2 adds namespace, modified, temporal; L3 adds provenance and a non-null temporal.validFrom. L1 adds nothing beyond the core schema.

Known divergence from the JS reference validator (mif-docs-plugin’s mif-validate.mjs --level): its temporal.{field} check tests === undefined only, not null, so a document with temporal: { validFrom: null } passes the JS engine’s L3 check but fails this one. mif-rs treats a JSON null as missing everywhere, consistent with its own required-field check a few lines above in the same validator — the asymmetry looks like the JS side’s defect, not this one’s. Tracked for the mif-docs-plugin#30 engine-parity work; not fixed here since it would mean this engine silently accepting a null validFrom at L3, which is worse.

MaybeIncorrect — add the missing fields the requested level floor requires, then retry.