A Tile-stack object is a stack of Tile objects. Every Tile object is contained within a Tile-stack object.
A Vector object is a Tile-stack in motion. It includes 2 additional properties: dx/dy, or x/y velocity in pixels/clock-tick. Both of these properties are floating point. Normally a frame change occurs every clock-tick.
Properties:
containerId: a unique integer identifying a container of Tile objects. If zero, the Tile-stack object is contained in a Row-grid object.
cards: a list of Tile objects
dimensions: width, height (in pixels)
position: left, top (in pixels)
offsets: leftOffset, topOffset (in pixels); distance between adjacent Tile objects
margins: leftMargin, topMargin (in pixels); distance from upper left corner of circle/square to upper left corner of cell
colors: backgroundColor, borderColor, selectedColor, selectedForegroundColor
font: font of Tile objects containing printable characters
hasBorder: if true, a rectangular one-pixel wide border is displayed, marking the border of the cell
destList: a list of containerId values indicating valid destinations that can accept drag operations originating with this Tile-stack object
clickable: if true, and length of destList equals one, then user need only click on this Tile-stack object, sending its Tile object(s) to destination container object
canDrag: if false, user cannot drag Tile objects away from this Tile-stack object
canDrop: if false, user cannot drop Tile objects onto this Tile-stack object
infinite: if true, top Tile object is duplicated rather than moved when user drags Tile object away from this Tile-stack object
random: if true, when user drags Tile object away from this Tile-stack, the Tile object is selected at random from all Tile objects contained in this Tile-stack. If both random and infinite are true, the selected Tile object is duplicated/copied rather than moved.
visible: if false, Tile-stack is not visible to user
multiDrag: if true, user can drag more than one Tile object away from this Tile-stack at once. If false, user can only drag away the top Tile object.
isDefault: if true, all properties of this Tile-stack are set equal to the properties of the defStack object of the parent Row-grid object.