COS v0.2 Conformance
Version: 0.2
Status: Normative
Category: Conformance
1. Conformance classes
COS defines independent conformance classes. An implementation MUST state which class or classes it claims.
1.1 Core Producer
A Core Producer emits Context Objects. Every emitted object MUST satisfy the normative Core Model prose and the v0.2 JSON Schema. It MUST preserve observed selection text, MUST derive context from source-grounded signals, and MUST NOT require an Extension to interpret core fields.
1.2 Core Consumer
A Core Consumer reads Context Objects. It MUST interpret core fields according to Part II, MUST NOT reinterpret the selected text, and MUST safely ignore Extension namespaces it does not support.
1.3 Runtime
A conforming Runtime implements the Pipeline profile in Part III. It MUST also conform as a Core Producer whenever it emits Context Objects.
1.4 Plugin
A conforming Plugin implements the Plugin and compatibility profile in Part IV. Plugin conformance does not by itself imply Core Producer or Consumer conformance.
1.5 Adapter
A conforming Adapter implements Chapter 410. It MUST produce input that can be completed into a conforming Context Object and MUST NOT expose live source-runtime objects in the exchange representation.
2. Structural and semantic conformance
The JSON Schema is authoritative for JSON structure. Normative prose is authoritative for field meaning and behavior. Passing schema validation is necessary but not sufficient.
3. Optional features
Omitting an optional field or profile does not make a core object non-conforming. If an implementation emits an optional field, that field MUST satisfy all requirements that apply to it.
4. Claims
A public conformance claim SHOULD identify the COS protocol version, conformance classes, supported Extension namespaces, and known limitations.