Action manifest entry surfaced by the agent platform. The inputType/outputType references point at internal Go types; treat them as opaque labels.
inputType
outputType
@type t() :: %Spatio.Model.ActionDescriptor{ canonical_id: String.t() | nil, category: String.t() | nil, description: String.t() | nil, id: String.t(), inputType: String.t() | nil, metadata: %{optional(String.t()) => any()} | nil, name: String.t() | nil, outputType: String.t() | nil }