$ mix dextrin.gen.schema MyApp.Point
$ mix dextrin.gen.schema MyApp.Point --out point.dxns --name Point
Introspects Module's field list (always available for any compiled
struct) and guesses each field's DXN type from its default
value's runtime type — not from @type t() typespecs. Typespec
extraction (via Erlang/Elixir's typespec debug-info chunk API) needs
a :debug_info chunk that isn't guaranteed present for every compiled module
(dependencies built for production commonly strip it), so it can't
be relied on as the primary source; a field whose default is nil,
or that has no confident mapping, becomes :any rather than a guess
either way.
This is explicitly a starting point to review and tighten by hand,
not a claim that struct → .dxns translation is lossless.