INTEGRATION & CONFORMANCE
Integration guide
Adopt only the capabilities you need and test the real request path. Consumers connect datasets and game engines.
Choose your components
| Component | Responsibility |
|---|---|
| tessembly-core | AST, errors and standard hold-supply state |
| tessembly-text | Compact parse/format |
| tessembly-relations | Logic/count/window/occurrence evaluation and local proofs |
| tessembly-codec | Standard pattern AST binary |
| tessembly-document | Advanced declarations, environment, references and document binary |
| tessembly-cli | File commands and reference test ports |
| tessembly-conformance | Independent tools for external consumers |
Library consumers need not distribute the CLI, documentation site or conformance executables. The TCK does not import the product parser/evaluator to manufacture expected answers; it uses small independent oracles and fixed vectors.
Connect a test port to your application
cargo build --locked --workspace
target/debug/tessembly-tck --report report.json -- my-host test-port
target/debug/tessembly-filter-tck --report filters.json -- my-host test-portThe compact port is tessembly.test-port.v1. Requests include id, protocol, profile and op. Operations cover capabilities, compile, enumerate_D, evaluate_U_witness, encode/decode, hold_step, check_adapter and resolve_config. stdout is JSON Lines only; send diagnostics to stderr.
{"id":1,"protocol":"tessembly.test-port.v1","profile":"tessembly.rfc3.order.v1","op":"compile","text":"P4:D(I<T&T)"}Advanced documents use tessembly.document-test-port.v1 and the reference CLI doc-port: validate, roundtrip, project, decode, hold and resolve. project only projects a standard AST; it does not execute the environment. Carry the returned environment along with the projection.
Verify the real connection
Wire the test port through actual input, request compilation, execution boundary and output. Passing a separate test-only parser does not test the application. External developers provide GUI widget adapters for E2E tests.
Check that changing D/U, scope or NONE/EMPTY/occupied hold changes real output as required. Changing only hidden future supply must not affect a choice made from identical allowed observation histories. Branching after a legal reveal remains allowed.
Result contracts
| Status | Meaning |
|---|---|
| INVALID_SYNTAX / INVALID_DOCUMENT | Syntax or structure violation |
| CONFIG_CONFLICT | Explicit environment conflict |
| UNSAT | Evidence of impossibility in the stated domain |
| NOT_CHECKED | Not sufficiently checked |
| UNSUPPORTED / UNSUPPORTED_STATE | Capability or state outside support |
| INCOMPLETE | Bounded work or cancellation prevented completion |
Matching relations, legal supply, hold transitions and successful placements are different claims. Distinguish complete=true with exactly zero results from incomplete work. A use-order check is not a PC solution.
Consumer-owned integration envelope
Consumers load supplies from files/databases and pass them to Tessembly. Lookup, caching, setups, success metrics and policy indices remain host-owned. Tessembly processes supplied data and relations; it adds no Q1/M1/MATCH layer.
Return UNSUPPORTED for a required condition you cannot interpret. Dropping it or widening the supply is not equivalent conversion. Test supply/hold/visibility through the actual adapter path.