A developer controls the following canonical fields. Unknown members are rejected by the Python contract; generated images always store canonical JSON.
| Setting | Choices or range | Effect |
|---|---|---|
attachment_id, name | Portable id; display name | Stable identity and diagnostics. |
mode | observe, advisory, adaptive | Declares the host usage envelope. All remain non-authoritative. |
learning_mode | frozen, verified-head | Enables proposal-only final-layer updates when mode is adaptive. |
fixed_point_scale | 1..32767 | Represents one logical unit; 1024 is the normal default. |
value_limit | 1..32767 | Saturates every layer and bounds targets. |
parameter_budget | 1..1,000,000 | Rejects unexpectedly large models before evaluation. |
learning_rate_ppm | 0..1,000,000 | Integer learning rate for verified-head proposals. |
max_weight_step, max_bias_step | 0..value limit | Caps each proposed parameter movement. |
model_revision, parent_fingerprint | Positive revision; SHA-256 parent | Forms an auditable model lineage. |
Features
Each feature has a unique portable name, inclusive minimum and maximum, optional default, and description. A missing feature without a default fails. Extra feature names also fail; the runtime never silently ignores input.
Outputs
Each output has a unique label, activation threshold, and description. The highest score is selected; equal scores keep declaration order. Thresholds independently mark any number of outputs active.
Layers
Layers contain rectangular integer weight matrices, one integer bias per output row, and either linear or relu activation. Adjacent widths must match. Verified-head learning requires a linear final layer.
result = clamp(bias + trunc_toward_zero(sum(weight × input) / scale))