interface IImageRegion
{
// get whole image that the region refers to
public default Img image() { null; }
// which object made this
public O creator();
public default int indexInCreator() { ret 0; }
// smallest rectangle that all of the region's pixels are contained in
public Rect bounds();
public int numberOfPixels();
public Pt firstPixel();
public Iterator pixelIterator();
public bool contains(int x, int y);
// gets the region's color (what exactly this means is defined
// by the crea)
public RGB color();
}