public boolean check() {
        if(name == null) return false;
        if(descr == null) return false;
        if(delay == -1) return false;
        if(icnt == -1) return false;
        if(ocnt == -1) return false;
        if(ecnt == -1) return false;
        if(smask == -1) return false;
        if(table == null) return false;
        //if(cnames == null) return false;
        
        int columns = icnt + ecnt * 2  + ocnt;
        //int rows = (int)Math.pow(Integer.bitCount(smask) + 1, icnt + ecnt);
        
        //if(table.length != rows) return false;
        //if(cnames.length != columns) return false;
        for(Integer[] row : table) {
            if(row.length != columns) return false;
        }
        return true;
    }