Waivers

Break a check rule for cause. Declare the break in the page with a measured reason, and learn what refuses and what only advises.

A waiverA waiver is a declared break of a check rule, with a measured reason, in the page's <script id="authoring"> block. is a declared break of a check rule, with a reason, in the page. The checks accept the break only when the reason names a place and a measured value. So a waiver records a decision, not an excuse.

Why it exists

A checkA check is an automatic measurement of a page or a film that reports a problem and a fix. measures the page and prints advice. Some rules have a good reason to break: a held wordmark that is the last beat, for example. A waiver lets the page say so, in the one place where the checks, the critique and the judge all read it. A rule broken without a waiver is a finding in the next draft.

How it works

Put one JSON block in the page.

<script type="application/json" id="authoring">
{
  "allow": ["world-held@3.5-6.2"],
  "_why": {
    "world-held@3.5-6.2": "world s4, 2.7 s: the wordmark is the last beat and a caret ticks on it"
  }
}
</script>
keywhat it holds
allowA list of entries. Each entry is a check code, or code@instance.
_whyAn object. The key is the exact allow entry. The value is the reason.

Entries

An entry has one of two forms.

formcoversexample
codeEvery finding of the check, in the whole film.world-held
code@a-bA finding that lies in the seconds a to b.world-held@3.5-6.2
code@tA finding at the second t.static-window@2.6

Prefer the scoped form. A bare entry hides every finding of that code, also the ones you did not see. Each check has its own code:

codethe check
world-heldA worldA world is the one element that holds one beat of the film, marked with data-world="<id>". stays longer than its limit.
static-windowThe picture holds still for too long.
tile-runA run of near-identical frames.
tail-tilesThe end of the film holds still.
unverified-finalA final of a recreation, without a passing match to the reference.

The draft prints the exact line to paste after each finding that you can waive: waive: "allow": ["world-held@3.5-6.2"], .... Copy the code from that line. The old code dead-air waives nothing, and so do glow and off-colour.

What a reason must contain

A reason counts only when all of these are true:

  1. It has 12 characters or more.
  2. It is not generic. The words “intentional”, “by design”, “deliberate”, “stylistic”, “fine”, “ok”, “as intended”, “on purpose”, “owner approved” and “owner decision” say nothing. A reason with fewer than three other words does not count.
  3. It names a place: a world id of this page (such as s4) or a second (such as at 2.6 s).
  4. It names a measured value, a number with a unit (such as 2.7 s, 3.4:1, 42%, 18 px). A second is one number but is not the measure. With only a second as place, the reason needs two numbers.
  5. It is not copied. The same reason on three waivers or more does not count.
reasoncounts?why
intentionalNoGeneric and under 12 characters.
the wordmark holds on purposeNoNo place and no number.
at 3.5 s the wordmark holdsNoA second but one number only.
world s4, 2.7 s: the wordmark is the last beat and a caret ticks on itYesA world id and a measure.

What refuses and what advises

A finding that you did not waive is advice: the draft prints it and goes on. Only these refuse:

whatwhat happens
A broken determinism ruleThe render stops. See Determinism.
A banned item, such as data-synth="bed"The render stops. See Audio.
A reason that does not countThe waiver covers nothing. The finding stays, and the draft says waiver "<entry>" refused: <why>.
A final of a recreation with no passing matchvawe ship refuses, unless the page waives unverified-final with a reason that counts.

The draft lists every waiver that covers nothing, and the judge sees every waiver with its reason. When a waiver covers a rule that no earlier draft fired, and its reason does not say tried, the draft adds a fix first line.

Limits

  • A waiver cannot change a threshold. It accepts one finding.
  • The reason is checked for form, not for truth. A critique from a fresh session checks that the decision is right.
  • A waiver in the brief, in a comment or in another file does not count. Only #authoring in the page does.

From the blogHTML to video format: the page contract

On this page