At VisionPm, we prioritize thoughtful use of the public keyword, recognizing it forms an immediate and often irreversible contract.

- Public variables: These carry a medium severity risk, potentially undermining encapsulation principles.

- Public methods: Viewed with high severity, they can disrupt the Single Responsibility Principle (SRP) and Interface Segregation Principle (ISP) from the SOLID principles.

- Public exported classes/packages: Assigned a critical severity level, they pose a risk to the integrity of monolithic modularity.

- Public published events to enterprise brokers: This is considered a fatal severity issue, as it may lead to the creation of a distributed monolithic mess.

Remember, the speed at which you can refactor is inversely proportional to the number of public contracts you manage!