Immutable, exact-revision protocol facts used by admission and support reports.
A profile catalogs one pinned revision and distinguishes implemented rules from known-but-unsupported rules. Admission executes only the implemented subset; catalog completeness is not a claim of full conformance.
Summary
Types
@type batching() :: :allowed | :forbidden
@type metadata_policy() :: %{
request: :required | :optional,
notification: :required | :optional
}
@type scope() :: :complete | :implemented_slice
@type status() :: :released | :experimental | :deprecated
@type t() :: %Snodo.Protocol.Profile{ batching: batching(), capabilities: [String.t()], era: :session | :stateless, limitations: %{optional(atom()) => atom() | String.t()}, methods: [Snodo.Protocol.Profile.Method.t()], request_metadata: metadata_policy(), scope: scope(), specification: String.t(), status: status(), transports: %{optional(atom()) => transport_status()}, version: String.t() }
@type transport_status() :: :tested | :implemented | :unsupported | :unmeasured