## ADDED Requirements

### Requirement: Single Interface Type Enforcement
The system SHALL enforce that each tool type has exactly one interface type.

#### Scenario: Create with single interface
- GIVEN a tool type creation request with `interface_type` = "web"
- WHEN the request is processed
- THEN the tool type is created successfully
- AND the interface type is stored as a single string

#### Scenario: Reject multiple interfaces
- GIVEN a legacy request with `interfaces` array
- WHEN the request is processed
- THEN the system returns 400 Bad Request
- AND the error message indicates that `interface_type` (string) should be used instead

### Requirement: Interface Type Validation
The system SHALL validate that interface_type is one of the allowed values.

#### Scenario: Valid interface types
- GIVEN interface_type values "web" or "terminal"
- WHEN a tool type is created or updated
- THEN the request is accepted

#### Scenario: Invalid interface type
- GIVEN interface_type value "ssh"
- WHEN a tool type is created or updated
- THEN the system returns 400 Bad Request

### Requirement: Data Migration
The system SHALL migrate existing tool types from interfaces array to single interface_type.

#### Scenario: Migrate existing records
- GIVEN existing tool types with interfaces = ["web"] or ["terminal"]
- WHEN the migration runs
- THEN each record gets interface_type = interfaces[0]
- AND requires_port is set based on the interface type
- AND the old interfaces column is removed