Skip to content

ActionVariantResolution

ActionVariantResolution = { effect: ActionEffect; status: "available"; transition: ActionVariantTransition; variant: VariantName; } | { status: "instance_missing"; } | { status: "vessel_unknown"; variant: VariantName; vesselId: VesselId; } | { status: "action_not_on_variant"; variant: VariantName; }

Defined in: packages/client/src/lib/command-processor/action-manager.ts:48

How an Action resolves against its Instance’s Variant at the moment the Action’s turn comes.

  • available: the Action is defined on variant, the Instance’s current Variant, transition describes its declared transitionsTo and effect its declared effect.
  • instance_missing: the Instance is not in the store.
  • vessel_unknown: no Vessel definition is registered for the Instance.
  • action_not_on_variant: the current Variant does not define the Action.

{ effect: ActionEffect; status: "available"; transition: ActionVariantTransition; variant: VariantName; }

readonly effect: ActionEffect

The Action’s declared effect on variant. Only an Action declared 'none' may run without a handler.

readonly status: "available"

The Action is defined on the current Variant.

readonly transition: ActionVariantTransition

The Action’s declared Variant transition on variant.

readonly variant: VariantName

The Instance’s Variant before this Action runs.


{ status: "instance_missing"; }

readonly status: "instance_missing"

The Instance is not in the store.


{ status: "vessel_unknown"; variant: VariantName; vesselId: VesselId; }

readonly status: "vessel_unknown"

The Instance’s Vessel has no registered definition.

readonly variant: VariantName

The Instance’s current Variant.

readonly vesselId: VesselId

The unregistered Vessel.


{ status: "action_not_on_variant"; variant: VariantName; }

readonly status: "action_not_on_variant"

The current Variant does not define the Action.

readonly variant: VariantName

The Instance’s current Variant.