/// <summary>
        /// Set a capability for a model.
        /// </summary>
        /// <param name="self">Element model to affect</param>
        /// <param name="capability">Capability to set</param>
        /// <param name="active">true to set the capability, false to remove it</param>
        public static void SetCapability(this IGraphElementModel self, Capabilities capability, bool active)
        {
            if (!(self.Capabilities is IList <Capabilities> capabilities))
            {
                return;
            }

            if (active)
            {
                if (!self.HasCapability(capability))
                {
                    capabilities.Add(capability);
                }
            }
            else
            {
                capabilities.Remove(capability);
            }
        }
 /// <summary>
 /// Tests if a model has the capability to be moved.
 /// </summary>
 /// <param name="self">Model to test</param>
 /// <returns>True if it has the capability, false otherwise.</returns>
 public static bool IsMovable(this IGraphElementModel self)
 {
     return(self.HasCapability(Capabilities.Movable));
 }