Topics

A FactTopic is the stable public question you're asking — e.g. "what is this vendor's maximum input/output retention duration." It's the identity you pass as factTopicSlug. It never changes even if the underlying predicate definition is later revised.

List topics

GET /v1/topics
[
  {
    "topic": "input-output-retention-maximum-duration",
    "displayName": "Input/output retention — maximum duration",
    "description": "...",
    "availability": "ACTIVE"
  }
]

availability is "ACTIVE" when the topic currently resolves to a real, bound definition, or "UNAVAILABLE" otherwise — resolving Reality against an unavailable topic returns REALITY_NOT_RESOLVED, not FACT_TOPIC_NOT_FOUND: the topic identity is real, there's just nothing currently bound to answer it.

Retrieve one topic

GET /v1/topics/{topic}

Adds scopeSchema — the real, governed JSON Schema your scope object must satisfy for this topic.

What you'll never see here

No internal predicate or predicate-version id appears anywhere in this response. The topic slug is the only identity you need — the Gateway resolves which underlying predicate definition currently answers it.