FRUBLD
...
pseudo("perspective - white at front")
cross match{
case BOTTOM => pseudo("rotate to matching center")
case FRONT_MIDDLE => pseudo("replace currently occupying position at top.").pseudo("rotate toplayer twize ").pseudo("rotate ortogonally - side, to replace white-x edge").pseudo("rotate again toplayer twize to fix the colors")
case FRONT_BOTTOM | TOP_BOTTOM => pseudo("turn front cw so becomes middle edge - F' ").pseudo("U'RU - turn replace turnitback")
}
...
pseudo("perspective - white at bottom")
corner match{
case R => RUR'
case L => F'U'F
case U => RU2R'U'RUR'
case I("correct position incorrectly flipped") => RUR'RU2R'U'RUR'
}
...
pseudo("locate all non-yellow sticker configs")
pseudo("match side")
pseudo("right position perspectivize")
middle match{
case F => R'U'R'U'R'URUR
case B => RURURU'R'U'R'
case I =>("pretend to insert by case F (or B) ")R'U'R'U'R'URUR RURURU'R'U'R'
}
//TODO bit more deep with recursion
...
toplayer_edges match{
case HORIZONTAL_LINE => FRUR'U'F'
case L_SHAPE => fRUR'U'f'
case NONE => goto HORIZONTAL_LINE then L_SHAPE
}
//TODO toplayer_corners
//RUR'URU2R'
lastly
(R'FR')B2(RF'R')B2R2
(RU')(RU)(RU)(RU')R'U'R2