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
Message
Section titled “Message”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.
Suggested fix
Section titled “Suggested fix”MaybeIncorrect — add the missing fields the requested level floor requires, then retry.