To solve the given optimization problem, we first need to translate the natural language description into a symbolic representation. This involves defining variables, an objective function, and constraints based on the problem statement.

Given:
- Variables: oreos (x0), lemons (x1), pickles (x2)
- Objective Function: Minimize 6*x0 + 8*x1 + 3*x2
- Constraints:
  1. Calcium from lemons plus pickles >= 10
  2. Calcium from oreos plus lemons >= 4
  3. Calcium from oreos plus lemons plus pickles >= 4
  4. Healthiness rating from lemons and pickles >= 7
  5. Healthiness rating from oreos and lemons >= 9
  6. Healthiness rating from oreos plus lemons plus pickles >= 9
  7. 4*x1 - 7*x2 >= 0
  8. Calcium from oreos and lemons <= 22
  9. Calcium from lemons and pickles <= 29
  10. Healthiness rating from lemons and pickles <= 25

The symbolic representation of the problem is:
```json
{
    'sym_variables': [('x0', 'oreos'), ('x1', 'lemons'), ('x2', 'pickles')],
    'objective_function': '6*x0 + 8*x1 + 3*x2',
    'constraints': [
        'x1 + x2 >= 10/1',  # Adjusted for milligrams of calcium
        '7*x0 + x1 >= 4',
        '7*x0 + x1 + 6*x2 >= 4',
        '8*x1 + x2 >= 7',
        '2*x0 + 8*x1 >= 9',
        '2*x0 + 8*x1 + x2 >= 9',
        '4*x1 - 7*x2 >= 0',
        '7*x0 + x1 <= 22',
        'x1 + 6*x2 <= 29',
        '8*x1 + x2 <= 25'
    ]
}
```

Given the nature of the variables (all can be fractional), we will model them as continuous variables in Gurobi.

Here is the Python code using Gurobi to solve this optimization problem:
```python
from gurobipy import *

# Create a new model
m = Model("Optimization_Problem")

# Define variables
x0 = m.addVar(lb=0, vtype=GRB.CONTINUOUS, name="oreos")
x1 = m.addVar(lb=0, vtype=GRB.CONTINUOUS, name="lemons")
x2 = m.addVar(lb=0, vtype=GRB.CONTINUOUS, name="pickles")

# Set the objective function
m.setObjective(6*x0 + 8*x1 + 3*x2, GRB.MINIMIZE)

# Add constraints
m.addConstr(x1 + x2 >= 10/1, "Calcium_from_lemons_and_pickles")
m.addConstr(7*x0 + x1 >= 4, "Calcium_from_oreos_and_lemons")
m.addConstr(7*x0 + x1 + 6*x2 >= 4, "Calcium_from_all")
m.addConstr(8*x1 + x2 >= 7, "Healthiness_rating_from_lemons_and_pickles")
m.addConstr(2*x0 + 8*x1 >= 9, "Healthiness_rating_from_oreos_and_lemons")
m.addConstr(2*x0 + 8*x1 + x2 >= 9, "Healthiness_rating_from_all")
m.addConstr(4*x1 - 7*x2 >= 0, "Lemons_pickles_ratio")
m.addConstr(7*x0 + x1 <= 22, "Calcium_limit_oreos_lemons")
m.addConstr(x1 + 6*x2 <= 29, "Calcium_limit_lemons_pickles")
m.addConstr(8*x1 + x2 <= 25, "Healthiness_rating_limit_lemons_pickles")

# Optimize the model
m.optimize()

# Print solution
if m.status == GRB.OPTIMAL:
    print("Optimal solution found:")
    print(f"Oreos: {x0.x}, Lemons: {x1.x}, Pickles: {x2.x}")
    print(f"Objective function value: {m.objVal}")
else:
    print("No optimal solution found")
```