pub fn parse_surface_input<T: for<'de> Deserialize<'de>>( operation: Option<&str>, input: Value, ) -> Result<T, String>