## Problem Description and Symbolic Representation

The problem can be broken down into the following components:

- **Variables:**
  - Let \(x_1\) be the number of orders of burritos.
  - Let \(x_2\) be the number of orders of tacitos.

- **Objective Function:**
  - The price per order of burritos is $17, and the price per order of tacitos is $12. The objective is to maximize revenue, which can be represented as \(17x_1 + 12x_2\).

- **Constraints:**
  - The food truck must sell at least 30 orders of burritos: \(x_1 \geq 30\).
  - The food truck can make at most 100 orders of burritos: \(x_1 \leq 100\).
  - The food truck must sell at least 20 orders of tacitos: \(x_2 \geq 20\).
  - The food truck can make at most 150 orders of tacitos: \(x_2 \leq 150\).
  - The food truck can only sell 250 orders in total: \(x_1 + x_2 \leq 250\).

## Symbolic Representation

```json
{
  'sym_variables': [('x1', 'burritos'), ('x2', 'tacitos')],
  'objective_function': '17*x1 + 12*x2',
  'constraints': [
    'x1 >= 30',
    'x1 <= 100',
    'x2 >= 20',
    'x2 <= 150',
    'x1 + x2 <= 250'
  ]
}
```

## Gurobi Code

```python
import gurobipy as gp

# Create a new model
m = gp.Model("Burritos_and_Tacitos")

# Define variables
x1 = m.addVar(lb=30, ub=100, name="burritos")
x2 = m.addVar(lb=20, ub=150, name="tacitos")

# Objective function: maximize revenue
m.setObjective(17*x1 + 12*x2, gp.GRB.MAXIMIZE)

# Additional constraint: total orders cannot exceed 250
m.addConstr(x1 + x2 <= 250)

# Solve the model
m.solve()

# Print the solution
if m.status == gp.GRB.OPTIMAL:
  print("Optimal solution found.")
  print(f"Burritos: {x1.varValue}")
  print(f"Tacitos: {x2.varValue}")
  print(f"Max Revenue: {17*x1.varValue + 12*x2.varValue}")
else:
  print("No optimal solution found.")
```