MD

Action

canonical/action.md

Action

Purpose

Defines an interaction that may occur between Objects.

An Action describes behavior, not implementation. It expresses what interactions are possible within the canonical model without prescribing how they are performed.

Responsibilities

Used By

Structure

An Action contains:

The canonical structure is defined in action.json.

Semantics

An Action represents a capability rather than an event.

Actions are not executions or history. They describe what may occur.

For example:

Actions may exist independently or be associated with one or more Objects.

An Object may:

Invocation and availability

An Action is invoked through its operation_invocation — the canonical operation the
platform processes into a new Dataset (the operation name, its arguments, and the id of the
Object it targets). Every Action carries an operation_invocation. An entry that carries no
operation_invocation is not a canonical Action and is rejected by the component that
produced it; it is never emitted across a Component boundary.

There is no URL on an Action. An Action is not a destination string a consumer opens. A
reference to an external page, a document, or another resource is a Resource — or a
Relationship to one — not an Action (see resource.md, relationship.md). "Following a link"
is focusing that Resource, a platform operation, not a consumer interpreting a string.

Every Action carries availability — state and reason:

- state — whether the capability is currently offered. enabled or unavailable
(extensible). This is not the authorization system; it communicates only whether the
Action is presented as takeable right now.
- reason — member-facing copy explaining an unavailable state, owned by the component
that produced the Action (a Service, or World). Empty when state is enabled.

In a World Dataset, World normalises availability on every Action: the state and reason a
Service supplied are preserved; where a Service supplied neither, World sets
{ enabled, "" }. A consumer renders an Action from availability.state and reason as
given. It does not compute availability from the Action's shape, infer it from the presence
or absence of a target, or compose its own reason copy.

Recognized detail: opening an Object

An open Action's effect is to open its target.

Focusing a Finding opens the Object it references on Carry. Following a link inside an Object
opened on Carry navigates within that Object — it does not open another Object (see layout.md,
Object navigation, and context.md). window and workspace are not part of this model; they
are noncanonical presentation terms (see layout.md).

Scope

Actions describe interactions only.

They do not define:

Those concerns belong to the systems that consume the canonical model.

Invariants

Related Models