     lhs.image == rhs.image &&
     lhs.kind == rhs.kind &&
     lhs.action == rhs.action &&
+    (lhs.children as NSArray).isEqual(rhs.children as NSArray) &&
     (lhs.meta as NSDictionary).isEqual(rhs.meta as NSDictionary) &&
     compareRelations(lhs, rhs)
 }

  public var action: String?
  /// The width and height of the view model, usually calculated and updated by the UI component
  public var size = CGSize(width: 0, height: 0)
  /// A key-value dictionary for any additional information
  public var meta = [String : AnyObject]()
  /// A key-value dictionary for related view models

    if let action = action {
      dictionary[Key.Action.string] = action
    }

    dictionary[Key.Children.string] = children

    var relationItems = [String : [JSONDictionary]]()

