Ideas sought. A simple version of this might be possible by simply decomposing the mesh into a set of Triangles and then returning the sum of their integrals, i.e.:
function _integral_2d(f, mesh::SimpleMesh, rule::IntegrationRule)
triangle = _some_function_mesh_to_triangles(mesh)
integrand(triangle) = _integral(f, triangle, rule)
return sum(integrand, triangles)
end