The graph layer is now the shortest route into TSMM.
Instead of beginning with prose and then asking implementers to translate that prose into their own diagrams, TSMM now provides a graph-first surface that can be modeled, rendered, validated, and compared directly. That matters because a meta-model starts to become operational only when people can express systems in a form that tooling can inspect.
The graph layer is where the repository’s main promises meet each other:
In other words, the graph is where TSMM stops being only a reference model and starts behaving like a usable modeling surface.
The graph layer now has three anchor points:
schemas/tsmm-graph.schema.json — the canonical graph schemamodel/graph/tsmm.graph.json — the canonical graph instance used as the main branch reference topologyscripts/validate_tsmm_graph.py — graph validation with schema and semantic checksAlongside those anchors are reusable examples and rendering support:
examples/tsmm-ecosystem-example.jsonexamples/profiles/examples/systems/scripts/render_tsmm_graph.pyexamples/registries/tsmm-registry-example.jsonmodel/graph/tsmm.graph.json is not meant to describe one protocol or one product. It is the compact reference topology for the recurring TSMM path:
authority → policy/profile → issuance/verification → evidence/assessment → trust decision → operational effect
That reference path gives contributors a concrete place to start before moving into ecosystem-specific system examples.
The schema currently supports these node classes:
TrustDomainGovernanceAuthorityTrustRegistryRegistryServiceIssuerVerifierSubjectAgentCredentialPolicyAssuranceProfileEvidenceBundleAssessmentTrustDecisionEffectRelyingPartyThe graph schema and validator support a controlled relationship vocabulary:
governsdefinesoperatesregistersauthorizesissuesverifiesassertsdelegatesconstrainssubstantiatesassessesinformsproducesreliesOnanchorspublishesThat list is intentionally smaller than the total number of relationships one might imagine. The goal is not to capture every nuance in one schema. The goal is to provide a stable vocabulary that remains reusable across examples and bindings.
The graph validator checks for:
evidenceRefsbindingRef, comparisonRef, validationProfileRef, and registryRefThis means the graph layer is not just a diagram format. It is a constrained modeling surface with enough semantics to catch common structural mistakes early.
The graph examples now cover multiple starting points:
model/graph/tsmm.graph.jsonexamples/tsmm-ecosystem-example.jsonexamples/profiles/ssi-ecosystem.jsonexamples/profiles/agent-trust-network.jsonexamples/profiles/agent-governance-network.jsonexamples/profiles/trust-registry-federation.jsonexamples/profiles/dpi-trust-layer.jsonexamples/systems/trqp-registry-system.jsonexamples/systems/openid-federation-system.jsonexamples/systems/decentralized-directory-system.jsonexamples/systems/content-authenticity-workflow.jsonexamples/systems/verifiable-trust-community-system.jsonThis spread matters because contributors usually need different entry points. Some want a compact canonical topology. Others want a federation example. Others need a concrete workflow they can adapt.
You can render a graph example directly.
python scripts/render_tsmm_graph.py model/graph/tsmm.graph.json --format mermaid --cluster
Or render a concrete system example:
python scripts/render_tsmm_graph.py examples/systems/content-authenticity-workflow.json --format dot
A practical way to use the repo is:
That sequence gives the repository a clearer shape around model, bind, validate, compare rather than leaving readers to infer how the parts relate.