# Check metadata against what is declared

> Answers what a write would be told, without writing: a caller preparing a batch learns which declaration would refuse it, and why, before it sends anything.

It reports; it does not enforce. The refusal itself lives in each resource's own write path, because a check a writer has to call is advisory and the writer who skips it is the one the rule exists for.

  Request

<RequestSchema
  {...require("./validate-metadata.RequestSchema.json")}
>

<StatusCodes
  {...require("./validate-metadata.StatusCodes.json")}
>
