This will make things more consistent in the long term, but I realize one major cost: our button abstraction doesn't work well with luaML and compute_layout. So we need something to replace it.