- `path` should be optional to allow for more protocols (e.g. TCP)
- `protocol` should be an enumeration