Text this: Bidirectional Runtime Enforcement of First-Order Branching-Time Properties