To solve the given optimization problem, we first need to convert the natural language description into a symbolic representation. Let's denote:

- $x_1$ as the number of coffee tables produced,
- $x_2$ as the number of bookcases produced.

The objective function, which represents the total profit, can be written as:
\[200x_1 + 300x_2\]

Given the constraints:
- Each coffee table requires approximately 5 gallons of lacquer, and each bookcase takes 7 gallons of lacquer. The total amount of lacquer available is 120 gallons.
- Each coffee table requires 15 lengths of mahogany, and each bookcase requires 25 lengths of mahogany. The total amount of mahogany available is 250 lengths.

The constraints can be represented algebraically as:
1. Lacquer constraint: $5x_1 + 7x_2 \leq 120$
2. Mahogany constraint: $15x_1 + 25x_2 \leq 250$
3. Non-negativity constraints: $x_1 \geq 0, x_2 \geq 0$ (since the number of coffee tables and bookcases cannot be negative)

Therefore, the symbolic representation of the problem is:
```json
{
    'sym_variables': [('x1', 'number of coffee tables'), ('x2', 'number of bookcases')],
    'objective_function': '200*x1 + 300*x2',
    'constraints': ['5*x1 + 7*x2 <= 120', '15*x1 + 25*x2 <= 250', 'x1 >= 0', 'x2 >= 0']
}
```

To solve this linear programming problem using Gurobi in Python, we can use the following code:

```python
from gurobipy import *

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

# Add variables
x1 = m.addVar(name='coffee_tables', vtype=GRB.CONTINUOUS, lb=0)
x2 = m.addVar(name='bookcases', vtype=GRB.CONTINUOUS, lb=0)

# Set the objective function
m.setObjective(200*x1 + 300*x2, GRB.MAXIMIZE)

# Add constraints
m.addConstr(5*x1 + 7*x2 <= 120, name='lacquer_constraint')
m.addConstr(15*x1 + 25*x2 <= 250, name='mahogany_constraint')

# Optimize the model
m.optimize()

# Print the solution
if m.status == GRB.OPTIMAL:
    print(f"Optimal solution: {x1.varName} = {x1.x}, {x2.varName} = {x2.x}")
    print(f"Maximum profit: {m.objVal}")
else:
    print("No optimal solution found")
```