let s = import "../schema.ncl" in

# Rustelo domain — full-stack Rust framework (Leptos + Axum).
# Authority: rustelo project. Schemas queried via schema_cmd.
# Consumers declare .rustelo.ontoref/ for their implementation.

s.Domain & {
  id          = "rustelo",
  name        = "Rustelo Framework",
  repo_kinds  = ["RusteloApp"],
  description = "Full-stack Rust framework based on Leptos and Axum. Provides schemas for app layers, WASM targets, plugin system, and routing contracts.",
  short_alias = "rs",

  # NCL schemas live in the rustelo project — not in ontoref.
  # Resolves to the rustelo project root via the global registry so consumers
  # import as: import "%{schema_root}/domains/rustelo/ontology/schema.ncl".
  schema_cmd  = "ontoref project root rustelo",

  commands = [
    { id = "layers",    description = "List application layers declared in catalog" },
    { id = "plugins",   description = "Plugin registry: registered, active, interface contracts" },
    { id = "routes",    description = "Route manifest: paths, handlers, auth requirements" },
    { id = "wasm",      description = "WASM build targets and feature flags" },
    { id = "publish-contract", description = "Content-publisher consumption contract: the 6 answers + their oracles, declared once on the producer" },
    { id = "probe",     description = "Run the end-to-end publish->activate->index oracle in this RusteloApp (ADR-056 witnessed verification)" },
  ],

  pages = [],
}
