`:any` type for embedded schemas in non-virtual fields

But now actually answering that part, and expanding on what @sodapopcan . Understand that althought schemas and changesets are just mapping abstractions. both schema and embedded schemas are expected to be at some point dumped to a database.
Since that is not your intention, i’d recommend to use schemaless changeset(you can use that with structs or plain simple maps).
in case you need features like nesting, relations and some more complex stuff that doesn’t work with schemaless changeset i’d do something like:

@default [virtual: :true]
schema "" do
  field :custom_field1, :any, @default
  field :custom_field2, :any, @default
  ...
end