Yes, I’m arguing for providing a way to define Programs that have these facilities included. As I said, the special ports syntax can be dropped by replacing it with a output: Value -> Cmd function and a special program that can take a decoder. Alternatively, the input can be input : (Value -> msg) -> Sub msg but I would prefer the decoder variant because the subscription variant enforces the use of a NoOp msg.
Allowing ports on package.elm-lang.org is a recipe for troubles similar to the one described in this issue.
I don’t see how getting rid of ports would create problems that are impossible with the current policy. I would however be interested in learning about such problems.
I do not see why someone would want to publish an instance of a program like this. It would be useless from inside Elm. In any case, I think 0.19 will make a difference between application and package and I’m perfectly fine with banning Program altho I don’t see the point.