Wraps the data reactive every module server receives so that downstream
readers always see a data frame. A NULL value (which a parent app can emit
briefly while switching datasets) becomes a silent shiny::req() skip rather
than an error cascade through every observer, and anything else is coerced
with as.data.frame() before use.