Provides a data structure for pallet's actions. This is the internal representation of an action. User code should use pallet.action, where actions are represented via the functions that insert them into the session action plan.
Each action has a symbol associated with an action is used in error messages. The symbol does not have to resolve to a var.
execution specifies the execution model for the action.
Precedence is stored as a map, with :always-before and :always-after keys.
Each implementation is represented as a map of metadata and function. The map is stored in a map in an atom on the ::impls key of the metadata of the action, keyed by the dispatch value. This allows for the implementation function to be an anonymous named function, while still having metadata associated with it.
Return the execution model for the action.
Return the precedence map for the action.
Return the action's symbol.
Function to create an action. The action will have no initial implementations.