# 13. Custom Operator Logo

## 1. Naming and priority

Allowed naming patterns:
1. generic logo: `OPERATOR.bmp` or `OPERATOR.png`
2. type-specific logo: `OPERATOR-ICAOTYPE.bmp` or `OPERATOR-ICAOTYPE.png`

Runtime priority:
1. type-specific logo is preferred,
2. generic logo is fallback.

## 2. Validation rules

1. file type must be `.bmp` or `.png`,
2. file size limit is `2 MB`,
3. required aspect ratio is `17:4`,
4. template size is `85x20`,
5. if image has valid ratio but larger dimensions, explicit downscale confirmation is required,
6. operator code accepts `A-Z`, `0-9`, `@`, `.`, `_`, `+`, `-` (`2-40` chars),
7. optional ICAO type accepts `A-Z`, `0-9` (`2-12` chars).

## 3. Overwrite behavior

1. if target logo already exists and `overwrite=false`, upload returns conflict,
2. when saving one extension, counterpart extension for same key is removed to keep deterministic lookup.

## 4. Storage and metadata

1. files are stored in `Images/AirlineLogos`,
2. upload metadata is tracked in `custom-operator-flags.json`,
3. after upload/delete, `OperatorFlagsList.csv` is synchronized,
4. resource service is reloaded immediately.