My understanding has always been: m_pd.h is public and generally shouldn't change without some sort of compatibility coverage. Anything other .h is private. I wrote d_soundfile.h and s_net.h as private headers, but they could be included in m_pd.h to make them public for example. We could add commenting marking them as such. 

On Aug 21, 2021, at 5:03 AM, pd-dev-request@lists.iem.at wrote:

Well, I've never been able to articulate a clear and complete policy...
Roughly speaking, I'm maintaining source and binary compatibility for anything
that uses the public API (m_pd.h) and trying not to break things that use
private APIs (g_vanas.h, s_stuff.h and, privater still, m_imp.h").  Meanwhile
there's a profusion of ".h" files I didn't write (d_soundfile.h, g_all_guis.h,
etc) that I've never formed a policy for.

--------
Dan Wilcox
@danomatika
danomatika.com
robotcowboy.com