Why is supporting both IProgramListData and IUnitData prohibited?

Yes you´re right it should be possible for a plugin to implement these 2 interfaces.

  • IProgramListData is a slot inside a ProgramList
  • IUnitData is for the whole state of a Unit (which could include global setting to a given unit and all state of each slot of the ProgramList)

we will update the documentation.