| max | No | upper bound, inclusive. Only applies when operator is between. | |
| min | No | lower bound, inclusive. Only applies when operator is between. | |
| set | No | the values the field must be one of (or none of). Only applies when operator is in or not_in. | |
| text | No | the text the field must contain. Only applies when operator is contains. | |
| count | No | N, for the counted requirements. Only applies when require is at_least or at_most or exactly. | |
| field | No | which field of each row to test (e.g. `size`, `score`). Leave empty when the rows are plain numbers. | |
| items | Yes | the rows to check. Wire a json/list output (bands, guides, assays, amplicons). | |
| label | No | what this gate is checking, in your words. It becomes the message when it fails. | |
| value | No | the value to compare against. Only applies when operator is == or != or > or >= or < or <=. | |
| _files | No | The project: record references shaped like _subject. Their records become library documents a tool names in sequences/parts/document; a trace or alignment is found by file name. | |
| record | No | optional: the record this gate is guarding. It comes back out of `record` when the check passes, so the gate sits in the middle of a chain. | |
| require | No | what must hold across the table. Values: all (every row), any (at least one row), none (no row), at_least (at least N rows), at_most (at most N rows), exactly (exactly N rows). | all |
| _subject | No | The record to act on: exactly one of sequence, accession (+source), sample (an id from list_samples) or file ({name, text} or {name, base64}); record_index picks one record of several. | |
| operator | No | how each row is compared. Values: == (equals), != (does not equal), > (greater than), >= (at least), < (less than), <= (at most), between (between (inclusive)), in (is one of), not_in (is none of), contains (contains text), is_true (is true), not_empty (is not empty). | >= |
| report_only | No | report the verdict instead of stopping the run: wire `passed` (or `failed`) into another step's condition to choose a branch. | |