## Step 1: Define the symbolic representation of the problem
The problem involves two variables: 'cheeseburgers' and 'rotisserie chickens'. Let's denote 'cheeseburgers' as $x_1$ and 'rotisserie chickens' as $x_2$. The objective function to maximize is $6x_1 + 3x_2$.

## Step 2: List the constraints in symbolic notation
The constraints given are:
1. $6x_1 + 4x_2 \geq 10$ (umami index minimum)
2. $6x_1 + 5x_2 \geq 18$ (dollar cost minimum)
3. $4x_1 + 9x_2 \geq 56$ (grams of protein minimum)
4. $x_1 - 3x_2 \geq 0$ (cheeseburgers vs rotisserie chickens constraint)
5. $6x_1 + 4x_2 \leq 20$ (umami index maximum)
6. $6x_1 + 5x_2 \leq 43$ (dollar cost maximum)
7. $4x_1 + 9x_2 \leq 89$ (grams of protein maximum)
8. $x_1$ is an integer (nonfractional number of cheeseburgers)
9. $x_2$ can be a non-integer (nonfractional amount of rotisserie chickens)

## 3: Convert the problem into Gurobi code
We will use Gurobi's Python API to model and solve this problem.

```python
import gurobi

# Create a new model
model = gurobi.Model()

# Define the variables
x1 = model.addVar(name='cheeseburgers', vtype=gurobi.GRB.INTEGER)  # integer variable for cheeseburgers
x2 = model.addVar(name='rotisserie_chickens')  # continuous variable for rotisserie chickens

# Define the objective function
model.setObjective(6 * x1 + 3 * x2, gurobi.GRB.MAXIMIZE)

# Add constraints
model.addConstr(6 * x1 + 4 * x2 >= 10, name='umami_min')
model.addConstr(6 * x1 + 5 * x2 >= 18, name='cost_min')
model.addConstr(4 * x1 + 9 * x2 >= 56, name='protein_min')
model.addConstr(x1 - 3 * x2 >= 0, name='cheeseburgers_vs_chickens')
model.addConstr(6 * x1 + 4 * x2 <= 20, name='umami_max')
model.addConstr(6 * x1 + 5 * x2 <= 43, name='cost_max')
model.addConstr(4 * x1 + 9 * x2 <= 89, name='protein_max')

# Optimize the model
model.optimize()

# Print the solution
if model.status == gurobi.GRB.OPTIMAL:
    print('Objective: ', model.objval)
    print('Cheeseburgers: ', x1.varValue)
    print('Rotisserie Chickens: ', x2.varValue)
else:
    print('The model is infeasible')
```

## 4: Provide the symbolic representation
The symbolic representation of the problem is:
```json
{
    'sym_variables': [('x1', 'cheeseburgers'), ('x2', 'rotisserie chickens')],
    'objective_function': '6*x1 + 3*x2',
    'constraints': [
        '6*x1 + 4*x2 >= 10',
        '6*x1 + 5*x2 >= 18',
        '4*x1 + 9*x2 >= 56',
        'x1 - 3*x2 >= 0',
        '6*x1 + 4*x2 <= 20',
        '6*x1 + 5*x2 <= 43',
        '4*x1 + 9*x2 <= 89'
    ]
}
```