When CLI options --port/--ws-port were not provided, nil values were
being explicitly passed to Server.start_link, which caused Keyword.get
to return nil instead of the default. Now we only include port options
in the keyword list if they have actual values.