Conformance
Validate before render.
Conformance keeps adapters boring and renderers trustworthy: one valid event shape, semantic public channels, bounded metadata, and no protected substrate in public examples.
Direct answer
What makes an adapter conformant?
A conformant adapter emits valid Signal Contract JSON, preserves audit identifiers, uses public semantic labels, and keeps private scoring, source assets, and implementation details out of the event.
Validation
Producer rules
- Validate against /protocol/v1/schema.json before sending events to a renderer.
- Use one public semantic channel: nominal, advisory, warning, critical, recovery, opportunity, or handoff.
- Keep VET, intensity, hue, and pulse normalized inside the schema ranges.
- Put renderer-safe context in metadata; keep private formulas and substrate out of public events.
- Treat examples as fixtures, not as permission to publish private operational data.
{
"schema": "https://vibenet.ai/protocol/v1/schema.json",
"command": "ajv validate -s public/protocol/v1/schema.json -d event.json",
"expected": "valid Signal Contract event"
}Renderer expectations
Consumers should stay predictable.
- Renderers may ignore optional metadata, but they must respect required flat fields.
- Renderers should degrade gracefully when audio is blocked or reduced motion is requested.
- Renderers should not invent private channel codes or expose protected substrate in public UI.
- Receipts should preserve event id, producer, entity, occurred_at, and schema_version for audit.